When run in debug mode, during the verification stage (after optimization) there is an error in the following query:
CREATE TABLE Student(id BIGINT, name VARCHAR);INSERT INTO Student VALUES (0, 'Daniel'), (1, 'Tavneet'), (2, 'Gabor'), (3, 'Peter'), (4, 'David');
CREATE TABLE know(src BIGINT, dst BIGINT, createDate BIGINT);INSERT INTO know VALUES (0,1, 10), (0,2, 11), (0,3, 12), (3,0, 13), (1,2, 14), (1,3, 15), (2,3, 16), (4,3, 17), (4, 0, 18);
-SELECT person, friend
FROM GRAPH_TABLE (pg
MATCH
(a:Student)-[k:know]-(b:Student)
WHERE a.name = 'Daniel'
COLUMNS (a.name as person, b.name as friend)
)
ORDER BY person, friend;
----
INTERNAL Error: Duplicate table index "1" found
The problem does not occur in release mode and gets the correct results. A plain SQL equivalent is:
SELECT a.name AS person, b.name AS friend
FROM ((SELECT know.src, know.dst FROM know) UNION ALL (SELECT know.dst, know.src FROM know)) AS k , Student AS b , Student AS a
WHERE ((a.id = k.src) AND (b.id = k.dst) AND (a.name = 'Daniel'));
It does not occur here because we register a table function for the PGQ query, which bumps the number of bound tables up by one. However, one of the projections that is part of the UNION ALL gets a duplicate table index. In Binder::Binder:52, a new Binder is created with 0 bound tables. It may be that the union does not get the proper number of bound tables and sets the number of bound tables to 0, while it should be 1 (the table function).
When run in debug mode, during the verification stage (after optimization) there is an error in the following query:
The problem does not occur in release mode and gets the correct results. A plain SQL equivalent is:
It does not occur here because we register a table function for the PGQ query, which bumps the number of bound tables up by one. However, one of the projections that is part of the
UNION ALL
gets a duplicate table index. InBinder::Binder:52
, a new Binder is created with 0 bound tables. It may be that the union does not get the proper number of bound tables and sets the number of bound tables to 0, while it should be 1 (the table function).