From 7b3ec323c40d4b1a76e31ac642c53f53561b7fb7 Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Fri, 5 Jul 2024 12:40:13 +0100 Subject: [PATCH 01/13] reformat performance notifications --- .../notifications/all-notifications.adoc | 347 ++++++------------ 1 file changed, 115 insertions(+), 232 deletions(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index e8c18c07..b66aa4e6 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -3,21 +3,21 @@ [[listOfNnotifications]] = List of all notification codes -The following are all Neo4j notifications, grouped by category, when they are returned, and an example of improvement. +The following page provides an overview of all notifications in Neo4j, along with some scenarios and their possible solutions. -* <<_performance_notifications, `PERFORMANCE` category>> -* <<_hint_notifications, `HINT` category>> -* <<_unrecognized_notifications, `UNRECOGNIZED` category>> -* <<_unsupported_notifications, `UNSUPPORTED` category>> -* <<_deprecated_notifications, `DEPRECATION` category>> -* <<_security_notifications, `SECURITY` category>> -* <<_topology_notifications, `TOPOLOGY` category>> -* <<_schema_notifications, `SCHEMA` category>> -* <<_generic, `GENERIC` category>> +* <<_performance_notifications, `PERFORMANCE` notifications>> +* <<_hint_notifications, `HINT` notifications>> +* <<_unrecognized_notifications, `UNRECOGNIZED` notifications>> +* <<_unsupported_notifications, `UNSUPPORTED` notifications>> +* <<_deprecated_notifications, `DEPRECATION` notifications>> +* <<_security_notifications, `SECURITY` notifications>> +* <<_topology_notifications, `TOPOLOGY` notifications>> +* <<_schema_notifications, `SCHEMA` notifications>> +* <<_generic, `GENERIC` notifications>> [#_performance_notifications] -== `PERFORMANCE` category +== `PERFORMANCE` notifications Performance notifications are returned whenever the query uses costly operations and the performance may be improved by changing the query or adding an index. @@ -26,48 +26,31 @@ Performance notifications are returned whenever the query uses costly operations This notification is returned when there is a Cartesian product in the plan. -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.CartesianProduct |Title a|This query builds a cartesian product between disconnected patterns. -|Severity -m|INFORMATION +|Description +|If a part of a query contains multiple disconnected patterns, this will build a cartesian product between all those parts. This may produce a large amount of data and slow down query processing. While occasionally intended, it may often be possible to reformulate the query that avoids the use of this cross product, perhaps by adding a relationship between the different parts or by using OPTIONAL MATCH (%s) |Category m|PERFORMANCE -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== +|SeverityLevel +m|INFORMATION |GQLSTATUS code m|03N90 |StatusDescription a|info: cartesian product. The disconnected patterns `$pat` build a cartesian product. A cartesian product may produce a large amount of data and slow down query processing. -|Severity -m|INFORMATION |Classification m|PERFORMANCE |=== -====== -===== - -==== Example of a Cartesian product +.A query that contains many disconnected patterns [.tabbed-example] ===== [.include-with-neo4j-code] @@ -88,7 +71,7 @@ While occasionally intended, it may often be possible to reformulate the query t perhaps by adding a relationship between the different parts or by using `OPTIONAL MATCH` (identifier is: (`p`)) Suggestions for improvement:: -In case a cartesian product is needed, nothing can be done to improve this query. +In case a Cartesian product is needed, nothing can be done to improve this query. In many cases, however, you might not need a combination of all children and parents, and that is when this query could be improved. If for example, you need the children and the children's parents, you can improve this query by rewriting it to the following: + @@ -111,13 +94,13 @@ MATCH (c:Child), (p:Parent) RETURN c, p Returned GQLSTATUS code:: 03N90 -Returned Status Description:: +Returned StatusDescription:: info: cartesian product. The disconnected patterns `(c:Child), (p:Parent)` build a cartesian product. A cartesian product may produce a large amount of data and slow down query processing. Suggestions for improvement:: -In case a cartesian product is needed, nothing can be done to improve this query. +In case a Cartesian product is needed, nothing can be done to improve this query. In many cases, however, you might not need a combination of all children and parents, and that is when this query could be improved. If for example, you need the children and the children's parents, you can improve this query by rewriting it to the following: + @@ -134,46 +117,29 @@ MATCH (c:Child)-[:ChildOf]->(p:Parent) RETURN c, p This notification is returned when there is no upper bound specified on the variable length relationship. -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.UnboundedVariableLengthPattern |Title a|The provided pattern is unbounded, consider adding an upper limit to the number of node hops. -|Severity -m|INFORMATION +|Description +|Using shortest path with an unbounded pattern will likely result in long execution times. +It is recommended to use an upper limit to the number of node hops in your pattern. |Category m|PERFORMANCE -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== +|SeverityLevel +m|INFORMATION |GQLSTATUS code m|03N91 |StatusDescription a|info: unbounded variable length pattern. The provided pattern `$pat` is unbounded. Shortest path with an unbounded pattern may result in long execution times. Use an upper limit (e.g. `[*..5]`) on the number of node hops in your pattern. -|Severity -m|INFORMATION |Classification m|PERFORMANCE |=== -====== -===== - -==== Example of a shortest path with an unbounded pattern - +.Shortest path with an unbounded pattern [.tabbed-example] ===== [.include-with-neo4j-code] @@ -212,7 +178,7 @@ MATCH p=shortestPath((n)-[*]->(m)) RETURN p Returned GQLSTATUS code:: 03N91 -Returned Status Description:: +Returned StatusDescription:: info: unbounded variable length pattern. The provided pattern `(n)-[\*]->(m)` is unbounded. Shortest path with an unbounded pattern may result in long execution times. @@ -235,12 +201,7 @@ MATCH p=shortestPath((n)-[*..8]->(m)) RETURN p This notification is returned when a predicate, given on the shortest path, needs to inspect the whole path before deciding whether it is valid, the shortest path might fall back to the exhaustive search algorithm. For more information, see link:https://neo4j.com/docs/cypher-manual/current/execution-plans/shortestpath-planning#_shortest_pathadditional_predicate_checks_on_the_paths[Cypher manual -> Shortest path - additional predicate checks on the paths]. -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== +.Notification details [cols="<1s,<4"] |=== |Neo4j code @@ -248,31 +209,24 @@ m|Neo.ClientNotification.Statement.ExhaustiveShortestPath |Title a|Exhaustive shortest path has been planned for your query that means that shortest path graph algorithm might not be used to find the shortest path. Hence an exhaustive enumeration of all paths might be used in order to find the requested shortest path. -|Severity -m|INFORMATION +|Description +|Using shortest path with an exhaustive search fallback might cause query slow down since shortest path graph algorithms might not work for this use case. +It is recommended to introduce a `WITH` to separate the `MATCH` containing the shortest path from the existential predicates on that path. |Category m|PERFORMANCE -|=== -====== -[.include-with-GQLSTATUS-code] -====== -[cols="<1s,<4"] -|=== +|SeverityLevel +m|INFORMATION |GQLSTATUS code m|03N92 |StatusDescription a|info: exhaustive shortest path. The query runs with exhaustive shortest path due to the existential predicate(s) `$pred_list`. It may be possible to use `WITH` to separate the `MATCH` from the existential predicate(s). -|Severity -m|INFORMATION |Classification m|PERFORMANCE |=== -====== -===== -==== Example of an exhaustive shortest path +.A query that runs with an exhaustive shortest path [.tabbed-example] ===== [.include-with-neo4j-code] @@ -315,7 +269,7 @@ RETURN p Returned GQLSTATUS code:: 03N92 -Returned Status Description:: +Returned StatusDescription:: info: exhaustive shortest path. The query runs with exhaustive shortest path due to the existential predicate(s) `ANY(n in nodes(p) WHERE n:Label)`. It may be possible to use `WITH` to separate the `MATCH` from the existential predicate(s). @@ -340,48 +294,31 @@ This notification is returned when using `LOAD CSV` with a `MATCH` or a `MERGE` This may not perform well on large data sets. Adding an index could improve the query speed. -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.NoApplicableIndex |Title a|Adding a schema index may speed up this query. -|Severity -m|INFORMATION +|Description +|Using `LOAD CSV` followed by a `MATCH` or `MERGE` that matches a non-indexed label will most likely not perform well on large data sets. +Please consider using a schema index. |Category m|PERFORMANCE -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== +|SeverityLevel +m|INFORMATION |GQLSTATUS code m|03N93 |StatusDescription a|info: no applicable index. `LOAD CSV` in combination with `MATCH` or `MERGE` on a label that does not have an index may result in long execution times. Consider adding an index for label `$label`. -|Severity -m|INFORMATION |Classification m|PERFORMANCE |=== -====== -===== - -==== Example of `LOAD CSV` with `MATCH` or `MERGE` - +.`LOAD CSV` with `MATCH` or `MERGE` [.tabbed-example] ===== [.include-with-neo4j-code] @@ -420,7 +357,7 @@ LOAD CSV FROM 'file:///ignore/ignore.csv' AS line WITH * MATCH (n:Person{name:li Returned GQLSTATUS code:: 03N93 -Returned Status Description:: +Returned StatusDescription:: info: no applicable index. `LOAD CSV` in combination with `MATCH` or `MERGE` on a label that does not have an index may result in long execution times. Consider adding an index for label `Person`. @@ -440,48 +377,31 @@ CREATE INDEX FOR (n:Person) ON (n.name) This notification is returned when the execution plan for a query contains the `Eager` operator. -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.EagerOperator |Title a|The execution plan for this query contains the Eager operator, which forces all dependent data to be materialized in main memory before proceeding -|Severity -m|INFORMATION +|Description +|Using `LOAD CSV` with a large data set in a query where the execution plan contains the Eager operator could potentially consume a lot of memory and is likely to not perform well. +See the Neo4j Manual entry on the Eager operator for more information and hints on how problems could be avoided. |Category m|PERFORMANCE -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== +|SeverityLevel +m|INFORMATION |GQLSTATUS code m|03N94 |StatusDescription a|info: eager operator. The query execution plan contains the `Eager` operator. `LOAD CSV` in combination with `Eager` can consume a lot of memory. -|Severity -m|INFORMATION |Classification m|PERFORMANCE |=== -====== -===== - -==== Example of `LOAD CSV` with `MATCH` or `MERGE` - +.`LOAD CSV` with an Eager operator [.tabbed-example] ===== [.include-with-neo4j-code] @@ -528,7 +448,7 @@ LOAD CSV FROM 'file:///ignore/ignore.csv' AS line MATCH (n:Person{name:line[0]}) Returned GQLSTATUS code:: 03N94 -Returned Status Description:: +Returned StatusDescription:: info: eager operator. The query execution plan contains the `Eager` operator. `LOAD CSV` in combination with `Eager` can consume a lot of memory. @@ -553,31 +473,19 @@ RETURN line [#_neo_clientnotification_statement_dynamicproperty] === DynamicProperty -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.DynamicProperty |Title a|Queries using dynamic properties will use neither index seeks nor index scans for those properties -|Severity -m|INFORMATION +|Description +|Using a dynamic property makes it impossible to use an index lookup for this query (%s) |Category m|PERFORMANCE -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== +|SeverityLevel +m|INFORMATION |GQLSTATUS code m|03N95 |StatusDescription @@ -585,18 +493,11 @@ a|info: dynamic property. An index exists on label/type(s) `$label_list`. It is not possible to use indexes for dynamic properties. Consider using static properties. -|Severity -m|INFORMATION |Classification m|PERFORMANCE |=== -====== -===== - - -==== Example of when using a dynamic node property key makes it impossible to use indexes - +.A dynamic node property key makes it impossible to use indexes [.tabbed-example] ===== [.include-with-neo4j-code] @@ -610,7 +511,7 @@ MATCH (n:Person) WHERE n[$prop] IS NOT NULL RETURN n; ---- Description of the returned code:: -Did not supply query with enough parameters. The produced query plan will not be cached and is not executable without `EXPLAIN`. (Missing parameters: `prop`) +Using a dynamic property makes it impossible to use an index lookup for this query (indexed label is: `Person`) Suggestions for improvement:: If there is an index for `(n:Person) ON (n.name)`, it will not be used for the above query because the query is using a dynamic property. @@ -636,7 +537,7 @@ MATCH (n:Person) WHERE n[$prop] IS NOT NULL RETURN n; Returned GQLSTATUS code:: 03N95 -Returned Status Description:: +Returned StatusDescription:: info: dynamic property. An index exists on label/type(s) `Person`. It is not possible to use indexes for dynamic properties. @@ -655,8 +556,7 @@ MATCH (n:Person) WHERE n.name IS NOT NULL RETURN n; ====== ===== -==== Example of when using a dynamic relationship property key makes it impossible to use indexes - +.A dynamic relationship property key makes it impossible to use indexes [.tabbed-example] ===== [.include-with-neo4j-code] @@ -670,7 +570,7 @@ MATCH ()-[r: KNOWS]->() WHERE r[$prop] IS NOT NULL RETURN r ---- Description of the returned code:: -Did not supply query with enough parameters. The produced query plan will not be cached and is not executable without `EXPLAIN`. (Missing parameters: `prop`) +Using a dynamic property makes it impossible to use an index lookup for this query (indexed type is: `KNOWS`) Suggestions for improvement:: Similar to dynamic node properties, use a constant value if possible, especially when there is an index on the relationship property. @@ -695,7 +595,7 @@ MATCH ()-[r: KNOWS]->() WHERE r[$prop] IS NOT NULL RETURN r Returned GQLSTATUS code:: 03N95 -Returned Status Description:: +Returned StatusDescription:: info: dynamic property. An index exists on label/type(s) `KNOWS`. It is not possible to use indexes for dynamic properties. @@ -719,47 +619,30 @@ MATCH ()-[r: KNOWS]->() WHERE r.since IS NOT NULL RETURN r The `CodeGenerationFailed` notification is created when it is not possible to generate a code for a query, for example, when the query is too big. For more information about the specific query, see the stack trace in the _debug.log_ file. -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.CodeGenerationFailed |Title -a|The database was unable to generate code for the query. A stack trace can be found in the _debug.log_. -|Severity -m|INFORMATION +a|The database was unable to generate code for the query. A stacktrace can be found in the _debug.log_. +|Description +|The database was unable to generate code for the query. A stacktrace can be found in the debug.log. (method too big) |Category m|PERFORMANCE -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== +|SeverityLevel +m|INFORMATION |GQLSTATUS code m|01N40 |StatusDescription -a|warn: runtime unsupported. +a|warn: unsupported runtime. The query cannot be executed with `preparser_input1`, `preparser_input2` is used. Cause: `$msg`. -|Severity -m|INFORMATION |Classification m|PERFORMANCE |=== -====== -===== - [#_hint_notifications] -== `HINT` category +== `HINT` notifications `HINT` notifications are returned by default when the Cypher planner or runtime cannot create a query plan to fulfill a specified hint, for example, `JOIN` or `INDEX`. This behavior of the Cypher planner or runtime can be changed by setting the configuration link:https://neo4j.com/docs/operations-manual/current/configuration/configuration-settings/#config_dbms.cypher.hints_error[`dbms.cypher.hints_error`] to `true`. @@ -781,7 +664,7 @@ In this case, the query will return an error. m|Neo.ClientNotification.Statement.JoinHintUnfulfillableWarning |Title a|The database was unable to plan a hinted join. -|Severity +|SeverityLevel m|WARNING |Category m|HINT @@ -797,7 +680,7 @@ m|HINT m|01N30 |StatusDescription a|warn: join hint unfulfillable. Unable to create a plan with `JOIN ON $var_list`. Try to change the join key(s) or restructure your query. -|Severity +|SeverityLevel m|WARNING |Classification m|HINT @@ -853,7 +736,7 @@ RETURN * Returned GQLSTATUS code:: 01N30 -Returned Status Description:: +Returned StatusDescription:: warn: joint hint unfulfillable. Unable to create a plan with `JOIN ON a`. Try to change the join key(s) or restructure your query. @@ -882,7 +765,7 @@ The only option for this query is to remove the hint or change the query so it i m|Neo.ClientNotification.Schema.HintedIndexNotFound |Title a|The request (directly or indirectly) referred to an index that does not exist. -|Severity +|SeverityLevel m|WARNING |Category m|HINT @@ -898,7 +781,7 @@ m|HINT m|01N31 |StatusDescription a|warn: hinted index not found. Unable to create a plan with `$index_descr` because the index does not exist. -|Severity +|SeverityLevel m|WARNING |Classification m|HINT @@ -948,7 +831,7 @@ RETURN a Returned GQLSTATUS code:: 01N31 -Returned Status Description:: +Returned StatusDescription:: warn: hinted index not found. Unable to create a plan with `INDEX :Label(id)` because the index does not exist. @@ -999,7 +882,7 @@ RETURN r Returned GQLSTATUS code:: 01N31 -Returned Status Description:: +Returned StatusDescription:: warn: hinted index not found. Unable to create a plan with `INDEX :Rel(id)` because the index does not exist. @@ -1010,9 +893,9 @@ If the spelling is correct, either create the index or remove the hint from the ===== [#_unrecognized_notifications] -== `UNRECOGNIZED` category +== `UNRECOGNIZED` notifications -A notification has the unrecognized category if the query or command mentions entities that are unknown to the system. +Unrecognized notifications are returned when the query or command mentions entities that are unknown to the system. [#_neo_clientnotification_database_homedatabasenotfound] === HomeDatabaseNotFound @@ -1030,7 +913,7 @@ A notification has the unrecognized category if the query or command mentions en m|Neo.ClientNotification.Database.HomeDatabaseNotFound |Title a|The request referred to a home database that does not exist. -|Severity +|SeverityLevel m|INFORMATION |Category m|UNRECOGNIZED @@ -1046,7 +929,7 @@ m|UNRECOGNIZED m|00N50 |StatusDescription a|note: successful completion - home database not found. The database `$db` does not exist. Verify that the spelling is correct or create the database for the command to take effect. -|Severity +|SeverityLevel m|INFORMATION |Classification m|UNRECOGNIZED @@ -1089,7 +972,7 @@ CREATE USER linnea SET PASSWORD "password" SET HOME DATABASE Nej4 Returned GQLSTATUS code:: 00N50 -Returned Status Description:: +Returned StatusDescription:: note: successful completion - home database not found. The database `Ne4j` does not exist. Verify that the spelling is correct or create the database for the command to take effect. @@ -1115,7 +998,7 @@ Verify that the home database name is not misspelled. m|Neo.ClientNotification.Statement.UnknownLabelWarning |Title a|The provided label is not in the database. -|Severity +|SeverityLevel m|WARNING |Category m|UNRECOGNIZED @@ -1131,7 +1014,7 @@ m|UNRECOGNIZED m|01N50 |StatusDescription a|warn: unknown label. The label `$label` does not exist. Verify that the spelling is correct. -|Severity +|SeverityLevel m|WARNING |Classification m|UNRECOGNIZED @@ -1174,7 +1057,7 @@ MATCH (n:Perso) RETURN n Returned GQLSTATUS code:: 01N50 -Returned Status Description:: +Returned StatusDescription:: warn: unknown label. The label `Perso` does not exist. Verify that the spelling is correct. @@ -1201,7 +1084,7 @@ If you plan to create nodes with that label in the future, no change is needed. m|Neo.ClientNotification.Statement.UnknownRelationshipTypeWarning |Title a|The provided relationship type is not in the database. -|Severity +|SeverityLevel m|WARNING |Category m|UNRECOGNIZED @@ -1217,7 +1100,7 @@ m|UNRECOGNIZED m|01N51 |StatusDescription a|warn: unknown relationship type. The relationship type `$reltype` does not exist. Verify that the spelling is correct. -|Severity +|SeverityLevel m|WARNING |Classification m|UNRECOGNIZED @@ -1259,7 +1142,7 @@ MATCH (n)-[:NonExistingType]->() RETURN n Returned GQLSTATUS code:: 01N51 -Returned Status Description:: +Returned StatusDescription:: warn: unknown relationship type. The relationship type `NonExistingType` does not exist. Verify that the spelling is correct. @@ -1285,7 +1168,7 @@ If you plan to create relationships of this type in the future, no change is nee m|Neo.ClientNotification.Statement.UnknownPropertyKeyWarning |Title a|The provided property key is not in the database -|Severity +|SeverityLevel m|WARNING |Category m|UNRECOGNIZED @@ -1300,7 +1183,7 @@ m|UNRECOGNIZED m|01N52 |StatusDescription a|warn: unknown property key. The property `$propkey` does not exist. Verify that the spelling is correct. -|Severity +|SeverityLevel m|WARNING |Classification m|UNRECOGNIZED @@ -1336,14 +1219,14 @@ Query:: + [source,cypher] ---- -MATCH (n:Person {nme:”Tom”}) +MATCH (n:Person {nme:”Tom”}) RETURN n ---- Returned GQLSTATUS code:: 01N52 -Returned Status Description:: +Returned StatusDescription:: warn: unknown property key. The property `nme` does not exist. Verify that the spelling is correct. @@ -1357,7 +1240,7 @@ If you plan to create that property key in the future, no change is needed. [#_unsupported_notifications] == `UNSUPPORTED` category -Notifications with the unsupported category are created if the query or command is trying to use features that are not supported by the current system or using experimental features that should not be used in production. +Unsupported notifications are returned when the query or command is trying to use features that are not supported by the current system or using experimental features that should not be used in production. [#_neo_clientnotification_statement_runtimeunsupportedwarning] === RuntimeUnsupportedWarning @@ -1375,7 +1258,7 @@ Notifications with the unsupported category are created if the query or command m|Neo.ClientNotification.Statement.RuntimeUnsupportedWarning |Title a|This query is not supported by the chosen runtime. -|Severity +|SeverityLevel m|WARNING |Category m|UNSUPPORTED @@ -1391,7 +1274,7 @@ m|UNSUPPORTED m|01N40 |StatusDescription a|warn: unsupported runtime. The query cannot be executed with `$preparser_input1`, `$preparser_input2` is used. Cause: `$msg`. -|Severity +|SeverityLevel m|WARNING |Classification m|UNSUPPORTED @@ -1438,7 +1321,7 @@ EXPLAIN CYPHER runtime=pipelined SHOW INDEXES YIELD * Returned GQLSTATUS code:: 01N40 -Returned Status Description:: +Returned StatusDescription:: warn: unsupported runtime. The query cannot be executed with `runtime=pipelined`, `runtime=slotted` is used. Cause: `Pipelined does not yet support the plans including `ShowIndexes`, use another runtime.`. @@ -1468,7 +1351,7 @@ The usage of this notification has been removed since Neo4j 5.14. m|Neo.ClientNotification.Statement.RuntimeExperimental |Title a|This feature is experimental and should not be used in production systems. -|Severity +|SeverityLevel m|WARNING |Category m|UNSUPPORTED @@ -1498,8 +1381,8 @@ MATCH (n) RETURN (n) [#_deprecated_notifications] == `DEPRECATION` notifications -Notifications within this group contain information about a deprecated feature or functionality. -It is important to change to the new functionality; otherwise, the query might break in a future version. +Deprecation notifications contain information about a feature or functionality that has been deprecated. +It is important to change to the new functionality, otherwise, the query might break in a future version. [#_neo_clientnotification_statement_featuredeprecationwarning] === FeatureDeprecationWarning @@ -1517,7 +1400,7 @@ It is important to change to the new functionality; otherwise, the query might b m|Neo.ClientNotification.Statement.FeatureDeprecationWarning |Title a|This feature is deprecated and will be removed in future versions. -|Severity +|SeverityLevel m|WARNING |Category m|DEPRECATION @@ -2231,7 +2114,7 @@ warn: feature deprecated without replacement. m|Neo.ClientNotification.Request.DeprecatedFormat |Title a|The client requested a deprecated format. -|Severity +|SeverityLevel m|WARNING |Category m|DEPRECATION @@ -2270,7 +2153,7 @@ Verify that this is the intended behavior of your query or command. m|Neo.ClientNotification.Security.CommandHasNoEffect |Title a|`` has no effect.* -|Severity +|SeverityLevel m|INFORMATION |Category m|SECURITY @@ -2365,7 +2248,7 @@ Verify that this is the intended privilege and role. m|Neo.ClientNotification.Security.ImpossibleRevokeCommand |Title a|`` has no effect.* -|Severity +|SeverityLevel m|WARNING |Category m|SECURITY @@ -2564,7 +2447,7 @@ For example, `CREATE DATABASE`, `ALTER DATABASE`, `DEALLOCATE DATABASES FROM SER m|Neo.ClientNotification.Cluster.CordonedServersExistedDuringAllocation |Title a| Cordoned servers existed when making an allocation decision. -|Severity +|SeverityLevel m|INFORMATION |Category m|TOPOLOGY @@ -2595,7 +2478,7 @@ Server(s) `123e4567-e89b-12d3-a456-426614174000` are cordoned. This can impact a m|Neo.ClientNotification.Cluster.NoDatabasesReallocated |Title a| `` has no effect. -|Severity +|SeverityLevel m|INFORMATION |Category m|TOPOLOGY @@ -2634,7 +2517,7 @@ Then, a better allocation would move `foo` from server 1 to server 3, but if ser m|Neo.ClientNotification.Cluster.RequestedTopologyMatchedCurrentTopology |Title a| `` has no effect. -|Severity +|SeverityLevel m|INFORMATION |Category m|TOPOLOGY @@ -2666,7 +2549,7 @@ The requested topology matched the current topology. No allocations were changed m|Neo.ClientNotification.Cluster.ServerAlreadyEnabled |Title a| `` has no effect. -|Severity +|SeverityLevel m|INFORMATION |Category m|TOPOLOGY @@ -2704,7 +2587,7 @@ m|Neo.ClientNotification.Schema.IndexOrConstraintAlreadyExists a|`` has no effect. |Description a|`` already exists. -|Severity +|SeverityLevel m|INFORMATION |Category m|SCHEMA @@ -2814,7 +2697,7 @@ m|Neo.ClientNotification.Schema.IndexOrConstraintDoesNotExist a|`` has no effect. |Description a|`` does not exist. -|Severity +|SeverityLevel m|INFORMATION |Category m|SCHEMA @@ -2878,7 +2761,7 @@ Verify that this is the intended constraint and that it is spelled correctly. m|Neo.ClientNotification.Statement.SubqueryVariableShadowing |Title a|Variable in subquery is shadowing a variable with the same name from the outer scope. -|Severity +|SeverityLevel m|INFORMATION |Category m|GENERIC @@ -2929,7 +2812,7 @@ RETURN * m|Neo.ClientNotification.Statement.ParameterNotProvided |Title a|The statement refers to a parameter that was not provided in the request. -|Severity +|SeverityLevel m|WARNING |Category m|GENERIC @@ -2963,7 +2846,7 @@ Provide the parameter to be able to cache the plan. m|Neo.ClientNotification.Procedure.ProcedureWarning |Title a|The query used a procedure that generated a warning. -|Severity +|SeverityLevel m|WARNING |Category m|GENERIC @@ -2987,7 +2870,7 @@ When matching on a relationship type expression that can never be satisfied, for m|Neo.ClientNotification.Statement.UnsatisfiableRelationshipTypeExpression |Title a|The query contains a relationship type expression that cannot be satisfied. -|Severity +|SeverityLevel m|WARNING |Category m|GENERIC @@ -3017,7 +2900,7 @@ label:introduced-in-Neo4j-5.5[Introduced in Neo4j 5.5] m|Neo.ClientNotification.Statement.RepeatedRelationshipReference |Title a|The query returns no results because a relationship variable is bound more than once. -|Severity +|SeverityLevel m|WARNING |Category m|GENERIC From c0f242094d68fdcbe5ef6539382ee65e69dee1bf Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Fri, 5 Jul 2024 15:29:56 +0100 Subject: [PATCH 02/13] reformat all notifications up to security --- .../notifications/all-notifications.adoc | 467 ++++++++---------- 1 file changed, 201 insertions(+), 266 deletions(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index b66aa4e6..934f886c 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -641,6 +641,9 @@ The query cannot be executed with `preparser_input1`, `preparser_input2` is used m|PERFORMANCE |=== +//TO ADD EXAMPLES +//To update the description when the code is spit out + [#_hint_notifications] == `HINT` notifications @@ -651,31 +654,19 @@ In this case, the query will return an error. [#_neo_clientnotification_statement_joinhintunfulfillablewarning] === JoinHintUnfulfillableWarning -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.JoinHintUnfulfillableWarning |Title a|The database was unable to plan a hinted join. -|SeverityLevel -m|WARNING +|Description +|The hinted join was not planned. +This could happen because no generated plan contained the join key, +please try using a different join key or restructure your query. (%s) |Category m|HINT -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== |GQLSTATUS code m|01N30 |StatusDescription @@ -686,11 +677,7 @@ m|WARNING m|HINT |=== -====== -===== - -==== Example of inability to fulfill the hint despite the `JOIN` hint was given - +.Inability to fulfill the hint despite the given `JOIN` hint [.tabbed-example] ===== [.include-with-neo4j-code] @@ -714,8 +701,8 @@ This could happen because no generated plan contained the join key, please try using a different join key or restructure your query. (hinted join key identifier is: `a`) Suggestions for improvement:: -The join hint cannot be fulfilled because the given `JOIN` variable was introduced before the optional match and is therefore already bound. -The only option for this query is to remove the hint or change the query so it is possible to use the hint. +The `JOIN` hint cannot be applied because its specified variable is before the `OPTIONAL MATCH` and, therefore, is already bound. +The only option for this query is to either remove the hint or modify the query to allow it to be used. ====== [.include-with-GQLSTATUS-code] @@ -742,8 +729,8 @@ Unable to create a plan with `JOIN ON a`. Try to change the join key(s) or restructure your query. Suggestions for improvement:: -The join hint cannot be fulfilled because the given `JOIN` variable was introduced before the optional match and is therefore already bound. -The only option for this query is to remove the hint or change the query so it is possible to use the hint. +The `JOIN` hint cannot be applied because its specified variable is before the `OPTIONAL MATCH` and, therefore, is already bound. +The only option for this query is to either remove the hint or modify the query to allow it to be used. ====== ===== @@ -752,31 +739,17 @@ The only option for this query is to remove the hint or change the query so it i [#_neo_clientnotification_schema_hintedindexnotfound] === HintedIndexNotFound -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Schema.HintedIndexNotFound |Title a|The request (directly or indirectly) referred to an index that does not exist. -|SeverityLevel -m|WARNING +|Description +|The hinted index does not exist, please check the schema (%s) |Category m|HINT -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== |GQLSTATUS code m|01N31 |StatusDescription @@ -787,11 +760,7 @@ m|WARNING m|HINT |=== -====== -===== - -==== Example of inability to use the label index despite the given index hint - +.Inability to use the label index despite the given index hint [.tabbed-example] ===== [.include-with-neo4j-code] @@ -841,8 +810,7 @@ If the spelling is correct, either create the index or remove the hint from the ====== ===== -==== Example of inability to use the relationship index despite the given index hint - +.Inability to use the relationship index despite the given index hint [.tabbed-example] ===== [.include-with-neo4j-code] @@ -900,45 +868,31 @@ Unrecognized notifications are returned when the query or command mentions entit [#_neo_clientnotification_database_homedatabasenotfound] === HomeDatabaseNotFound -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Database.HomeDatabaseNotFound |Title a|The request referred to a home database that does not exist. -|SeverityLevel -m|INFORMATION +|Description +|The home database provided does not currently exist in the DBMS. +This command will not take effect until this database is created. (%s`) |Category m|UNRECOGNIZED -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== |GQLSTATUS code m|00N50 |StatusDescription -a|note: successful completion - home database not found. The database `$db` does not exist. Verify that the spelling is correct or create the database for the command to take effect. +a|note: successful completion - home database not found. +The database `$db` does not exist. +Verify that the spelling is correct or create the database for the command to take effect. |SeverityLevel m|INFORMATION |Classification m|UNRECOGNIZED |=== -====== -===== - -==== Example of setting the `home` database to a database that does not yet exist +.Setting the `home` database to a database that does not exist [.tabbed-example] ===== [.include-with-neo4j-code] @@ -948,12 +902,12 @@ Query:: + [source,cypher] ---- -CREATE USER linnea SET PASSWORD "password" SET HOME DATABASE NonExistingDatabase +CREATE USER john SET PASSWORD "secret" SET HOME DATABASE nej4 ---- Description of the returned code:: The home database provided does not currently exist in the DBMS. -This command will not take effect until this database is created. (HOME DATABASE: `nonexistingdatabase`) +This command will not take effect until this database is created. (HOME DATABASE: `nej4`) Suggestions for improvement:: Verify that the home database name is not misspelled. @@ -966,7 +920,7 @@ Query:: + [source,cypher] ---- -CREATE USER linnea SET PASSWORD "password" SET HOME DATABASE Nej4 +CREATE USER john SET PASSWORD "secret" SET HOME DATABASE nej4 ---- Returned GQLSTATUS code:: @@ -974,7 +928,7 @@ Returned GQLSTATUS code:: Returned StatusDescription:: note: successful completion - home database not found. -The database `Ne4j` does not exist. +The database `ne4j` does not exist. Verify that the spelling is correct or create the database for the command to take effect. Suggestions for improvement:: @@ -985,45 +939,30 @@ Verify that the home database name is not misspelled. [#_neo_clientnotification_statement_unknownlabelwarning] === UnknownLabelWarning -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.UnknownLabelWarning |Title a|The provided label is not in the database. -|SeverityLevel -m|WARNING +|Description +|One of the labels in your query is not available in the database, make sure you didn't misspell it or that the label is available when you run this statement in your application (%s) |Category m|UNRECOGNIZED -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== |GQLSTATUS code m|01N50 |StatusDescription -a|warn: unknown label. The label `$label` does not exist. Verify that the spelling is correct. +a|warn: unknown label. +The label `$label` does not exist. +Verify that the spelling is correct. |SeverityLevel m|WARNING |Classification m|UNRECOGNIZED |=== -====== -===== - -==== Example of matching on a node with a label that does not exist in the database +.Matching on a node with a label that does not exist in the database [.tabbed-example] ===== [.include-with-neo4j-code] @@ -1071,45 +1010,31 @@ If you plan to create nodes with that label in the future, no change is needed. [#_neo_clientnotification_statement_unknownrelationshiptypewarning] === UnknownRelationshipTypeWarning -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.UnknownRelationshipTypeWarning |Title a|The provided relationship type is not in the database. -|SeverityLevel -m|WARNING +|Description +|One of the relationship types in your query is not available in the database, +make sure you didn't misspell it or that the label is available when you run this statement in your application (%s) |Category m|UNRECOGNIZED -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== |GQLSTATUS code m|01N51 |StatusDescription -a|warn: unknown relationship type. The relationship type `$reltype` does not exist. Verify that the spelling is correct. +a|warn: unknown relationship type. +The relationship type `$reltype` does not exist. +Verify that the spelling is correct. |SeverityLevel m|WARNING |Classification m|UNRECOGNIZED |=== -====== -===== - -==== Example of matching on a relationship, when there are no relationships in the database with the given relationship type +.Matching a relationship with a type that does not exist [.tabbed-example] ===== [.include-with-neo4j-code] @@ -1156,43 +1081,31 @@ If you plan to create relationships of this type in the future, no change is nee [#_neo_clientnotification_statement_unknownpropertykeywarning] === UnknownPropertyKeyWarning -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.UnknownPropertyKeyWarning |Title a|The provided property key is not in the database -|SeverityLevel -m|WARNING +|Description +|One of the property names in your query is not available in the database, +make sure you didn't misspell it or that the label is available when you run this statement in your application (%s) |Category m|UNRECOGNIZED -|=== - -====== -[.include-with-GQLSTATUS-code] -====== -[cols="<1s,<4"] -|=== |GQLSTATUS code m|01N52 |StatusDescription -a|warn: unknown property key. The property `$propkey` does not exist. Verify that the spelling is correct. +a|warn: unknown property key. +The property `$propkey` does not exist. +Verify that the spelling is correct. |SeverityLevel m|WARNING |Classification m|UNRECOGNIZED |=== -====== -===== - -==== Example of matching on a property key that does not exist +.Matching a property key that does not exist [.tabbed-example] ===== [.include-with-neo4j-code] @@ -1201,12 +1114,13 @@ Query:: + [source,cypher] ---- -MATCH (n {nonExistingProp:1}) RETURN n +MATCH (n:Person {nme:”Tom”}) +RETURN n ---- Description of the returned code:: One of the property names in your query is not available in the database, -make sure you didn't misspell it or that the label is available when you run this statement in your application (the missing property name is: `nonExistingProp`) +make sure you didn't misspell it or that the label is available when you run this statement in your application (the missing property name is: `nme`) Suggestions for improvement:: Verify that the property key is not misspelled. @@ -1245,31 +1159,18 @@ Unsupported notifications are returned when the query or command is trying to us [#_neo_clientnotification_statement_runtimeunsupportedwarning] === RuntimeUnsupportedWarning -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== - +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.RuntimeUnsupportedWarning |Title a|This query is not supported by the chosen runtime. -|SeverityLevel -m|WARNING +|Description +|Selected runtime is unsupported for this query, please use a different runtime instead or fallback to default. +(%s) |Category m|UNSUPPORTED -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== |GQLSTATUS code m|01N40 |StatusDescription @@ -1279,11 +1180,8 @@ m|WARNING |Classification m|UNSUPPORTED |=== -====== -===== - -==== Example of a runtime not supported by a Cypher command +.A runtime is not supported by a Cypher command [.tabbed-example] ===== [.include-with-neo4j-code] @@ -1324,7 +1222,7 @@ Returned GQLSTATUS code:: Returned StatusDescription:: warn: unsupported runtime. The query cannot be executed with `runtime=pipelined`, `runtime=slotted` is used. -Cause: `Pipelined does not yet support the plans including `ShowIndexes`, use another runtime.`. +Cause: Pipelined does not yet support the plans including `ShowIndexes`, use another runtime. Suggestions for improvement:: Use a different runtime or remove the runtime option to run the query with the default runtime: @@ -1336,6 +1234,7 @@ SHOW INDEXES YIELD * ====== ===== +label:deprecated[] [#_neo_clientnotification_statement_runtimeexperimental] === RuntimeExperimental @@ -1351,6 +1250,8 @@ The usage of this notification has been removed since Neo4j 5.14. m|Neo.ClientNotification.Statement.RuntimeExperimental |Title a|This feature is experimental and should not be used in production systems. +|Description +|You are using an experimental feature (%s) |SeverityLevel m|WARNING |Category @@ -1384,85 +1285,41 @@ MATCH (n) RETURN (n) Deprecation notifications contain information about a feature or functionality that has been deprecated. It is important to change to the new functionality, otherwise, the query might break in a future version. -[#_neo_clientnotification_statement_featuredeprecationwarning] -=== FeatureDeprecationWarning - -==== Notification details - -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== +[#_neo_clientnotification_statement_featuredeprecated] +=== Feature deprecated +.Notification details [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Statement.FeatureDeprecationWarning |Title a|This feature is deprecated and will be removed in future versions. -|SeverityLevel -m|WARNING +|Description +|The procedure has a deprecated field. (%s) + +The function has a deprecated field. (%s) + +Creating an entity (%s) and referencing that entity in a property definition in the same CREATE is deprecated. + +Merging an entity (%s) and referencing that entity in a property definition in the same MERGE is deprecated. + +The Unicode character `%s` is deprecated for unescaped identifiers and will be considered as a whitespace character in the future. +To continue using it, escape the identifier by adding backticks around the identifier `%s`. + +The character with the Unicode representation `%s` is deprecated for unescaped identifiers and will not be supported in the future. +To continue using it, escape the identifier by adding backticks around the identifier `%s`. + +All subqueries in a UNION [ALL] should have the same ordering for the return columns. +Using differently ordered return items in a UNION [ALL] clause is deprecated and will be removed in a future version. + +Databases and aliases with unescaped `.` are deprecated unless to indicate that they belong to a composite database. +Names containing `.` should be escaped. (%s) |Category m|DEPRECATION -|=== - -====== -[.include-with-GQLSTATUS-code] -====== - -[cols="<1s,<4"] -|=== |GQLSTATUS code m|01N00 |StatusDescription a|warn: feature deprecated. $msg -|Severity -m|WARNING -|Classification -m|DEPRECATION -|=== - -[cols="<1s,<4"] -|=== -|GQLSTATUS code -m|01N01 -|StatusDescription -a|warn: feature deprecated with replacement. `$thing1` is deprecated. It is replaced by `$thing2`. -|Severity -m|WARNING -|Classification -m|DEPRECATION -|=== - -[cols="<1s,<4"] -|=== -|GQLSTATUS code -m|01N02 -|StatusDescription -a|warn: feature deprecated without replacement. `$thing` is deprecated and will be removed without a replacement. -|Severity -m|WARNING -|Classification -m|DEPRECATION -|=== - -[cols="<1s,<4"] -|=== -|GQLSTATUS code -m|01N03 -|StatusDescription -a|warn: procedure result column deprecated. `$field` returned by procedure `$proc` is deprecated. -|Severity +|SeverityLevel m|WARNING |Classification m|DEPRECATION |=== -====== -===== - -==== Examples of using deprecated features - .Create a database with an unescaped name containing a dot [.tabbed-example] ===== @@ -1608,45 +1465,38 @@ The Unicode character `\u0085` is deprecated for unescaped identifiers and will ====== ===== +[#_deprecated-feature-with-replacement] +=== Feature deprecated with a replacement -==== Examples of using deprecated features without a future replacement - -.Using Cypher query option `connectComponentsPlanner` -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== -Query:: -+ -[source,cypher] ----- -CYPHER connectComponentsPlanner=greedy MATCH (a), (b) RETURN * ----- -Description of the returned code:: -The Cypher query option `connectComponentsPlanner` is deprecated and will be removed without a replacement. -The product's default behavior of using a cost-based IDP search algorithm when combining sub-plans will be kept. -For more information, see link:https://neo4j.com/docs/cypher-manual/current/query-tuning/query-options/#cypher-planner[Cypher manual -> Cypher planner]. - -====== -[.include-with-GQLSTATUS-code] -====== -Query:: -+ -[source,cypher] ----- -CYPHER connectComponentsPlanner=greedy MATCH (a), (b) RETURN * ----- - -Returned GQLSTATUS code:: -01N02 - -Returned Status Description:: -warn: feature deprecated without replacement. -`connectComponentsPlanner` is deprecated and will be removed without a replacement. -====== -===== - -==== Examples of using a deprecated feature that will be replaced in the future +.Notification details +[cols="<1s,<4"] +|=== +|Neo4j code +m|Neo.ClientNotification.Statement.FeatureDeprecationWarning +|Title +a|This feature is deprecated and will be removed in future versions. +|Descriptions +|The semantics of using colon in the separation of alternative relationship types will change in a future version. (%s) + +The use of nodes or relationships for setting properties is deprecated and will be removed in a future version. +Please use properties() instead. + +The use of shortestPath and allShortestPaths with fixed length relationships is deprecated and will be removed in a future version. +Please use a path with a length of 1 [r*1..1] instead or a Match with a limit. + +The query used a deprecated function. (%s) + +The query used a deprecated procedure. (%s) + +The query used a deprecated runtime option. (%s) + +The `TextIndexProvider.DESCRIPTOR.name()` provider for text indexes is deprecated and will be removed in a future version. +Please use `TrigramIndexProvider.DESCRIPTOR.name()` instead. +|Category +m|DEPRECATION +|GQLSTATUS code +m|01N01 +|StatusDescription +a|warn: feature deprecated with replacement. `$thing1` is deprecated. It is replaced by `$thing2`. +|SeverityLevel +m|WARNING +|Classification +m|DEPRECATION +|=== .Colon after the vertical bar `|:` in a relationship pattern [.tabbed-example] @@ -1974,8 +1824,6 @@ CREATE TEXT INDEX FOR (n:Label) ON (n.prop) OPTIONS {indexProvider : 'text-2.0'} ====== ===== - - .Using a renamed or a deprecated procedure [.tabbed-example] ===== @@ -2099,6 +1947,93 @@ warn: feature deprecated without replacement. ====== ===== +[#_deprecated-notifications-without-replacement] +=== Deprecated features without a future replacement + +.Notification details +[cols="<1s,<4"] +|=== +|Neo4j code +m|Neo.ClientNotification.Statement.FeatureDeprecationWarning +|Title +a|This feature is deprecated and will be removed in future versions. +|Descriptions +|The Cypher query option `connectComponentsPlanner` is deprecated and will be removed without a replacement. +The product's default behavior of using a cost-based IDP search algorithm when combining sub-plans will be kept. +For more information, see Cypher Manual -> Cypher planner. + +The query used a deprecated function%s + +The query used a deprecated procedure%s +|Category +m|DEPRECATION +|GQLSTATUS code +m|01N02 +|StatusDescription +a|warn: feature deprecated without replacement. `$thing` is deprecated and will be removed without a replacement. +|SeverityLevel +m|WARNING +|Classification +m|DEPRECATION +|=== + +.Using Cypher query option `connectComponentsPlanner` +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== +Query:: ++ +[source,cypher] +---- +CYPHER connectComponentsPlanner=greedy MATCH (a), (b) RETURN * +---- +Description of the returned code:: +The Cypher query option `connectComponentsPlanner` is deprecated and will be removed without a replacement. +The product's default behavior of using a cost-based IDP search algorithm when combining sub-plans will be kept. +For more information, see link:https://neo4j.com/docs/cypher-manual/current/query-tuning/query-options/#cypher-planner[Cypher manual -> Cypher planner]. + +====== +[.include-with-GQLSTATUS-code] +====== +Query:: ++ +[source,cypher] +---- +CYPHER connectComponentsPlanner=greedy MATCH (a), (b) RETURN * +---- + +Returned GQLSTATUS code:: +01N02 + +Returned Status Description:: +warn: feature deprecated without replacement. +`connectComponentsPlanner` is deprecated and will be removed without a replacement. +====== +===== + +[[_deprecated-procedure-result-column]] +=== Procedure field deprecated + +.Notification details +[cols="<1s,<4"] +|=== +|Neo4j code +m|Neo.ClientNotification.Statement.FeatureDeprecationWarning +|Title +a|This feature is deprecated and will be removed in future versions. +|Description +|The query used a deprecated field from a procedure. (%s) +|Category +m|DEPRECATION +|GQLSTATUS code +m|01N03 +|StatusDescription +a|warn: procedure field deprecated. `$field` for procedure `$proc` is deprecated. +|SeverityLevel +m|WARNING +|Classification +m|DEPRECATION +|=== + [#_neo_clientnotification_request_deprecatedformat] === DeprecatedFormat @@ -2129,7 +2064,7 @@ m|DEPRECATION m|01N01 |StatusDescription a|warn: feature deprecated with replacement. `$thing1` is deprecated. It is replaced by `$thing2`. -|Severity +|SeverityLevel m|WARNING |Classification m|DEPRECATION From c4f7ae07e2c10ee3ccd766d0816331ac872a97d1 Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Mon, 8 Jul 2024 11:10:09 +0100 Subject: [PATCH 03/13] fix the deprecated format --- modules/ROOT/pages/notifications/all-notifications.adoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index 934f886c..9297089d 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -2037,8 +2037,7 @@ m|DEPRECATION [#_neo_clientnotification_request_deprecatedformat] === DeprecatedFormat -==== Notification details - +.Notification details [.tabbed-example] ===== [.include-with-neo4j-code] From ca4261f58c76652a78b7f553c6d8c9314225e47f Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Wed, 10 Jul 2024 14:06:31 +0100 Subject: [PATCH 04/13] add a missing s --- modules/ROOT/pages/notifications/all-notifications.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index 9297089d..98e01e45 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -1295,7 +1295,7 @@ It is important to change to the new functionality, otherwise, the query might b m|Neo.ClientNotification.Statement.FeatureDeprecationWarning |Title a|This feature is deprecated and will be removed in future versions. -|Description +|Descriptions |The procedure has a deprecated field. (%s) + The function has a deprecated field. (%s) + Creating an entity (%s) and referencing that entity in a property definition in the same CREATE is deprecated. + From a1e0350bacbeb256a3b3c5897b944ca89e5ff53b Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Mon, 15 Jul 2024 10:48:33 +0100 Subject: [PATCH 05/13] everything until schema plus placeholders for the tab exaples --- .../notifications/all-notifications.adoc | 837 ++++++++++++++---- 1 file changed, 654 insertions(+), 183 deletions(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index 98e01e45..bbcd0d94 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -37,8 +37,6 @@ a|This query builds a cartesian product between disconnected patterns. |If a part of a query contains multiple disconnected patterns, this will build a cartesian product between all those parts. This may produce a large amount of data and slow down query processing. While occasionally intended, it may often be possible to reformulate the query that avoids the use of this cross product, perhaps by adding a relationship between the different parts or by using OPTIONAL MATCH (%s) |Category m|PERFORMANCE -|SeverityLevel -m|INFORMATION |GQLSTATUS code m|03N90 |StatusDescription @@ -47,6 +45,8 @@ The disconnected patterns `$pat` build a cartesian product. A cartesian product may produce a large amount of data and slow down query processing. |Classification m|PERFORMANCE +|SeverityLevel +m|INFORMATION |=== @@ -129,14 +129,14 @@ a|The provided pattern is unbounded, consider adding an upper limit to the numbe It is recommended to use an upper limit to the number of node hops in your pattern. |Category m|PERFORMANCE -|SeverityLevel -m|INFORMATION |GQLSTATUS code m|03N91 |StatusDescription a|info: unbounded variable length pattern. The provided pattern `$pat` is unbounded. Shortest path with an unbounded pattern may result in long execution times. Use an upper limit (e.g. `[*..5]`) on the number of node hops in your pattern. |Classification m|PERFORMANCE +|SeverityLevel +m|INFORMATION |=== .Shortest path with an unbounded pattern @@ -214,8 +214,6 @@ Hence an exhaustive enumeration of all paths might be used in order to find the It is recommended to introduce a `WITH` to separate the `MATCH` containing the shortest path from the existential predicates on that path. |Category m|PERFORMANCE -|SeverityLevel -m|INFORMATION |GQLSTATUS code m|03N92 |StatusDescription @@ -224,6 +222,8 @@ The query runs with exhaustive shortest path due to the existential predicate(s) It may be possible to use `WITH` to separate the `MATCH` from the existential predicate(s). |Classification m|PERFORMANCE +|SeverityLevel +m|INFORMATION |=== .A query that runs with an exhaustive shortest path @@ -306,8 +306,6 @@ a|Adding a schema index may speed up this query. Please consider using a schema index. |Category m|PERFORMANCE -|SeverityLevel -m|INFORMATION |GQLSTATUS code m|03N93 |StatusDescription @@ -316,6 +314,8 @@ a|info: no applicable index. Consider adding an index for label `$label`. |Classification m|PERFORMANCE +|SeverityLevel +m|INFORMATION |=== .`LOAD CSV` with `MATCH` or `MERGE` @@ -389,8 +389,6 @@ a|The execution plan for this query contains the Eager operator, which forces al See the Neo4j Manual entry on the Eager operator for more information and hints on how problems could be avoided. |Category m|PERFORMANCE -|SeverityLevel -m|INFORMATION |GQLSTATUS code m|03N94 |StatusDescription @@ -399,6 +397,8 @@ The query execution plan contains the `Eager` operator. `LOAD CSV` in combination with `Eager` can consume a lot of memory. |Classification m|PERFORMANCE +|SeverityLevel +m|INFORMATION |=== .`LOAD CSV` with an Eager operator @@ -484,8 +484,6 @@ a|Queries using dynamic properties will use neither index seeks nor index scans |Using a dynamic property makes it impossible to use an index lookup for this query (%s) |Category m|PERFORMANCE -|SeverityLevel -m|INFORMATION |GQLSTATUS code m|03N95 |StatusDescription @@ -495,6 +493,8 @@ It is not possible to use indexes for dynamic properties. Consider using static properties. |Classification m|PERFORMANCE +|SeverityLevel +m|INFORMATION |=== .A dynamic node property key makes it impossible to use indexes @@ -630,8 +630,6 @@ a|The database was unable to generate code for the query. A stacktrace can be fo |The database was unable to generate code for the query. A stacktrace can be found in the debug.log. (method too big) |Category m|PERFORMANCE -|SeverityLevel -m|INFORMATION |GQLSTATUS code m|01N40 |StatusDescription @@ -639,6 +637,8 @@ a|warn: unsupported runtime. The query cannot be executed with `preparser_input1`, `preparser_input2` is used. Cause: `$msg`. |Classification m|PERFORMANCE +|SeverityLevel +m|INFORMATION |=== //TO ADD EXAMPLES @@ -671,10 +671,10 @@ m|HINT m|01N30 |StatusDescription a|warn: join hint unfulfillable. Unable to create a plan with `JOIN ON $var_list`. Try to change the join key(s) or restructure your query. -|SeverityLevel -m|WARNING |Classification m|HINT +|SeverityLevel +m|WARNING |=== .Inability to fulfill the hint despite the given `JOIN` hint @@ -754,10 +754,10 @@ m|HINT m|01N31 |StatusDescription a|warn: hinted index not found. Unable to create a plan with `$index_descr` because the index does not exist. -|SeverityLevel -m|WARNING |Classification m|HINT +|SeverityLevel +m|WARNING |=== .Inability to use the label index despite the given index hint @@ -886,10 +886,10 @@ m|00N50 a|note: successful completion - home database not found. The database `$db` does not exist. Verify that the spelling is correct or create the database for the command to take effect. -|SeverityLevel -m|INFORMATION |Classification m|UNRECOGNIZED +|SeverityLevel +m|WARNING |=== .Setting the `home` database to a database that does not exist @@ -956,10 +956,10 @@ m|01N50 a|warn: unknown label. The label `$label` does not exist. Verify that the spelling is correct. -|SeverityLevel -m|WARNING |Classification m|UNRECOGNIZED +|SeverityLevel +m|WARNING |=== .Matching on a node with a label that does not exist in the database @@ -1028,10 +1028,10 @@ m|01N51 a|warn: unknown relationship type. The relationship type `$reltype` does not exist. Verify that the spelling is correct. -|SeverityLevel -m|WARNING |Classification m|UNRECOGNIZED +|SeverityLevel +m|WARNING |=== .Matching a relationship with a type that does not exist @@ -1099,10 +1099,10 @@ m|01N52 a|warn: unknown property key. The property `$propkey` does not exist. Verify that the spelling is correct. -|SeverityLevel -m|WARNING |Classification m|UNRECOGNIZED +|SeverityLevel +m|WARNING |=== .Matching a property key that does not exist @@ -1175,10 +1175,10 @@ m|UNSUPPORTED m|01N40 |StatusDescription a|warn: unsupported runtime. The query cannot be executed with `$preparser_input1`, `$preparser_input2` is used. Cause: `$msg`. -|SeverityLevel -m|WARNING |Classification m|UNSUPPORTED +|SeverityLevel +m|WARNING |=== .A runtime is not supported by a Cypher command @@ -1234,7 +1234,7 @@ SHOW INDEXES YIELD * ====== ===== -label:deprecated[] +[role=label--deprecated-5.14] [#_neo_clientnotification_statement_runtimeexperimental] === RuntimeExperimental @@ -1252,10 +1252,10 @@ m|Neo.ClientNotification.Statement.RuntimeExperimental a|This feature is experimental and should not be used in production systems. |Description |You are using an experimental feature (%s) -|SeverityLevel -m|WARNING |Category m|UNSUPPORTED +|SeverityLevel +m|WARNING |=== .Use of the parallel runtime @@ -1296,17 +1296,18 @@ m|Neo.ClientNotification.Statement.FeatureDeprecationWarning |Title a|This feature is deprecated and will be removed in future versions. |Descriptions -|The procedure has a deprecated field. (%s) + -The function has a deprecated field. (%s) + -Creating an entity (%s) and referencing that entity in a property definition in the same CREATE is deprecated. + -Merging an entity (%s) and referencing that entity in a property definition in the same MERGE is deprecated. + -The Unicode character `%s` is deprecated for unescaped identifiers and will be considered as a whitespace character in the future. -To continue using it, escape the identifier by adding backticks around the identifier `%s`. + -The character with the Unicode representation `%s` is deprecated for unescaped identifiers and will not be supported in the future. -To continue using it, escape the identifier by adding backticks around the identifier `%s`. + -All subqueries in a UNION [ALL] should have the same ordering for the return columns. -Using differently ordered return items in a UNION [ALL] clause is deprecated and will be removed in a future version. + -Databases and aliases with unescaped `.` are deprecated unless to indicate that they belong to a composite database. +a| +- The procedure has a deprecated field. (%s) +- The function has a deprecated field. (%s) +- Creating an entity (%s) and referencing that entity in a property definition in the same CREATE is deprecated. +- Merging an entity (%s) and referencing that entity in a property definition in the same MERGE is deprecated. +- The Unicode character `%s` is deprecated for unescaped identifiers and will be considered as a whitespace character in the future. +To continue using it, escape the identifier by adding backticks around the identifier `%s`. +- The character with the Unicode representation `%s` is deprecated for unescaped identifiers and will not be supported in the future. +To continue using it, escape the identifier by adding backticks around the identifier `%s`. +- All subqueries in a UNION [ALL] should have the same ordering for the return columns. +Using differently ordered return items in a UNION [ALL] clause is deprecated and will be removed in a future version. +- Databases and aliases with unescaped `.` are deprecated unless to indicate that they belong to a composite database. Names containing `.` should be escaped. (%s) |Category m|DEPRECATION @@ -1314,10 +1315,10 @@ m|DEPRECATION m|01N00 |StatusDescription a|warn: feature deprecated. $msg -|SeverityLevel -m|WARNING |Classification m|DEPRECATION +|SeverityLevel +m|WARNING |=== .Create a database with an unescaped name containing a dot @@ -1476,15 +1477,16 @@ m|Neo.ClientNotification.Statement.FeatureDeprecationWarning |Title a|This feature is deprecated and will be removed in future versions. |Descriptions -|The semantics of using colon in the separation of alternative relationship types will change in a future version. (%s) + -The use of nodes or relationships for setting properties is deprecated and will be removed in a future version. -Please use properties() instead. + -The use of shortestPath and allShortestPaths with fixed length relationships is deprecated and will be removed in a future version. -Please use a path with a length of 1 [r*1..1] instead or a Match with a limit. + -The query used a deprecated function. (%s) + -The query used a deprecated procedure. (%s) + -The query used a deprecated runtime option. (%s) + -The `TextIndexProvider.DESCRIPTOR.name()` provider for text indexes is deprecated and will be removed in a future version. +a| +- The semantics of using colon in the separation of alternative relationship types will change in a future version. (%s) +- The use of nodes or relationships for setting properties is deprecated and will be removed in a future version. +Please use properties() instead. +- The use of shortestPath and allShortestPaths with fixed length relationships is deprecated and will be removed in a future version. +Please use a path with a length of 1 [r*1..1] instead or a Match with a limit. +- The query used a deprecated function. (%s) +- The query used a deprecated procedure. (%s) +- The query used a deprecated runtime option. (%s) +- The `TextIndexProvider.DESCRIPTOR.name()` provider for text indexes is deprecated and will be removed in a future version. Please use `TrigramIndexProvider.DESCRIPTOR.name()` instead. |Category m|DEPRECATION @@ -1492,10 +1494,10 @@ m|DEPRECATION m|01N01 |StatusDescription a|warn: feature deprecated with replacement. `$thing1` is deprecated. It is replaced by `$thing2`. -|SeverityLevel -m|WARNING |Classification m|DEPRECATION +|SeverityLevel +m|WARNING |=== .Colon after the vertical bar `|:` in a relationship pattern @@ -1958,21 +1960,22 @@ m|Neo.ClientNotification.Statement.FeatureDeprecationWarning |Title a|This feature is deprecated and will be removed in future versions. |Descriptions -|The Cypher query option `connectComponentsPlanner` is deprecated and will be removed without a replacement. +a| +- The Cypher query option `connectComponentsPlanner` is deprecated and will be removed without a replacement. The product's default behavior of using a cost-based IDP search algorithm when combining sub-plans will be kept. -For more information, see Cypher Manual -> Cypher planner. + -The query used a deprecated function%s + -The query used a deprecated procedure%s +For more information, see Cypher Manual -> Cypher planner. +- The query used a deprecated function%s +- The query used a deprecated procedure%s |Category m|DEPRECATION |GQLSTATUS code m|01N02 |StatusDescription a|warn: feature deprecated without replacement. `$thing` is deprecated and will be removed without a replacement. -|SeverityLevel -m|WARNING |Classification m|DEPRECATION +|SeverityLevel +m|WARNING |=== .Using Cypher query option `connectComponentsPlanner` @@ -2021,55 +2024,42 @@ m|Neo.ClientNotification.Statement.FeatureDeprecationWarning |Title a|This feature is deprecated and will be removed in future versions. |Description -|The query used a deprecated field from a procedure. (%s) +a|The query used a deprecated field from a procedure. (%s) |Category m|DEPRECATION |GQLSTATUS code m|01N03 |StatusDescription a|warn: procedure field deprecated. `$field` for procedure `$proc` is deprecated. -|SeverityLevel -m|WARNING |Classification m|DEPRECATION +|SeverityLevel +m|WARNING |=== [#_neo_clientnotification_request_deprecatedformat] === DeprecatedFormat .Notification details -[.tabbed-example] -===== -[.include-with-neo4j-code] -====== [cols="<1s,<4"] |=== |Neo4j code m|Neo.ClientNotification.Request.DeprecatedFormat |Title -a|The client requested a deprecated format. -|SeverityLevel -m|WARNING +a|The client made a request for a format which has been deprecated. +|Description +|The requested format has been deprecated. (%s) |Category m|DEPRECATION -|=== - -====== -[.include-with-GQLSTATUS-code] -====== -[cols="<1s,<4"] -|=== |GQLSTATUS code m|01N01 |StatusDescription a|warn: feature deprecated with replacement. `$thing1` is deprecated. It is replaced by `$thing2`. -|SeverityLevel -m|WARNING |Classification m|DEPRECATION +|SeverityLevel +m|WARNING |=== -====== -===== [#_security_notifications] == `SECURITY` category @@ -2087,24 +2077,38 @@ Verify that this is the intended behavior of your query or command. m|Neo.ClientNotification.Security.CommandHasNoEffect |Title a|`` has no effect.* -|SeverityLevel -m|INFORMATION +|Descriptions +a| +- The user already has the role. See Status Codes documentation for more information. +- The user does not have the role. See Status Codes documentation for more information. +- The role already has the privilege. See Status Codes documentation for more information. +- The role does not have the privilege. See Status Codes documentation for more information. |Category m|SECURITY +|GQLSTATUS code +m|00N71 +|StatusDescription +|note: successful completion - role or privilege not assigned. `$cmd` has no effect. The role or privilege is not assigned. +|Classification +m|SECURITY +|SeverityLevel +m|INFORMATION |=== -*_`` could be either the full command given by the user or a subset of the given command._ +*_```` and `cmd` could be either the full command given by the user or a subset of the given command._ .Granting a role to a user who already has that role -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + -[source, cypher] +[source,cypher] ---- GRANT ROLE admin TO john ---- - -Full title of the returned code:: +Title of the returned code:: `GRANT ROLE admin TO john` has no effect. Description of the returned code:: @@ -2112,10 +2116,34 @@ The user already has the role. See Status Codes documentation for more informati Suggestions for improvement:: Verify that this is the intended role and user. -==== + +====== +[.include-with-GQLSTATUS-code] +====== +Command:: ++ +[source,cypher] +---- +GRANT ROLE admin TO john +---- + +Returned GQLSTATUS code:: +00N71 + +Returned Status Description:: +note: successful completion - role or privilege not assigned. `GRANT ROLE admin TO john` has no effect. The role or privilege is not assigned. + +Suggestions for improvement:: +Verify that this is the intended role and user. + +====== +===== .Revoking a role from a user who does not have that role -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + [source, cypher] @@ -2123,7 +2151,7 @@ Command:: REVOKE ROLE admin, reader FROM jane ---- -Full title of the returned code:: +Title of the returned code:: `REVOKE ROLE reader FROM jane` has no effect. Description of the returned code:: @@ -2131,11 +2159,33 @@ The user does not have the role. See Status Codes documentation for more informa Suggestions for improvement:: Verify that this is the intended role and user. -==== +====== +[.include-with-GQLSTATUS-code] +====== +Command:: ++ +[source, cypher] +---- +REVOKE ROLE admin, reader FROM jane +---- + +Returned GQLSTATUS code:: +00N71 + +Returned Status Description:: +note: successful completion - role or privilege not assigned. `REVOKE ROLE reader FROM jane` has no effect. The role or privilege is not assigned. + +Suggestions for improvement:: +Verify that this is the intended role and user. +====== +===== .Granting or denying a privilege to a role that already has that privilege -==== // This command returns 2 notifications, one for NODES and one for RELATIONSHIPS. +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + [source, cypher] @@ -2143,7 +2193,7 @@ Command:: GRANT TRAVERSE ON GRAPH * TO reader ---- -Full title of the returned code:: +Title of the returned code:: `GRANT TRAVERSE ON GRAPH * NODE * TO reader` has no effect. Description of the returned code:: @@ -2151,10 +2201,33 @@ The role already has the privilege. See Status Codes documentation for more info Suggestions for improvement:: Verify that this is the intended privilege and role. -==== + +====== +[.include-with-GQLSTATUS-code] +====== +Command:: ++ +[source, cypher] +---- +GRANT TRAVERSE ON GRAPH * TO reader +---- + +Returned GQLSTATUS code:: +00N71 + +Returned Status Description:: +note: successful completion - role or privilege not assigned. `GRANT TRAVERSE ON GRAPH * TO reader` has no effect. The role or privilege is not assigned. + +Suggestions for improvement:: +Verify that this is the intended privilege and role. +====== +===== .Revoking a privilege from a role that does not have that privilege -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + [source, cypher] @@ -2162,7 +2235,7 @@ Command:: REVOKE WRITE ON GRAPH * FROM reader ---- -Full title of the returned code:: +Title of the returned code:: `REVOKE DENY WRITE ON GRAPH * FROM reader` has no effect. Description of the returned code:: @@ -2170,7 +2243,28 @@ The role does not have the privilege. See Status Codes documentation for more in Suggestions for improvement:: Verify that this is the intended privilege and role. -==== +====== +[.include-with-GQLSTATUS-code] +====== + +Command:: ++ +[source, cypher] +---- +REVOKE WRITE ON GRAPH * FROM reader +---- + +Returned GQLSTATUS code:: +00N71 + +Returned Status Description:: +note: successful completion - role or privilege not assigned. `REVOKE DENY WRITE ON GRAPH * FROM reader` has no effect. The role or privilege is not assigned. + +Suggestions for improvement:: +Verify that this is the intended privilege and role. + +====== +===== [#_neo_clientnotification_security_impossiblerevokecommand] === ImpossibleRevokeCommand @@ -2182,16 +2276,29 @@ Verify that this is the intended privilege and role. m|Neo.ClientNotification.Security.ImpossibleRevokeCommand |Title a|`` has no effect.* -|SeverityLevel -m|WARNING +|Description +|Role does not exist. Make sure nothing is misspelled. +This notification will become an error in a future major version. +See Status Codes documentation for more information. |Category m|SECURITY +|GQLSTATUS code +m|01N70 +|StatusDescription +a|warn: impossible revoke command. `cmd` has no effect. %msg Make sure nothing is misspelled. This notification will become an error in a future major version. +|Classification +m|SECURITY +|SeverityLevel +m|WARNING |=== -*_`` could be either the full command given by the user or a subset of the given command._ +*_```` and `cmd` could be either the full command given by the user or a subset of the given command._ .Revoking a non-existing role from a user -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + [source, cypher] @@ -2199,7 +2306,7 @@ Command:: REVOKE ROLE manager, reader FROM jane ---- -Full title of the returned code:: +Title of the returned code:: `REVOKE ROLE manager FROM jane` has no effect. Description of the returned code:: @@ -2209,10 +2316,35 @@ See Status Codes documentation for more information. Suggestions for improvement:: Verify that this is the intended role and that it is spelled correctly. -==== +====== +[.include-with-GQLSTATUS-code] +====== +Command:: ++ +[source, cypher] +---- +REVOKE ROLE manager, reader FROM jane +---- + +Returned GQLSTATUS code:: +01N70 + +Returned Status Description:: +warn: impossible revoke command. +`REVOKE ROLE manager FROM jane` has no effect. +Role does not exist. Make sure nothing is misspelled. +This notification will become an error in a future major version. + +Suggestions for improvement:: +Verify that this is the intended role and that it is spelled correctly. +====== +===== .Revoking a role from a non-existing user -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + [source, cypher] @@ -2220,7 +2352,7 @@ Command:: REVOKE ROLE reader FROM alice ---- -Full title of the returned code:: +Title of the returned code:: `REVOKE ROLE reader FROM alice` has no effect. Description of the returned code:: @@ -2230,10 +2362,37 @@ See Status Codes documentation for more information. Suggestions for improvement:: Verify that this is the intended user and that it is spelled correctly. -==== +====== +[.include-with-GQLSTATUS-code] +====== + +Command:: ++ +[source, cypher] +---- +REVOKE ROLE reader FROM alice +---- + +Returned GQLSTATUS code:: +01N70 + +Returned Status Description:: +warn: impossible revoke command. +`REVOKE ROLE reader FROM alice` has no effect. +User does not exist. Make sure nothing is misspelled. +This notification will become an error in a future major version. + +Suggestions for improvement:: +Verify that this is the intended user and that it is spelled correctly. +====== +===== + .Revoking a privilege from a non-existing role -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + [source, cypher] @@ -2241,7 +2400,7 @@ Command:: REVOKE GRANT WRITE ON GRAPH * FROM manager ---- -Full title of the returned code:: +Title of the returned code:: `REVOKE GRANT WRITE ON GRAPH * FROM manager` has no effect. Description of the returned code:: @@ -2251,10 +2410,36 @@ See Status Codes documentation for more information. Suggestions for improvement:: Verify that this is the intended role and that it is spelled correctly. -==== +====== +[.include-with-GQLSTATUS-code] +====== + +Command:: ++ +[source, cypher] +---- +REVOKE GRANT WRITE ON GRAPH * FROM manager +---- + +Returned GQLSTATUS code:: +01N70 + +Returned Status Description:: +warn: impossible revoke command. +`REVOKE GRANT WRITE ON GRAPH * FROM manager` has no effect. +Role does not exist. Make sure nothing is misspelled. +This notification will become an error in a future major version. + +Suggestions for improvement:: +Verify that this is the intended role and that it is spelled correctly. +====== +===== .Revoking a privilege on a non-existing graph from a role -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + [source, cypher] @@ -2262,24 +2447,45 @@ Command:: REVOKE GRANT WRITE ON GRAPH neo3j FROM editor ---- -Full title of the returned code:: +Title of the returned code:: `REVOKE GRANT WRITE ON GRAPH neo3j FROM editor` has no effect. Description of the returned code:: -// We use 'Database' here for multiple reasons -// - The user fixes the issue by doing 'create database', not 'create graph'. -// - This matches the existing behaviour when granting the privilege. -// - It is easier to implement this way. -Database 'neo3j' does not exist. Make sure nothing is misspelled. +Database `neo3j` does not exist. Make sure nothing is misspelled. This notification will become an error in a future major version. See Status Codes documentation for more information. Suggestions for improvement:: Verify that this is the intended graph and that it is spelled correctly. -==== +====== +[.include-with-GQLSTATUS-code] +====== +Command:: ++ +[source, cypher] +---- +REVOKE GRANT WRITE ON GRAPH neo3j FROM editor +---- + +Returned GQLSTATUS code:: +01N70 + +Returned Status Description:: +warn: impossible revoke command. +`REVOKE GRANT WRITE ON GRAPH neo3j FROM editor` has no effect. +Database `neo3j` does not exist. Make sure nothing is misspelled. +This notification will become an error in a future major version. + +Suggestions for improvement:: +Verify that this is the intended graph and that it is spelled correctly. +====== +===== .Revoking a privilege on a non-existing database from a role -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + [source, cypher] @@ -2287,20 +2493,47 @@ Command:: REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor ---- -Full title of the returned code:: +Title of the returned code:: `REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor` has no effect. Description of the returned code:: -Database 'neo3j' does not exist. Make sure nothing is misspelled. +Database `neo3j` does not exist. Make sure nothing is misspelled. This notification will become an error in a future major version. See Status Codes documentation for more information. Suggestions for improvement:: Verify that this is the intended database and that it is spelled correctly. -==== +====== +[.include-with-GQLSTATUS-code] +====== +Command:: ++ +[source, cypher] +---- +REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor +---- + +Returned GQLSTATUS code:: +01N70 + +Returned Status Description:: +warn: impossible revoke command. +`REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor` has no effect. +Database `neo3j` does not exist. Make sure nothing is misspelled. +This notification will become an error in a future major version. + +Suggestions for improvement:: +Verify that this is the intended database and that it is spelled correctly. + +====== +===== + .Revoking a privilege from a role with wildcard graph parameter -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Parameter:: + [source, javascript] @@ -2316,7 +2549,7 @@ Command:: REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC ---- -Full title of the returned code:: +Title of the returned code:: `REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC` has no effect. Description of the returned code:: @@ -2327,10 +2560,45 @@ See Status Codes documentation for more information. Suggestions for improvement:: Use `GRAPH *` without the parameter to revoke the privilege on all graphs. -==== +====== +[.include-with-GQLSTATUS-code] +====== +Parameter:: ++ +[source, javascript] +---- +{ + "graph": "*" +} +---- +Command:: ++ +[source, cypher] +---- +REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC +---- -.Revoking a privilege from a role with wildcard database parameter -==== +Returned GQLSTATUS code:: +01N70 + +Returned Status Description:: +warn: impossible revoke command. +`REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC` has no effect. +Database `*` does not exist. Make sure nothing is misspelled. +This notification will become an error in a future major version. + +Suggestions for improvement:: +Use `GRAPH *` without the parameter to revoke the privilege on all graphs. + + +====== +===== + +.Revoking a privilege from a role with a wildcard database parameter +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Parameter:: + [source, javascript] @@ -2346,7 +2614,7 @@ Command:: REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC ---- -Full title of the returned code:: +Title of the returned code:: `REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC` has no effect. Description of the returned code:: @@ -2357,7 +2625,39 @@ See Status Codes documentation for more information. Suggestions for improvement:: Use `DATABASE *` without the parameter to revoke the privilege on all databases. -==== +====== +[.include-with-GQLSTATUS-code] +====== + +Parameter:: ++ +[source, javascript] +---- +{ + "database": "*" +} +---- +Command:: ++ +[source, cypher] +---- +REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC +---- + +Returned GQLSTATUS code:: +01N70 + +Returned Status Description:: +warn: impossible revoke command. +`REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC` has no effect. +Database `*` does not exist. Make sure nothing is misspelled. +This notification will become an error in a future major version. + +Suggestions for improvement:: +Use `DATABASE *` without the parameter to revoke the privilege on all databases. + +====== +===== [#_topology_notifications] == `TOPOLOGY` category @@ -2367,12 +2667,8 @@ Topology notifications provide additional information related to managing databa [#_neo_clientnotification_cluster_cordonedserversexistedduringallocation] === CordonedServersExistedDuringAllocation -.When is this notification returned? -[TIP] -==== -When a Cypher administration command triggers an allocation decision and some of the servers are cordoned. +This notification is returned when a Cypher administration command triggers an allocation decision and some of the servers are cordoned. For example, `CREATE DATABASE`, `ALTER DATABASE`, `DEALLOCATE DATABASES FROM SERVER[S]`, and `ALTER DATABASE` return this notification. However, `REALLOCATE DATABASES` requires that there are no cordoned servers and, therefore, does not return it. -==== .Notification details [cols="<1s,<4"] @@ -2381,14 +2677,25 @@ For example, `CREATE DATABASE`, `ALTER DATABASE`, `DEALLOCATE DATABASES FROM SER m|Neo.ClientNotification.Cluster.CordonedServersExistedDuringAllocation |Title a| Cordoned servers existed when making an allocation decision. -|SeverityLevel -m|INFORMATION +|Description +a| Server(s) `%s` are cordoned. This can impact allocation decisions. |Category m|TOPOLOGY +|GQLSTATUS code +m|00N83 +|StatusDescription +a|note: successful completion - cordoned servers existed during allocation. Cordoned servers existed when making an allocation decision. Server(s) `$server_list` are cordoned. This can impact allocation decisions. +|Classification +m|TOPOLOGY +|SeverityLevel +m|INFORMATION |=== .Cordoned servers existed during an allocation decision -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== The example assumes that you have a cluster with three servers, of which server `123e4567-e89b-12d3-a456-426614174000` is cordoned using the `dbms.cluster.cordonServer` procedure. Then the below command will return this notification. Command:: @@ -2400,7 +2707,26 @@ CREATE DATABASE foo TOPOLOGY 2 PRIMARIES Description of the returned code:: Server(s) `123e4567-e89b-12d3-a456-426614174000` are cordoned. This can impact allocation decisions. -==== +====== +[.include-with-GQLSTATUS-code] +====== +The example assumes that you have a cluster with three servers, of which server `123e4567-e89b-12d3-a456-426614174000` is cordoned using the `dbms.cluster.cordonServer` procedure. Then the below command will return this notification. + +Command:: ++ +[source, cypher] +---- +CREATE DATABASE foo TOPOLOGY 2 PRIMARIES +---- + +Returned GQLSTATUS code:: +00N83 + +Returned Status Description:: +note: successful completion - cordoned servers existed during allocation. Cordoned servers existed when making an allocation decision. Server(s) `123e4567-e89b-12d3-a456-426614174000` are cordoned. This can impact allocation decisions. + +====== +===== [#_neo_clientnotification_cluster_nodatabasesreallocated] === NoDatabasesReallocated @@ -2412,14 +2738,25 @@ Server(s) `123e4567-e89b-12d3-a456-426614174000` are cordoned. This can impact a m|Neo.ClientNotification.Cluster.NoDatabasesReallocated |Title a| `` has no effect. -|SeverityLevel -m|INFORMATION +|Description +a| No databases were reallocated. No better allocation is currently possible. |Category m|TOPOLOGY +|GQLSTATUS code +m|00N82 +|StatusDescription +a|note: successful completion - no databases reallocated. `REALLOCATE DATABASES` has no effect. No databases were reallocated. No better allocation is currently possible. +|Classification +m|TOPOLOGY +|SeverityLevel +m|INFORMATION |=== .Reallocating databases resulted in no allocation changes -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + [source, cypher] @@ -2439,7 +2776,34 @@ For example, when there are three servers, each hosting databases `foo` and `bar **Scenario 2:** The cluster appears unbalanced, but server constraints prevent you from moving to a better, more balanced, allocation. For example, assuming server 1 hosts databases `foo` and `bar`, server 2 hosts only `foo`, and server 3 hosts no databases. Then, a better allocation would move `foo` from server 1 to server 3, but if server 3 has the constraint `deniedDatabases:['foo']}`, then the cluster is already balanced subject to this constraint. -==== +====== +[.include-with-GQLSTATUS-code] +====== +Command:: ++ +[source, cypher] +---- +REALLOCATE DATABASES +---- + +Returned GQLSTATUS code:: +00N82 + +Returned Status Description:: +note: successful completion - no databases reallocated. `REALLOCATE DATABASES` has no effect. No databases were reallocated. No better allocation is currently possible. + +Example scenarios:: +**Scenario 1:** The cluster is already balanced. +For example, when there are three servers, each hosting databases `foo` and `bar`, meaning all databases are allocated to all servers. ++ + +**Scenario 2:** The cluster appears unbalanced, but server constraints prevent you from moving to a better, more balanced, allocation. +For example, assuming server 1 hosts databases `foo` and `bar`, server 2 hosts only `foo`, and server 3 hosts no databases. +Then, a better allocation would move `foo` from server 1 to server 3, but if server 3 has the constraint `deniedDatabases:['foo']}`, then the cluster is already balanced subject to this constraint. + +====== +===== + [#_neo_clientnotification_cluster_requestedtopologymatchedcurrenttopology] === RequestedTopologyMatchedCurrentTopology @@ -2458,7 +2822,10 @@ m|TOPOLOGY |=== .Requested topology matched current topology -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== The example assumes that you have a cluster with three servers and a database `foo` with a topology of two primaries and one secondary. Command:: @@ -2470,8 +2837,13 @@ ALTER DATABASE foo SET TOPOLOGY 2 PRIMARIES 1 SECONDARY Description of the returned code:: The requested topology matched the current topology. No allocations were changed. -==== +====== +[.include-with-GQLSTATUS-code] +====== + +====== +===== [#_neo_clientnotification_cluster_serveralreadyenabled] === ServerAlreadyEnabled @@ -2490,7 +2862,10 @@ m|TOPOLOGY |=== .Enabling an already enabled server -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + [source, cypher] @@ -2502,7 +2877,13 @@ Description of the returned code:: Server `123e4567-e89b-12d3-a456-426614174000` is already enabled. Verify that this is the intended server. -==== +====== +[.include-with-GQLSTATUS-code] +====== + + +====== +===== [#_schema_notifications] == `SCHEMA` category @@ -2528,7 +2909,10 @@ m|SCHEMA |=== .Creating an index when an equivalent index already exists -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Given a range index on `(:Label \{property})` named `existingRangeIndex`. Command:: @@ -2538,16 +2922,25 @@ Command:: CREATE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (n:Label) ON (n.property) ---- -Full title of the returned code:: +Title of the returned code:: `CREATE RANGE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (e:Label) ON (e.property)` has no effect. Full description of the returned code:: `RANGE INDEX existingRangeIndex FOR (e:Label) ON (e.property)` already exists. -==== +====== +[.include-with-GQLSTATUS-code] +====== + + +====== +===== .Creating an index when another unrelated index using that name already exists -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Given a range index on `(:Label \{property})` named `myIndex`. Command:: @@ -2557,7 +2950,7 @@ Command:: CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[r:REL_TYPE]-() ON (r.property) ---- -Full title of the returned code:: +Title of the returned code:: `CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[e:REL_TYPE]-() ON (e.property)` has no effect. Full description of the returned code:: @@ -2571,10 +2964,19 @@ Choose a different name for the new index and try again. CREATE TEXT INDEX myIndex2 IF NOT EXISTS FOR ()-[r:REL_TYPE]-() ON (r.property) ---- -==== +====== +[.include-with-GQLSTATUS-code] +====== + + +====== +===== .Creating a constraint when an identical constraint already exists -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Given a node key constraint on `(:Label \{property})` named `nodeKeyLabelPropertyConstraint`. Command:: @@ -2584,16 +2986,25 @@ Command:: CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (n:Label) REQUIRE (n.property) IS NODE KEY ---- -Full title of the returned code:: +Title of the returned code:: `CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (e:Label) REQUIRE (e.property) IS NODE KEY` has no effect. Full description of the returned code:: `CONSTRAINT nodeKeyLabelPropertyConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY` already exists. -==== +====== +[.include-with-GQLSTATUS-code] +====== + +====== +===== + .Creating a constraint when another unrelated constraint using that name already exists -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Given a node key constraint on `(:Label \{property})` named `myConstraint`. Command:: @@ -2603,7 +3014,7 @@ Command:: CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (n:Label2) REQUIRE (n.property2) IS NOT NULL ---- -Full title of the returned code:: +Title of the returned code:: `CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (e:Label2) REQUIRE (e.property2) IS NOT NULL` has no effect. Full description of the returned code:: @@ -2617,7 +3028,13 @@ Choose a different name for the new constraint and try again. CREATE CONSTRAINT myConstraint2 IF NOT EXISTS FOR (n:Label2) REQUIRE (n.property2) IS NOT NULL ---- -==== +====== +[.include-with-GQLSTATUS-code] +====== + + +====== +===== [#_neo_clientnotification_schema_indexorconstraintdoesnotexist] === IndexOrConstraintDoesNotExist @@ -2638,7 +3055,10 @@ m|SCHEMA |=== .Attempting to drop a non-existing index -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + @@ -2647,7 +3067,7 @@ Command:: DROP INDEX nonExistingIndex IF EXISTS ---- -Full title of the returned code:: +Title of the returned code:: `DROP INDEX nonExistingIndex IF EXISTS` has no effect. Full description of the returned code:: @@ -2656,10 +3076,19 @@ Full description of the returned code:: Suggestions for improvement:: Verify that this is the intended index and that it is spelled correctly. -==== +====== +[.include-with-GQLSTATUS-code] +====== + + +====== +===== .Attempting to drop a non-existing constraint -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + @@ -2668,7 +3097,7 @@ Command:: DROP CONSTRAINT nonExistingConstraint IF EXISTS ---- -Full title of the returned code:: +Title of the returned code:: `DROP CONSTRAINT nonExistingConstraint IF EXISTS` has no effect. Full description of the returned code:: @@ -2677,8 +3106,13 @@ Full description of the returned code:: Suggestions for improvement:: Verify that this is the intended constraint and that it is spelled correctly. -==== +====== +[.include-with-GQLSTATUS-code] +====== + +====== +===== [#_generic] == `GENERIC` category @@ -2702,7 +3136,10 @@ m|GENERIC |=== .Shadowing of a variable from the outer scope -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Query:: + [source,cypher] @@ -2733,8 +3170,13 @@ CALL { } RETURN * ---- -==== +====== +[.include-with-GQLSTATUS-code] +====== + +====== +===== [#_neo_clientnotification_statement_parameternotprovided] === ParameterNotProvided @@ -2753,7 +3195,10 @@ m|GENERIC |=== .Using an `EXPLAIN` query with parameters without providing them -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Query:: + [source,cypher] @@ -2768,7 +3213,13 @@ The produced query plan will not be cached and is not executable without `EXPLAI Suggestions for improvement:: Provide the parameter to be able to cache the plan. -==== +====== +[.include-with-GQLSTATUS-code] +====== + +====== +===== + [#_neo_clientnotification_procedure_procedurewarning] === ProcedureWarning @@ -2786,16 +3237,11 @@ m|WARNING m|GENERIC |=== +[role=label--new-5.4] [#_neo_clientnotification_statement_unsatisfiablerelationshiptypeexpression] === UnsatisfiableRelationshipTypeExpression -label:introduced-in-Neo4j-5.4[Introduced in Neo4j 5.4] - -.When is this notification returned? -[TIP] -==== When matching on a relationship type expression that can never be satisfied, for example asking for zero, more than one or contradictory types. -==== .Notification category details [cols="<1s,<4"] @@ -2811,7 +3257,10 @@ m|GENERIC |=== .Matching on a relationship type expression that can never be satisfied -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Query:: + [source,cypher] @@ -2820,13 +3269,18 @@ MATCH ()-[r:R1&R2]->() RETURN r ---- Description of the returned code:: Relationship type expression cannot possibly be satisfied. (`R1&R2` can never be fulfilled by any relationship. Relationships must have exactly one type.) -==== +====== +[.include-with-GQLSTATUS-code] +====== + + +====== +===== +[role=label--new-5.5] [#_neo_clientnotification_statement_repeatedrelationshipreference] === RepeatedRelationshipReference -label:introduced-in-Neo4j-5.5[Introduced in Neo4j 5.5] - .Notification category details [cols="<1s,<4"] |=== @@ -2841,7 +3295,10 @@ m|GENERIC |=== .Binding a relationship variable more than once -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Query:: + [source,cypher] @@ -2858,10 +3315,18 @@ Use one pattern to match all relationships that start with a node with the label ---- MATCH (:A)-[r]->(:B) RETURN r ---- -==== +====== +[.include-with-GQLSTATUS-code] +====== + +====== +===== .Binding a variable-length relationship variable more than once (when run on version 5.6 or newer) -==== +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Query:: + [source,cypher] @@ -2870,4 +3335,10 @@ MATCH ()-[r*]->()<-[r*]-() RETURN count(*) AS count ---- Description of the returned code:: A variable-length relationship variable is bound more than once, which leads to no results because relationships must not occur more than once in each result. (Relationship r was repeated) -==== +====== +[.include-with-GQLSTATUS-code] +====== + + +====== +===== \ No newline at end of file From 2f4f2046cd562f47bb33e0cb95f7c6c0324d5b59 Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Mon, 15 Jul 2024 17:10:26 +0100 Subject: [PATCH 06/13] add schema notifications --- .../notifications/all-notifications.adoc | 119 +++++++++++++++++- 1 file changed, 115 insertions(+), 4 deletions(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index bbcd0d94..d3a40c75 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -2902,12 +2902,20 @@ m|Neo.ClientNotification.Schema.IndexOrConstraintAlreadyExists a|`` has no effect. |Description a|`` already exists. -|SeverityLevel -m|INFORMATION +|Description +a| |Category m|SCHEMA +|GQLSTATUS code +m|00NA0 +|StatusDescription +a|note: successful completion - index or constraint already exists. `$cmd` has no effect. `$index_constr_pat` already exists. +|SeverityLevel +m|INFORMATION |=== +*_```` and `cmd` could be either the full command given by the user or a subset of the given command._ + .Creating an index when an equivalent index already exists [.tabbed-example] ===== @@ -2931,7 +2939,20 @@ Full description of the returned code:: ====== [.include-with-GQLSTATUS-code] ====== +Given a range index on `(:Label \{property})` named `existingRangeIndex`. + +Command:: ++ +[source, cypher] +---- +CREATE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (n:Label) ON (n.property) +---- +Returned GQLSTATUS code:: +00NA0 + +Returned Status Description:: +note: successful completion - index or constraint already exists. `CREATE RANGE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (e:Label) ON (e.property)` has no effect. `RANGE INDEX existingRangeIndex FOR (e:Label) ON (e.property)` already exists. ====== ===== @@ -2967,7 +2988,28 @@ CREATE TEXT INDEX myIndex2 IF NOT EXISTS FOR ()-[r:REL_TYPE]-() ON (r.property) ====== [.include-with-GQLSTATUS-code] ====== +Given a range index on `(:Label \{property})` named `myIndex`. + +Command:: ++ +[source, cypher] +---- +CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[r:REL_TYPE]-() ON (r.property) +---- + +Returned GQLSTATUS code:: +00NA0 + +Returned Status Description:: +note: successful completion - index or constraint already exists. `CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[e:REL_TYPE]-() ON (e.property)` has no effect. `RANGE INDEX myIndex FOR (e:Label) ON (e.property)` already exists. +Suggestions for improvement:: +Choose a different name for the new index and try again. ++ +[source, cypher] +---- +CREATE TEXT INDEX myIndex2 IF NOT EXISTS FOR ()-[r:REL_TYPE]-() ON (r.property) +---- ====== ===== @@ -2995,6 +3037,20 @@ Full description of the returned code:: ====== [.include-with-GQLSTATUS-code] ====== +Given a node key constraint on `(:Label \{property})` named `nodeKeyLabelPropertyConstraint`. + +Command:: ++ +[source, cypher] +---- +CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (n:Label) REQUIRE (n.property) IS NODE KEY +---- + +Returned GQLSTATUS code:: +00NA0 + +Returned Status Description:: +note: successful completion - index or constraint already exists. `CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (e:Label) REQUIRE (e.property) IS NODE KEY` has no effect. `CONSTRAINT nodeKeyLabelPropertyConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY` already exists. ====== ===== @@ -3031,7 +3087,28 @@ CREATE CONSTRAINT myConstraint2 IF NOT EXISTS FOR (n:Label2) REQUIRE (n.property ====== [.include-with-GQLSTATUS-code] ====== +Given a node key constraint on `(:Label \{property})` named `myConstraint`. +Command:: ++ +[source, cypher] +---- +CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (n:Label2) REQUIRE (n.property2) IS NOT NULL +---- + +Returned GQLSTATUS code:: +00NA0 + +Returned Status Description:: +note: successful completion - index or constraint already exists. `CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (e:Label2) REQUIRE (e.property2) IS NOT NULL` has no effect. `CONSTRAINT myConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY` already exists. + +Suggestions for improvement:: +Choose a different name for the new constraint and try again. ++ +[source, cypher] +---- +CREATE CONSTRAINT myConstraint2 IF NOT EXISTS FOR (n:Label2) REQUIRE (n.property2) IS NOT NULL +---- ====== ===== @@ -3048,10 +3125,16 @@ m|Neo.ClientNotification.Schema.IndexOrConstraintDoesNotExist a|`` has no effect. |Description a|`` does not exist. -|SeverityLevel -m|INFORMATION +|Description +a| |Category m|SCHEMA +|GQLSTATUS code +m|00NA1 +|StatusDescription +a|note: successful completion - index or constraint does not exist. `$cmd` has no effect. `$index_constr_name` does not exist. +|SeverityLevel +m|INFORMATION |=== .Attempting to drop a non-existing index @@ -3079,7 +3162,21 @@ Verify that this is the intended index and that it is spelled correctly. ====== [.include-with-GQLSTATUS-code] ====== +Command:: ++ +[source, cypher] +---- +DROP INDEX nonExistingIndex IF EXISTS +---- +Returned GQLSTATUS code:: +00NA1 + +Returned Status Description:: +note: successful completion - index or constraint does not exist. `DROP INDEX nonExistingIndex IF EXISTS` has no effect. `nonExistingIndex` does not exist. + +Suggestions for improvement:: +Verify that this is the intended index and that it is spelled correctly. ====== ===== @@ -3109,7 +3206,21 @@ Verify that this is the intended constraint and that it is spelled correctly. ====== [.include-with-GQLSTATUS-code] ====== +Command:: ++ +[source, cypher] +---- +DROP CONSTRAINT nonExistingConstraint IF EXISTS +---- +Returned GQLSTATUS code:: +00NA1 + +Returned Status Description:: +note: successful completion - index or constraint does not exist. `DROP CONSTRAINT nonExistingConstraint IF EXISTS` has no effect. `nonExistingConstraint` does not exist. + +Suggestions for improvement:: +Verify that this is the intended constraint and that it is spelled correctly. ====== ===== From 1beabc580eb0922192dbcaf2578169203ae5c5f1 Mon Sep 17 00:00:00 2001 From: Natalia Ivakina Date: Tue, 16 Jul 2024 10:48:20 +0200 Subject: [PATCH 07/13] Add GQL statuses to GENERIC --- .../notifications/all-notifications.adoc | 183 ++++++++++++++++-- 1 file changed, 168 insertions(+), 15 deletions(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index bbcd0d94..0f67ea17 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -3115,7 +3115,7 @@ Verify that this is the intended constraint and that it is spelled correctly. ===== [#_generic] -== `GENERIC` category +== `GENERIC` notifications `GENERIC` notification codes do not belong to any wider category and do not have any connection to each other. @@ -3129,10 +3129,21 @@ Verify that this is the intended constraint and that it is spelled correctly. m|Neo.ClientNotification.Statement.SubqueryVariableShadowing |Title a|Variable in subquery is shadowing a variable with the same name from the outer scope. -|SeverityLevel -m|INFORMATION +|Description +|Variable in subquery is shadowing a variable with the same name from the outer scope. +If you want to use that variable instead, it must be imported into the subquery using importing WITH clause. (the shadowing variable is: v) |Category m|GENERIC +|GQLSTATUS code +m|03N60 +|StatusDescription +a|info: subquery variable shadowing. +The variable `v` in the subquery uses the same name as a variable from the outer query. +Use `WITH v` in the subquery to import the one from the outer scope unless you want it to be a new variable. +|Classification +m|GENERIC +|SeverityLevel +m|INFORMATION |=== .Shadowing of a variable from the outer scope @@ -3158,7 +3169,7 @@ If you want to use that variable instead, it must be imported into the subquery Suggestions for improvement:: If the intended behavior of the query is for the variable in the subquery to be a new variable, then nothing needs to be done. -If the intended behavior is to use the variable from the outer query, it needs to be imported to the subquery using the with clause. +If the intended behavior is to use the variable from the outer query, it needs to be imported to the subquery using the `WITH` clause. + [source,cypher] ---- @@ -3173,8 +3184,40 @@ RETURN * ====== [.include-with-GQLSTATUS-code] ====== +Query:: ++ +[source,cypher] +---- +MATCH (n) +CALL { + MATCH (n)--(m) + RETURN m +} +RETURN * +---- +Returned GQLSTATUS code:: +03N60 + +Returned Status Description:: +info: subquery variable shadowing. +The variable `n` in the subquery uses the same name as a variable from the outer query. +Use `WITH n` in the subquery to import the one from the outer scope unless you want it to be a new variable. +Suggestions for improvement:: +If the intended behavior of the query is for the variable in the subquery to be a new variable, then nothing needs to be done. +If the intended behavior is to use the variable from the outer query, it needs to be imported to the subquery using the `WITH` clause. ++ +[source,cypher] +---- +MATCH (n) +CALL { + WITH n + MATCH (n)--(m) + RETURN m +} +RETURN * +---- ====== ===== @@ -3188,12 +3231,25 @@ RETURN * m|Neo.ClientNotification.Statement.ParameterNotProvided |Title a|The statement refers to a parameter that was not provided in the request. -|SeverityLevel -m|WARNING +|Description +|Did not supply query with enough parameters. +The produced query plan will not be cached and is not executable without EXPLAIN. +(Missing parameters: param1, param2) |Category m|GENERIC +|GQLSTATUS code +m|01N60 +|StatusDescription +a|warn: parameter missing. +The query plan cannot be cached and is not executable without `EXPLAIN` due to the undefined parameter(s) `$param1, $param2`. +Provide the parameter(s). +|Classification +m|GENERIC +|SeverityLevel +m|WARNING |=== + .Using an `EXPLAIN` query with parameters without providing them [.tabbed-example] ===== @@ -3203,7 +3259,8 @@ Query:: + [source,cypher] ---- -EXPLAIN WITH $param as param RETURN param +EXPLAIN WITH $param as param +RETURN param ---- Description of the returned code:: @@ -3216,7 +3273,24 @@ Provide the parameter to be able to cache the plan. ====== [.include-with-GQLSTATUS-code] ====== +Query:: ++ +[source,cypher] +---- +EXPLAIN WITH $param as param +RETURN param +---- + +Returned GQLSTATUS code:: +01N60 + +Returned Status Description:: +warn: parameter missing. +The query plan cannot be cached and is not executable without `EXPLAIN` due to the undefined parameter(s) `$param`. +Provide the parameter(s). +Suggestions for improvement:: +Provide the parameter to be able to cache the plan. ====== ===== @@ -3231,12 +3305,22 @@ Provide the parameter to be able to cache the plan. m|Neo.ClientNotification.Procedure.ProcedureWarning |Title a|The query used a procedure that generated a warning. -|SeverityLevel -m|WARNING +|Description +|The query used a procedure that generated a warning. (warning from procedure my.proc) |Category m|GENERIC +|GQLSTATUS code +m|01N62 +|StatusDescription +a|warn: procedure execution warning. +The procedure `my.proc` generates the warning `warning from procedure`. +|Classification +m|GENERIC +|SeverityLevel +m|WARNING |=== + [role=label--new-5.4] [#_neo_clientnotification_statement_unsatisfiablerelationshiptypeexpression] === UnsatisfiableRelationshipTypeExpression @@ -3250,12 +3334,23 @@ When matching on a relationship type expression that can never be satisfied, for m|Neo.ClientNotification.Statement.UnsatisfiableRelationshipTypeExpression |Title a|The query contains a relationship type expression that cannot be satisfied. -|SeverityLevel -m|WARNING +|Description +|Relationship type expression cannot possibly be satisfied. +(`!%` can never be satisfied by any relationship. Relationships must have exactly one relationship type.) |Category m|GENERIC +|GQLSTATUS code +m|01N61 +|StatusDescription +a|warn: unsatisfiable relationship type expression. +The expression `!%` cannot be satisfied because relationships must have exactly one type. +|Classification +m|GENERIC +|SeverityLevel +m|WARNING |=== + .Matching on a relationship type expression that can never be satisfied [.tabbed-example] ===== @@ -3269,11 +3364,23 @@ MATCH ()-[r:R1&R2]->() RETURN r ---- Description of the returned code:: Relationship type expression cannot possibly be satisfied. (`R1&R2` can never be fulfilled by any relationship. Relationships must have exactly one type.) + ====== [.include-with-GQLSTATUS-code] ====== +Query:: ++ +[source,cypher] +---- +MATCH ()-[r:R1&R2]->() RETURN r +---- +Returned GQLSTATUS code:: +01N61 +Returned Status Description:: +warn: unsatisfiable relationship type expression. +The expression `R1&R2` cannot be satisfied because relationships must have exactly one type. ====== ===== @@ -3288,12 +3395,25 @@ Relationship type expression cannot possibly be satisfied. (`R1&R2` can never be m|Neo.ClientNotification.Statement.RepeatedRelationshipReference |Title a|The query returns no results because a relationship variable is bound more than once. -|SeverityLevel -m|WARNING +|Description +a| +- A relationship is referenced more than once in the query, which leads to no results because relationships must not occur more than once in each result. (Relationship `r` was repeated) +- A variable-length relationship variable is bound more than once, which leads to no results because relationships must not occur more than once in each result. (Relationship `r` was repeated) |Category m|GENERIC +|GQLSTATUS code +m|01N63 +|StatusDescription +a| +- warn: repeated relationship reference. `r` is repeated in `()-[r]->()<-[r]-()`, which leads to no results. +- warn: repeated relationship reference. `r` is repeated in `()-[r*]->()-[r*]->()`, which leads to no results. +|Classification +m|GENERIC +|SeverityLevel +m|WARNING |=== + .Binding a relationship variable more than once [.tabbed-example] ===== @@ -3318,7 +3438,27 @@ MATCH (:A)-[r]->(:B) RETURN r ====== [.include-with-GQLSTATUS-code] ====== +Query:: ++ +[source,cypher] +---- +MATCH (:A)-[r]->(), ()-[r]->(:B) RETURN r +---- + +Returned GQLSTATUS code:: +01N63 + +Returned Status Description:: +warn: repeated relationship reference. +`r` is repeated in `(:A)-[r]->()-[r]->(:B)`, which leads to no results. +Suggestions for improvement:: +Use one pattern to match all relationships that start with a node with the label `A` and end with a node with the label `B`: ++ +[source, cypher, role="noplay"] +---- +MATCH (:A)-[r]->(:B) RETURN r +---- ====== ===== @@ -3334,11 +3474,24 @@ Query:: MATCH ()-[r*]->()<-[r*]-() RETURN count(*) AS count ---- Description of the returned code:: -A variable-length relationship variable is bound more than once, which leads to no results because relationships must not occur more than once in each result. (Relationship r was repeated) +A variable-length relationship variable is bound more than once, which leads to no results because relationships must not occur more than once in each result. (Relationship `r` was repeated) + ====== [.include-with-GQLSTATUS-code] ====== +Query:: ++ +[source,cypher] +---- +MATCH ()-[r*]->()<-[r*]-() RETURN count(*) AS count +---- +Returned GQLSTATUS code:: +01N63 +Returned Status Description:: +warn: repeated relationship reference. +`r` is repeated in `()-[r*]->()<-[r*]-()`, which leads to no results. ====== -===== \ No newline at end of file +===== + From 5b290bb28f83bd55784f886e807aaa96a8aa1dad Mon Sep 17 00:00:00 2001 From: NataliaIvakina <82437520+NataliaIvakina@users.noreply.github.com> Date: Tue, 16 Jul 2024 14:00:08 +0200 Subject: [PATCH 08/13] Apply suggestions from code review Co-authored-by: Reneta Popova --- .../pages/notifications/all-notifications.adoc | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index 0f67ea17..535f9b2c 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -3138,8 +3138,8 @@ m|GENERIC m|03N60 |StatusDescription a|info: subquery variable shadowing. -The variable `v` in the subquery uses the same name as a variable from the outer query. -Use `WITH v` in the subquery to import the one from the outer scope unless you want it to be a new variable. +The variable `$var` in the subquery uses the same name as a variable from the outer query. + Use `WITH $var` in the subquery to import the one from the outer scope unless you want it to be a new variable. |Classification m|GENERIC |SeverityLevel @@ -3234,14 +3234,13 @@ a|The statement refers to a parameter that was not provided in the request. |Description |Did not supply query with enough parameters. The produced query plan will not be cached and is not executable without EXPLAIN. -(Missing parameters: param1, param2) |Category m|GENERIC |GQLSTATUS code m|01N60 |StatusDescription a|warn: parameter missing. -The query plan cannot be cached and is not executable without `EXPLAIN` due to the undefined parameter(s) `$param1, $param2`. +The query plan cannot be cached and is not executable without `EXPLAIN` due to the undefined parameter(s) `$param_list`. Provide the parameter(s). |Classification m|GENERIC @@ -3313,7 +3312,7 @@ m|GENERIC m|01N62 |StatusDescription a|warn: procedure execution warning. -The procedure `my.proc` generates the warning `warning from procedure`. +The procedure `$proc` generates the warning `$msg`. |Classification m|GENERIC |SeverityLevel @@ -3336,14 +3335,13 @@ m|Neo.ClientNotification.Statement.UnsatisfiableRelationshipTypeExpression a|The query contains a relationship type expression that cannot be satisfied. |Description |Relationship type expression cannot possibly be satisfied. -(`!%` can never be satisfied by any relationship. Relationships must have exactly one relationship type.) |Category m|GENERIC |GQLSTATUS code m|01N61 |StatusDescription a|warn: unsatisfiable relationship type expression. -The expression `!%` cannot be satisfied because relationships must have exactly one type. +The expression `$label_expr` cannot be satisfied because relationships must have exactly one type. |Classification m|GENERIC |SeverityLevel @@ -3364,7 +3362,6 @@ MATCH ()-[r:R1&R2]->() RETURN r ---- Description of the returned code:: Relationship type expression cannot possibly be satisfied. (`R1&R2` can never be fulfilled by any relationship. Relationships must have exactly one type.) - ====== [.include-with-GQLSTATUS-code] ====== @@ -3405,7 +3402,7 @@ m|GENERIC m|01N63 |StatusDescription a| -- warn: repeated relationship reference. `r` is repeated in `()-[r]->()<-[r]-()`, which leads to no results. +warn: repeated relationship reference. `$var` is repeated in `$pat`, which leads to no results. - warn: repeated relationship reference. `r` is repeated in `()-[r*]->()-[r*]->()`, which leads to no results. |Classification m|GENERIC @@ -3450,7 +3447,7 @@ Returned GQLSTATUS code:: Returned Status Description:: warn: repeated relationship reference. -`r` is repeated in `(:A)-[r]->()-[r]->(:B)`, which leads to no results. +`r` is repeated in `(:A)-[r]->(), ()-[r]->(:B)`, which leads to no results. Suggestions for improvement:: Use one pattern to match all relationships that start with a node with the label `A` and end with a node with the label `B`: From f8a82136044d811ed3871d6b6c34ba4dacc490e8 Mon Sep 17 00:00:00 2001 From: NataliaIvakina <82437520+NataliaIvakina@users.noreply.github.com> Date: Tue, 16 Jul 2024 14:00:45 +0200 Subject: [PATCH 09/13] Update modules/ROOT/pages/notifications/all-notifications.adoc Co-authored-by: Reneta Popova --- modules/ROOT/pages/notifications/all-notifications.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index 535f9b2c..db5bba99 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -3403,7 +3403,6 @@ m|01N63 |StatusDescription a| warn: repeated relationship reference. `$var` is repeated in `$pat`, which leads to no results. -- warn: repeated relationship reference. `r` is repeated in `()-[r*]->()-[r*]->()`, which leads to no results. |Classification m|GENERIC |SeverityLevel From d5a4bb35abfe6e6a8620262bc47c66256bbf12ec Mon Sep 17 00:00:00 2001 From: NataliaIvakina <82437520+NataliaIvakina@users.noreply.github.com> Date: Tue, 16 Jul 2024 15:48:03 +0200 Subject: [PATCH 10/13] Apply suggestions from code review Co-authored-by: Reneta Popova --- .../notifications/all-notifications.adoc | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index db5bba99..dd8df231 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -3131,7 +3131,7 @@ m|Neo.ClientNotification.Statement.SubqueryVariableShadowing a|Variable in subquery is shadowing a variable with the same name from the outer scope. |Description |Variable in subquery is shadowing a variable with the same name from the outer scope. -If you want to use that variable instead, it must be imported into the subquery using importing WITH clause. (the shadowing variable is: v) +If you want to use that variable instead, it must be imported into the subquery using importing WITH clause. (%s) |Category m|GENERIC |GQLSTATUS code @@ -3199,7 +3199,7 @@ RETURN * Returned GQLSTATUS code:: 03N60 -Returned Status Description:: +Returned StatusDescription:: info: subquery variable shadowing. The variable `n` in the subquery uses the same name as a variable from the outer query. Use `WITH n` in the subquery to import the one from the outer scope unless you want it to be a new variable. @@ -3233,7 +3233,7 @@ m|Neo.ClientNotification.Statement.ParameterNotProvided a|The statement refers to a parameter that was not provided in the request. |Description |Did not supply query with enough parameters. -The produced query plan will not be cached and is not executable without EXPLAIN. +The produced query plan will not be cached and is not executable without EXPLAIN. (%s) |Category m|GENERIC |GQLSTATUS code @@ -3283,7 +3283,7 @@ RETURN param Returned GQLSTATUS code:: 01N60 -Returned Status Description:: +Returned StatusDescription:: warn: parameter missing. The query plan cannot be cached and is not executable without `EXPLAIN` due to the undefined parameter(s) `$param`. Provide the parameter(s). @@ -3305,7 +3305,7 @@ m|Neo.ClientNotification.Procedure.ProcedureWarning |Title a|The query used a procedure that generated a warning. |Description -|The query used a procedure that generated a warning. (warning from procedure my.proc) +|The query used a procedure that generated a warning. (%s) |Category m|GENERIC |GQLSTATUS code @@ -3334,7 +3334,7 @@ m|Neo.ClientNotification.Statement.UnsatisfiableRelationshipTypeExpression |Title a|The query contains a relationship type expression that cannot be satisfied. |Description -|Relationship type expression cannot possibly be satisfied. +|Relationship type expression cannot possibly be satisfied. (%s) |Category m|GENERIC |GQLSTATUS code @@ -3375,7 +3375,7 @@ MATCH ()-[r:R1&R2]->() RETURN r Returned GQLSTATUS code:: 01N61 -Returned Status Description:: +Returned StatusDescription:: warn: unsatisfiable relationship type expression. The expression `R1&R2` cannot be satisfied because relationships must have exactly one type. ====== @@ -3394,8 +3394,8 @@ m|Neo.ClientNotification.Statement.RepeatedRelationshipReference a|The query returns no results because a relationship variable is bound more than once. |Description a| -- A relationship is referenced more than once in the query, which leads to no results because relationships must not occur more than once in each result. (Relationship `r` was repeated) -- A variable-length relationship variable is bound more than once, which leads to no results because relationships must not occur more than once in each result. (Relationship `r` was repeated) +- A relationship is referenced more than once in the query, which leads to no results because relationships must not occur more than once in each result. (%s) +- A variable-length relationship variable is bound more than once, which leads to no results because relationships must not occur more than once in each result. (%s) |Category m|GENERIC |GQLSTATUS code @@ -3444,7 +3444,7 @@ MATCH (:A)-[r]->(), ()-[r]->(:B) RETURN r Returned GQLSTATUS code:: 01N63 -Returned Status Description:: +Returned StatusDescription:: warn: repeated relationship reference. `r` is repeated in `(:A)-[r]->(), ()-[r]->(:B)`, which leads to no results. @@ -3485,7 +3485,7 @@ MATCH ()-[r*]->()<-[r*]-() RETURN count(*) AS count Returned GQLSTATUS code:: 01N63 -Returned Status Description:: +Returned StatusDescription:: warn: repeated relationship reference. `r` is repeated in `()-[r*]->()<-[r*]-()`, which leads to no results. ====== From 581d0de21720d25302414a02b73686be2a16e7c7 Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Wed, 17 Jul 2024 10:44:07 +0100 Subject: [PATCH 11/13] replace % by $ --- .../notifications/all-notifications.adoc | 305 +++++++++++------- 1 file changed, 183 insertions(+), 122 deletions(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index 9e9acc40..42a715c2 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -39,7 +39,7 @@ a|This query builds a cartesian product between disconnected patterns. m|PERFORMANCE |GQLSTATUS code m|03N90 -|StatusDescription +|Status description a|info: cartesian product. The disconnected patterns `$pat` build a cartesian product. A cartesian product may produce a large amount of data and slow down query processing. @@ -94,7 +94,7 @@ MATCH (c:Child), (p:Parent) RETURN c, p Returned GQLSTATUS code:: 03N90 -Returned StatusDescription:: +Returned Status description:: info: cartesian product. The disconnected patterns `(c:Child), (p:Parent)` build a cartesian product. A cartesian product may produce a large amount of data and slow down query processing. @@ -131,8 +131,10 @@ It is recommended to use an upper limit to the number of node hops in your patte m|PERFORMANCE |GQLSTATUS code m|03N91 -|StatusDescription -a|info: unbounded variable length pattern. The provided pattern `$pat` is unbounded. Shortest path with an unbounded pattern may result in long execution times. Use an upper limit (e.g. `[*..5]`) on the number of node hops in your pattern. +|Status description +a|info: unbounded variable length pattern. The provided pattern `$pat` is unbounded. +Shortest path with an unbounded pattern may result in long execution times. +Use an upper limit (e.g. `[*..5]`) on the number of node hops in your pattern. |Classification m|PERFORMANCE |SeverityLevel @@ -178,7 +180,7 @@ MATCH p=shortestPath((n)-[*]->(m)) RETURN p Returned GQLSTATUS code:: 03N91 -Returned StatusDescription:: +Returned Status description:: info: unbounded variable length pattern. The provided pattern `(n)-[\*]->(m)` is unbounded. Shortest path with an unbounded pattern may result in long execution times. @@ -216,7 +218,7 @@ It is recommended to introduce a `WITH` to separate the `MATCH` containing the s m|PERFORMANCE |GQLSTATUS code m|03N92 -|StatusDescription +|Status description a|info: exhaustive shortest path. The query runs with exhaustive shortest path due to the existential predicate(s) `$pred_list`. It may be possible to use `WITH` to separate the `MATCH` from the existential predicate(s). @@ -269,7 +271,7 @@ RETURN p Returned GQLSTATUS code:: 03N92 -Returned StatusDescription:: +Returned Status description:: info: exhaustive shortest path. The query runs with exhaustive shortest path due to the existential predicate(s) `ANY(n in nodes(p) WHERE n:Label)`. It may be possible to use `WITH` to separate the `MATCH` from the existential predicate(s). @@ -308,7 +310,7 @@ Please consider using a schema index. m|PERFORMANCE |GQLSTATUS code m|03N93 -|StatusDescription +|Status description a|info: no applicable index. `LOAD CSV` in combination with `MATCH` or `MERGE` on a label that does not have an index may result in long execution times. Consider adding an index for label `$label`. @@ -357,7 +359,7 @@ LOAD CSV FROM 'file:///ignore/ignore.csv' AS line WITH * MATCH (n:Person{name:li Returned GQLSTATUS code:: 03N93 -Returned StatusDescription:: +Returned Status description:: info: no applicable index. `LOAD CSV` in combination with `MATCH` or `MERGE` on a label that does not have an index may result in long execution times. Consider adding an index for label `Person`. @@ -391,7 +393,7 @@ See the Neo4j Manual entry on the Eager operator for more information and hints m|PERFORMANCE |GQLSTATUS code m|03N94 -|StatusDescription +|Status description a|info: eager operator. The query execution plan contains the `Eager` operator. `LOAD CSV` in combination with `Eager` can consume a lot of memory. @@ -448,7 +450,7 @@ LOAD CSV FROM 'file:///ignore/ignore.csv' AS line MATCH (n:Person{name:line[0]}) Returned GQLSTATUS code:: 03N94 -Returned StatusDescription:: +Returned Status description:: info: eager operator. The query execution plan contains the `Eager` operator. `LOAD CSV` in combination with `Eager` can consume a lot of memory. @@ -486,7 +488,7 @@ a|Queries using dynamic properties will use neither index seeks nor index scans m|PERFORMANCE |GQLSTATUS code m|03N95 -|StatusDescription +|Status description a|info: dynamic property. An index exists on label/type(s) `$label_list`. It is not possible to use indexes for dynamic properties. @@ -537,7 +539,7 @@ MATCH (n:Person) WHERE n[$prop] IS NOT NULL RETURN n; Returned GQLSTATUS code:: 03N95 -Returned StatusDescription:: +Returned Status description:: info: dynamic property. An index exists on label/type(s) `Person`. It is not possible to use indexes for dynamic properties. @@ -595,7 +597,7 @@ MATCH ()-[r: KNOWS]->() WHERE r[$prop] IS NOT NULL RETURN r Returned GQLSTATUS code:: 03N95 -Returned StatusDescription:: +Returned Status description:: info: dynamic property. An index exists on label/type(s) `KNOWS`. It is not possible to use indexes for dynamic properties. @@ -632,7 +634,7 @@ a|The database was unable to generate code for the query. A stacktrace can be fo m|PERFORMANCE |GQLSTATUS code m|01N40 -|StatusDescription +|Status description a|warn: unsupported runtime. The query cannot be executed with `preparser_input1`, `preparser_input2` is used. Cause: `$msg`. |Classification @@ -669,7 +671,7 @@ please try using a different join key or restructure your query. (%s) m|HINT |GQLSTATUS code m|01N30 -|StatusDescription +|Status description a|warn: join hint unfulfillable. Unable to create a plan with `JOIN ON $var_list`. Try to change the join key(s) or restructure your query. |Classification m|HINT @@ -723,7 +725,7 @@ RETURN * Returned GQLSTATUS code:: 01N30 -Returned StatusDescription:: +Returned Status description:: warn: joint hint unfulfillable. Unable to create a plan with `JOIN ON a`. Try to change the join key(s) or restructure your query. @@ -752,8 +754,9 @@ a|The request (directly or indirectly) referred to an index that does not exist. m|HINT |GQLSTATUS code m|01N31 -|StatusDescription -a|warn: hinted index not found. Unable to create a plan with `$index_descr` because the index does not exist. +|Status description +a|warn: hinted index not found. +Unable to create a plan with `$index_descr` because the index does not exist. |Classification m|HINT |SeverityLevel @@ -800,7 +803,7 @@ RETURN a Returned GQLSTATUS code:: 01N31 -Returned StatusDescription:: +Returned Status description:: warn: hinted index not found. Unable to create a plan with `INDEX :Label(id)` because the index does not exist. @@ -850,7 +853,7 @@ RETURN r Returned GQLSTATUS code:: 01N31 -Returned StatusDescription:: +Returned Status description:: warn: hinted index not found. Unable to create a plan with `INDEX :Rel(id)` because the index does not exist. @@ -882,7 +885,7 @@ This command will not take effect until this database is created. (%s`) m|UNRECOGNIZED |GQLSTATUS code m|00N50 -|StatusDescription +|Status description a|note: successful completion - home database not found. The database `$db` does not exist. Verify that the spelling is correct or create the database for the command to take effect. @@ -926,7 +929,7 @@ CREATE USER john SET PASSWORD "secret" SET HOME DATABASE nej4 Returned GQLSTATUS code:: 00N50 -Returned StatusDescription:: +Returned Status description:: note: successful completion - home database not found. The database `ne4j` does not exist. Verify that the spelling is correct or create the database for the command to take effect. @@ -952,7 +955,7 @@ a|The provided label is not in the database. m|UNRECOGNIZED |GQLSTATUS code m|01N50 -|StatusDescription +|Status description a|warn: unknown label. The label `$label` does not exist. Verify that the spelling is correct. @@ -996,7 +999,7 @@ MATCH (n:Perso) RETURN n Returned GQLSTATUS code:: 01N50 -Returned StatusDescription:: +Returned Status description:: warn: unknown label. The label `Perso` does not exist. Verify that the spelling is correct. @@ -1024,7 +1027,7 @@ make sure you didn't misspell it or that the label is available when you run thi m|UNRECOGNIZED |GQLSTATUS code m|01N51 -|StatusDescription +|Status description a|warn: unknown relationship type. The relationship type `$reltype` does not exist. Verify that the spelling is correct. @@ -1067,7 +1070,7 @@ MATCH (n)-[:NonExistingType]->() RETURN n Returned GQLSTATUS code:: 01N51 -Returned StatusDescription:: +Returned Status description:: warn: unknown relationship type. The relationship type `NonExistingType` does not exist. Verify that the spelling is correct. @@ -1095,7 +1098,7 @@ make sure you didn't misspell it or that the label is available when you run thi m|UNRECOGNIZED |GQLSTATUS code m|01N52 -|StatusDescription +|Status description a|warn: unknown property key. The property `$propkey` does not exist. Verify that the spelling is correct. @@ -1140,7 +1143,7 @@ RETURN n Returned GQLSTATUS code:: 01N52 -Returned StatusDescription:: +Returned Status description:: warn: unknown property key. The property `nme` does not exist. Verify that the spelling is correct. @@ -1173,8 +1176,10 @@ a|This query is not supported by the chosen runtime. m|UNSUPPORTED |GQLSTATUS code m|01N40 -|StatusDescription -a|warn: unsupported runtime. The query cannot be executed with `$preparser_input1`, `$preparser_input2` is used. Cause: `$msg`. +|Status description +a|warn: unsupported runtime. +The query cannot be executed with `$preparser_input1`, `$preparser_input2` is used. +Cause: `$msg`. |Classification m|UNSUPPORTED |SeverityLevel @@ -1219,7 +1224,7 @@ EXPLAIN CYPHER runtime=pipelined SHOW INDEXES YIELD * Returned GQLSTATUS code:: 01N40 -Returned StatusDescription:: +Returned Status description:: warn: unsupported runtime. The query cannot be executed with `runtime=pipelined`, `runtime=slotted` is used. Cause: Pipelined does not yet support the plans including `ShowIndexes`, use another runtime. @@ -1313,7 +1318,7 @@ Names containing `.` should be escaped. (%s) m|DEPRECATION |GQLSTATUS code m|01N00 -|StatusDescription +|Status description a|warn: feature deprecated. $msg |Classification m|DEPRECATION @@ -1358,7 +1363,7 @@ CREATE DATABASE foo.bar Returned GQLSTATUS code:: 01N00 -Returned Status Description:: +Returned Status description:: warn: feature deprecated. Databases and aliases with unescaped `.` are deprecated unless to indicate that they belong to a composite database. Names containing `.` should be escaped. (Name: foo.bar) @@ -1416,9 +1421,10 @@ RETURN 'val' as two, 'val' as one Returned GQLSTATUS code:: 01N00 -Returned Status Description:: +Returned Status description:: warn: feature deprecated. -All subqueries in a UNION [ALL] should have the same ordering for the return columns. Using differently ordered return items in a UNION [ALL] clause is deprecated and will be removed in a future version. +All subqueries in a UNION [ALL] should have the same ordering for the return columns. +Using differently ordered return items in a UNION [ALL] clause is deprecated and will be removed in a future version. Suggestions for improvement:: Use the same order for the return columns in all subqueries combined by a `UNION` clause. @@ -1460,9 +1466,10 @@ RETURN 1 as my\u0085identifier Returned GQLSTATUS code:: 01N00 -Returned Status Description:: +Returned Status description:: warn: feature deprecated. -The Unicode character `\u0085` is deprecated for unescaped identifiers and will be considered as a whitespace character in the future. To continue using it, escape the identifier by adding backticks around the identifier `my\u0085identifier`. +The Unicode character `\u0085` is deprecated for unescaped identifiers and will be considered as a whitespace character in the future. +To continue using it, escape the identifier by adding backticks around the identifier `my\u0085identifier`. ====== ===== @@ -1492,8 +1499,10 @@ Please use `TrigramIndexProvider.DESCRIPTOR.name()` instead. m|DEPRECATION |GQLSTATUS code m|01N01 -|StatusDescription -a|warn: feature deprecated with replacement. `$thing1` is deprecated. It is replaced by `$thing2`. +|Status description +a|warn: feature deprecated with replacement. +`$thing1` is deprecated. +It is replaced by `$thing2`. |Classification m|DEPRECATION |SeverityLevel @@ -1536,7 +1545,7 @@ MATCH (a)-[:A|:B|:C]-() RETURN * Returned GQLSTATUS code:: 01N01 -Returned Status Description:: +Returned Status description:: warn: feature deprecated with replacement. `:A|:B|:C` is deprecated. It is replaced by `:A|B|C`. @@ -1592,7 +1601,7 @@ SET a = b Returned GQLSTATUS code:: 01N01 -Returned Status Description:: +Returned Status description:: warn: feature deprecated with replacement. `SET a = b` is deprecated. It is replaced by `SET a = properties(b)`. @@ -1650,7 +1659,7 @@ SET a += r Returned GQLSTATUS code:: 01N01 -Returned Status Description:: +Returned Status description:: warn: feature deprecated with replacement. `SET a += r` is deprecated. It is replaced by `SET a += properties(r)`. @@ -1705,7 +1714,7 @@ MATCH (a:Start), shortestPath((a)-[r]->()) RETURN a Returned GQLSTATUS code:: 01N01 -Returned Status Description:: +Returned Status description:: warn: feature deprecated with replacement. `shortestPath\((a)-[r]->())` is deprecated. It is replaced by `shortestPath\((n)-[r*1..1]->(m))`. @@ -1758,7 +1767,7 @@ CYPHER runtime = interpreted MATCH (n) RETURN n Returned GQLSTATUS code:: 01N01 -Returned Status Description:: +Returned Status description:: warn: feature deprecated with replacement. `runtime=interpreted` is deprecated. It is replaced by `runtime=slotted`. @@ -1811,7 +1820,7 @@ CREATE TEXT INDEX FOR (n:Label) ON (n.prop) OPTIONS {indexProvider : 'text-1.0'} Returned GQLSTATUS code:: 01N01 -Returned Status Description:: +Returned Status description:: warn: feature deprecated with replacement. `text-1.0` is deprecated. It is replaced by `text-2.0`. @@ -1855,7 +1864,7 @@ CALL cdc.query Returned GQLSTATUS code:: 01N01 -Returned Status Description:: +Returned Status description:: warn: feature deprecated with replacement. `cdc.query` is deprecated. It is replaced by `db.cdc.query`. @@ -1871,7 +1880,7 @@ CALL unsupported.dbms.shutdown Returned GQLSTATUS code:: 01N02 -Returned Status Description:: +Returned Status description:: warn: feature deprecated without replacement. `unsupported.dbms.shutdown` is deprecated and will be removed without a replacement. ====== @@ -1916,7 +1925,7 @@ RETURN id(a) Returned GQLSTATUS code:: 01N01 -Returned Status Description:: +Returned Status description:: warn: feature deprecated with replacement. `id` is deprecated. It is replaced by `elementId()`. @@ -1943,7 +1952,7 @@ RETURN id(a) Returned GQLSTATUS code:: 01N02 -Returned Status Description:: +Returned Status description:: warn: feature deprecated without replacement. `id` is deprecated and will be removed without a replacement. ====== @@ -1970,8 +1979,9 @@ For more information, see Cypher Manual -> Cypher planner. m|DEPRECATION |GQLSTATUS code m|01N02 -|StatusDescription -a|warn: feature deprecated without replacement. `$thing` is deprecated and will be removed without a replacement. +|Status description +a|warn: feature deprecated without replacement. +`$thing` is deprecated and will be removed without a replacement. |Classification m|DEPRECATION |SeverityLevel @@ -2007,7 +2017,7 @@ CYPHER connectComponentsPlanner=greedy MATCH (a), (b) RETURN * Returned GQLSTATUS code:: 01N02 -Returned Status Description:: +Returned Status description:: warn: feature deprecated without replacement. `connectComponentsPlanner` is deprecated and will be removed without a replacement. ====== @@ -2029,8 +2039,9 @@ a|The query used a deprecated field from a procedure. (%s) m|DEPRECATION |GQLSTATUS code m|01N03 -|StatusDescription -a|warn: procedure field deprecated. `$field` for procedure `$proc` is deprecated. +|Status description +a|warn: procedure field deprecated. +`$field` for procedure `$proc` is deprecated. |Classification m|DEPRECATION |SeverityLevel @@ -2053,8 +2064,10 @@ a|The client made a request for a format which has been deprecated. m|DEPRECATION |GQLSTATUS code m|01N01 -|StatusDescription -a|warn: feature deprecated with replacement. `$thing1` is deprecated. It is replaced by `$thing2`. +|Status description +a|warn: feature deprecated with replacement. +`$thing1` is deprecated. +It is replaced by `$thing2`. |Classification m|DEPRECATION |SeverityLevel @@ -2087,8 +2100,10 @@ a| m|SECURITY |GQLSTATUS code m|00N71 -|StatusDescription -|note: successful completion - role or privilege not assigned. `$cmd` has no effect. The role or privilege is not assigned. +|Status description +|note: successful completion - role or privilege not assigned. +`$cmd` has no effect. +The role or privilege is not assigned. |Classification m|SECURITY |SeverityLevel @@ -2130,8 +2145,10 @@ GRANT ROLE admin TO john Returned GQLSTATUS code:: 00N71 -Returned Status Description:: -note: successful completion - role or privilege not assigned. `GRANT ROLE admin TO john` has no effect. The role or privilege is not assigned. +Returned Status description:: +note: successful completion - role or privilege not assigned. +`GRANT ROLE admin TO john` has no effect. +The role or privilege is not assigned. Suggestions for improvement:: Verify that this is the intended role and user. @@ -2172,8 +2189,10 @@ REVOKE ROLE admin, reader FROM jane Returned GQLSTATUS code:: 00N71 -Returned Status Description:: -note: successful completion - role or privilege not assigned. `REVOKE ROLE reader FROM jane` has no effect. The role or privilege is not assigned. +Returned Status description:: +note: successful completion - role or privilege not assigned. +`REVOKE ROLE reader FROM jane` has no effect. +The role or privilege is not assigned. Suggestions for improvement:: Verify that this is the intended role and user. @@ -2215,8 +2234,10 @@ GRANT TRAVERSE ON GRAPH * TO reader Returned GQLSTATUS code:: 00N71 -Returned Status Description:: -note: successful completion - role or privilege not assigned. `GRANT TRAVERSE ON GRAPH * TO reader` has no effect. The role or privilege is not assigned. +Returned Status description:: +note: successful completion - role or privilege not assigned. +`GRANT TRAVERSE ON GRAPH * TO reader` has no effect. +The role or privilege is not assigned. Suggestions for improvement:: Verify that this is the intended privilege and role. @@ -2257,8 +2278,10 @@ REVOKE WRITE ON GRAPH * FROM reader Returned GQLSTATUS code:: 00N71 -Returned Status Description:: -note: successful completion - role or privilege not assigned. `REVOKE DENY WRITE ON GRAPH * FROM reader` has no effect. The role or privilege is not assigned. +Returned Status description:: +note: successful completion - role or privilege not assigned. +`REVOKE DENY WRITE ON GRAPH * FROM reader` has no effect. +The role or privilege is not assigned. Suggestions for improvement:: Verify that this is the intended privilege and role. @@ -2284,8 +2307,10 @@ See Status Codes documentation for more information. m|SECURITY |GQLSTATUS code m|01N70 -|StatusDescription -a|warn: impossible revoke command. `cmd` has no effect. %msg Make sure nothing is misspelled. This notification will become an error in a future major version. +|Status description +a|warn: impossible revoke command. `cmd` has no effect. $msg +Make sure nothing is misspelled. +This notification will become an error in a future major version. |Classification m|SECURITY |SeverityLevel @@ -2329,10 +2354,11 @@ REVOKE ROLE manager, reader FROM jane Returned GQLSTATUS code:: 01N70 -Returned Status Description:: +Returned Status description:: warn: impossible revoke command. `REVOKE ROLE manager FROM jane` has no effect. -Role does not exist. Make sure nothing is misspelled. +Role does not exist. +Make sure nothing is misspelled. This notification will become an error in a future major version. Suggestions for improvement:: @@ -2356,9 +2382,9 @@ Title of the returned code:: `REVOKE ROLE reader FROM alice` has no effect. Description of the returned code:: -User does not exist. Make sure nothing is misspelled. +User does not exist. +Make sure nothing is misspelled. This notification will become an error in a future major version. -See Status Codes documentation for more information. Suggestions for improvement:: Verify that this is the intended user and that it is spelled correctly. @@ -2376,12 +2402,14 @@ REVOKE ROLE reader FROM alice Returned GQLSTATUS code:: 01N70 -Returned Status Description:: +Returned Status description:: warn: impossible revoke command. `REVOKE ROLE reader FROM alice` has no effect. -User does not exist. Make sure nothing is misspelled. +User does not exist. +Make sure nothing is misspelled. This notification will become an error in a future major version. - +See Status Codes documentation for more information. +o Suggestions for improvement:: Verify that this is the intended user and that it is spelled correctly. ====== @@ -2424,10 +2452,11 @@ REVOKE GRANT WRITE ON GRAPH * FROM manager Returned GQLSTATUS code:: 01N70 -Returned Status Description:: +Returned Status description:: warn: impossible revoke command. `REVOKE GRANT WRITE ON GRAPH * FROM manager` has no effect. -Role does not exist. Make sure nothing is misspelled. +Role does not exist. +Make sure nothing is misspelled. This notification will become an error in a future major version. Suggestions for improvement:: @@ -2470,10 +2499,11 @@ REVOKE GRANT WRITE ON GRAPH neo3j FROM editor Returned GQLSTATUS code:: 01N70 -Returned Status Description:: +Returned Status description:: warn: impossible revoke command. `REVOKE GRANT WRITE ON GRAPH neo3j FROM editor` has no effect. -Database `neo3j` does not exist. Make sure nothing is misspelled. +Database `neo3j` does not exist. +Make sure nothing is misspelled. This notification will become an error in a future major version. Suggestions for improvement:: @@ -2516,10 +2546,11 @@ REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor Returned GQLSTATUS code:: 01N70 -Returned Status Description:: +Returned Status description:: warn: impossible revoke command. `REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor` has no effect. -Database `neo3j` does not exist. Make sure nothing is misspelled. +Database `neo3j` does not exist. +Make sure nothing is misspelled. This notification will become an error in a future major version. Suggestions for improvement:: @@ -2581,10 +2612,11 @@ REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC Returned GQLSTATUS code:: 01N70 -Returned Status Description:: +Returned Status description:: warn: impossible revoke command. `REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC` has no effect. -Database `*` does not exist. Make sure nothing is misspelled. +Database `*` does not exist. +Make sure nothing is misspelled. This notification will become an error in a future major version. Suggestions for improvement:: @@ -2647,10 +2679,11 @@ REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC Returned GQLSTATUS code:: 01N70 -Returned Status Description:: +Returned Status description:: warn: impossible revoke command. `REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC` has no effect. -Database `*` does not exist. Make sure nothing is misspelled. +Database `*` does not exist. +Make sure nothing is misspelled. This notification will become an error in a future major version. Suggestions for improvement:: @@ -2683,8 +2716,11 @@ a| Server(s) `%s` are cordoned. This can impact allocation decisions. m|TOPOLOGY |GQLSTATUS code m|00N83 -|StatusDescription -a|note: successful completion - cordoned servers existed during allocation. Cordoned servers existed when making an allocation decision. Server(s) `$server_list` are cordoned. This can impact allocation decisions. +|Status description +a|note: successful completion - cordoned servers existed during allocation. +Cordoned servers existed when making an allocation decision. +Server(s) `$server_list` are cordoned. +This can impact allocation decisions. |Classification m|TOPOLOGY |SeverityLevel @@ -2722,8 +2758,11 @@ CREATE DATABASE foo TOPOLOGY 2 PRIMARIES Returned GQLSTATUS code:: 00N83 -Returned Status Description:: -note: successful completion - cordoned servers existed during allocation. Cordoned servers existed when making an allocation decision. Server(s) `123e4567-e89b-12d3-a456-426614174000` are cordoned. This can impact allocation decisions. +Returned Status description:: +note: successful completion - cordoned servers existed during allocation. +Cordoned servers existed when making an allocation decision. +Server(s) `123e4567-e89b-12d3-a456-426614174000` are cordoned. +This can impact allocation decisions. ====== ===== @@ -2744,8 +2783,11 @@ a| No databases were reallocated. No better allocation is currently possible. m|TOPOLOGY |GQLSTATUS code m|00N82 -|StatusDescription -a|note: successful completion - no databases reallocated. `REALLOCATE DATABASES` has no effect. No databases were reallocated. No better allocation is currently possible. +|Status description +a|note: successful completion - no databases reallocated. +`REALLOCATE DATABASES` has no effect. +No databases were reallocated. +No better allocation is currently possible. |Classification m|TOPOLOGY |SeverityLevel @@ -2789,8 +2831,11 @@ REALLOCATE DATABASES Returned GQLSTATUS code:: 00N82 -Returned Status Description:: -note: successful completion - no databases reallocated. `REALLOCATE DATABASES` has no effect. No databases were reallocated. No better allocation is currently possible. +Returned Status description:: +note: successful completion - no databases reallocated. +`REALLOCATE DATABASES` has no effect. +No databases were reallocated. +No better allocation is currently possible. Example scenarios:: **Scenario 1:** The cluster is already balanced. @@ -2908,8 +2953,10 @@ a| m|SCHEMA |GQLSTATUS code m|00NA0 -|StatusDescription -a|note: successful completion - index or constraint already exists. `$cmd` has no effect. `$index_constr_pat` already exists. +|Status description +a|note: successful completion - index or constraint already exists. +`$cmd` has no effect. +`$index_constr_pat` already exists. |SeverityLevel m|INFORMATION |=== @@ -2951,8 +2998,10 @@ CREATE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (n:Label) ON (n.property) Returned GQLSTATUS code:: 00NA0 -Returned Status Description:: -note: successful completion - index or constraint already exists. `CREATE RANGE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (e:Label) ON (e.property)` has no effect. `RANGE INDEX existingRangeIndex FOR (e:Label) ON (e.property)` already exists. +Returned Status description:: +note: successful completion - index or constraint already exists. +`CREATE RANGE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (e:Label) ON (e.property)` has no effect. +`RANGE INDEX existingRangeIndex FOR (e:Label) ON (e.property)` already exists. ====== ===== @@ -3000,8 +3049,10 @@ CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[r:REL_TYPE]-() ON (r.property) Returned GQLSTATUS code:: 00NA0 -Returned Status Description:: -note: successful completion - index or constraint already exists. `CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[e:REL_TYPE]-() ON (e.property)` has no effect. `RANGE INDEX myIndex FOR (e:Label) ON (e.property)` already exists. +Returned Status description:: +note: successful completion - index or constraint already exists. +`CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[e:REL_TYPE]-() ON (e.property)` has no effect. +`RANGE INDEX myIndex FOR (e:Label) ON (e.property)` already exists. Suggestions for improvement:: Choose a different name for the new index and try again. @@ -3049,8 +3100,10 @@ CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (n:Label) REQ Returned GQLSTATUS code:: 00NA0 -Returned Status Description:: -note: successful completion - index or constraint already exists. `CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (e:Label) REQUIRE (e.property) IS NODE KEY` has no effect. `CONSTRAINT nodeKeyLabelPropertyConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY` already exists. +Returned Status description:: +note: successful completion - index or constraint already exists. +`CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (e:Label) REQUIRE (e.property) IS NODE KEY` has no effect. +`CONSTRAINT nodeKeyLabelPropertyConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY` already exists. ====== ===== @@ -3099,8 +3152,10 @@ CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (n:Label2) REQUIRE (n.property2 Returned GQLSTATUS code:: 00NA0 -Returned Status Description:: -note: successful completion - index or constraint already exists. `CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (e:Label2) REQUIRE (e.property2) IS NOT NULL` has no effect. `CONSTRAINT myConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY` already exists. +Returned Status description:: +note: successful completion - index or constraint already exists. +`CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (e:Label2) REQUIRE (e.property2) IS NOT NULL` has no effect. +`CONSTRAINT myConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY` already exists. Suggestions for improvement:: Choose a different name for the new constraint and try again. @@ -3131,8 +3186,10 @@ a| m|SCHEMA |GQLSTATUS code m|00NA1 -|StatusDescription -a|note: successful completion - index or constraint does not exist. `$cmd` has no effect. `$index_constr_name` does not exist. +|Status description +a|note: successful completion - index or constraint does not exist. +`$cmd` has no effect. +`$index_constr_name` does not exist. |SeverityLevel m|INFORMATION |=== @@ -3172,8 +3229,10 @@ DROP INDEX nonExistingIndex IF EXISTS Returned GQLSTATUS code:: 00NA1 -Returned Status Description:: -note: successful completion - index or constraint does not exist. `DROP INDEX nonExistingIndex IF EXISTS` has no effect. `nonExistingIndex` does not exist. +Returned Status description:: +note: successful completion - index or constraint does not exist. +`DROP INDEX nonExistingIndex IF EXISTS` has no effect. +`nonExistingIndex` does not exist. Suggestions for improvement:: Verify that this is the intended index and that it is spelled correctly. @@ -3216,8 +3275,10 @@ DROP CONSTRAINT nonExistingConstraint IF EXISTS Returned GQLSTATUS code:: 00NA1 -Returned Status Description:: -note: successful completion - index or constraint does not exist. `DROP CONSTRAINT nonExistingConstraint IF EXISTS` has no effect. `nonExistingConstraint` does not exist. +Returned Status description:: +note: successful completion - index or constraint does not exist. +`DROP CONSTRAINT nonExistingConstraint IF EXISTS` has no effect. +`nonExistingConstraint` does not exist. Suggestions for improvement:: Verify that this is the intended constraint and that it is spelled correctly. @@ -3247,10 +3308,10 @@ If you want to use that variable instead, it must be imported into the subquery m|GENERIC |GQLSTATUS code m|03N60 -|StatusDescription +|Status description a|info: subquery variable shadowing. The variable `$var` in the subquery uses the same name as a variable from the outer query. - Use `WITH $var` in the subquery to import the one from the outer scope unless you want it to be a new variable. +Use `WITH $var` in the subquery to import the one from the outer scope unless you want it to be a new variable. |Classification m|GENERIC |SeverityLevel @@ -3310,7 +3371,7 @@ RETURN * Returned GQLSTATUS code:: 03N60 -Returned StatusDescription:: +Returned Status description:: info: subquery variable shadowing. The variable `n` in the subquery uses the same name as a variable from the outer query. Use `WITH n` in the subquery to import the one from the outer scope unless you want it to be a new variable. @@ -3349,7 +3410,7 @@ The produced query plan will not be cached and is not executable without EXPLAIN m|GENERIC |GQLSTATUS code m|01N60 -|StatusDescription +|Status description a|warn: parameter missing. The query plan cannot be cached and is not executable without `EXPLAIN` due to the undefined parameter(s) `$param_list`. Provide the parameter(s). @@ -3394,7 +3455,7 @@ RETURN param Returned GQLSTATUS code:: 01N60 -Returned StatusDescription:: +Returned Status description:: warn: parameter missing. The query plan cannot be cached and is not executable without `EXPLAIN` due to the undefined parameter(s) `$param`. Provide the parameter(s). @@ -3421,7 +3482,7 @@ a|The query used a procedure that generated a warning. m|GENERIC |GQLSTATUS code m|01N62 -|StatusDescription +|Status description a|warn: procedure execution warning. The procedure `$proc` generates the warning `$msg`. |Classification @@ -3450,7 +3511,7 @@ a|The query contains a relationship type expression that cannot be satisfied. m|GENERIC |GQLSTATUS code m|01N61 -|StatusDescription +|Status description a|warn: unsatisfiable relationship type expression. The expression `$label_expr` cannot be satisfied because relationships must have exactly one type. |Classification @@ -3486,7 +3547,7 @@ MATCH ()-[r:R1&R2]->() RETURN r Returned GQLSTATUS code:: 01N61 -Returned StatusDescription:: +Returned Status description:: warn: unsatisfiable relationship type expression. The expression `R1&R2` cannot be satisfied because relationships must have exactly one type. ====== @@ -3511,7 +3572,7 @@ a| m|GENERIC |GQLSTATUS code m|01N63 -|StatusDescription +|Status description a| warn: repeated relationship reference. `$var` is repeated in `$pat`, which leads to no results. |Classification @@ -3555,8 +3616,8 @@ MATCH (:A)-[r]->(), ()-[r]->(:B) RETURN r Returned GQLSTATUS code:: 01N63 -Returned StatusDescription:: -warn: repeated relationship reference. +Returned Status description:: +warn: repeated relationship reference. `r` is repeated in `(:A)-[r]->(), ()-[r]->(:B)`, which leads to no results. Suggestions for improvement:: @@ -3596,7 +3657,7 @@ MATCH ()-[r*]->()<-[r*]-() RETURN count(*) AS count Returned GQLSTATUS code:: 01N63 -Returned StatusDescription:: +Returned Status description:: warn: repeated relationship reference. `r` is repeated in `()-[r*]->()<-[r*]-()`, which leads to no results. ====== From d0db00cf9ebe054e1eaf3b9843239cb0b7a6205e Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Wed, 17 Jul 2024 10:51:53 +0100 Subject: [PATCH 12/13] replace Returned Status description with Returned status description --- .../notifications/all-notifications.adoc | 106 +++++++++--------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index 42a715c2..9b5872b9 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -94,7 +94,7 @@ MATCH (c:Child), (p:Parent) RETURN c, p Returned GQLSTATUS code:: 03N90 -Returned Status description:: +Returned status description:: info: cartesian product. The disconnected patterns `(c:Child), (p:Parent)` build a cartesian product. A cartesian product may produce a large amount of data and slow down query processing. @@ -180,7 +180,7 @@ MATCH p=shortestPath((n)-[*]->(m)) RETURN p Returned GQLSTATUS code:: 03N91 -Returned Status description:: +Returned status description:: info: unbounded variable length pattern. The provided pattern `(n)-[\*]->(m)` is unbounded. Shortest path with an unbounded pattern may result in long execution times. @@ -271,7 +271,7 @@ RETURN p Returned GQLSTATUS code:: 03N92 -Returned Status description:: +Returned status description:: info: exhaustive shortest path. The query runs with exhaustive shortest path due to the existential predicate(s) `ANY(n in nodes(p) WHERE n:Label)`. It may be possible to use `WITH` to separate the `MATCH` from the existential predicate(s). @@ -359,7 +359,7 @@ LOAD CSV FROM 'file:///ignore/ignore.csv' AS line WITH * MATCH (n:Person{name:li Returned GQLSTATUS code:: 03N93 -Returned Status description:: +Returned status description:: info: no applicable index. `LOAD CSV` in combination with `MATCH` or `MERGE` on a label that does not have an index may result in long execution times. Consider adding an index for label `Person`. @@ -450,7 +450,7 @@ LOAD CSV FROM 'file:///ignore/ignore.csv' AS line MATCH (n:Person{name:line[0]}) Returned GQLSTATUS code:: 03N94 -Returned Status description:: +Returned status description:: info: eager operator. The query execution plan contains the `Eager` operator. `LOAD CSV` in combination with `Eager` can consume a lot of memory. @@ -539,7 +539,7 @@ MATCH (n:Person) WHERE n[$prop] IS NOT NULL RETURN n; Returned GQLSTATUS code:: 03N95 -Returned Status description:: +Returned status description:: info: dynamic property. An index exists on label/type(s) `Person`. It is not possible to use indexes for dynamic properties. @@ -597,7 +597,7 @@ MATCH ()-[r: KNOWS]->() WHERE r[$prop] IS NOT NULL RETURN r Returned GQLSTATUS code:: 03N95 -Returned Status description:: +Returned status description:: info: dynamic property. An index exists on label/type(s) `KNOWS`. It is not possible to use indexes for dynamic properties. @@ -725,7 +725,7 @@ RETURN * Returned GQLSTATUS code:: 01N30 -Returned Status description:: +Returned status description:: warn: joint hint unfulfillable. Unable to create a plan with `JOIN ON a`. Try to change the join key(s) or restructure your query. @@ -803,7 +803,7 @@ RETURN a Returned GQLSTATUS code:: 01N31 -Returned Status description:: +Returned status description:: warn: hinted index not found. Unable to create a plan with `INDEX :Label(id)` because the index does not exist. @@ -853,7 +853,7 @@ RETURN r Returned GQLSTATUS code:: 01N31 -Returned Status description:: +Returned status description:: warn: hinted index not found. Unable to create a plan with `INDEX :Rel(id)` because the index does not exist. @@ -929,7 +929,7 @@ CREATE USER john SET PASSWORD "secret" SET HOME DATABASE nej4 Returned GQLSTATUS code:: 00N50 -Returned Status description:: +Returned status description:: note: successful completion - home database not found. The database `ne4j` does not exist. Verify that the spelling is correct or create the database for the command to take effect. @@ -999,7 +999,7 @@ MATCH (n:Perso) RETURN n Returned GQLSTATUS code:: 01N50 -Returned Status description:: +Returned status description:: warn: unknown label. The label `Perso` does not exist. Verify that the spelling is correct. @@ -1070,7 +1070,7 @@ MATCH (n)-[:NonExistingType]->() RETURN n Returned GQLSTATUS code:: 01N51 -Returned Status description:: +Returned status description:: warn: unknown relationship type. The relationship type `NonExistingType` does not exist. Verify that the spelling is correct. @@ -1143,7 +1143,7 @@ RETURN n Returned GQLSTATUS code:: 01N52 -Returned Status description:: +Returned status description:: warn: unknown property key. The property `nme` does not exist. Verify that the spelling is correct. @@ -1224,7 +1224,7 @@ EXPLAIN CYPHER runtime=pipelined SHOW INDEXES YIELD * Returned GQLSTATUS code:: 01N40 -Returned Status description:: +Returned status description:: warn: unsupported runtime. The query cannot be executed with `runtime=pipelined`, `runtime=slotted` is used. Cause: Pipelined does not yet support the plans including `ShowIndexes`, use another runtime. @@ -1363,7 +1363,7 @@ CREATE DATABASE foo.bar Returned GQLSTATUS code:: 01N00 -Returned Status description:: +Returned status description:: warn: feature deprecated. Databases and aliases with unescaped `.` are deprecated unless to indicate that they belong to a composite database. Names containing `.` should be escaped. (Name: foo.bar) @@ -1421,7 +1421,7 @@ RETURN 'val' as two, 'val' as one Returned GQLSTATUS code:: 01N00 -Returned Status description:: +Returned status description:: warn: feature deprecated. All subqueries in a UNION [ALL] should have the same ordering for the return columns. Using differently ordered return items in a UNION [ALL] clause is deprecated and will be removed in a future version. @@ -1466,7 +1466,7 @@ RETURN 1 as my\u0085identifier Returned GQLSTATUS code:: 01N00 -Returned Status description:: +Returned status description:: warn: feature deprecated. The Unicode character `\u0085` is deprecated for unescaped identifiers and will be considered as a whitespace character in the future. To continue using it, escape the identifier by adding backticks around the identifier `my\u0085identifier`. @@ -1545,7 +1545,7 @@ MATCH (a)-[:A|:B|:C]-() RETURN * Returned GQLSTATUS code:: 01N01 -Returned Status description:: +Returned status description:: warn: feature deprecated with replacement. `:A|:B|:C` is deprecated. It is replaced by `:A|B|C`. @@ -1601,7 +1601,7 @@ SET a = b Returned GQLSTATUS code:: 01N01 -Returned Status description:: +Returned status description:: warn: feature deprecated with replacement. `SET a = b` is deprecated. It is replaced by `SET a = properties(b)`. @@ -1659,7 +1659,7 @@ SET a += r Returned GQLSTATUS code:: 01N01 -Returned Status description:: +Returned status description:: warn: feature deprecated with replacement. `SET a += r` is deprecated. It is replaced by `SET a += properties(r)`. @@ -1714,7 +1714,7 @@ MATCH (a:Start), shortestPath((a)-[r]->()) RETURN a Returned GQLSTATUS code:: 01N01 -Returned Status description:: +Returned status description:: warn: feature deprecated with replacement. `shortestPath\((a)-[r]->())` is deprecated. It is replaced by `shortestPath\((n)-[r*1..1]->(m))`. @@ -1767,7 +1767,7 @@ CYPHER runtime = interpreted MATCH (n) RETURN n Returned GQLSTATUS code:: 01N01 -Returned Status description:: +Returned status description:: warn: feature deprecated with replacement. `runtime=interpreted` is deprecated. It is replaced by `runtime=slotted`. @@ -1820,7 +1820,7 @@ CREATE TEXT INDEX FOR (n:Label) ON (n.prop) OPTIONS {indexProvider : 'text-1.0'} Returned GQLSTATUS code:: 01N01 -Returned Status description:: +Returned status description:: warn: feature deprecated with replacement. `text-1.0` is deprecated. It is replaced by `text-2.0`. @@ -1864,7 +1864,7 @@ CALL cdc.query Returned GQLSTATUS code:: 01N01 -Returned Status description:: +Returned status description:: warn: feature deprecated with replacement. `cdc.query` is deprecated. It is replaced by `db.cdc.query`. @@ -1880,7 +1880,7 @@ CALL unsupported.dbms.shutdown Returned GQLSTATUS code:: 01N02 -Returned Status description:: +Returned status description:: warn: feature deprecated without replacement. `unsupported.dbms.shutdown` is deprecated and will be removed without a replacement. ====== @@ -1925,7 +1925,7 @@ RETURN id(a) Returned GQLSTATUS code:: 01N01 -Returned Status description:: +Returned status description:: warn: feature deprecated with replacement. `id` is deprecated. It is replaced by `elementId()`. @@ -1952,7 +1952,7 @@ RETURN id(a) Returned GQLSTATUS code:: 01N02 -Returned Status description:: +Returned status description:: warn: feature deprecated without replacement. `id` is deprecated and will be removed without a replacement. ====== @@ -2017,7 +2017,7 @@ CYPHER connectComponentsPlanner=greedy MATCH (a), (b) RETURN * Returned GQLSTATUS code:: 01N02 -Returned Status description:: +Returned status description:: warn: feature deprecated without replacement. `connectComponentsPlanner` is deprecated and will be removed without a replacement. ====== @@ -2145,7 +2145,7 @@ GRANT ROLE admin TO john Returned GQLSTATUS code:: 00N71 -Returned Status description:: +Returned status description:: note: successful completion - role or privilege not assigned. `GRANT ROLE admin TO john` has no effect. The role or privilege is not assigned. @@ -2189,7 +2189,7 @@ REVOKE ROLE admin, reader FROM jane Returned GQLSTATUS code:: 00N71 -Returned Status description:: +Returned status description:: note: successful completion - role or privilege not assigned. `REVOKE ROLE reader FROM jane` has no effect. The role or privilege is not assigned. @@ -2234,7 +2234,7 @@ GRANT TRAVERSE ON GRAPH * TO reader Returned GQLSTATUS code:: 00N71 -Returned Status description:: +Returned status description:: note: successful completion - role or privilege not assigned. `GRANT TRAVERSE ON GRAPH * TO reader` has no effect. The role or privilege is not assigned. @@ -2278,7 +2278,7 @@ REVOKE WRITE ON GRAPH * FROM reader Returned GQLSTATUS code:: 00N71 -Returned Status description:: +Returned status description:: note: successful completion - role or privilege not assigned. `REVOKE DENY WRITE ON GRAPH * FROM reader` has no effect. The role or privilege is not assigned. @@ -2354,7 +2354,7 @@ REVOKE ROLE manager, reader FROM jane Returned GQLSTATUS code:: 01N70 -Returned Status description:: +Returned status description:: warn: impossible revoke command. `REVOKE ROLE manager FROM jane` has no effect. Role does not exist. @@ -2402,7 +2402,7 @@ REVOKE ROLE reader FROM alice Returned GQLSTATUS code:: 01N70 -Returned Status description:: +Returned status description:: warn: impossible revoke command. `REVOKE ROLE reader FROM alice` has no effect. User does not exist. @@ -2452,7 +2452,7 @@ REVOKE GRANT WRITE ON GRAPH * FROM manager Returned GQLSTATUS code:: 01N70 -Returned Status description:: +Returned status description:: warn: impossible revoke command. `REVOKE GRANT WRITE ON GRAPH * FROM manager` has no effect. Role does not exist. @@ -2499,7 +2499,7 @@ REVOKE GRANT WRITE ON GRAPH neo3j FROM editor Returned GQLSTATUS code:: 01N70 -Returned Status description:: +Returned status description:: warn: impossible revoke command. `REVOKE GRANT WRITE ON GRAPH neo3j FROM editor` has no effect. Database `neo3j` does not exist. @@ -2546,7 +2546,7 @@ REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor Returned GQLSTATUS code:: 01N70 -Returned Status description:: +Returned status description:: warn: impossible revoke command. `REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor` has no effect. Database `neo3j` does not exist. @@ -2612,7 +2612,7 @@ REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC Returned GQLSTATUS code:: 01N70 -Returned Status description:: +Returned status description:: warn: impossible revoke command. `REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC` has no effect. Database `*` does not exist. @@ -2679,7 +2679,7 @@ REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC Returned GQLSTATUS code:: 01N70 -Returned Status description:: +Returned status description:: warn: impossible revoke command. `REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC` has no effect. Database `*` does not exist. @@ -2758,7 +2758,7 @@ CREATE DATABASE foo TOPOLOGY 2 PRIMARIES Returned GQLSTATUS code:: 00N83 -Returned Status description:: +Returned status description:: note: successful completion - cordoned servers existed during allocation. Cordoned servers existed when making an allocation decision. Server(s) `123e4567-e89b-12d3-a456-426614174000` are cordoned. @@ -2831,7 +2831,7 @@ REALLOCATE DATABASES Returned GQLSTATUS code:: 00N82 -Returned Status description:: +Returned status description:: note: successful completion - no databases reallocated. `REALLOCATE DATABASES` has no effect. No databases were reallocated. @@ -2998,7 +2998,7 @@ CREATE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (n:Label) ON (n.property) Returned GQLSTATUS code:: 00NA0 -Returned Status description:: +Returned status description:: note: successful completion - index or constraint already exists. `CREATE RANGE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (e:Label) ON (e.property)` has no effect. `RANGE INDEX existingRangeIndex FOR (e:Label) ON (e.property)` already exists. @@ -3049,7 +3049,7 @@ CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[r:REL_TYPE]-() ON (r.property) Returned GQLSTATUS code:: 00NA0 -Returned Status description:: +Returned status description:: note: successful completion - index or constraint already exists. `CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[e:REL_TYPE]-() ON (e.property)` has no effect. `RANGE INDEX myIndex FOR (e:Label) ON (e.property)` already exists. @@ -3100,7 +3100,7 @@ CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (n:Label) REQ Returned GQLSTATUS code:: 00NA0 -Returned Status description:: +Returned status description:: note: successful completion - index or constraint already exists. `CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (e:Label) REQUIRE (e.property) IS NODE KEY` has no effect. `CONSTRAINT nodeKeyLabelPropertyConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY` already exists. @@ -3152,7 +3152,7 @@ CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (n:Label2) REQUIRE (n.property2 Returned GQLSTATUS code:: 00NA0 -Returned Status description:: +Returned status description:: note: successful completion - index or constraint already exists. `CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (e:Label2) REQUIRE (e.property2) IS NOT NULL` has no effect. `CONSTRAINT myConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY` already exists. @@ -3229,7 +3229,7 @@ DROP INDEX nonExistingIndex IF EXISTS Returned GQLSTATUS code:: 00NA1 -Returned Status description:: +Returned status description:: note: successful completion - index or constraint does not exist. `DROP INDEX nonExistingIndex IF EXISTS` has no effect. `nonExistingIndex` does not exist. @@ -3275,7 +3275,7 @@ DROP CONSTRAINT nonExistingConstraint IF EXISTS Returned GQLSTATUS code:: 00NA1 -Returned Status description:: +Returned status description:: note: successful completion - index or constraint does not exist. `DROP CONSTRAINT nonExistingConstraint IF EXISTS` has no effect. `nonExistingConstraint` does not exist. @@ -3371,7 +3371,7 @@ RETURN * Returned GQLSTATUS code:: 03N60 -Returned Status description:: +Returned status description:: info: subquery variable shadowing. The variable `n` in the subquery uses the same name as a variable from the outer query. Use `WITH n` in the subquery to import the one from the outer scope unless you want it to be a new variable. @@ -3455,7 +3455,7 @@ RETURN param Returned GQLSTATUS code:: 01N60 -Returned Status description:: +Returned status description:: warn: parameter missing. The query plan cannot be cached and is not executable without `EXPLAIN` due to the undefined parameter(s) `$param`. Provide the parameter(s). @@ -3547,7 +3547,7 @@ MATCH ()-[r:R1&R2]->() RETURN r Returned GQLSTATUS code:: 01N61 -Returned Status description:: +Returned status description:: warn: unsatisfiable relationship type expression. The expression `R1&R2` cannot be satisfied because relationships must have exactly one type. ====== @@ -3616,7 +3616,7 @@ MATCH (:A)-[r]->(), ()-[r]->(:B) RETURN r Returned GQLSTATUS code:: 01N63 -Returned Status description:: +Returned status description:: warn: repeated relationship reference. `r` is repeated in `(:A)-[r]->(), ()-[r]->(:B)`, which leads to no results. @@ -3657,7 +3657,7 @@ MATCH ()-[r*]->()<-[r*]-() RETURN count(*) AS count Returned GQLSTATUS code:: 01N63 -Returned Status description:: +Returned status description:: warn: repeated relationship reference. `r` is repeated in `()-[r*]->()<-[r*]-()`, which leads to no results. ====== From 2305fbd3d78ec76fc2544cc8c832a8fe5106dc1a Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Wed, 17 Jul 2024 11:16:01 +0100 Subject: [PATCH 13/13] add missing notification and descriptions --- .../notifications/all-notifications.adoc | 216 ++++++++++++++---- 1 file changed, 167 insertions(+), 49 deletions(-) diff --git a/modules/ROOT/pages/notifications/all-notifications.adoc b/modules/ROOT/pages/notifications/all-notifications.adoc index 9b5872b9..c1f97b51 100644 --- a/modules/ROOT/pages/notifications/all-notifications.adoc +++ b/modules/ROOT/pages/notifications/all-notifications.adoc @@ -2697,72 +2697,134 @@ Use `DATABASE *` without the parameter to revoke the privilege on all databases. Topology notifications provide additional information related to managing databases and servers. -[#_neo_clientnotification_cluster_cordonedserversexistedduringallocation] -=== CordonedServersExistedDuringAllocation - -This notification is returned when a Cypher administration command triggers an allocation decision and some of the servers are cordoned. -For example, `CREATE DATABASE`, `ALTER DATABASE`, `DEALLOCATE DATABASES FROM SERVER[S]`, and `ALTER DATABASE` return this notification. However, `REALLOCATE DATABASES` requires that there are no cordoned servers and, therefore, does not return it. +[#_neo_clientnotification_cluster_serveralreadyenabled] +=== ServerAlreadyEnabled .Notification details [cols="<1s,<4"] |=== |Neo4j code -m|Neo.ClientNotification.Cluster.CordonedServersExistedDuringAllocation +m|Neo.ClientNotification.Cluster.ServerAlreadyEnabled |Title -a| Cordoned servers existed when making an allocation decision. +a| `` has no effect. |Description -a| Server(s) `%s` are cordoned. This can impact allocation decisions. +a|Server `%s` is already enabled. +Verify that this is the intended server. |Category m|TOPOLOGY |GQLSTATUS code -m|00N83 +m|00N80 |Status description -a|note: successful completion - cordoned servers existed during allocation. -Cordoned servers existed when making an allocation decision. -Server(s) `$server_list` are cordoned. -This can impact allocation decisions. +a|note: successful completion - server already enabled. +`ENABLE SERVER` has no effect. +Server `$server` is already enabled. +Verify that this is the intended server. |Classification m|TOPOLOGY |SeverityLevel m|INFORMATION |=== -.Cordoned servers existed during an allocation decision +.Enabling an already enabled server [.tabbed-example] ===== [.include-with-neo4j-code] ====== -The example assumes that you have a cluster with three servers, of which server `123e4567-e89b-12d3-a456-426614174000` is cordoned using the `dbms.cluster.cordonServer` procedure. Then the below command will return this notification. - Command:: + [source, cypher] ---- -CREATE DATABASE foo TOPOLOGY 2 PRIMARIES +ENABLE SERVER "123e4567-e89b-12d3-a456-426614174000" ---- Description of the returned code:: -Server(s) `123e4567-e89b-12d3-a456-426614174000` are cordoned. This can impact allocation decisions. +Server `123e4567-e89b-12d3-a456-426614174000` is already enabled. +Verify that this is the intended server. + ====== [.include-with-GQLSTATUS-code] ====== -The example assumes that you have a cluster with three servers, of which server `123e4567-e89b-12d3-a456-426614174000` is cordoned using the `dbms.cluster.cordonServer` procedure. Then the below command will return this notification. +Command:: ++ +[source, cypher] +---- +ENABLE SERVER "123e4567-e89b-12d3-a456-426614174000" +---- + +Returned GQLSTATUS code:: +00N80 + +Returned status description:: +note: successful completion - server already enabled. +`ENABLE SERVER` has no effect. +Server `123e4567-e89b-12d3-a456-426614174000` is already enabled. +Verify that this is the intended server. + +====== +===== +[#_neo_clientnotification_cluster_serveralreadycordoned] +=== ServerAlreadyCordoned + +.Notification details +[cols="<1s,<4"] +|=== +|Neo4j code +m|Neo.ClientNotification.Cluster.ServerAlreadyCordoned +|Title +a| `` has no effect. +|Description +a|Server `%s` is already cordoned. +Verify that this is the intended server. +|Category +m|TOPOLOGY +|GQLSTATUS code +m|00N81 +|Status description +a|note: successful completion - server already cordoned. +`CORDON SERVER` has no effect. +Server `$server` is already cordoned. +Verify that this is the intended server. +|Classification +m|TOPOLOGY +|SeverityLevel +m|INFORMATION +|=== + +.Cordoning an already cordoned server +[.tabbed-example] +===== +[.include-with-neo4j-code] +====== Command:: + [source, cypher] ---- -CREATE DATABASE foo TOPOLOGY 2 PRIMARIES +CORDON SERVER "123e4567-e89b-12d3-a456-426614174000" +---- + +Description of the returned code:: +Server `123e4567-e89b-12d3-a456-426614174000` is already cordoned. +Verify that this is the intended server. + +====== +[.include-with-GQLSTATUS-code] +====== +Command:: ++ +[source, cypher] +---- +CORDON SERVER "123e4567-e89b-12d3-a456-426614174000" ---- Returned GQLSTATUS code:: -00N83 +00N81 Returned status description:: -note: successful completion - cordoned servers existed during allocation. -Cordoned servers existed when making an allocation decision. -Server(s) `123e4567-e89b-12d3-a456-426614174000` are cordoned. -This can impact allocation decisions. +note: successful completion - server already cordoned. +`CORDON SERVER` has no effect. +Server `123e4567-e89b-12d3-a456-426614174000` is already cordoned. +Verify that this is the intended server. ====== ===== @@ -2849,83 +2911,141 @@ Then, a better allocation would move `foo` from server 1 to server 3, but if ser ====== ===== +[#_neo_clientnotification_cluster_cordonedserversexistedduringallocation] +=== CordonedServersExistedDuringAllocation -[#_neo_clientnotification_cluster_requestedtopologymatchedcurrenttopology] -=== RequestedTopologyMatchedCurrentTopology +This notification is returned when a Cypher administration command triggers an allocation decision and some of the servers are cordoned. +For example, `CREATE DATABASE`, `ALTER DATABASE`, `DEALLOCATE DATABASES FROM SERVER[S]`, and `ALTER DATABASE` return this notification. However, `REALLOCATE DATABASES` requires that there are no cordoned servers and, therefore, does not return it. .Notification details [cols="<1s,<4"] |=== |Neo4j code -m|Neo.ClientNotification.Cluster.RequestedTopologyMatchedCurrentTopology +m|Neo.ClientNotification.Cluster.CordonedServersExistedDuringAllocation |Title -a| `` has no effect. -|SeverityLevel -m|INFORMATION +a| Cordoned servers existed when making an allocation decision. +|Description +a| Server(s) `%s` are cordoned. This can impact allocation decisions. |Category m|TOPOLOGY +|GQLSTATUS code +m|00N83 +|Status description +a|note: successful completion - cordoned servers existed during allocation. +Cordoned servers existed when making an allocation decision. +Server(s) `$server_list` are cordoned. +This can impact allocation decisions. +|Classification +m|TOPOLOGY +|SeverityLevel +m|INFORMATION |=== -.Requested topology matched current topology +.Cordoned servers existed during an allocation decision [.tabbed-example] ===== [.include-with-neo4j-code] ====== -The example assumes that you have a cluster with three servers and a database `foo` with a topology of two primaries and one secondary. +The example assumes that you have a cluster with three servers, of which server `123e4567-e89b-12d3-a456-426614174000` is cordoned using the `dbms.cluster.cordonServer` procedure. Then the below command will return this notification. Command:: + [source, cypher] ---- -ALTER DATABASE foo SET TOPOLOGY 2 PRIMARIES 1 SECONDARY +CREATE DATABASE foo TOPOLOGY 2 PRIMARIES ---- Description of the returned code:: -The requested topology matched the current topology. No allocations were changed. +Server(s) `123e4567-e89b-12d3-a456-426614174000` are cordoned. This can impact allocation decisions. ====== [.include-with-GQLSTATUS-code] ====== +The example assumes that you have a cluster with three servers, of which server `123e4567-e89b-12d3-a456-426614174000` is cordoned using the `dbms.cluster.cordonServer` procedure. Then the below command will return this notification. +Command:: ++ +[source, cypher] +---- +CREATE DATABASE foo TOPOLOGY 2 PRIMARIES +---- + +Returned GQLSTATUS code:: +00N83 + +Returned status description:: +note: successful completion - cordoned servers existed during allocation. +Cordoned servers existed when making an allocation decision. +Server(s) `123e4567-e89b-12d3-a456-426614174000` are cordoned. +This can impact allocation decisions. ====== ===== -[#_neo_clientnotification_cluster_serveralreadyenabled] -=== ServerAlreadyEnabled + +[#_neo_clientnotification_cluster_requestedtopologymatchedcurrenttopology] +=== RequestedTopologyMatchedCurrentTopology .Notification details [cols="<1s,<4"] |=== |Neo4j code -m|Neo.ClientNotification.Cluster.ServerAlreadyEnabled +m|Neo.ClientNotification.Cluster.RequestedTopologyMatchedCurrentTopology |Title a| `` has no effect. -|SeverityLevel -m|INFORMATION +|Description +a|The requested topology matched the current topology. +No allocations were changed. |Category m|TOPOLOGY +|GQLSTATUS code +m|00N84 +|Status description +a|note: successful completion - requested topology matched current topology. +`ALTER DATABASE` has no effect. +The requested topology matched the current topology. +No allocations were changed. +|Classification +m|TOPOLOGY +|SeverityLevel +m|INFORMATION |=== -.Enabling an already enabled server +.Requested topology matched current topology [.tabbed-example] ===== [.include-with-neo4j-code] ====== +The example assumes that you have a cluster with three servers and a database `foo` with a topology of two primaries and one secondary. + Command:: + [source, cypher] ---- -ENABLE SERVER "123e4567-e89b-12d3-a456-426614174000" +ALTER DATABASE foo SET TOPOLOGY 2 PRIMARIES 1 SECONDARY ---- Description of the returned code:: -Server `123e4567-e89b-12d3-a456-426614174000` is already enabled. -Verify that this is the intended server. - +The requested topology matched the current topology. No allocations were changed. ====== [.include-with-GQLSTATUS-code] ====== +The example assumes that you have a cluster with three servers and a database `foo` with a topology of two primaries and one secondary. + +Command:: ++ +[source, cypher] +---- +ALTER DATABASE foo SET TOPOLOGY 2 PRIMARIES 1 SECONDARY +---- +Returned GQLSTATUS code:: +00N84 + +Returned status description:: +note: successful completion - requested topology matched current topology. +`ALTER DATABASE` has no effect. +The requested topology matched the current topology. +No allocations were changed. ====== ===== @@ -2948,7 +3068,7 @@ a|`` has no effect. |Description a|`` already exists. |Description -a| +a|`%s` already exists. |Category m|SCHEMA |GQLSTATUS code @@ -3179,9 +3299,7 @@ m|Neo.ClientNotification.Schema.IndexOrConstraintDoesNotExist |Title a|`` has no effect. |Description -a|`` does not exist. -|Description -a| +a|`%s` does not exist. |Category m|SCHEMA |GQLSTATUS code