Для чего используются переменные-массивы в выпуске AgensGraph ver1.3? - PullRequest
0 голосов
/ 26 февраля 2019

Я использовал в AgensGraph Release 1.3, но не использовал оператор where в операторе.

например:

eya=# CREATE (a:person {name:['ljh','jhlee'], age:102});
GRAPH WRITE (INSERT VERTEX 1, INSERT EDGE 0)

CREATE TABLE t_name (
     name text,
     age int
);

CREATE TABLE
insert into t_name values ('ljh', '102');
INSERT 0 1
eya=# insert into t_name values ('khan', '101');
INSERT 0 1

eya=# SELECT *
FROM   t_name
WHERE  name IN (MATCH (a:person) WHERE a.age = 102 RETURN a.name);

ERROR: синтаксическая ошибка в или около "MATCH"ЛИНИЯ 3: ГДЕ ИМЯ (МАТЧ (a: person), ГДЕ a.age = 102 ВОЗВРАЩАЕТСЯ ....

1 Ответ

0 голосов
/ 26 февраля 2019

Вы должны регулярное выражение в выпуске AgensGraph ver 1.3.потому что, 1.3 версия авто, и явное приведение типов не работает.так.Ваш запрос выполнен ниже

SELECT * FROM t_name ГДЕ IN IN (ВЫБРАТЬ regexp_replace (unnest (string_to_array (t1.name::text, ',')), '[^ a-zA-Z0-9]', '', 'g') FROM (MATCH (a: person) WHERE a.age = 102 RETURN a.name) t1);

name |возраст ------ + ----- ljh |102

...