You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@age.apache.org by "MuhammadTahaNaveed (via GitHub)" <gi...@apache.org> on 2023/06/08 18:50:36 UTC
[GitHub] [age] MuhammadTahaNaveed opened a new pull request, #977: Fix issue #975 Invalid reuse of variables in CREATE clause
MuhammadTahaNaveed opened a new pull request, #977:
URL: https://github.com/apache/age/pull/977
- Added checks for invalid use of variables in create clause.
- Fixed error position of path and node variables.
- Added regression tests.
resolves #975
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [age] dehowef commented on pull request #977: Fix issue #975 Invalid reuse of variables in CREATE clause
Posted by "dehowef (via GitHub)" <gi...@apache.org>.
dehowef commented on PR #977:
URL: https://github.com/apache/age/pull/977#issuecomment-1583356173
Looks good to me.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [age] MuhammadTahaNaveed commented on a diff in pull request #977: Fix issue #975 Invalid reuse of variables in CREATE clause
Posted by "MuhammadTahaNaveed (via GitHub)" <gi...@apache.org>.
MuhammadTahaNaveed commented on code in PR #977:
URL: https://github.com/apache/age/pull/977#discussion_r1223464614
##########
regress/sql/cypher_create.sql:
##########
@@ -299,6 +299,92 @@ SELECT * FROM cypher('cypher_create', $$ CREATE (a:Part {part_num: '673'}) $$) a
SELECT * FROM cypher('cypher_create', $$ MATCH (a:Part) RETURN a $$) as (a agtype);
END;
+--
+-- variable reuse
+--
+
+-- Valid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:node)-[e:new]->(p)
+ RETURN p,e,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n1)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p:node)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+-- Invalid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p {n0:'n1'})
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n0)-[a:new]->(p:n1)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=() CREATE (p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[:new]->(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=()
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE (a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)-[e]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
Review Comment:
neo4j's CREATE clause does not allow previously declared edge variable to be reused. So if we stick to their constraints, this should fail.
##########
regress/sql/cypher_create.sql:
##########
@@ -299,6 +299,92 @@ SELECT * FROM cypher('cypher_create', $$ CREATE (a:Part {part_num: '673'}) $$) a
SELECT * FROM cypher('cypher_create', $$ MATCH (a:Part) RETURN a $$) as (a agtype);
END;
+--
+-- variable reuse
+--
+
+-- Valid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:node)-[e:new]->(p)
+ RETURN p,e,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n1)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p:node)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+-- Invalid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p {n0:'n1'})
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n0)-[a:new]->(p:n1)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=() CREATE (p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[:new]->(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=()
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE (a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)-[e]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
Review Comment:
Also there is a risk of start and end ids to be mixed up if we allow this.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [age] MuhammadTahaNaveed commented on a diff in pull request #977: Fix issue #975 Invalid reuse of variables in CREATE clause
Posted by "MuhammadTahaNaveed (via GitHub)" <gi...@apache.org>.
MuhammadTahaNaveed commented on code in PR #977:
URL: https://github.com/apache/age/pull/977#discussion_r1223464614
##########
regress/sql/cypher_create.sql:
##########
@@ -299,6 +299,92 @@ SELECT * FROM cypher('cypher_create', $$ CREATE (a:Part {part_num: '673'}) $$) a
SELECT * FROM cypher('cypher_create', $$ MATCH (a:Part) RETURN a $$) as (a agtype);
END;
+--
+-- variable reuse
+--
+
+-- Valid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:node)-[e:new]->(p)
+ RETURN p,e,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n1)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p:node)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+-- Invalid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p {n0:'n1'})
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n0)-[a:new]->(p:n1)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=() CREATE (p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[:new]->(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=()
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE (a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)-[e]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
Review Comment:
neo4j's CREATE clause does not allow previously declared edge variable to be reused.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [age] MuhammadTahaNaveed commented on a diff in pull request #977: Fix issue #975 Invalid reuse of variables in CREATE clause
Posted by "MuhammadTahaNaveed (via GitHub)" <gi...@apache.org>.
MuhammadTahaNaveed commented on code in PR #977:
URL: https://github.com/apache/age/pull/977#discussion_r1223464614
##########
regress/sql/cypher_create.sql:
##########
@@ -299,6 +299,92 @@ SELECT * FROM cypher('cypher_create', $$ CREATE (a:Part {part_num: '673'}) $$) a
SELECT * FROM cypher('cypher_create', $$ MATCH (a:Part) RETURN a $$) as (a agtype);
END;
+--
+-- variable reuse
+--
+
+-- Valid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:node)-[e:new]->(p)
+ RETURN p,e,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n1)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p:node)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+-- Invalid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p {n0:'n1'})
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n0)-[a:new]->(p:n1)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=() CREATE (p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[:new]->(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=()
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE (a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)-[e]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
Review Comment:
neo4j's CREATE clause does not allow previously declared edge variable to be reused. So if we stick to their constraints, this should fail.
Also there is a risk start and end ids to be mixed up if we allow this.
##########
regress/sql/cypher_create.sql:
##########
@@ -299,6 +299,92 @@ SELECT * FROM cypher('cypher_create', $$ CREATE (a:Part {part_num: '673'}) $$) a
SELECT * FROM cypher('cypher_create', $$ MATCH (a:Part) RETURN a $$) as (a agtype);
END;
+--
+-- variable reuse
+--
+
+-- Valid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:node)-[e:new]->(p)
+ RETURN p,e,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n1)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p:node)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+-- Invalid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p {n0:'n1'})
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n0)-[a:new]->(p:n1)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=() CREATE (p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[:new]->(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=()
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE (a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)-[e]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
Review Comment:
neo4j's CREATE clause does not allow previously declared edge variable to be reused. So if we stick to their constraints, this should fail.
Also there is a risk of start and end ids to be mixed up if we allow this.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [age] jrgemignani commented on a diff in pull request #977: Fix issue #975 Invalid reuse of variables in CREATE clause
Posted by "jrgemignani (via GitHub)" <gi...@apache.org>.
jrgemignani commented on code in PR #977:
URL: https://github.com/apache/age/pull/977#discussion_r1223476220
##########
regress/sql/cypher_create.sql:
##########
@@ -299,6 +299,92 @@ SELECT * FROM cypher('cypher_create', $$ CREATE (a:Part {part_num: '673'}) $$) a
SELECT * FROM cypher('cypher_create', $$ MATCH (a:Part) RETURN a $$) as (a agtype);
END;
+--
+-- variable reuse
+--
+
+-- Valid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:node)-[e:new]->(p)
+ RETURN p,e,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n1)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p:node)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+-- Invalid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p {n0:'n1'})
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n0)-[a:new]->(p:n1)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=() CREATE (p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[:new]->(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=()
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE (a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)-[e]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
Review Comment:
Oh yeah, I didn't think of that.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [age] MuhammadTahaNaveed commented on pull request #977: Fix issue #975 Invalid reuse of variables in CREATE clause
Posted by "MuhammadTahaNaveed (via GitHub)" <gi...@apache.org>.
MuhammadTahaNaveed commented on PR #977:
URL: https://github.com/apache/age/pull/977#issuecomment-1583945039
>
> @MuhammadTahaNaveed Would the following query work:
>
> ```
> MATCH (p:Person) WITH p AS r CREATE p=(a:Person)-[:Manages]->(r) return r
> ```
>
> I get the following error. It has probably nothing to do with your changes.
>
> ```
> test=# SELECT * FROM cypher('hey', $$ MATCH (p:Person) WITH p AS r CREATE p=(a:Person)-[:Manages]->(r) return r $$) as (a agtype);
> ERROR: ag function does not exist
> LINE 1: SELECT * FROM cypher('hey', $$ MATCH (p:Person) WITH p AS r ...
> ^
> DETAIL: agtype_volatile_wrapper(1)
> ```
@rafsun42 Hi, yes this query should work. And it is working fine at my end.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [age] jrgemignani commented on a diff in pull request #977: Fix issue #975 Invalid reuse of variables in CREATE clause
Posted by "jrgemignani (via GitHub)" <gi...@apache.org>.
jrgemignani commented on code in PR #977:
URL: https://github.com/apache/age/pull/977#discussion_r1223477277
##########
regress/sql/cypher_create.sql:
##########
@@ -299,6 +299,92 @@ SELECT * FROM cypher('cypher_create', $$ CREATE (a:Part {part_num: '673'}) $$) a
SELECT * FROM cypher('cypher_create', $$ MATCH (a:Part) RETURN a $$) as (a agtype);
END;
+--
+-- variable reuse
+--
+
+-- Valid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:node)-[e:new]->(p)
+ RETURN p,e,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n1)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p:node)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+-- Invalid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p {n0:'n1'})
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n0)-[a:new]->(p:n1)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=() CREATE (p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[:new]->(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=()
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE (a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)-[e]->(a)
Review Comment:
Never mind, this shouldn't be allowed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [age] MuhammadTahaNaveed commented on a diff in pull request #977: Fix issue #975 Invalid reuse of variables in CREATE clause
Posted by "MuhammadTahaNaveed (via GitHub)" <gi...@apache.org>.
MuhammadTahaNaveed commented on code in PR #977:
URL: https://github.com/apache/age/pull/977#discussion_r1223464614
##########
regress/sql/cypher_create.sql:
##########
@@ -299,6 +299,92 @@ SELECT * FROM cypher('cypher_create', $$ CREATE (a:Part {part_num: '673'}) $$) a
SELECT * FROM cypher('cypher_create', $$ MATCH (a:Part) RETURN a $$) as (a agtype);
END;
+--
+-- variable reuse
+--
+
+-- Valid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:node)-[e:new]->(p)
+ RETURN p,e,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n1)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p:node)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+-- Invalid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p {n0:'n1'})
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n0)-[a:new]->(p:n1)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=() CREATE (p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[:new]->(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=()
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE (a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)-[e]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
Review Comment:
neo4j's CREATE clause does not allow previously declared edge variable to be reused. So if we stick to their constraints, this should fail.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [age] jrgemignani commented on a diff in pull request #977: Fix issue #975 Invalid reuse of variables in CREATE clause
Posted by "jrgemignani (via GitHub)" <gi...@apache.org>.
jrgemignani commented on code in PR #977:
URL: https://github.com/apache/age/pull/977#discussion_r1223451965
##########
regress/sql/cypher_create.sql:
##########
@@ -299,6 +299,92 @@ SELECT * FROM cypher('cypher_create', $$ CREATE (a:Part {part_num: '673'}) $$) a
SELECT * FROM cypher('cypher_create', $$ MATCH (a:Part) RETURN a $$) as (a agtype);
END;
+--
+-- variable reuse
+--
+
+-- Valid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:node)-[e:new]->(p)
+ RETURN p,e,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n1)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p:node)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+-- Invalid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p {n0:'n1'})
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n0)-[a:new]->(p:n1)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=() CREATE (p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[:new]->(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=()
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE (a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)-[e]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (a)-[e:new]->(p)
+ CREATE (p)-[e:new]->(a)
Review Comment:
Shouldn't this be valid? The second **e** is the same as first.
##########
regress/sql/cypher_create.sql:
##########
@@ -299,6 +299,92 @@ SELECT * FROM cypher('cypher_create', $$ CREATE (a:Part {part_num: '673'}) $$) a
SELECT * FROM cypher('cypher_create', $$ MATCH (a:Part) RETURN a $$) as (a agtype);
END;
+--
+-- variable reuse
+--
+
+-- Valid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:node)-[e:new]->(p)
+ RETURN p,e,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n1)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p:node)
+ CREATE (p)-[a:new]->(p)
+ RETURN p,a,p
+$$) as (n1 agtype, e agtype, n2 agtype);
+
+-- Invalid variable reuse
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p)-[a:new]->(p {n0:'n1'})
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (p:n0)-[a:new]->(p:n1)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=() CREATE (p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE p=(a)-[:new]->(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=()
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE p=(p)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ MATCH (p) CREATE (a)-[p:b]->(a)
+$$) as (a agtype);
+
+SELECT * FROM cypher('cypher_create', $$
+ CREATE (a)-[e:new]->(p)-[e]->(a)
Review Comment:
Shouldn't this be valid? The second **e** is just referring to the first.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [age] jrgemignani merged pull request #977: Fix issue #975 Invalid reuse of variables in CREATE clause
Posted by "jrgemignani (via GitHub)" <gi...@apache.org>.
jrgemignani merged PR #977:
URL: https://github.com/apache/age/pull/977
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [age] rafsun42 commented on pull request #977: Fix issue #975 Invalid reuse of variables in CREATE clause
Posted by "rafsun42 (via GitHub)" <gi...@apache.org>.
rafsun42 commented on PR #977:
URL: https://github.com/apache/age/pull/977#issuecomment-1583847830
@MuhammadTahaNaveed Would the following query work:
```
MATCH (p:Person) WITH p AS r CREATE p=(a:Person)-[:Manages]->(r) return r
```
I get the following error. It has probably nothing to do with your changes.
```
test=# SELECT * FROM cypher('hey', $$ MATCH (p:Person) WITH p AS r CREATE p=(a:Person)-[:Manages]->(r) return r $$) as (a agtype);
ERROR: ag function does not exist
LINE 1: SELECT * FROM cypher('hey', $$ MATCH (p:Person) WITH p AS r ...
^
DETAIL: agtype_volatile_wrapper(1)
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@age.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org