-
Notifications
You must be signed in to change notification settings - Fork 33
Errors for Graph Type #341
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
85e42a1
to
d27c275
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't looked at the implementation PR but I did have some thoughts on the error messages from just looking at them in isolation.
Status: 0 open comment in this group and 1 in the next
---- | ||
ALTER CURRENT GRAPH TYPE SET { | ||
(p:Person => {name :: STRING}), | ||
CONSTRAINT FOR (p:Person =>) REQUIRE p.name IS NOT NULL, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we want a second example where the node elem type and constraint have different properties (to show that it's not only a problem when the properties are the same)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we need to, if somebody is looking at this page, they already have the error.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe, but I just felt that since both the node and the relationship example had the same property it might be nice to also show some other cases that would fail
ALTER CURRENT GRAPH TYPE SET {
(p:Person => {name :: STRING}),
CONSTRAINT FOR (p:Person) REQUIRE p.ssn IS NOT NULL
}
Fix to:
ALTER CURRENT GRAPH TYPE SET {
(p:Person => {name :: STRING, ssn:: ANY NOT NULL})
}
(this both have another property and doesn't say we expect the label to be identifying in the constraint syntax)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we need any more examples, most of the error codes do not have any.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, cause they didn't have time to add any when doing the initial docs, they want there to be examples for all codes (I've been asked to add examples when I updated codes previously) so that's not really a metric to go after
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but if you don't want new/additional example then update the existing one instead: I just want some more variation in the examples and not have the very same case in both the node and relationship version (just switching which constraint type is where)
7d5bab3
to
e25ea42
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
New round of comments
Status: only open comments are from the groups above
---- | ||
ALTER CURRENT GRAPH TYPE SET { | ||
(p:Person => {name :: STRING}), | ||
CONSTRAINT FOR (p:Person =>) REQUIRE p.name IS NOT NULL, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe, but I just felt that since both the node and the relationship example had the same property it might be nice to also show some other cases that would fail
ALTER CURRENT GRAPH TYPE SET {
(p:Person => {name :: STRING}),
CONSTRAINT FOR (p:Person) REQUIRE p.ssn IS NOT NULL
}
Fix to:
ALTER CURRENT GRAPH TYPE SET {
(p:Person => {name :: STRING, ssn:: ANY NOT NULL})
}
(this both have another property and doesn't say we expect the label to be identifying in the constraint syntax)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Many editorial comments, some of which require fixing the description in the codebase. When these are addressed, I'll build it locally and read it again. I also need to regenerate the index file to add the new codes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. A few minor comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Noticed when double checking the messages and the impl updates
0ed16b5
to
0098fca
Compare
Co-authored-by: Therese Magnusson <[email protected]>
0098fca
to
c8ec980
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review of new errors (and a brief look through the old)
CONSTRAINT FOR () REQUIRE n.prop IS UNIQUE | ||
---- |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CONSTRAINT FOR () REQUIRE n.prop IS UNIQUE | |
---- | |
CONSTRAINT FOR () REQUIRE n.prop IS UNIQUE | |
} | |
---- |
CONSTRAINT FOR (n:Node) REQUIRE n.prop IS UNIQUE | ||
---- |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CONSTRAINT FOR (n:Node) REQUIRE n.prop IS UNIQUE | |
---- | |
CONSTRAINT FOR (n:Node) REQUIRE n.prop IS UNIQUE | |
} | |
---- |
|
||
[source] | ||
---- | ||
error: data exception - relationship element type already exists. A relationship element type identified by the relationship type `REL` already exists in the graph type." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
error: data exception - relationship element type already exists. A relationship element type identified by the relationship type `REL` already exists in the graph type." | |
error: data exception - relationship element type already exists. A relationship element type identified by the relationship type `REL` already exists in the graph type. |
|
||
[source] | ||
---- | ||
error: data exception - relationship element type specified incorrectly. The relationship element type identified by the relationship type `REL` is different to the one specified in the query. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would it be possible for this error (and the node one) to either show the diff or the full existing type 🤔 I got this error when missing the =>
on my end node which took a bit to figure out (and some call to show XD) and having the diff or type definition would maybe have helped figure it out faster 🤷
(p:Person => {name :: STRING }) | ||
(p)-[:DRIVES]->(:Car) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(p:Person => {name :: STRING }) | |
(p)-[:DRIVES]->(:Car) | |
(p:Person => {name :: STRING }), | |
(p)-[:DRIVES]->(:Car) |
error: data exception - graph type constraint not supported. Graph type constraint definitions are not supported in the `{ <<graphTypeOperation>> }` operation. | ||
|
||
== Explanation | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't we want an explanation here?
[source,cypher] | ||
---- | ||
ALTER CURRENT GRAPH TYPE ALTER { | ||
CONSTRAINT c1 FOR (s:Student) REQUIRE s.studentId :: STRING |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since Gowri have (multiple times) stumbled on the inline key constraints it might be nice with an example of that as well
Given
ALTER CURRENT GRAPH TYPE SET {
(:Label => :ToBeRemoved {prop :: STRING IS KEY})
}
Then:
ALTER CURRENT GRAPH TYPE ALTER {
(:Label => {prop :: STRING IS KEY})
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see that you have it for DROP, but I think Gowri have had more questions on it for ALTER 🤷
} | ||
ALTER CURRENT GRAPH TYPE ADD { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would we need some indication that these are two queries and not one containing two alter clauses? 🤔 (since this would fail parsing on the second ALTER I'd assume)
=== xref:errors/gql-errors/22NC9.adoc[22NC9] | ||
|
||
Status description:: error: data exception - invalid element type constraints in graph type. A `{ <<entityType>>1 }` element type property `{ <<context>> }` constraint cannot be specified inline of a `{ <<entityType>>2 }` element type. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing 22NCA-F?
Status description:: error: data exception - unsupported struct tag. Unsupported struct tag: 0x56. `{ <<value>> }`. | ||
=== xref:errors/gql-errors/22NC1.adoc[22NC1] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Status description:: error: data exception - unsupported struct tag. Unsupported struct tag: 0x56. `{ <<value>> }`. | |
=== xref:errors/gql-errors/22NC1.adoc[22NC1] | |
Status description:: error: data exception - unsupported struct tag. Unsupported struct tag: 0x56. `{ <<value>> }`. | |
=== xref:errors/gql-errors/22NC1.adoc[22NC1] |
Error codes for graph types.
This work is likely to be feature flagged for some time, so we don't want to merge it to the public docs yet, but we do need to review the errors.