Поиск в массиве

Я (кажется пока еще Я)...
Дата: 12.11.2003 13:01:27
И снова здрасти.
Подскажите как осуществляется поиск в массиве, а то читаю, но понять никак не могу :(

create table tab (id int, name text, data text[2][]);

select * from tab where " если любой элемент первой строки ilike '%A%' ";

- подскажите, как реализовать это если...
Sehensucht!
Дата: 12.11.2003 14:15:42
Судя по всему так:

SELECT * FROM tab WHERE data[1] *~~* '%A%'

Попробуй по крайней мере. Если что, знатоки меня поправят.
Только смотри внимательнее:

Although it is not part of the primary PostgreSQL distribution, in the contributions directory, there is an extension to PostgreSQL that defines new functions and operators for iterating over array values...
To install this optional module, look in the contrib/array directory of the PostgreSQL source distribution...
Konrad
Дата: 12.11.2003 14:50:27
В общем, Sehensucht! написал правильно - см. в contrib/array. Установка проходит банально, в файле README.array_interator есть примеры, как использовать библиотеку (в т.ч. и твой случай). Добавлю, что библиотека предоставляет возможность работы с регулярными выражениями в массивах.
Я (кажется пока еще Я)...
Дата: 12.11.2003 14:56:58
неа... Не хочет... пишет:
Unable to identify an operator '*~~*' for types 'text' and '"unknow"' You will have to retype this query using an explicit cast
вот...
Konrad
Дата: 12.11.2003 15:22:35
Правильно пишет. Оператор "~~" в работе с массивами не используется. Используй *~ для поиска в массиве независимо от элемента.
Проверь
SELECT * FROM pg_operator WHERE oprname='*~';
, установлена ли у тебя данная библиотека..
Я (кажется пока еще Я)...
Дата: 13.11.2003 10:11:51
SELECT * FROM pg_operator WHERE oprname='*~';
- 0 записей!

Подскажите плиз !!! где эту библиотеку надыбать и как ее поставить...
Konrad
Дата: 13.11.2003 11:06:54
А прочитать предыдущие сообщения в этой же(!) ветке вероисповедание не позволяет? :)

Говорили же, contrib/array. Это все у тебя уже есть и лежит в исходниках PostgreSQL, которые ты скачал/достал/получил по почте - не суть важно. Установка (если можно так выразиться) - make и make install.
Я (кажется пока еще Я)...
Дата: 13.11.2003 11:54:31
Нет, мне не вероисповедание не позволяет, а тири класса церковно-приходской школы. Что касается "make и make install" - то я тоже этих зверей не знаю. Линук несколько дней вижу, опять же 3 класса пресловутые...
Из инета скачал все что было в папке на сайте греса, все запустил, но результат как видно плачевный...
Может, добрые люди помогут и напишут мне эту строчку с маке?
Konrad
Дата: 13.11.2003 12:03:49
Куда на сервере положил исходник постгреса?

[root@server]# cd /исходник/contrib/array/
[root@server]# make
[root@server]# make install
Konrad
Дата: 13.11.2003 12:06:29
Может не в кассу, но как тогда ты "все запустил", если "зверей" вроде make и make install не знаешь?
Чудеса.. :)