From 9975dc3563dc056534aa96bbacb3248d10b7e5c0 Mon Sep 17 00:00:00 2001 From: anjaliIthapeTG Date: Wed, 15 Jan 2025 16:46:11 +0530 Subject: [PATCH 001/194] Creating dev branch from base branch --- antora.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/antora.yml b/antora.yml index 216b4904..5c61eefe 100644 --- a/antora.yml +++ b/antora.yml @@ -1,7 +1,7 @@ name: gsql-ref title: GSQL Language Reference -version: "4.1" -display_version: "4.1" +version: "4.2 Pre" +display_version: "4.2 Pre" start_page: intro:index.adoc nav: From ee3765642cec4d069afd43456110b5cdcfa3d860 Mon Sep 17 00:00:00 2001 From: anjaliIthapeTG Date: Thu, 13 Feb 2025 14:49:46 +0530 Subject: [PATCH 002/194] Update openCypher-in-gsql.adoc --- .../pages/openCypher-in-gsql.adoc | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/modules/openCypher-in-gsql/pages/openCypher-in-gsql.adoc b/modules/openCypher-in-gsql/pages/openCypher-in-gsql.adoc index 77a72688..526594e7 100644 --- a/modules/openCypher-in-gsql/pages/openCypher-in-gsql.adoc +++ b/modules/openCypher-in-gsql/pages/openCypher-in-gsql.adoc @@ -324,3 +324,42 @@ WHERE x.friendCount = y.friendCount * Pattern fragments (x:user) and (y:user) *are not* connected by edge traversal or by sharing vertex variables. +== Key Differences: GSQL vs. OpenCypher + +GSQL is strongly typed and **schema-first**, while OpenCypher is **schema-optional**. This fundamental difference impacts how OpenCypher queries behave in each system. + +=== Example: OpenCypher Query Behavior + +Consider the following OpenCypher query: + +[source,gsql] +MATCH (p) +RETURN p.firstName, p.year + +==== How GSQL Interprets This Query + +Since GSQL enforces a predefined schema, the query: + +* Only considers vertex types that contain both `firstName` and `year` attributes +* Returns values only if both attributes exist in a given vertex type + +If a vertex type does not have both attributes, it is ignored entirely. + +==== How OpenCypher Interprets This Query + +OpenCypher does not enforce a schema, so the query: + +* Processes all vertex types, regardless of their attributes +* Returns values for existing attributes but returns `NULL` for attributes that do not exist + +==== Importance + +For users migrating from OpenCypher to GSQL, it is important to understand that: + +* In GSQL, queries must align with the predefined schema. +* Unlike OpenCypher, GSQL does not return NULL for missing attributes—if a vertex does not contain all required attributes, it is not included in the result. +* A query attempting to access a non-existent attribute in GSQL may either return no results or be rejected if no matching vertex type exists. + +By understanding this distinction, users can write more effective OpenCypher queries tailored to GSQL’s schema-first approach. + + From 8a78d1d55a31b9d8e029fd346572dba8e109c847 Mon Sep 17 00:00:00 2001 From: anjaliIthapeTG Date: Thu, 13 Feb 2025 15:12:09 +0530 Subject: [PATCH 003/194] DOC-2461-support-cypher-we-need-to-add-this-tutorial-4.2.0 --- modules/openCypher-in-gsql/nav.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/openCypher-in-gsql/nav.adoc b/modules/openCypher-in-gsql/nav.adoc index c77a3da7..0005ee94 100644 --- a/modules/openCypher-in-gsql/nav.adoc +++ b/modules/openCypher-in-gsql/nav.adoc @@ -1,4 +1,5 @@ * openCypher +** link:https://github.com/tigergraph/ecosys/blob/master/demos/guru_scripts/docker/tutorial/4.x/Cypher.md[OpenCypher Tutorial (on GitHub)] ** xref:openCypher-in-gsql.adoc[] ** xref:openCypher-in-gsql-web-shell.adoc[] ** xref:openCypher-gsql-from-clause-extension.adoc[] From e104f6a816943c911f45083b83cd6f16e46ec076 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 13 Feb 2025 18:41:03 +0530 Subject: [PATCH 004/194] DOC-2414-Updated String Pattern in Like Expression [4.2] --- .../pages/operators-and-expressions.adoc | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/modules/querying/pages/operators-and-expressions.adoc b/modules/querying/pages/operators-and-expressions.adoc index 93fe5521..1b1c5d3e 100644 --- a/modules/querying/pages/operators-and-expressions.adoc +++ b/modules/querying/pages/operators-and-expressions.adoc @@ -325,9 +325,30 @@ Every attribute value stored in GSQL is a valid value, so IS NULL and IS NOT NUL expr [NOT] LIKE expr [ESCAPE escape_char] ---- -The `LIKE` operator is used for string pattern matching and can only be used in `WHERE` clauses. The expression `string1 LIKE string_pattern` evaluates to boolean true if `string1` matches the pattern in `string_pattern`; otherwise, it is false. +The `LIKE` operator is used for string pattern matching in GSQL and can only be used in `WHERE` clauses. The expression `string1 LIKE string_pattern` evaluates to `true` if `string1` matches the pattern specified in `string_pattern`; otherwise, it evaluates to `false`. -Both operands must be strings. Additionally, while `string1` can be a function call (e.g. `lower(string_variable)`, `string_pattern` must be a string literal or a parameter. `string_pattern` cannot be the result of concatenating other strings, nor can it be a function call. +In previous versions, the `string_pattern` operand had to be a string literal or a parameter. Additionally, it could not be the result of concatenating other strings or the result of a function call. +However, in 4.2, the operand, `string_pattern`, can now be any expression. This includes string concatenation, function calls, or other valid expressions. + +For example, the following is now valid in GSQL: + +[source,gsql] +---- +CREATE OR REPLACE QUERY like_with_func(string str2="%lliH nomaD htiw%"){ + STRING str1 = "%Benjamin% Franklin%"; + + Message = SELECT t FROM Person:s -(LIKES>:e1)- :mid -(REPLY_OF>:e2) - :t + WHERE t.content LIKE lpad(str1, 10) + OR t.content LIKE replace("Et Salvador", "t", "l") + OR t.content LIKE reverse(str2) + ORDER BY t.id DESC + LIMIT 20; + + PRINT Message; +} +---- + +The restriction that `string_pattern` must be a string literal or parameter has been lifted in 4.2. Now, function calls like `lpad()` or `replace()` and expressions like `reverse(str2)` can be used to define the pattern. A `string_pattern` can contain characters as well as the following wildcard and other special symbols, in order to express a pattern (`` indicates a placeholder): @@ -805,4 +826,4 @@ GSQL > RUN QUERY expression_stmnt_ex() include::appendix:example$work_net/operators_expressions_expression_statement_results.json[] ---- -- -==== \ No newline at end of file +==== From c5c4c5594c2f9933d651acdf8a0b1c360a8c8270 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 14 Feb 2025 11:21:25 +0530 Subject: [PATCH 005/194] DOC-2414-Changes Done --- .../pages/operators-and-expressions.adoc | 45 ++++++++++++++++--- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/modules/querying/pages/operators-and-expressions.adoc b/modules/querying/pages/operators-and-expressions.adoc index 1b1c5d3e..c90a82de 100644 --- a/modules/querying/pages/operators-and-expressions.adoc +++ b/modules/querying/pages/operators-and-expressions.adoc @@ -325,10 +325,9 @@ Every attribute value stored in GSQL is a valid value, so IS NULL and IS NOT NUL expr [NOT] LIKE expr [ESCAPE escape_char] ---- -The `LIKE` operator is used for string pattern matching in GSQL and can only be used in `WHERE` clauses. The expression `string1 LIKE string_pattern` evaluates to `true` if `string1` matches the pattern specified in `string_pattern`; otherwise, it evaluates to `false`. +The `LIKE` operator is used for string pattern matching in GSQL and can be used just like any other condition in the query. The expression `string1 LIKE string_pattern` evaluates to `true` if `string1` matches the pattern specified in `string_pattern`; otherwise, it evaluates to `false`. -In previous versions, the `string_pattern` operand had to be a string literal or a parameter. Additionally, it could not be the result of concatenating other strings or the result of a function call. -However, in 4.2, the operand, `string_pattern`, can now be any expression. This includes string concatenation, function calls, or other valid expressions. +In 4.2, the operand `string_pattern` can now be any expression. This includes string concatenation, function calls, or other valid expressions, which can be used directly in the `LIKE` operator. For example, the following is now valid in GSQL: @@ -417,13 +416,19 @@ The first `"%"` has its usual pattern-matching meaning "zero or more characters" [tabs] ==== -Query Without Parameters:: +Query with Constant Strings:: + -- .Example query using LIKE operator [source,gsql] ---- -include::appendix:example$social_net/operators_expressions_query_without_parameters.gsql[] +CREATE QUERY print_a_posts() FOR GRAPH Social_Net { + posts = {Post.*}; + a_posts = SELECT v FROM posts:v + // Returns all posts with the character "a" in the subject + WHERE v.subject LIKE "%a%"; + PRINT a_posts; +} ---- -- Query With Parameters:: @@ -432,8 +437,36 @@ Query With Parameters:: .Example parameterized query [source,gsql] ---- -include::appendix:example$social_net/operators_expressions_query_with_parameters.gsql[] +CREATE QUERY print_posts(STRING search_string) FOR GRAPH Social_Net { + STRING search_param; + search_param = "%" + search_string + "%"; + posts = {Post.*}; + a_posts = SELECT v FROM posts:v + // Returns all posts with the search_string in the subject + WHERE v.subject LIKE search_param; + PRINT a_posts; +} +---- +-- +Query with Complex Expressions:: ++ +-- +.Example query using the LIKE operator with complex expressions: +[source,gsql] +---- +CREATE OR REPLACE QUERY like_with_func(string str2="%lliH nomaD htiw%"){ + STRING str1 = "%Benjamin% Franklin%"; + + Message = SELECT t FROM Person:s -(LIKES>:e1)- :mid -(REPLY_OF>:e2) - :t + WHERE t.content LIKE lpad(str1, 10) + OR t.content LIKE replace("Et Salvador", "t", "l") + OR t.content LIKE reverse(str2) + ORDER BY t.id DESC + LIMIT 20; + + PRINT Message; +} ---- -- Results:: From 5766ade7cd5326cfc58d224e7676605532328b21 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 14 Feb 2025 11:26:41 +0530 Subject: [PATCH 006/194] DOC-2414 --- modules/querying/pages/operators-and-expressions.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/operators-and-expressions.adoc b/modules/querying/pages/operators-and-expressions.adoc index c90a82de..74323e09 100644 --- a/modules/querying/pages/operators-and-expressions.adoc +++ b/modules/querying/pages/operators-and-expressions.adoc @@ -452,7 +452,7 @@ CREATE QUERY print_posts(STRING search_string) FOR GRAPH Social_Net { Query with Complex Expressions:: + -- -.Example query using the LIKE operator with complex expressions: +.Example query using the LIKE operator with complex expressions [source,gsql] ---- CREATE OR REPLACE QUERY like_with_func(string str2="%lliH nomaD htiw%"){ From c3d2ae82647158324011f2e6146da0c072dab59b Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Mon, 17 Feb 2025 23:55:07 -0500 Subject: [PATCH 007/194] DOC-2384-case-expressions --- .../pages/control-flow-statements.adoc | 4 +- .../pages/operators-and-expressions.adoc | 136 +++++++++--------- 2 files changed, 75 insertions(+), 65 deletions(-) diff --git a/modules/querying/pages/control-flow-statements.adoc b/modules/querying/pages/control-flow-statements.adoc index 708451bf..585c1bf4 100644 --- a/modules/querying/pages/control-flow-statements.adoc +++ b/modules/querying/pages/control-flow-statements.adoc @@ -2,7 +2,9 @@ :description: Reference for control flow statements in the GSQL query language. :stem: latexmath -The GSQL Query Language includes a comprehensive set of control flow statements to empower sophisticated graph traversal and data computation: `IF/ELSE`, `CASE`, `WHILE`, and `FOREACH`. +The GSQL Query Language includes a comprehensive set of control flow statements to empower sophisticated graph traversal and data computation with _conditional_ (`IF/ELSE`, `CASE`) and _iterative_ (`WHILE`, and `FOREACH`) execution. + +You may also be interested in xref:operators-and-expressions.adoc#_case_expressions[CASE expressions]. [#_differences_in_block_syntax] == Differences in Block Syntax diff --git a/modules/querying/pages/operators-and-expressions.adoc b/modules/querying/pages/operators-and-expressions.adoc index 93fe5521..a312e28d 100644 --- a/modules/querying/pages/operators-and-expressions.adoc +++ b/modules/querying/pages/operators-and-expressions.adoc @@ -1,69 +1,10 @@ = Operators and Expressions -An _expression_ is a combination of fixed values, variables, operators, function calls, and groupings that specify a computation, resulting in a data value. This section of the specification describes the literals (fixed values), operators, and functions available in the GSQL query language. It covers the subset of the EBNF definitions shown below. - -However, more so than in other sections of the specification, syntax alone is not an adequate description. The semantics (functionality) of the particular operators and functions are an essential complement to the syntax. - -.EBNF for Operations, Functions, and Expressions -[source,ebnf] ----- -constant := numeric | stringLiteral | TRUE | FALSE | GSQL_UINT_MAX - | GSQL_INT_MAX | GSQL_INT_MIN | TO_DATETIME "(" stringLiteral ")" - -mathOperator := "*" | "/" | "%" | "+" | "-" | "<<" | ">>" | "&" | "|" - -condition := expr - | expr comparisonOperator expr - | expr [ NOT ] IN setBagExpr - | expr IS [ NOT ] NULL - | expr BETWEEN expr AND expr - | "(" condition ")" - | NOT condition - | condition (AND | OR) condition - | (TRUE | FALSE) - | expr [NOT] LIKE expr [ESCAPE escape_char] - -comparisonOperator := "<" | "<=" | ">" | ">=" | "==" | "!=" - -aggregator := COUNT | MAX | MIN | AVG | SUM - -expr := name - | globalAccumName - | name ".type" - | name "." name - | name "." localAccumName ["\'"] - | name "." name "." name "(" [argList] ")" - | name "." name "(" [argList] ")" [ "." FILTER "(" condition ")" ] - | name ["<" type ["," type]* ">"] "(" argList] ")" - | name "." localAccumName ("." name "(" [argList] ")")+ ["." name] - | globalAccumName ("."name "(" [argList] ")")+ ["."name] - | COALESCE "(" [argList] ")" - | aggregator "(" [DISTINCT] setBagExpr ")" - | ISEMPTY "(" setBagExpr ")" - | expr mathOperator expr - | "-" expr - | "(" expr ")" - | "(" argList "->" argList ")" // key value pair for MapAccum - | "[" argList "]" // a list - | constant - | setBagExpr - | name "(" argList ")" // function call or a tuple object - -setBagExpr := name - | globalAccumName - | name "." name - | name "." localAccumName - | name "." localAccumName ("." name "(" [argList] ")")+ - | name "." name "(" [argList] ")" [ "." FILTER "(" condition ")" ] - | globalAccumName ("." name "(" [argList] ")")+ - | setBagExpr (UNION | INTERSECT | MINUS) setBagExpr - | "(" argList ")" - | "(" setBagExpr ")" - - -argList := expr ["," expr]* ----- +An _expression_ is a combination of fixed values, variables, operators, function calls, and groupings that specify a computation, resulting in a data value. This section of the specification describes the literals (fixed values), operators, and functions available in the GSQL query language. +This section focuses on xref:_constants[constants], xref:_vertex_edge_and_accumulator_attributes[vertex and edge attributes], xref:_operators[operators], and xref:_subqueries[subqueries]. +Because xref:func/index.adoc[] are so numerous, they are covered in their own section. +Beginning in versions 4.1.2 and 4.2.0, xref:_case_expressions[CASE expressions] are also available. == Constants @@ -379,7 +320,7 @@ Then: * The actual value of `Vertex.attribute` in the graph is `"\\abc"`. The size of the string is 4, because the first backslash is used to escape the second backslash and doesn't count towards the size of the string. -* `Vertex.attribute == "\\abc"` returns true, because a backslash is required to escape the other backslash. +* `Vertex.attribute == "\\abc"` returns true, because a backslash is required to escape the other backslash. * `Vertex.attribute LIKE "\\\\abc"` returns true, because it takes two backslashes in a string pattern to match one backslash in a string. ==== @@ -598,6 +539,73 @@ include::appendix:example$social_net/operators_expressions_set_membership_result ==== +[#_case_expressions] +== CASE Expressions + +Available in version 4.1.2+ + +A CASE expression provides a set of possible resulting values, each one associated with a different conditional test. +The conditions are presented in a sequence of `WHEN... THEN` clauses, so that the `CASE` expression as a whole is assigned the value of the first condition that is true. +Any conditions that come after the first true condition are skipped. +If none of the conditions are true, then the `ELSE` clause sets the value. + +Two forms of the CASE expression are available. The first is the general form: + + +.General CASE syntax +[source,ebnf] +---- +caseExpr := + CASE + WHEN condition THEN value + [WHEN condition THEN value]* + ELSE value + END +---- + +==== Example +[source,ebnf] +---- +numDays = + CASE + WHEN (year % 400) == 0 THEN 366 + WHEN (year % 100) == 0 THEN 365 + WHEN (year % 4) == 0 THEN 366 + ELSE 365 +---- + +A second version of the `CASE` expression presents a single test expression at the outset. +Each `WHEN... THEN` clause presents its own expression (value). +The `CASE` expression selects the clause whose `WHEN` expression value is equal to the test expression's value. +Again, an `ELSE` clause is available. + +.CASE syntax with test expression +[source,ebnf] +---- +caseExprVar := + CASE testExpression + WHEN expression THEN value + [WHEN expression THEN value]* + ELSE value + END + +testExpression := expression +---- + +==== Example +[source,ebnf] +---- +points = + CASE event + WHEN "touchdown" THEN 6 + WHEN "kicked extra point" THEN 1 + WHEN "two point conversion" THEN 2 + WHEN "safety" THEN 2 + WHEN "field goal" THEN 3 + ELSE 0 + END +---- + [#_subqueries] == Subqueries From bda26d81a8877f2f998f92e475ccb72fdc0e764d Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 18 Feb 2025 00:01:10 -0500 Subject: [PATCH 008/194] DOC-2384-case-expressions --- modules/querying/pages/operators-and-expressions.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/querying/pages/operators-and-expressions.adoc b/modules/querying/pages/operators-and-expressions.adoc index a312e28d..8c29b1d3 100644 --- a/modules/querying/pages/operators-and-expressions.adoc +++ b/modules/querying/pages/operators-and-expressions.adoc @@ -545,7 +545,7 @@ include::appendix:example$social_net/operators_expressions_set_membership_result Available in version 4.1.2+ A CASE expression provides a set of possible resulting values, each one associated with a different conditional test. -The conditions are presented in a sequence of `WHEN... THEN` clauses, so that the `CASE` expression as a whole is assigned the value of the first condition that is true. +The conditions are presented in a sequence of `WHEN... THEN` clauses, so that the `CASE` expression as a whole is assigned the value associated with the first condition that is true. Any conditions that come after the first true condition are skipped. If none of the conditions are true, then the `ELSE` clause sets the value. @@ -575,7 +575,7 @@ numDays = ---- A second version of the `CASE` expression presents a single test expression at the outset. -Each `WHEN... THEN` clause presents its own expression (value). +Each `WHEN... THEN` clause presents its own expression. The `CASE` expression selects the clause whose `WHEN` expression value is equal to the test expression's value. Again, an `ELSE` clause is available. From 3c591099cca59fa541d8d2348fb81d3eef1c778d Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 18 Feb 2025 17:43:19 +0530 Subject: [PATCH 009/194] DOC-2448-Changed the Allowed values of SEPARATOR for loading jobs --- modules/ddl-and-loading/partials/load-statement.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/ddl-and-loading/partials/load-statement.adoc b/modules/ddl-and-loading/partials/load-statement.adoc index d65d1851..fe74f825 100644 --- a/modules/ddl-and-loading/partials/load-statement.adoc +++ b/modules/ddl-and-loading/partials/load-statement.adoc @@ -242,12 +242,12 @@ Therefore, we recommend that if multiple destination clauses share the same sour (columns) in the data file. a| -Any single ASCII character. +Any ASCII characters, maximum length is 24. Default: comma `,` -* `\t for tab` -* `\xy` for ASCII decimal code `xy` +* `|#|` for pipe-hash-pipe +* `\t\xy` for the combination of `tab` and ASCII decimal code `xy` |`EOL` |Specifies the end-of-line character. From 3122a02518f073d7bc9ab8bed2312e9d9652a850 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 18 Feb 2025 17:52:52 +0530 Subject: [PATCH 010/194] DOC-2448-Changes Done --- modules/ddl-and-loading/partials/load-statement.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/partials/load-statement.adoc b/modules/ddl-and-loading/partials/load-statement.adoc index fe74f825..112ad677 100644 --- a/modules/ddl-and-loading/partials/load-statement.adoc +++ b/modules/ddl-and-loading/partials/load-statement.adoc @@ -246,8 +246,8 @@ Any ASCII characters, maximum length is 24. Default: comma `,` -* `|#|` for pipe-hash-pipe -* `\t\xy` for the combination of `tab` and ASCII decimal code `xy` +* |#| for pipe-hash-pipe +* \t\xy for the combination of `tab` and ASCII decimal code `xy` |`EOL` |Specifies the end-of-line character. From 1762d0ae546c9b9a593ee36640d08f2c5ea2b66c Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 18 Feb 2025 17:58:25 +0530 Subject: [PATCH 011/194] Checking for escaping --- modules/ddl-and-loading/partials/load-statement.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/partials/load-statement.adoc b/modules/ddl-and-loading/partials/load-statement.adoc index 112ad677..38dc7895 100644 --- a/modules/ddl-and-loading/partials/load-statement.adoc +++ b/modules/ddl-and-loading/partials/load-statement.adoc @@ -246,8 +246,8 @@ Any ASCII characters, maximum length is 24. Default: comma `,` -* |#| for pipe-hash-pipe -* \t\xy for the combination of `tab` and ASCII decimal code `xy` +* `\t for tab` +* `\xy` for ASCII decimal code `xy` |`EOL` |Specifies the end-of-line character. From ca2e54a17888b3e5b82ce577ce2d7cb6fb972d0c Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 18 Feb 2025 18:06:43 +0530 Subject: [PATCH 012/194] DOC-2448-Escaping done --- modules/ddl-and-loading/partials/load-statement.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/partials/load-statement.adoc b/modules/ddl-and-loading/partials/load-statement.adoc index 38dc7895..b6d00d75 100644 --- a/modules/ddl-and-loading/partials/load-statement.adoc +++ b/modules/ddl-and-loading/partials/load-statement.adoc @@ -246,8 +246,8 @@ Any ASCII characters, maximum length is 24. Default: comma `,` -* `\t for tab` -* `\xy` for ASCII decimal code `xy` +* `|#| for pipe-hash-pipe` +* `\t\xy` for the combination of `tab` and ASCII decimal code `xy` |`EOL` |Specifies the end-of-line character. From bbb294bba66a4d72712d00c608c00187e9e3378a Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 18 Feb 2025 18:16:26 +0530 Subject: [PATCH 013/194] DOC-2448-Changed Escaping --- modules/ddl-and-loading/partials/load-statement.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/partials/load-statement.adoc b/modules/ddl-and-loading/partials/load-statement.adoc index b6d00d75..27403106 100644 --- a/modules/ddl-and-loading/partials/load-statement.adoc +++ b/modules/ddl-and-loading/partials/load-statement.adoc @@ -246,7 +246,7 @@ Any ASCII characters, maximum length is 24. Default: comma `,` -* `|#| for pipe-hash-pipe` +* `\|#| for pipe-hash-pipe` * `\t\xy` for the combination of `tab` and ASCII decimal code `xy` |`EOL` From 324099ab3c2afadf364b854eed818a0fb9ac01ab Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 18 Feb 2025 18:18:54 +0530 Subject: [PATCH 014/194] DOC-2448-Preventing Escaping --- modules/ddl-and-loading/partials/load-statement.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/partials/load-statement.adoc b/modules/ddl-and-loading/partials/load-statement.adoc index 27403106..26717f63 100644 --- a/modules/ddl-and-loading/partials/load-statement.adoc +++ b/modules/ddl-and-loading/partials/load-statement.adoc @@ -246,7 +246,7 @@ Any ASCII characters, maximum length is 24. Default: comma `,` -* `\|#| for pipe-hash-pipe` +* \|#\| for pipe-hash-pipe * `\t\xy` for the combination of `tab` and ASCII decimal code `xy` |`EOL` From 3ddca21be3e6baac885ff920b01a1ade2bc170e6 Mon Sep 17 00:00:00 2001 From: srinadhmamidalaTG Date: Thu, 20 Feb 2025 17:51:07 +0530 Subject: [PATCH 015/194] DOC-2387-reduce-operation-between-group-by-accums-should-require-same-field-names-4-2 --- modules/querying/pages/accumulators.adoc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index 2c7699ac..bccaa874 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -1503,6 +1503,12 @@ GroupByAccum In the EBNF above, the *type* terms form the key set, and the *accumType* terms form the map's value. Since they are accumulators, they perform a grouping. Like a MapAccum, if we try to store a (key->value) whose key has already been used, then the new value will accumulate to the data which is already stored. In this case, each field of the multiple-field value has its own accumulation function. One way to think about GroupByAccum is that each unique key is a group ID. +[WARNING] +==== +Currently, operations between different GroupByAccums with the same data types but different field names are not supported. These queries may pass semantic checks but will fail during query compilation with a Type Check Error. + +==== + In GroupByAccum, the key types can be base type or tuple. The accumulators are used for aggregating group values. Each accumulator type can be any type including HeapAccum. Each base type and each accumulator type must be followed an alias. Below is an example declaration. [source,gsql] From 78340da6bd526737a3d38a676cdb70d385382967 Mon Sep 17 00:00:00 2001 From: srinadhmamidalaTG Date: Thu, 20 Feb 2025 19:12:34 +0530 Subject: [PATCH 016/194] To Remove blank space --- modules/querying/pages/accumulators.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index bccaa874..c86cb2de 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -1506,7 +1506,6 @@ In this case, each field of the multiple-field value has its own accumulation fu [WARNING] ==== Currently, operations between different GroupByAccums with the same data types but different field names are not supported. These queries may pass semantic checks but will fail during query compilation with a Type Check Error. - ==== In GroupByAccum, the key types can be base type or tuple. The accumulators are used for aggregating group values. Each accumulator type can be any type including HeapAccum. Each base type and each accumulator type must be followed an alias. Below is an example declaration. From 9d89ee4e7c42a9ef07666c0b281e2cd378ae4264 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 21 Feb 2025 18:39:49 +0530 Subject: [PATCH 017/194] DOC-2448-Description column modified --- modules/ddl-and-loading/partials/load-statement.adoc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/ddl-and-loading/partials/load-statement.adoc b/modules/ddl-and-loading/partials/load-statement.adoc index 26717f63..0fc52826 100644 --- a/modules/ddl-and-loading/partials/load-statement.adoc +++ b/modules/ddl-and-loading/partials/load-statement.adoc @@ -238,17 +238,16 @@ Therefore, we recommend that if multiple destination clauses share the same sour |=== |Parameter | Description |Allowed values |`SEPARATOR` -|Specifies the special character that separates tokens -(columns) in the data file. +|Specifies the special character or character sequence that separates tokens (columns) in the data file. Examples of character sequences: + +* \|#\| +* `\t\xy` for the combination of `tab` and ASCII decimal code `xy` a| Any ASCII characters, maximum length is 24. Default: comma `,` -* \|#\| for pipe-hash-pipe -* `\t\xy` for the combination of `tab` and ASCII decimal code `xy` - |`EOL` |Specifies the end-of-line character. a| From 58c48883a345744c8ad16f4bd4b6e8089e047fa5 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 21 Feb 2025 18:46:13 +0530 Subject: [PATCH 018/194] DOC-2448-Description updated --- modules/ddl-and-loading/partials/load-statement.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/partials/load-statement.adoc b/modules/ddl-and-loading/partials/load-statement.adoc index 0fc52826..c1884525 100644 --- a/modules/ddl-and-loading/partials/load-statement.adoc +++ b/modules/ddl-and-loading/partials/load-statement.adoc @@ -238,7 +238,7 @@ Therefore, we recommend that if multiple destination clauses share the same sour |=== |Parameter | Description |Allowed values |`SEPARATOR` -|Specifies the special character or character sequence that separates tokens (columns) in the data file. Examples of character sequences: +a|Specifies the special character or character sequence that separates tokens (columns) in the data file. Examples of character sequences, * \|#\| * `\t\xy` for the combination of `tab` and ASCII decimal code `xy` From 679998c71ef1bfcaa557fe1b03533040bc00e236 Mon Sep 17 00:00:00 2001 From: anjaliIthapeTG Date: Wed, 26 Feb 2025 15:53:38 +0530 Subject: [PATCH 019/194] To add a Known issue section --- modules/querying/pages/accumulators.adoc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index c86cb2de..35c6218f 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -1503,10 +1503,11 @@ GroupByAccum In the EBNF above, the *type* terms form the key set, and the *accumType* terms form the map's value. Since they are accumulators, they perform a grouping. Like a MapAccum, if we try to store a (key->value) whose key has already been used, then the new value will accumulate to the data which is already stored. In this case, each field of the multiple-field value has its own accumulation function. One way to think about GroupByAccum is that each unique key is a group ID. -[WARNING] -==== -Currently, operations between different GroupByAccums with the same data types but different field names are not supported. These queries may pass semantic checks but will fail during query compilation with a Type Check Error. -==== + +==== Known Issue + +* Currently, operations between different GroupByAccums with the same data types but different field names are not supported. These queries may pass semantic checks but will fail during query compilation with a Type Check Error. + In GroupByAccum, the key types can be base type or tuple. The accumulators are used for aggregating group values. Each accumulator type can be any type including HeapAccum. Each base type and each accumulator type must be followed an alias. Below is an example declaration. From 76317e663598d742688f39913f68034ac0e79d08 Mon Sep 17 00:00:00 2001 From: anjaliIthapeTG Date: Thu, 27 Feb 2025 14:48:14 +0530 Subject: [PATCH 020/194] DOC-2477-clone-add-gadmin-configuration-gsql-github-enabled-4-2 --- modules/ddl-and-loading/pages/add-token-function.adoc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/pages/add-token-function.adoc b/modules/ddl-and-loading/pages/add-token-function.adoc index 267985e2..37c0c2cd 100644 --- a/modules/ddl-and-loading/pages/add-token-function.adoc +++ b/modules/ddl-and-loading/pages/add-token-function.adoc @@ -153,7 +153,13 @@ The `gadmin` configuration parameters for setting up the connection to GitHub ar | `GSQL.GithubBranch` | The branch to access | `main` | `GSQL.GithubPath` | Path to the directory in the repository that has `TokenBank.cpp` | `src/` | `GSQL.GithubUrl` | Optional parameter used for GitHub Enterprise | `https://api.github.com` +| `GSQL.GithubEnabled` | To Enable the retrieval of UDFs (such as ExprFunctions.hpp, ExprUtils.hpp, etc.) from GitHub (default `false`). | `false` |=== + +[NOTE] +==== +If the configuration `GSQL.GithubUserAcessToken` is non-empty, the `GSQL.GithubEnabled` configuration will be set to `true` during upgrading +==== Use the xref:tigergraph-server:system-management:management-with-gadmin.adoc#_gadmin_config_set[`gadmin config set`] command to configure the aforementioned parameters to connect GSQL to the GitHub repository hosting your files. @@ -239,4 +245,4 @@ For best security practices, run the following commands to once more disable upl $ gadmin config set GSQL.UDF.EnablePutTokenBank false $ gadmin config apply $ gadmin restart gsql ----- \ No newline at end of file +---- From 66a250c8caffc4fd089f9d93c7c544825b3d0dab Mon Sep 17 00:00:00 2001 From: anjaliIthapeTG Date: Thu, 27 Feb 2025 14:52:32 +0530 Subject: [PATCH 021/194] Update query-user-defined-functions.adoc --- .../querying/pages/func/query-user-defined-functions.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index cfc81f82..32510643 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -133,7 +133,14 @@ The `gadmin` configuration parameters for setting up the connection to GitHub ar | `GSQL.GithubBranch` | The branch to access | `main` | `GSQL.GithubPath` | Path to the directory in the repository that has ExprFunctions.hpp and ExprUtil.hpp | `src/` | `GSQL.GithubUrl` | Optional parameter used for GitHub Enterprise | `https://api.github.com` +| `GSQL.GithubEnabled` | To Enable the retrieval of UDFs (such as ExprFunctions.hpp, ExprUtils.hpp, etc.) from GitHub (default `false`). | `false` |=== + +[NOTE] +==== +If the configuration `GSQL.GithubUserAcessToken` is non-empty, the `GSQL.GithubEnabled` configuration will be set to `true` during upgrading +==== + Use the xref:tigergraph-server:system-management:management-commands.adoc#_gadmin_config_set[`gadmin config set`] command to configure the aforementioned parameters to connect GSQL to the GitHub repository hosting your files. From 804275c3259b8ae71559a8905fe3d8db110c3125 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 27 Feb 2025 20:21:35 -0500 Subject: [PATCH 022/194] DOC-2451 Fix: set version = "4.2", not "4.2. pre" --- antora.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/antora.yml b/antora.yml index 5c61eefe..4f0ff644 100644 --- a/antora.yml +++ b/antora.yml @@ -1,6 +1,6 @@ name: gsql-ref title: GSQL Language Reference -version: "4.2 Pre" +version: "4.2" display_version: "4.2 Pre" start_page: intro:index.adoc From 17754e960d1e1313eb5bba0cbf95a3aad1130c4b Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 28 Feb 2025 15:45:47 +0530 Subject: [PATCH 023/194] DOC-2496-openCypher syntax-4.2.0-dev --- .../openCypher-in-gsql/pages/openCypher-in-gsql.adoc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/openCypher-in-gsql/pages/openCypher-in-gsql.adoc b/modules/openCypher-in-gsql/pages/openCypher-in-gsql.adoc index 526594e7..759c1e9f 100644 --- a/modules/openCypher-in-gsql/pages/openCypher-in-gsql.adoc +++ b/modules/openCypher-in-gsql/pages/openCypher-in-gsql.adoc @@ -7,6 +7,11 @@ TigerGraph's GSQL query language supports many openCypher features. This page li To see how to run openCypher on the TigerGraph platform, see xref:openCypher-in-gsql.adoc[]. +[NOTE] +==== +From version 4.1.2, certain restrictions on the `MATCH` and `WITH` clauses have been eliminated. +==== + == openCypher Features in GSQL === Clauses @@ -26,6 +31,8 @@ All associated relationships will automatically be deleted. |MATCH |Reading Specify the patterns to search for in the database. +See below for restrictions before version *4.1.2*. + |MANDATORY MATCH |Reading Specify the patterns to search for in the database, and fail if no match is found. |ORDER BY [ASC[ENDING] DESC[ENDING]] |Reading sub-clause A sub-clause following @@ -38,7 +45,7 @@ All associated relationships will automatically be deleted. |WITH … [AS] |Projecting Allows query parts to be chained together, piping the results from one to be used as starting points or criteria in the next. -See below for restrictions. +See below for restrictions before version *4.1.2*. |WHERE |Reading sub-clause A sub-clause used to add constraints to the patterns in a MATCH clause, or to filter the results of a WITH clause. |=== @@ -287,7 +294,7 @@ pattern expression) === Syntax -Certain openCypher syntax is also *not* supported. +These were limitations before *4.1.2* – certain openCypher syntax were not supported: * Queries with a *WITH* clause that *does not* implicitly group by exactly one vertex variable. From 4171942b7b79c1d690dea4e0c2a9b9e5a50affd6 Mon Sep 17 00:00:00 2001 From: srinadhmamidalaTG Date: Mon, 3 Mar 2025 13:12:02 +0530 Subject: [PATCH 024/194] Doc-2455-support-datetime-parameter-type-when-running-interpret-query-through-endpoint-api [4.2.0-dev] --- modules/querying/pages/func/datetime-functions.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/func/datetime-functions.adoc b/modules/querying/pages/func/datetime-functions.adoc index 2575b3cb..1935b5e9 100644 --- a/modules/querying/pages/func/datetime-functions.adoc +++ b/modules/querying/pages/func/datetime-functions.adoc @@ -136,7 +136,7 @@ The default value for this parameter is `+"%Y-%m-%d %H:%M:%S"+` [source,text] ---- -datetime_format(to_datetime("2020-01-02 05:30:12"), "hi, it's %Y-%m-%d") +(datetime_format("2020-01-02 05:30:12"), "hi, it's %Y-%m-%d") -> "hi, it's 2020-01-02" ---- From b0d0486b51a43e1d1fc2bc9b953690cda566ee97 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 4 Mar 2025 04:32:25 -0500 Subject: [PATCH 025/194] DOC-2543-vector --- antora.yml | 1 + modules/vector/nav.adoc | 1 + modules/vector/pages/index.adoc | 180 ++++++++++++++++++++++++ modules/vector/pages/vector-search.adoc | 6 + 4 files changed, 188 insertions(+) create mode 100644 modules/vector/nav.adoc create mode 100644 modules/vector/pages/index.adoc create mode 100644 modules/vector/pages/vector-search.adoc diff --git a/antora.yml b/antora.yml index 4f0ff644..2aee2d8a 100644 --- a/antora.yml +++ b/antora.yml @@ -11,4 +11,5 @@ nav: - modules/ddl-and-loading/nav.adoc - modules/querying/nav.adoc - modules/openCypher-in-gsql/nav.adoc +- modules/vector/nav.adoc - modules/appendix/nav.adoc diff --git a/modules/vector/nav.adoc b/modules/vector/nav.adoc new file mode 100644 index 00000000..53cd489c --- /dev/null +++ b/modules/vector/nav.adoc @@ -0,0 +1 @@ +* xref:vector:index.adoc[Using Vector Search] \ No newline at end of file diff --git a/modules/vector/pages/index.adoc b/modules/vector/pages/index.adoc new file mode 100644 index 00000000..b054507e --- /dev/null +++ b/modules/vector/pages/index.adoc @@ -0,0 +1,180 @@ += Vector Database Operations +:description: TigerGraph's vector database functionality: schema, write, read, index, and similarity search, and hybrid graph+vector search + +The TigerGraph database stores and indexes vectors efficiently, effectively serving as a multi-modal graph + vector database for AI applications. +The storage and indexing are distributed, so vector operations are fast and scalable. + +Each vector is associated with a vertex, serving as a specialty attribute. +The vertex holds the vector's ID and another properties or labels that to be associated with the vector. + +The vector search operations are implemented as functions which can be invoked from within GSQL graph queries. +This enables an extremely rich set of possibilities for hybrid graph+vector queries. + +[NOTE] +==== +This document is intended to be a quick reference to the available functionality. +For a tutorial and examples. see our link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[Vector Search tutorial]. +==== + +== Vector data and search specifications + +[cols="2,3"] +|=== + +| Element data type +| FLOAT (32-bit floating point) + +| Similarity metrics +| cosine, L2 (Euclidean) IP (inner product) + +| Approximate search algorithms +| HNSW + +| Indexing +| Automatic, incremental + +| Vector operations +| Load, Read, Exact Similarity Search, Approximate Similarity Search, Top-K Search, Hybrid Graph+Vector Search +|=== + +To make use of TigerGraph's vector capabilities: + +. Add vectors to the graph schema. +. Load vector data + + +== Creating a Vector Schema + +A vector attribute is always added to an existing vertex type, using the `ALTER VERTEX` statement with a `SCHEMA_CHANGE` job. +The `ADD VECTOR ATTRIBUTE` clause adds a vector, and `DROP VECTOR ATTRIBUTE` removed the attribute. + +[source,sql] +.Vector schema syntax +---- +ALTER VERTEX vertex_name ADD VECTOR ATTRIBUTE vec_name(vertex_params); + +where vertex_params = DIMENSION=dim, METRIC=metr [, IndexType=i_type] + +ALTER VERTEX vertex_name DROP VECTOR ATTRIBUTE vec_name; +---- + +The `metr` metric can be `"COSINE"`, `"L2"`, or `"IP"`. +Currently, the only valid value for `i_type` is `"HNSW"` + +Example: +[source,gsql] +---- +CREATE GLOBAL SCHEMA_CHANGE JOB add_emb2 { + ALTER VERTEX Account ADD VECTOR ATTRIBUTE emb2(DIMENSION=3, METRIC="L2"); +} +RUN GLOBAL SCHEMA_CHANGE JOB add_emb2 +---- + +== Loading Vectors + +Vectors are loaded using GSQL xref:ddl-and-loading:creating-a-loading-job.adoc[loading jobs]. +The can either be loaded to existing vertices or included when new vertices are being created. + +The vector data is presumed to be in some format such as CSV where one separator `field_sep` is used between fields like the vector ID and the vector itself. Another separator `elem_sep` separates the vector's elements from one another. + +[source,GSQL] +.Vector load clause syntax +---- +LOAD file_object TO VECTOR ATTRIBUTE vec_name ON VERTEX vertex_name \ +VALUES (id_col, SPLIT(vec_col, elem_sep) USING SEPARATOR = field_sep; + +---- + +Example: +[source,gsql] +---- +CREATE LOADING JOB load_s3_file { + + DEFINE FILENAME account; + DEFINE FILENAME accountEmb; +; + + LOAD account TO VERTEX Account VALUES ($"name", gsql_to_bool(gsql_trim($"isBlocked"))) USING header="true", separator=","; + LOAD accountEmb TO VECTOR ATTRIBUTE em1 ON VERTEX Account VALUES ($0, SPLIT($1, ",")) USING SEPARATOR="|"; +} +---- +`$0` is the first column, holding the vector IDs. +`$1` is the vector, with `"|"` separating them. +The vector itself is subdivided into elements, with `","` as the element separator. +Note the use of the split() to parse the vector. + +TigerGraph automatically builds an (HNSW) similarity index for the vectors as they are loaded, using the similarity metric that was specified when the vector schema was defined. +The vectors can be queried before the index is complete, but the search performance will be slower. + +== vectorSearch Function + +Once vectors are inserted, the database can be searched for vertices or vectors. +`vectorSearch` is a built-in function for vector similarity search. + +[source,GSQL] +.vectorSearch function syntax +---- +result = vectorSearch(vectorAttributes, queryVector, k, optionalParam) +---- +where `result` is a vertex set variable, storing the top-k most similar vertices. + +[cols="1,10"] +|=== + +| Parameter | Description + +| vectorAttributes +| A set of vector attributes to search. Each attribute should be in format `VertexType.VectorName`, e.g., `{Account.eb1, Phone.eb1}` + +| queryVector +| The query (input) vector from which similarity is measured. + +| k +| The number of vectors to return. E.g., if k = 10, `vectorSearch` finds the 10 vectors closest to `queryVector`. + +| optionalParam +a| A map of optional params: + +* vertex candidate set +* EF: the exploration factor in HNSW algorithm +* a global MapAccum storing top-k (vertex, distance score) pairs. + +E.g., `{candidate_set: vset1, ef: 20, distance_map: @@distmap}`. +|=== + +The meaning of the optional parameters is best explained by example. See the link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[Vector Search tutorial]. + +== Other Vector Functions + +The Vector Search tutorial has list of link:https://github.com/tigergraph/ecosys/blob/master/demos/guru_scripts/docker/tutorial/4.x/VectorSearch.md#vector-built-in-functions[built-in vector functions]. + +== Printing Vectors + +Note that the `vectorSearch` function returns a set of vertices. +That is, even if the search criteria is vector-based, the function returns the set of vertices associated with the chosen set of vectors. +This is logical since the vertices possess the IDs of the vectors. + +If a `PRINT` statement is printing a set of vertices, including the `WITH VECTOR` causes GSQL to also print the vector values. +Due to the large size of vectors, this option is usually used when writing the output directly to a file or object store. + +Here is a simple example of a query with a `WITH VECTOR` clause + +[source,gsql] +---- +CREATE OR REPLACE QUERY q1 (LIST query_vector) SYNTAX v3 { + MapAccum @@distances; + + // Find top-5 similar vectors from Account's vector attribute emb1 + // Store the distance in @@distance + v = vectorSearch({Account.emb1}, query_vector, 5, { distance_map: @@distances}); + + print v WITH VECTOR; //show the embeddings + print @@distances; //show the distance map +} +---- + +For more examples, please see the link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[Vector Search tutorial]. + + + + diff --git a/modules/vector/pages/vector-search.adoc b/modules/vector/pages/vector-search.adoc new file mode 100644 index 00000000..9c13df14 --- /dev/null +++ b/modules/vector/pages/vector-search.adoc @@ -0,0 +1,6 @@ += + + + + +A Ve \ No newline at end of file From 858c9ca46e9de05771c94e4fc59148c7cb6268fc Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 4 Mar 2025 22:29:38 -0500 Subject: [PATCH 026/194] DOC-2554 tweak gsql menu text --- modules/openCypher-in-gsql/nav.adoc | 8 +++----- modules/querying/nav.adoc | 2 +- modules/vector/nav.adoc | 2 +- modules/vector/pages/index.adoc | 8 +++++++- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/modules/openCypher-in-gsql/nav.adoc b/modules/openCypher-in-gsql/nav.adoc index 0005ee94..2fdf33ae 100644 --- a/modules/openCypher-in-gsql/nav.adoc +++ b/modules/openCypher-in-gsql/nav.adoc @@ -1,5 +1,3 @@ -* openCypher -** link:https://github.com/tigergraph/ecosys/blob/master/demos/guru_scripts/docker/tutorial/4.x/Cypher.md[OpenCypher Tutorial (on GitHub)] -** xref:openCypher-in-gsql.adoc[] -** xref:openCypher-in-gsql-web-shell.adoc[] -** xref:openCypher-gsql-from-clause-extension.adoc[] +** xref:index.adoc[openCypher in GSQL] +*** xref:openCypher-in-gsql-web-shell.adoc[] +*** xref:openCypher-gsql-from-clause-extension.adoc[] diff --git a/modules/querying/nav.adoc b/modules/querying/nav.adoc index 31d4ace2..6004a83f 100644 --- a/modules/querying/nav.adoc +++ b/modules/querying/nav.adoc @@ -1,4 +1,4 @@ -* xref:index.adoc[Querying] +* xref:index.adoc[GSQL Queries] ** xref:syntax-versions.adoc[] ** xref:query-operations.adoc[] ** xref:query-optimizer/index.adoc[] diff --git a/modules/vector/nav.adoc b/modules/vector/nav.adoc index 53cd489c..86d22409 100644 --- a/modules/vector/nav.adoc +++ b/modules/vector/nav.adoc @@ -1 +1 @@ -* xref:vector:index.adoc[Using Vector Search] \ No newline at end of file +* xref:vector:index.adoc[Vector Searches] \ No newline at end of file diff --git a/modules/vector/pages/index.adoc b/modules/vector/pages/index.adoc index b054507e..bec9e238 100644 --- a/modules/vector/pages/index.adoc +++ b/modules/vector/pages/index.adoc @@ -18,12 +18,18 @@ For a tutorial and examples. see our link:https://github.com/tigergraph/ecosys/b == Vector data and search specifications -[cols="2,3"] +[%header, cols="2,3"] |=== +| Characteristic +| Description + | Element data type | FLOAT (32-bit floating point) +| Max. dimensions (vector length) +| 4096 + | Similarity metrics | cosine, L2 (Euclidean) IP (inner product) From 6c6e241678506cf0912048ac8264c22bc1a0afe8 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Sat, 8 Mar 2025 15:28:59 -0500 Subject: [PATCH 027/194] DOC-2554 Update GSQL home page of 4.2.0-dev --- modules/intro/pages/index.adoc | 59 ++++++++++++++-------------------- 1 file changed, 25 insertions(+), 34 deletions(-) diff --git a/modules/intro/pages/index.adoc b/modules/intro/pages/index.adoc index 4e8882f3..9a0873cd 100644 --- a/modules/intro/pages/index.adoc +++ b/modules/intro/pages/index.adoc @@ -1,61 +1,63 @@ -= GSQL Language Reference += Query Language Reference :page-aliases: intro.adoc -The GSQL™ software program is the TigerGraph comprehensive environment for designing graph schemas, loading and managing data to build a graph, and querying the graph to perform data analysis. +The *GSQL™* software program is the TigerGraph comprehensive environment for designing graph schemas, loading and managing data to build a graph, and querying the graph to perform data analysis. TigerGraph now also supports *OpenCypher* and the pattern matching portion of *GQL*, within the same execution engine. -In short, TigerGraph users do most of their work via the GSQL program. -This document presents the syntax and features of the GSQL language. - -== Get to Know GSQL +== Graph and Vector Querying [.home-card,cols="2,2",grid=none,frame=none, separator=¦] |=== ¦ image:getstarted-homecard.png[alt=getstarted,width=74,height=74] *Tutorials* -A set of step-by-step tutorials to help you get started using GSQL in TigerGraph. +Step-by-step tutorials to help you get started creating graphs and querying. -https://github.com/tigergraph/ecosys/blob/master/demos/guru_scripts/docker/tutorial/4.x/README.md[GSQL Tutorial |] -xref:gsql-ref:tutorials:accumulators-tutorial.adoc[Accumulators Tutorial] +https://github.com/tigergraph/ecosys/blob/master/tutorials/GSQL.md[GSQL Tutorial] | +xref:gsql-ref:tutorials:accumulators-tutorial.adoc[Accumulators] | +https://github.com/tigergraph/ecosys/blob/master/tutorials/Cypher.md[OpenCypher] | +https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[VECTOR search] //xref:gsql-ref:tutorials:pattern-matching/index.adoc[Pattern Maching Tutorial |] +¦ +image:vector.png[alt=types,width=74,height=74] +*Hybrid Vector Search* + +Use graph+vector search for powerfully selective searches, supercharging AI + +xref:vector:index.adoc[] | +link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[Hybrid Graph+Vector Search Tutorial] + ¦ image:img.png[alt=graphstudio,width=74,height=74] *openCypher in GSQL* TigerGraph’s GSQL query language supports many openCypher features. -xref:openCypher-in-gsql:openCypher-in-gsql.adoc[openCypher in GSQL |] -xref:openCypher-in-gsql:openCypher-gsql-from-clause-extension.adoc[Clause Extension |] -xref:openCypher-in-gsql:openCypher-in-gsql-web-shell.adoc[openCypher in Web Shell] +link:https://github.com/tigergraph/ecosys/blob/master/tutorials/Cypher.md[openCypher in GSQL Tutorial (on GitHub) ] | +xref:openCypher-in-gsql:index.adoc[] ¦ image:lang.png[alt=basics,width=74,height=74] -*System & Language Basics* +*Language Basics* -Learn the xref:gsql-ref:basics:system-and-language-basics.adoc[Basic Elements] that make up the GSQL Data Definition. - -¦ -image:attrbutes-homecard.png[alt=types,width=74,height=74] -*Attribute Data Types* - -Learn about xref:gsql-ref:ddl-and-loading:attribute-data-types.adoc[Vertex and Edge Attributes] and the different data types that can be stored in them. +Learn xref:gsql-ref:basics:running-gsql.adoc[How to run GSQL] and +xref:gsql-ref:ddl-and-loading:attribute-data-types.adoc[Database Data Types]. ¦ image:schema-homecard.png[alt=types,width=74,height=74] -*Schema Definition* +*Define a Schema* Use the Database Definition Language (DDL) syntax to define the xref:gsql-ref:ddl-and-loading:index.adoc[schema] the blueprint for data elements in a database. ¦ image:querying-homecard.png[alt=query,width=74,height=74] -*Querying* +*Graph Querying* xref:gsql-ref:querying:index.adoc[GSQL Query Language] is a language for the exploration and analysis of large scale graphs. ¦ image:DataLoading-Homecard.png[alt=loadingjobs,width=74,height=74] -*Loading Jobs* +*Loading Data* xref:gsql-ref:ddl-and-loading:loading-jobs.adoc[Loading Jobs] are a unique and powerful feature used to load data into the database. @@ -69,14 +71,3 @@ xref:gsql-ref:appendix:cheat-sheets.adoc[Cheat Sheets |] xref:gsql-ref:appendix:gsql-style-guide.adoc[GSQL Style Guide] |=== - - - - - - - - - - - From b8f4e02a6870a41b5ac250784a34ce2607fd2938 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Sat, 8 Mar 2025 18:50:48 -0500 Subject: [PATCH 028/194] DOC-2563-sync-4.2-gsql-repos --- antora.yml | 4 ++-- modules/appendix/nav.adoc | 16 ++++++++-------- modules/basics/nav.adoc | 2 +- ...nd-language-basics.adoc => running-gsql.adoc} | 5 +++-- modules/ddl-and-loading/nav.adoc | 7 ++++--- .../pages/functions/reducer/index.adoc | 2 +- .../{openCypher-in-gsql.adoc => index.adoc} | 4 ++-- .../pages/openCypher-in-gsql-web-shell.adoc | 2 +- modules/querying/pages/data-types.adoc | 2 +- modules/querying/pages/query-operations.adoc | 4 ++-- .../query-optimizer/enable-cost-optimizer.adoc | 2 +- modules/tutorials/nav.adoc | 9 ++++++--- 12 files changed, 32 insertions(+), 27 deletions(-) rename modules/basics/pages/{system-and-language-basics.adoc => running-gsql.adoc} (98%) rename modules/openCypher-in-gsql/pages/{openCypher-in-gsql.adoc => index.adoc} (99%) diff --git a/antora.yml b/antora.yml index 2aee2d8a..68d8afb0 100644 --- a/antora.yml +++ b/antora.yml @@ -2,14 +2,14 @@ name: gsql-ref title: GSQL Language Reference version: "4.2" display_version: "4.2 Pre" +latest: true start_page: intro:index.adoc nav: -- modules/intro/nav.adoc - modules/tutorials/nav.adoc - modules/basics/nav.adoc - modules/ddl-and-loading/nav.adoc - modules/querying/nav.adoc - modules/openCypher-in-gsql/nav.adoc - modules/vector/nav.adoc -- modules/appendix/nav.adoc +- modules/appendix/nav.adoc \ No newline at end of file diff --git a/modules/appendix/nav.adoc b/modules/appendix/nav.adoc index 54d22223..2528f160 100644 --- a/modules/appendix/nav.adoc +++ b/modules/appendix/nav.adoc @@ -1,12 +1,12 @@ * Appendix +** xref:common-errors-and-problems.adoc[] +** xref:keywords-and-reserved-words.adoc[DLL Keywords & Reserved Words] +** xref:notations.adoc[Documentation Notation] +** xref:example-graphs.adoc[] +** xref:cheat-sheets.adoc[GSQL Cheat Sheets] +** xref:gsql-start-to-end-process.adoc[] ** xref:gsql-style-guide.adoc[] -** xref:keywords-and-reserved-words.adoc[] -** xref:query-language-reserved-words.adoc[] //** xref:complete-formal-syntax.adoc[] ** xref:interpreted-gsql-limitations.adoc[] -** xref:gsql-start-to-end-process.adoc[] -** xref:example-graphs.adoc[] -** xref:common-errors-and-problems.adoc[] -** xref:cheat-sheets.adoc[] -** xref:notations.adoc[] -* xref:appendix:legacy-tg-versions.adoc[] \ No newline at end of file +** xref:legacy-tg-versions.adoc[] +** xref:query-language-reserved-words.adoc[] \ No newline at end of file diff --git a/modules/basics/nav.adoc b/modules/basics/nav.adoc index ea890cfe..cbe42cc0 100644 --- a/modules/basics/nav.adoc +++ b/modules/basics/nav.adoc @@ -1 +1 @@ -* xref:system-and-language-basics.adoc[] \ No newline at end of file +* xref:running-gsql.adoc[] \ No newline at end of file diff --git a/modules/basics/pages/system-and-language-basics.adoc b/modules/basics/pages/running-gsql.adoc similarity index 98% rename from modules/basics/pages/system-and-language-basics.adoc rename to modules/basics/pages/running-gsql.adoc index 25d6eabd..cfb5211b 100644 --- a/modules/basics/pages/system-and-language-basics.adoc +++ b/modules/basics/pages/running-gsql.adoc @@ -1,6 +1,7 @@ -= System & Language Basics += Running GSQL :pp: {plus}{plus} -:page-aliases: ddl-and-loading:system-and-language-basics.adoc +:page-aliases: ddl-and-loading:system-and-language-basics.adoc, system-and-language-basics.adoc +:description: GSQL system and language basic concepts. How to run GSQL. This page describes the basic elements that make up the GSQL Data Definition and Loading as well as the GSQL Query Language. It also provides instructions on how to run GSQL commands through the GSQL shell, including the new token-based authentication functionality added in version 4.1. diff --git a/modules/ddl-and-loading/nav.adoc b/modules/ddl-and-loading/nav.adoc index 92dbc3f9..9af5f444 100644 --- a/modules/ddl-and-loading/nav.adoc +++ b/modules/ddl-and-loading/nav.adoc @@ -1,10 +1,11 @@ -* xref:attribute-data-types.adoc[] -* xref:index.adoc[Schema Definition] + +* xref:index.adoc[Defining a Schema] +** xref:attribute-data-types.adoc[Data Types] ** xref:defining-a-graph-schema.adoc[Define a Graph Schema] ** xref:modifying-a-graph-schema.adoc[Modify a Graph Schema] -* xref:loading-jobs.adoc[Loading Jobs] +* xref:loading-jobs.adoc[Loading Data] ** xref:creating-a-loading-job.adoc[Create a Loading Job] *** xref:functions/index.adoc[] **** xref:functions/token/index.adoc[] diff --git a/modules/ddl-and-loading/pages/functions/reducer/index.adoc b/modules/ddl-and-loading/pages/functions/reducer/index.adoc index 98d1523e..88e901d6 100644 --- a/modules/ddl-and-loading/pages/functions/reducer/index.adoc +++ b/modules/ddl-and-loading/pages/functions/reducer/index.adoc @@ -18,7 +18,7 @@ REDUCE(reducer_function (input_expr)) Each reducer function can be used for several data types: * For primitive data types, the output type is the same as the type of the input expression `input_expr`. -* For `LIST`, `SET`, and `MAP` containers, the `input_expr` type is one of the xref:system-and-language-basics.adoc#_collection_types[allowed element types] for these containers. +* For `LIST`, `SET`, and `MAP` containers, the `input_expr` type is one of the xref:ddl-and-loading:attribute-data-types.adoc#_collection_types[allowed element types] for these containers. The output is the entire container. == Table of reducer functions diff --git a/modules/openCypher-in-gsql/pages/openCypher-in-gsql.adoc b/modules/openCypher-in-gsql/pages/index.adoc similarity index 99% rename from modules/openCypher-in-gsql/pages/openCypher-in-gsql.adoc rename to modules/openCypher-in-gsql/pages/index.adoc index 759c1e9f..ca8a9ad0 100644 --- a/modules/openCypher-in-gsql/pages/openCypher-in-gsql.adoc +++ b/modules/openCypher-in-gsql/pages/index.adoc @@ -1,11 +1,11 @@ = openCypher in GSQL - +:page-aliases: openCypher-in-gsql.adoc, openCypher-in-gsql/openCypher-in-gsql.adoc openCypher is a popular open-source declarative query language for property graphs. More about openCypher can be found at http://opencypher.org[openCypher.org]. TigerGraph's GSQL query language supports many openCypher features. This page lists the features currently xref:_opencypher_features_in_gsql[supported] and features xref:_opencypher_features_not_yet_supported[not yet supported ]. -To see how to run openCypher on the TigerGraph platform, see xref:openCypher-in-gsql.adoc[]. +To see how to run openCypher on the TigerGraph platform, see xref:index.adoc[]. [NOTE] ==== diff --git a/modules/openCypher-in-gsql/pages/openCypher-in-gsql-web-shell.adoc b/modules/openCypher-in-gsql/pages/openCypher-in-gsql-web-shell.adoc index d9736951..9e1f1330 100644 --- a/modules/openCypher-in-gsql/pages/openCypher-in-gsql-web-shell.adoc +++ b/modules/openCypher-in-gsql/pages/openCypher-in-gsql-web-shell.adoc @@ -14,7 +14,7 @@ Follow these two simple rules: . Replace the body of the query procedure with OpenCypher instead of GSQL. End with a `RETURN` clause. -For more details on the current openCypher support, see xref:openCypher-in-gsql.adoc[]. +For more details on the current openCypher support, see xref:index.adoc[]. == Example: Interpreted Query diff --git a/modules/querying/pages/data-types.adoc b/modules/querying/pages/data-types.adoc index a77c6721..14c211f3 100644 --- a/modules/querying/pages/data-types.adoc +++ b/modules/querying/pages/data-types.adoc @@ -167,7 +167,7 @@ baseType := INT The default value of each base type is shown in the table below. The default value is the initial value of a base type variable (see Section "Variable Types" for more details), or the default return value for some functions. -The first seven types (`INT`, `UINT`, `FLOAT`, `DOUBLE`, `BOOL`, `STRING`, and `DATETIME`) are the same ones mentioned in the "xref:ddl-and-loading:attribute-data-types.adoc#_primitive_types[Attribute Data Types]" section of xref:ddl-and-loading:system-and-language-basics.adoc[GSQL Language Reference, Part 1]. +The first seven types (`INT`, `UINT`, `FLOAT`, `DOUBLE`, `BOOL`, `STRING`, and `DATETIME`) are the same ones mentioned in the "xref:ddl-and-loading:attribute-data-types.adoc#_primitive_types[Attribute Data Types]" section of xref:ddl-and-loading:running-gsql.adoc[GSQL Language Reference, Part 1]. |=== | Type | Default value | Literal diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index 11aa348e..7d7b9eaa 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -177,7 +177,7 @@ It also supports calling functions, assigning variables, printing, and modifying The query body may include calls to other queries. That is, the other queries are treated as subquery functions. See the subsection on "xref:querying:operators-and-expressions.adoc#_subqueries[subqueries]". + -Additionally, GSQL supports openCypher syntax in the query body. See pages xref:openCypher-in-gsql:openCypher-in-gsql.adoc[], xref:openCypher-in-gsql:openCypher-in-gsql-web-shell.adoc[], and xref:openCypher-in-gsql:openCypher-gsql-from-clause-extension.adoc[] to learn more about openCypher and for examples. +Additionally, GSQL supports openCypher syntax in the query body. See pages xref:openCypher-in-gsql:index.adoc[], xref:openCypher-in-gsql:openCypher-in-gsql-web-shell.adoc[], and xref:openCypher-in-gsql:openCypher-gsql-from-clause-extension.adoc[] to learn more about openCypher and for examples. === Examples @@ -693,7 +693,7 @@ drop and then recreate the query. If this option is not used, the GSQL shell will refuse to re-install a query that is already installed. a|`-SINGLE` -|Enables a new internal framework for compiling non-distributed queries. Equivalent to the `single_gpr` session parameter described on the xref:ddl-and-loading:system-and-language-basics.adoc#_session_parameters[Session Parameters page.] +|Enables a new internal framework for compiling non-distributed queries. Equivalent to the `single_gpr` session parameter described on the xref:ddl-and-loading:running-gsql.adoc#_session_parameters[Session Parameters page.] The loop variable in a `xref:querying:control-flow-statements.adoc#_foreach_statement[FOREACH` loop] with this option enabled is treated as a copy, while normally, changes to the loop variable will change the value in the set or bag expression. diff --git a/modules/querying/pages/query-optimizer/enable-cost-optimizer.adoc b/modules/querying/pages/query-optimizer/enable-cost-optimizer.adoc index a66e36aa..fde3e0f0 100644 --- a/modules/querying/pages/query-optimizer/enable-cost-optimizer.adoc +++ b/modules/querying/pages/query-optimizer/enable-cost-optimizer.adoc @@ -118,7 +118,7 @@ To use the cost-based optimization during installation, use the xref:query-opera For example, to install the query `example3`, run `INSTALL QUERY -COST example3`. -Alternatively, set xref:basics:system-and-language-basics.adoc#_session_parameters[the `cost_opt` session parameter] to true by running `set cost_opt = true` in the GSQL shell. +Alternatively, set xref:basics:running-gsql.adoc#_session_parameters[the `cost_opt` session parameter] to true by running `set cost_opt = true` in the GSQL shell. This enables cost-based optimization for the rest of your GSQL session. You no longer need to supply the `-COST` option when installing queries if the `cost_opt` parameter is set to true. diff --git a/modules/tutorials/nav.adoc b/modules/tutorials/nav.adoc index 3aea2965..0d09b973 100644 --- a/modules/tutorials/nav.adoc +++ b/modules/tutorials/nav.adoc @@ -1,3 +1,6 @@ -* xref:index.adoc[GSQL Tutorials] -** link:https://github.com/tigergraph/ecosys/blob/master/demos/guru_scripts/docker/tutorial/4.x/README.md[GSQL V3 Tutorial] (on GitHub) -** xref:accumulators-tutorial.adoc[] \ No newline at end of file +* xref:index.adoc[Query Language Tutorials] +** xref:intro:set-gsql-apart.adoc[] +** link:https://github.com/tigergraph/ecosys/blob/master/tutorials/GSQL.md[GSQL V3 Tutorial] (on GitHub) +** xref:accumulators-tutorial.adoc[] +** link:https://github.com/tigergraph/ecosys/blob/master/tutorials/Cypher.md[TigerGraph OpenCypher] (on GitHub) +** link:https://github.com/tigergraph/ecosys/tree/master/tutorials/vector[Hybrid Vector Search] (on GithHub) \ No newline at end of file From 484bec1a99296e36f1f3aaeb1c9a0138b4243179 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Sat, 8 Mar 2025 19:59:47 -0500 Subject: [PATCH 029/194] DOC-2563 Add vector.png image to 4.2.0-dev --- modules/intro/images/vector.png | Bin 0 -> 5865 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modules/intro/images/vector.png diff --git a/modules/intro/images/vector.png b/modules/intro/images/vector.png new file mode 100644 index 0000000000000000000000000000000000000000..335aac9391fecf334502d545cd5b763adedb7a88 GIT binary patch literal 5865 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 Date: Sun, 9 Mar 2025 21:58:52 -0400 Subject: [PATCH 030/194] copy 4.2.0-alpha vector doc improvs to 4.2.0-dev --- modules/vector/pages/index.adoc | 161 ++++++++++++++++++++++++++++---- 1 file changed, 141 insertions(+), 20 deletions(-) diff --git a/modules/vector/pages/index.adoc b/modules/vector/pages/index.adoc index bec9e238..25581355 100644 --- a/modules/vector/pages/index.adoc +++ b/modules/vector/pages/index.adoc @@ -16,7 +16,7 @@ This document is intended to be a quick reference to the available functionalit For a tutorial and examples. see our link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[Vector Search tutorial]. ==== -== Vector data and search specifications +== Vector Data and Search Specifications [%header, cols="2,3"] |=== @@ -43,12 +43,50 @@ For a tutorial and examples. see our link:https://github.com/tigergraph/ecosys/b | Load, Read, Exact Similarity Search, Approximate Similarity Search, Top-K Search, Hybrid Graph+Vector Search |=== -To make use of TigerGraph's vector capabilities: -. Add vectors to the graph schema. -. Load vector data +== Vector Operations Cheatsheet +For more details, click on the task links. +[%header, cols="1,3"] +|=== + +| Task +| Command Cheatsheet + +| xref:#create_vector_schema[Add vectors to schema] +a| In schema change job: + +`ALTER VERTEX vertex_name ADD VECTOR ATTRIBUTE vec_name(vertex_params);` + + +| xref:#loading_vectors[Load vectors] +a| Clause in loading job: + +`LOAD file_object TO VECTOR ATTRIBUTE vec_name ON VERTEX vertex_name + +VALUES (id_col, SPLIT(vec_col, elem_sep) USING SEPARATOR = field_sep;` + +| xref:#vectorSearch[Search for similar vertices] +a| Function call in ACCUM clause: + +`result = vectorSearch(vectorAttributes, queryVector, k, optionalParam)` + + +| xref:#print_vectors[Output vectors] +a| In GSQL query: `PRINT v WITH VECTOR;` + +| xref:#update_vectors[Update vectors] +a| REST: Upsert API + +GSQL: assignment in ACCUM clause + +|=== + +There are several xref:#other_vector_functions[other functions] available for working with vector data. + + +[#create_vector_schema] == Creating a Vector Schema A vector attribute is always added to an existing vertex type, using the `ALTER VERTEX` statement with a `SCHEMA_CHANGE` job. @@ -59,13 +97,42 @@ The `ADD VECTOR ATTRIBUTE` clause adds a vector, and `DROP VECTOR ATTRIBUTE` rem ---- ALTER VERTEX vertex_name ADD VECTOR ATTRIBUTE vec_name(vertex_params); -where vertex_params = DIMENSION=dim, METRIC=metr [, IndexType=i_type] +where vertex_params = + DIMENSION=dim, + METRIC=metr + [, INDEXTYPE=i_type] + [, DATATYPE=d_type] ALTER VERTEX vertex_name DROP VECTOR ATTRIBUTE vec_name; ---- -The `metr` metric can be `"COSINE"`, `"L2"`, or `"IP"`. -Currently, the only valid value for `i_type` is `"HNSW"` +[%header, cols="1,2,2"] +|=== + +| Vector parameter | Decription | Values + +| DIMENSION +| dimensions (length) of vector +| `INT` from 1 to 4096 + +| METRIC +| metric used for measuring similarity. +a| `STRING`: `"COSINE"`, + +`"L2"` (Manhattan), + +`"IP"` (inner product) + +| INDEXTYPE +| Similarity indexing scheme +| `STRING`: `"HNSW"` (default) + +| DATATYPE +| element data type +| `STRING`: `"FLOAT"` (default) + +|=== + Example: [source,gsql] @@ -76,9 +143,11 @@ CREATE GLOBAL SCHEMA_CHANGE JOB add_emb2 { RUN GLOBAL SCHEMA_CHANGE JOB add_emb2 ---- + +[#loading_vectors] == Loading Vectors -Vectors are loaded using GSQL xref:ddl-and-loading:creating-a-loading-job.adoc[loading jobs]. +Vectors can be loaded in bulk using GSQL xref:ddl-and-loading:creating-a-loading-job.adoc[loading jobs]. The can either be loaded to existing vertices or included when new vertices are being created. The vector data is presumed to be in some format such as CSV where one separator `field_sep` is used between fields like the vector ID and the vector itself. Another separator `elem_sep` separates the vector's elements from one another. @@ -109,13 +178,21 @@ CREATE LOADING JOB load_s3_file { The vector itself is subdivided into elements, with `","` as the element separator. Note the use of the split() to parse the vector. + +== Search Indexing + TigerGraph automatically builds an (HNSW) similarity index for the vectors as they are loaded, using the similarity metric that was specified when the vector schema was defined. -The vectors can be queried before the index is complete, but the search performance will be slower. +The search index is used when the `vectorSearch` function is invoked. + +The index is automatically updated in respond to changes in the vector database. +Because similar calculations take some time, the index can lag behind the data updates. + +[#vectorSearch] == vectorSearch Function Once vectors are inserted, the database can be searched for vertices or vectors. -`vectorSearch` is a built-in function for vector similarity search. +`vectorSearch` is a built-in function for vector (approximate) similarity search. [source,GSQL] .vectorSearch function syntax @@ -124,7 +201,7 @@ result = vectorSearch(vectorAttributes, queryVector, k, optionalParam) ---- where `result` is a vertex set variable, storing the top-k most similar vertices. -[cols="1,10"] +[%header, cols="1,10"] |=== | Parameter | Description @@ -150,17 +227,13 @@ E.g., `{candidate_set: vset1, ef: 20, distance_map: @@distmap}`. The meaning of the optional parameters is best explained by example. See the link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[Vector Search tutorial]. -== Other Vector Functions - -The Vector Search tutorial has list of link:https://github.com/tigergraph/ecosys/blob/master/demos/guru_scripts/docker/tutorial/4.x/VectorSearch.md#vector-built-in-functions[built-in vector functions]. +[#print_vectors] == Printing Vectors -Note that the `vectorSearch` function returns a set of vertices. -That is, even if the search criteria is vector-based, the function returns the set of vertices associated with the chosen set of vectors. -This is logical since the vertices possess the IDs of the vectors. +Note that the `vectorSearch` function returns the set of vertices that are associated with the selected vectors, rather than the vectors themselves. -If a `PRINT` statement is printing a set of vertices, including the `WITH VECTOR` causes GSQL to also print the vector values. +To output the vector values, `PRINT` the vertices and include the `WITH VECTOR` clause. Due to the large size of vectors, this option is usually used when writing the output directly to a file or object store. Here is a simple example of a query with a `WITH VECTOR` clause @@ -174,13 +247,61 @@ CREATE OR REPLACE QUERY q1 (LIST query_vector) SYNTAX v3 { // Store the distance in @@distance v = vectorSearch({Account.emb1}, query_vector, 5, { distance_map: @@distances}); - print v WITH VECTOR; //show the embeddings - print @@distances; //show the distance map + PRINT v WITH VECTOR; //show the embeddings + PRINT @@distances; //show the distance map } ---- For more examples, please see the link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[Vector Search tutorial]. +[#update_vectors] +== Add and Update Vectors + +=== Upsert API + +The existing xref:{page-component-version}@tigergraph-server:API:upsert-rest.adoc[REST API for updating data] can be used for vectors +The vector attribute is treated like standard vector attributes. +The upsert data for a vertex can include zero or more standard attributes and zero or more standard vector attributes, in the same JSON structure. + +For example: + +[console] +---- +curl -X POST "http://localhost:14240/restpp/graph/financialGraph" -d ' +{ + "vertices": { + "Account": { + "9350352": { + "name": { + "value": "Paul Gray" + }, + "emb1": { + "value": [-0.017733968794345856, -0.01019224338233471, -0.016571875661611557] +} } } } } +---- + +=== Assignment in GSQL + +A vertex attribute can be updated like other attributes in the ACCUM or POST-ACCUM clause of a GSQL query. + +This example assigns new vector values in the last clause: + +[source,gsql] +---- +CREATE OR REPLACE QUERY similarToSame (LIST query_vector) SYNTAX v3 { + + // Find top-5 similar vectors from Account's vector attribute emb1 + // Then update those vectors to be exactly the same as the query vector + sim = vectorSearch({Account.emb1}, query_vector, 5); + same = SELECT s FROM sim:s + POST-ACCUM s.emb1 = query_vector; +} +---- + + +[#other_vector_functions] +== Other Vector Functions +The Vector Search tutorial has a list of link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md#vector-built-in-functions[built-in vector functions]. From 050ad83ac3914f58e4162a01d2792930c94484cd Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Sun, 9 Mar 2025 22:08:17 -0400 Subject: [PATCH 031/194] DOC-2543 fix code formatted errors --- modules/vector/pages/index.adoc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/modules/vector/pages/index.adoc b/modules/vector/pages/index.adoc index 25581355..5b43c321 100644 --- a/modules/vector/pages/index.adoc +++ b/modules/vector/pages/index.adoc @@ -62,16 +62,14 @@ a| In schema change job: | xref:#loading_vectors[Load vectors] a| Clause in loading job: - -`LOAD file_object TO VECTOR ATTRIBUTE vec_name ON VERTEX vertex_name - -VALUES (id_col, SPLIT(vec_col, elem_sep) USING SEPARATOR = field_sep;` +``` +LOAD file_object TO VECTOR ATTRIBUTE vec_name ON VERTEX vertex_name +VALUES (id_col, SPLIT(vec_col, elem_sep) USING SEPARATOR = field_sep; +``` | xref:#vectorSearch[Search for similar vertices] -a| Function call in ACCUM clause: - -`result = vectorSearch(vectorAttributes, queryVector, k, optionalParam)` - +a| Function call in ACCUM clause returns a vertex set: +`vectorSearch(vectorAttributes, queryVector, k, optionalParam)` | xref:#print_vectors[Output vectors] a| In GSQL query: `PRINT v WITH VECTOR;` From 176244b216c4d63557f03653adcddea89bb0f5e9 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Mon, 10 Mar 2025 17:43:14 -0400 Subject: [PATCH 032/194] DOC-2543 vector parameter names are case-insensitive --- modules/vector/pages/index.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/vector/pages/index.adoc b/modules/vector/pages/index.adoc index 5b43c321..cd96d611 100644 --- a/modules/vector/pages/index.adoc +++ b/modules/vector/pages/index.adoc @@ -107,7 +107,7 @@ ALTER VERTEX vertex_name DROP VECTOR ATTRIBUTE vec_name; [%header, cols="1,2,2"] |=== -| Vector parameter | Decription | Values +| Vector parameter* | Decription | Values | DIMENSION | dimensions (length) of vector @@ -131,6 +131,7 @@ a| `STRING`: `"COSINE"`, |=== +NOTE: Vector parameter names are case-insensitive. Example: [source,gsql] From faac09ad0155b3fc24c6f6c083b875815b46df6c Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 12 Mar 2025 00:22:42 +0530 Subject: [PATCH 033/194] DOC-2279-moved functions to supported --- modules/openCypher-in-gsql/pages/index.adoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/openCypher-in-gsql/pages/index.adoc b/modules/openCypher-in-gsql/pages/index.adoc index ca8a9ad0..b7e2184b 100644 --- a/modules/openCypher-in-gsql/pages/index.adoc +++ b/modules/openCypher-in-gsql/pages/index.adoc @@ -158,6 +158,8 @@ See below for restrictions before version *4.1.2*. |lTrim() |String Returns the original string with leading whitespace removed. +|labels() |List Returns a list containing the string representations for all the labels of a node. + |max() |Aggregating Returns the maximum value in a set of values. |min() |Aggregating Returns the minimum value in a set of values. @@ -204,14 +206,16 @@ See below for restrictions before version *4.1.2*. |timestamp() |Scalar Returns the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC. +|trim() |String Returns the original string with leading and trailing whitespace removed. + +|type() |Scalar Returns the string representation of the relationship type. + |toLower() |String Returns the original string in lowercase. |toString() |String Converts an integer, float or boolean value to a string. |toUpper() |String Returns the original string in uppercase. -|trim() |String Returns the original string with leading and trailing whitespace removed. - |toBoolean() |Scalar Converts a string value to a boolean value. |toFloat() |Scalar Converts an integer or string value to a floating point number. @@ -265,8 +269,6 @@ N/A |keys() |List Returns a list containing the string representations for all the property names of a node, relationship, or map. -|labels() |List Returns a list containing the string representations for all the labels of a node. - |length() |Scalar Returns the length of a path. |nodes() |List Returns a list containing all the nodes in a path. @@ -288,8 +290,6 @@ pattern expression) |startNode() |Scalar Returns the start node of a relationship. -|type() |Scalar Returns the string representation of the relationship type. - |=== === Syntax From 49c30c6eb7eb1005942c74c8ac44f31d81b123dc Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Sat, 15 Mar 2025 13:43:50 -0400 Subject: [PATCH 034/194] DOC-2582-rename-request_id --- modules/querying/pages/query-operations.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index 7d7b9eaa..3cf77c0b 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -937,14 +937,14 @@ To run a query in Detached Mode from the command line, use the``-async``option f GSQL > RUN QUERY -async ---- -You will receive a JSON response immediately containing a query ID (`request_id`): +You will receive a JSON response immediately containing a query ID (`requestid`): [source.wrap,json] ---- { "error": false, "message": "The query is successfully submitted. Please check query status using the request id.", - "request_id": "" + "requestid": "" } ---- From 190a3fd79ddb03660bc935985a6f3305fe9efa07 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Sat, 15 Mar 2025 16:51:08 -0400 Subject: [PATCH 035/194] DOC-1949-clarify-drop-al --- modules/ddl-and-loading/pages/defining-a-graph-schema.adoc | 4 ++-- modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc index d38408e7..addc1d0b 100644 --- a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc +++ b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc @@ -590,9 +590,9 @@ The `DROP GRAPH` command deletes the logical definition of the named graph. It w === Required privilege `Drop_ALL` -The `DROP ALL` command clears the graph store (i.e. deletes all data) and removes all definitions from the catalog: vertex types, edge types, graph types, jobs, and queries. +The `DROP ALL` command clears the entire graph store (i.e. deletes all data) and removes all data-related definitions from the catalog: vertex types, edge types, graph types, jobs, and queries. It will also erase graph-specific roles. -Unlike xref:tigergraph-server:getting-started:database-definition.adoc#_reset_all[the `gsql --reset` command], `DROP ALL` does not erase user and role information. +Unlike xref:tigergraph-server:getting-started:database-definition.adoc#_reset_all[the `gsql --reset` command], `DROP ALL` does not erase user and role information nor system settings. [CAUTION] ==== diff --git a/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc b/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc index bff57703..f359162a 100644 --- a/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc +++ b/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc @@ -547,6 +547,7 @@ DROP JOB alter_friendship_make_library == `DROP ALL` -The DROP ALL command clears all graph data, all graph schemas, all loading jobs, and all queries. It should only be used when the intent is to erase an entire database design and to start over. +The `DROP ALL` command clears the entire graph store (i.e. deletes all data) and removes all data-related definitions from the catalog: vertex types, edge types, graph types, jobs, and queries. It will also erase graph-specific roles. + +See xref:defining-a-graph-schema.adoc#_drop_all[DROP ALL] for more details. -This command is only available to superusers and only when they are in global mode. From 713e2840a082d02fbaec88d8f6c3d8fbe60e1132 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Sat, 15 Mar 2025 19:15:31 -0400 Subject: [PATCH 036/194] DOC-1955-from-clause-ebnf --- .../querying/pages/select-statement/select-statement-v1.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/querying/pages/select-statement/select-statement-v1.adoc b/modules/querying/pages/select-statement/select-statement-v1.adoc index 1bf2c281..bb4b4599 100644 --- a/modules/querying/pages/select-statement/select-statement-v1.adoc +++ b/modules/querying/pages/select-statement/select-statement-v1.adoc @@ -51,7 +51,9 @@ NOTE: As of 3.9.3, GSQL supports openCypher patterns as an alternative to writin .FROM clause [source,ebnf] ---- -fromClause := FROM (step | stepV2 | pathPattern ["," pathPattern]*) +fromClauseV1 := FROM step +fromClauseV2 := FROM stepV2 | pathPattern ["," pathPattern]*) +fromClause := fromClauseV1 | fromClauseV2 ---- A hop or step consists of going from a starting set of vertices, crossing over a set of their edges, to an ending set of vertices. From cd3d854d07e8870e0cfcba116bf740b92d39a7fd Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 18 Mar 2025 19:58:14 +0530 Subject: [PATCH 037/194] DOC-2456-support using `=` and `<>` --- modules/querying/pages/operators-and-expressions.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/querying/pages/operators-and-expressions.adoc b/modules/querying/pages/operators-and-expressions.adoc index c185191d..d2d3f4a4 100644 --- a/modules/querying/pages/operators-and-expressions.adoc +++ b/modules/querying/pages/operators-and-expressions.adoc @@ -190,7 +190,7 @@ A condition is an expression that evaluates to a boolean value of either true or [source,ebnf] ---- -comparisonOperator := "<" | "<=" | ">" | ">=" | "==" | "!=" +comparisonOperator := "<" | "<=" | ">" | ">=" | "==" | "!=" | "=" | "<>" condition := expr | expr comparisonOperator expr @@ -204,6 +204,8 @@ condition := expr | expr [NOT] LIKE expr [ESCAPE escape_char] ---- +In GSQL V3, we now support the use of the equality operator `=` and the inequality operator `<>` in addition to the existing `==` and `!=` operators. + Strings are compared based on standard lexicographical ordering: + (space) < (digit) < (uppercase_letter) < (lowercase_letter). From 316aa59c20d51818608cb6fa26dab2a952614d2e Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 18 Mar 2025 13:00:41 -0400 Subject: [PATCH 038/194] DOC-2632-fix-comment-display --- modules/basics/pages/running-gsql.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/basics/pages/running-gsql.adoc b/modules/basics/pages/running-gsql.adoc index cfb5211b..1464c259 100644 --- a/modules/basics/pages/running-gsql.adoc +++ b/modules/basics/pages/running-gsql.adoc @@ -30,7 +30,7 @@ Some punctuation may be needed to separate the statements within a block. Single-line comments begin with either `#` or `//`. A comment may be on the same line as interpreted code. Text to the left of the comment marker is interpreted, and text to the right of the marker is ignored. -Multi-line comment blocks begin with `/*` and end with `*/`. +Multi-line comment blocks begin with `/\*` and end with `*/`. == Running GSQL From 127075b7697077b24b4515c6e3e385daf4405d72 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 19 Mar 2025 17:33:45 +0530 Subject: [PATCH 039/194] DOC-2456-changed "we now" to "from version 4.2" --- modules/querying/pages/operators-and-expressions.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/operators-and-expressions.adoc b/modules/querying/pages/operators-and-expressions.adoc index d2d3f4a4..8795adcd 100644 --- a/modules/querying/pages/operators-and-expressions.adoc +++ b/modules/querying/pages/operators-and-expressions.adoc @@ -204,7 +204,7 @@ condition := expr | expr [NOT] LIKE expr [ESCAPE escape_char] ---- -In GSQL V3, we now support the use of the equality operator `=` and the inequality operator `<>` in addition to the existing `==` and `!=` operators. +In GSQL V3, from version 4.2, we support the use of the equality operator `=` and the inequality operator `<>` in addition to the existing `==` and `!=` operators. Strings are compared based on standard lexicographical ordering: + (space) < (digit) < (uppercase_letter) < (lowercase_letter). From ef126136b7a7bde629214491a3c9567d2b646640 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 19 Mar 2025 21:35:14 +0530 Subject: [PATCH 040/194] DOC-2388 --- modules/querying/pages/operators-and-expressions.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/operators-and-expressions.adoc b/modules/querying/pages/operators-and-expressions.adoc index 8795adcd..2b9cf710 100644 --- a/modules/querying/pages/operators-and-expressions.adoc +++ b/modules/querying/pages/operators-and-expressions.adoc @@ -224,7 +224,7 @@ include::appendix:example$minimal_net/operators_expressions_between_and.gsql[] === IS NULL, IS NOT NULL -`IS NULL` and `IS NOT NULL` can be used for checking whether an optional parameter is given any value. +`IS NULL` and `IS NOT NULL` can be used for checking whether an optional expression is given any value. ==== Example From e115284103c08a3dc54f2e6ad05b40e427bbf23e Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 19 Mar 2025 21:39:18 +0530 Subject: [PATCH 041/194] DOC-2388-Moved COALESCE to supported functions --- modules/openCypher-in-gsql/pages/index.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/openCypher-in-gsql/pages/index.adoc b/modules/openCypher-in-gsql/pages/index.adoc index b7e2184b..24bdc57a 100644 --- a/modules/openCypher-in-gsql/pages/index.adoc +++ b/modules/openCypher-in-gsql/pages/index.adoc @@ -128,6 +128,8 @@ See below for restrictions before version *4.1.2*. |ceil() |Numeric Returns the smallest floating point number that is greater than or equal to a number and equal to a mathematical integer. +|coalesce() |Scalar Returns the first non-null value in a list of expressions. + |cos() |Trigonometric Returns the cosine of a number. |cot() |Trigonometric Returns the cotangent of a number. @@ -259,7 +261,6 @@ N/A === Functions [cols="1,1"] |=== -|coalesce() |Scalar Returns the first non-null value in a list of expressions. |collect() |Aggregating Returns a list containing the values returned by an expression. From 83f7b2cb6a610f4dd51a8d8a44b250292f24bf1f Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 20 Mar 2025 09:08:08 +0530 Subject: [PATCH 042/194] DOC-2415-subpage added "FROM Clause (V2)" --- modules/querying/nav.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/querying/nav.adoc b/modules/querying/nav.adoc index 6004a83f..d3c59b45 100644 --- a/modules/querying/nav.adoc +++ b/modules/querying/nav.adoc @@ -25,6 +25,7 @@ *** xref:func/vertex-methods.adoc[] ** xref:declaration-and-assignment-statements.adoc[] ** xref:select-statement/index.adoc[] +*** xref:select-statement/from-clause-V2.adoc[] *** xref:select-statement/select-statement-v1.adoc[] *** xref:select-statement/sql-like-select-statement.adoc[] ** xref:control-flow-statements.adoc[] From 0005577e1932b183d399a26b7103b744f228a36c Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 25 Mar 2025 00:23:19 +0530 Subject: [PATCH 043/194] DOC-2415-Moved the FROM Clause to a new sub page --- .../pages/select-statement/index.adoc | 371 ------------------ 1 file changed, 371 deletions(-) diff --git a/modules/querying/pages/select-statement/index.adoc b/modules/querying/pages/select-statement/index.adoc index 27c4ac19..d56d9d43 100644 --- a/modules/querying/pages/select-statement/index.adoc +++ b/modules/querying/pages/select-statement/index.adoc @@ -34,8 +34,6 @@ gsqlSelectBlock := gsqlSelectClause gsqlSelectClause := vertexSetName "=" SELECT vertexAlias ---- - - The initial clause is the `SELECT` clause: `SELECT vertexAlias`. Its purpose is to specify which set of vertices from the `FROM` clause is to become the output. @@ -49,375 +47,6 @@ The `SELECT` block has many optional clauses, which fit together in a logical fl Overall, the `SELECT` block starts from a source set of vertices and returns a result set that is either a subset of the source vertices or a subset of their neighboring vertices. Along the way, computations can be performed on the selected vertices and edges. - -[#_from_clause] -== `FROM` - -The `FROM` clause describes either a single _hop_ or a multi-hop _path pattern_. -Path patterns also have many other options for finer control and greater flexibility. - -.`FROM` clause -[source,ebnf] ----- -fromClause := FROM ( pathPattern ["," pathPattern]*) ----- - -A _hop_ or _step_ consists of going from a starting set of vertices, crossing over a set of their edges, to an ending set of vertices. - - -[#_path_pattern] -=== Path pattern -A path pattern specifies sets of vertex types and how they are connected by edge types. - -A path pattern starts with a source vertex set, traverses through specified path edge patterns to another step vertex set. -This is called a _hop_. -From the other step vertex set, it can perform multiple hops and traverse to other step vertex sets. - -Notice that a path pattern can be just a single source vertex set; the subsequent path edge pattern and step vertex sets are optional. - -.EBNF for path pattern -[source,ebnf] ----- -pathPattern := sourceVertexSet ["-" "(" pathEdgePattern ")" "-" stepVertexSet]* ----- - -[#_source_vertex_set] -==== Source vertex set -The source vertex set is the vertex set from which a path pattern starts. -A source vertex set can be denoted by one of the following: - -* `_` or `ANY`, or omitted. -If the source vertex type is omitted, you must give the source vertex set an <<_vertex_and_edge_aliases,alias>>. -* Vertex type -* A vertex set variable - -Optionally, you can give a source vertex set an alias by appending the alias after a colon``:``. -Although declaring an alias is optional, it is strongly recommended that you declare them. -In the later clauses of the `SELECT` block , you can only refer to vertex sets in the `FROM` clause by their aliases. - -.EBNF for source vertex set -[,ebnf] ----- -sourceVertexSet := [sourceVertexTypes] [":" vertexAlias] -sourceVertexTypes := "_" | ANY | "(" sourceVertexSetType ["|" sourceVertexSetType]* ")" -sourceVertexSetType := vertexType | vertexSetVariableName ----- - -Belows are a few examples of valid source vertex sets in `SELECT` statements: - -[tabs] -==== -Vertex type:: -+ --- -[.wrap,gsql] ----- -Result = SELECT src - FROM Person:src -( - WHERE src.first_name == "Viktor" AND src.last_name == "Akhiezer" - ACCUM CASE - WHEN tgt.type == "Comment" THEN - src.@comment_cnt += 1 - WHEN tgt.type == "Post" THEN - src.@post_cnt += 1 - END; ----- -<1> `Person` is a vertex type. -`(Comment | POST)` combines two vertex types. --- -Any type:: -+ --- -You can use `_` or `ANY` to represent any vertex types. -You can also choose to omit the step vertex type altogether to represent any vertex type. -If you choose to omit the type, you must give the step vertex set an alias. - -[.wrap,gsql] ----- -Result = SELECT tgt - FROM :s -(>, step vertex sets have more flexibility in how they are denoted. -A step vertex set can be denoted by one of the following: - -* `_` or `ANY`, or omitted. -If the step vertex type is omitted, you must give the step vertex set an alias. -* Vertex type -* A vertex set variable -* A global accumulator - -Optionally, you can give a source vertex set an alias by appending the alias after a colon``:``. -Although declaring an alias is optional, TigerGraph strongly suggests that you declare them. -In the later clauses of the `SELECT` block , you can only refer to vertex sets in the `FROM` clause by their aliases. - - -.EBNF for step vertex set -[.wrap,ebnf] ----- -stepVertexSet := [stepVertexTypes] [":" vertexAlias] -stepVertexTypes := atomicVertexType | "(" vertexSetType ["|" vertexSetType]* ")" -atomicVertexType := "_" | ANY | vertexSetType -vertexSetType := vertexType | vertexSetVariableName | globalAccumName ----- - -Belows are a few examples of valid step vertex sets in `SELECT` statements: - -[tabs] -==== -Vertex type:: -+ --- -[.wrap,gsql] ----- -Result = SELECT tgt - FROM Person:tgt -( - WHERE tgt.firstName == "Viktor" AND tgt.lastName == "Akhiezer" - ACCUM CASE - WHEN src.type == "Comment" THEN - tgt.@commentCnt += 1 - WHEN src.type == "Post" THEN - tgt.@postCnt += 1 - END; ----- -<1> `Person` is a vertex type. -`(Comment | POST)` combines two vertex types. --- -Any type:: -+ --- -You can use `_` or `ANY` to represent any vertex types. -You can also choose to omit the step vertex type altogether to represent any vertex type. -If you choose to omit the type, you must give the step vertex set an alias. - -[.wrap,gsql] ----- -Result = SELECT s - FROM Person:s -(Likes>)- :tgt - WHERE s.first_name == "Viktor" AND s.last_name == "Akhiezer" ----- --- -Vertex set:: -+ --- -A step vertex set can also be represented by a vertex set variable. -[.wrap,gsql] ----- -include::appendix:example$friend_net/select_statement_index_step_vertex_set.gsql[] ----- --- -Global accumulator:: -+ --- -A step vertex set can be represented by a global accumulator of strings (the strings are vertex types). -The accumulator must be of type `SetAccum`, `BagAccum` or `ListAccum`. - -[.wrap,gsql] ----- -include::appendix:example$friend_net/select_statement_index_step_vertex_global_accumulator.gsql[] ----- --- -==== - -==== Path edge pattern -The path edge pattern represents the relationship between a source vertex set to a step vertex set or from a step vertex set to the next step vertex set. - -.EBNF for path edge pattern ----- -pathEdgePattern := atomicEdgePattern - | "(" pathEdgePattern ")" - | pathEdgePattern "." pathEdgePattern - | disjPattern - | starPattern - -atomicEdgePattern := atomicEdgeType - | atomicEdgeType ">" - | "<" atomicEdgeType - -atomicEdgeType := "_" | ANY | edgeSetType - -disjPattern := atomicEdgePattern ("|" atomicEdgePattern)* - -starPattern := ([atomicEdgePattern] | "(" disjPattern ")") "*" [starBounds] - -starBounds := CONST_INT ".." CONST_INT - | CONST_INT ".." - | ".." CONST_INT - | CONST_INT ----- - -A path edge pattern can represent one hop or repeated hops. -A path edge pattern is denoted by `-()-`, where the relationship between vertex sets is specified between the parentheses. - -[discrete] -==== Atomic edge pattern - -The most basic form for a path edge pattern is an atomic edge pattern. -An atomic edge pattern can be one of the following: - -* `_` or `ANY`. -* An edge type. -* A string parameter. -The value of the parameter must be an edge type and can be provided at runtime. -You do not need to specify a direction when using a string parameter to specify the edge type. -* A global `SetAccum` accumulator of strings. -Each string is the name of an edge type. - -If the edge is directed, an atomic edge pattern has either a left pointer `<` on the left or a right pointer `>` on the right to indicate edge direction. -If the edge is undirected, the atomic edge pattern does not have a pointer. -Suppose we have 3 edge types or parameters called A, B, C. - -* `A>` is a rightward facing A edge -* `)-` refers to forward traversal of the directed edge type `STUDY_AT`. -* `-()-`. -* `-(KNOWS)-` refers to forward traversal of the undirected `KNOWS`. -* `-(_>)-` refers to forward traversal of any directed edge types. -* `-(_)-` refers to forward traversal of any undirected edge types. -* `-(<_)-` refers to backward traversal of any directed edge types. - -[discrete] -==== Disjunction pattern -Pattern disjunction allows a path edge pattern to indicate an `OR` relationship between two or more atomic patterns. -If an edge matches any of the atomic patterns, the edge matches the path edge pattern. - -.EBNF for disjunction pattern -[,ebnf] ----- -disjPattern := atomicEdgePattern ("|" atomicEdgePattern)* ----- - -For example: - -* `-(KNOWS|STUDY_AT>)-` refers to traversing an undirected `KNOWS` edge or a directed `STUDY_AT` edge. -* `-(KNOWS|_>)-` refers to traversing an undirected `KNOWS` edge or any directed edge from left to right. - - -==== Pattern repetition -The Kleene star``*`` and `min..max` range specifiers repeat an edge pattern for a specified number of times. -The range specifiers must be integers and must be constants. -See xref:tutorials:pattern-matching/repeating-a-pattern.adoc[] for a tutorial on how to use pattern repetition in a path edge pattern. - -.EBNF for star pattern -[,ebnf] ----- -starPattern := ([atomicEdgePattern] | "(" disjPattern ")") "*" [starBounds] - -starBounds := CONST_INT ".." CONST_INT - | CONST_INT ".." - | ".." CONST_INT - | CONST_INT ----- - -* Add `*` to the end of a pattern to have the star pattern match all paths where the edge pattern occurs one or more times. -** For example, `Person:s - (Friendship*) - Person` matches all paths between two `Person` vertices connected by any number of `Friendship` edges. -** The vertices in the middle do not need to be `Person` vertices. -For example, a path like `person1 -(Friendship)- dog1 - (Friendship) - person2` matches the star pattern. -* Add `*` to the end of a pattern, and then a number after the star to have the star pattern match paths where the edge pattern occurs for the specified number of times. -** For example, `Person:s - (Friendship*2) - Person` matches all paths between two `Person` vertices connected by exactly two `Friendship` edges. -The vertices in the middle do not need to be `Person` vertices. -* Add `*` to the end of a pattern, and then a range after the star (`*x..y`) to have the star pattern match all paths where the edge pattern occurs as many times as within the specified range. -** For example, `Employee:s - (Works_For>*2..4) - Employee` matches all paths between two `Employee` vertices with 2 - 4 right-directed `Works_For` edges. -The vertices in the middle do not need to be `Person` vertices. - - - -==== Pattern concatenation -The dot operator``.`` means concatenate the two edge patterns into one. -The vertex joining the two edges is omitted from the syntax. -The dot operator is a shorthand, when you don’t care about the type of that intermediate vertex. -`(A>.:e2)- Y:y -( - - -SELECT u -FROM X:x -(E2>. ----- -<1> This `FROM` clauses uses a longer pattern, but gives you access to `y`, `e2`, `z` and `e4`. -<2> This `FROM` clauses is more concise than the first `FROM` clause, but does not give you access to the intermediate vertex and edge sets. - -==== Conjunctive Pattern Matching - -The optional repeating phrase `["," pathPattern]*` allows you to have multiple path patterns. -They form a conjunction, meaning all of them must be satisfied in order to have a valid match result. -See xref:tutorials:pattern-matching/adv/conjunctive-pattern-matching.adoc[] for more details. - -[source,ebnf] ----- -fromClause := FROM (step | stepV2 | pathPattern ["," pathPattern]*) ----- - -Each step pattern or path pattern forms a match table, one row per matching path in the graph. -Each vertex alias or edge alias is one column in the table. -When we have a conjunctive path, each path must share at least one vertex alias with another path. -This enables the two path sets (and match tables) to be joined. -Formally, we make the natural join of the two tables. - - -[#_vertex_and_edge_aliases] -=== Vertex and Edge Aliases - -Vertex and edge _aliases_ are declared within the `FROM` clause of a `SELECT` block, by using the colon `:`, followed by the alias name. -Aliases can be accessed anywhere within the same `SELECT` block. -They are used to reference a single selected vertex or edge of a set. -It is through the vertex or edge aliases that the attributes of these vertices or edges can be accessed. - -For example, the following code snippets show two different `SELECT` statements. -The first `SELECT` statement starts from a vertex set called `allVertices`, and the vertex alias name `v` can access each individual vertex from `allVertices`. -The second `SELECT` statement selects a set of edges.It can use the vertex alias `s` to reference the source vertices, or the alias `t` to reference the target vertices. - -.Vertex variables -[source,gsql] ----- -results = SELECT v FROM all_vertices:v; -results = SELECT t FROM all_vertices:s -()- :t; ----- - -The following example shows an edge-based `SELECT` statement, declaring aliases for all three parts of the edge. -In the `ACCUM` clause, the `e` and `t` aliases are assigned to local vertex and edge variables. - -.Edge variables -[source,gsql] ----- -results = SELECT v - FROM all_vertices:s -(:e)- :t - ACCUM VERTEX v = t, EDGE eg = e; ----- - - -[WARNING] -==== -We strongly suggest that an alias should be declared with every vertex and edge in the FROM clause, as there are several functions and features only available to vertex and edge aliases. -==== - - == `SAMPLE` The `SAMPLE` clause is an optional clause that selects a uniform random sample from the population of edges or target vertices specified in the `FROM` argument. From 46b49775386919b399065281dba3ca110ad87f64 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 25 Mar 2025 00:23:41 +0530 Subject: [PATCH 044/194] DOC-2415-Added a page FROM Clause (v2) --- .../pages/select-statement/FROM Clause (v2) | 372 ++++++++++++++++++ 1 file changed, 372 insertions(+) create mode 100644 modules/querying/pages/select-statement/FROM Clause (v2) diff --git a/modules/querying/pages/select-statement/FROM Clause (v2) b/modules/querying/pages/select-statement/FROM Clause (v2) new file mode 100644 index 00000000..f0e1c749 --- /dev/null +++ b/modules/querying/pages/select-statement/FROM Clause (v2) @@ -0,0 +1,372 @@ += FROM Clause (v2) +The FROM clause in GSQL Syntax V2 is used to define path patterns for traversing the graph structure. +A path pattern specifies how vertices and edges are connected and provides the basis for the query to traverse the graph. +In V2, the FROM clause supports both traditional vertex-edge patterns and more advanced multi-hop patterns. + +This page will focus on V2 syntax, which is an evolution of the V1 syntax, with improved flexibility and support for more complex graph traversals. +While GSQL still supports the V1 syntax, we will describe the V2 style here, including examples of how to use path patterns and multiple path patterns for more complex graph queries. + + +[#_from_clause] +== `FROM` + +.`FROM` clause +[source,ebnf] +---- +fromClauseV1 := FROM step +fromClauseV2 := FROM stepV2 | pathPattern ["," pathPattern]*) +fromClause := fromClauseV1 | fromClauseV2 +---- + +A hop or step consists of going from a starting set of vertices, crossing over a set of their edges, to an ending set of vertices. +We typically use the names Source and Target for the starting and ending vertex sets: `Source -(Edges)-> Target` + +[#_path_pattern] +== Path pattern + +A path pattern specifies sets of vertex types and how they are connected by edge types. + +A path pattern starts with a source vertex set, traverses through specified path edge patterns to another step vertex set. +This is called a _hop_. +From the other step vertex set, it can perform multiple hops and traverse to other step vertex sets. + +Notice that a path pattern can be just a single source vertex set; the subsequent path edge pattern and step vertex sets are optional. + +.EBNF for path pattern +[source,ebnf] +---- +pathPattern := sourceVertexSet ["-" "(" pathEdgePattern ")" "-" stepVertexSet]* +---- + +[#_source_vertex_set] +=== Source vertex set +The source vertex set is the vertex set from which a path pattern starts. +A source vertex set can be denoted by one of the following: + +* `_` or `ANY`, or omitted. +If the source vertex type is omitted, you must give the source vertex set an <<_vertex_and_edge_aliases,alias>>. +* Vertex type +* A vertex set variable + +Optionally, you can give a source vertex set an alias by appending the alias after a colon``:``. +Although declaring an alias is optional, it is strongly recommended that you declare them. +In the later clauses of the `SELECT` block , you can only refer to vertex sets in the `FROM` clause by their aliases. + +.EBNF for source vertex set +[,ebnf] +---- +sourceVertexSet := [sourceVertexTypes] [":" vertexAlias] +sourceVertexTypes := "_" | ANY | "(" sourceVertexSetType ["|" sourceVertexSetType]* ")" +sourceVertexSetType := vertexType | vertexSetVariableName +---- + +Belows are a few examples of valid source vertex sets in `SELECT` statements: + +[tabs] +==== +Vertex type:: ++ +-- +[.wrap,gsql] +---- +Result = SELECT src + FROM Person:src -( + WHERE src.first_name == "Viktor" AND src.last_name == "Akhiezer" + ACCUM CASE + WHEN tgt.type == "Comment" THEN + src.@comment_cnt += 1 + WHEN tgt.type == "Post" THEN + src.@post_cnt += 1 + END; +---- +<1> `Person` is a vertex type. +`(Comment | POST)` combines two vertex types. +-- +Any type:: ++ +-- +You can use `_` or `ANY` to represent any vertex types. +You can also choose to omit the step vertex type altogether to represent any vertex type. +If you choose to omit the type, you must give the step vertex set an alias. + +[.wrap,gsql] +---- +Result = SELECT tgt + FROM :s -(>, step vertex sets have more flexibility in how they are denoted. +A step vertex set can be denoted by one of the following: + +* `_` or `ANY`, or omitted. +If the step vertex type is omitted, you must give the step vertex set an alias. +* Vertex type +* A vertex set variable +* A global accumulator + +Optionally, you can give a source vertex set an alias by appending the alias after a colon``:``. +Although declaring an alias is optional, TigerGraph strongly suggests that you declare them. +In the later clauses of the `SELECT` block , you can only refer to vertex sets in the `FROM` clause by their aliases. + + +.EBNF for step vertex set +[.wrap,ebnf] +---- +stepVertexSet := [stepVertexTypes] [":" vertexAlias] +stepVertexTypes := atomicVertexType | "(" vertexSetType ["|" vertexSetType]* ")" +atomicVertexType := "_" | ANY | vertexSetType +vertexSetType := vertexType | vertexSetVariableName | globalAccumName +---- + +Belows are a few examples of valid step vertex sets in `SELECT` statements: + +[tabs] +==== +Vertex type:: ++ +-- +[.wrap,gsql] +---- +Result = SELECT tgt + FROM Person:tgt -( + WHERE tgt.firstName == "Viktor" AND tgt.lastName == "Akhiezer" + ACCUM CASE + WHEN src.type == "Comment" THEN + tgt.@commentCnt += 1 + WHEN src.type == "Post" THEN + tgt.@postCnt += 1 + END; +---- +<1> `Person` is a vertex type. +`(Comment | POST)` combines two vertex types. +-- +Any type:: ++ +-- +You can use `_` or `ANY` to represent any vertex types. +You can also choose to omit the step vertex type altogether to represent any vertex type. +If you choose to omit the type, you must give the step vertex set an alias. + +[.wrap,gsql] +---- +Result = SELECT s + FROM Person:s -(Likes>)- :tgt + WHERE s.first_name == "Viktor" AND s.last_name == "Akhiezer" +---- +-- +Vertex set:: ++ +-- +A step vertex set can also be represented by a vertex set variable. +[.wrap,gsql] +---- +include::appendix:example$friend_net/select_statement_index_step_vertex_set.gsql[] +---- +-- +Global accumulator:: ++ +-- +A step vertex set can be represented by a global accumulator of strings (the strings are vertex types). +The accumulator must be of type `SetAccum`, `BagAccum` or `ListAccum`. + +[.wrap,gsql] +---- +include::appendix:example$friend_net/select_statement_index_step_vertex_global_accumulator.gsql[] +---- +-- +==== + +=== Path edge pattern +The path edge pattern represents the relationship between a source vertex set to a step vertex set or from a step vertex set to the next step vertex set. + +.EBNF for path edge pattern +---- +pathEdgePattern := atomicEdgePattern + | "(" pathEdgePattern ")" + | pathEdgePattern "." pathEdgePattern + | disjPattern + | starPattern + +atomicEdgePattern := atomicEdgeType + | atomicEdgeType ">" + | "<" atomicEdgeType + +atomicEdgeType := "_" | ANY | edgeSetType + +disjPattern := atomicEdgePattern ("|" atomicEdgePattern)* + +starPattern := ([atomicEdgePattern] | "(" disjPattern ")") "*" [starBounds] + +starBounds := CONST_INT ".." CONST_INT + | CONST_INT ".." + | ".." CONST_INT + | CONST_INT +---- + +A path edge pattern can represent one hop or repeated hops. +A path edge pattern is denoted by `-()-`, where the relationship between vertex sets is specified between the parentheses. + +[discrete] +=== Atomic edge pattern + +The most basic form for a path edge pattern is an atomic edge pattern. +An atomic edge pattern can be one of the following: + +* `_` or `ANY`. +* An edge type. +* A string parameter. +The value of the parameter must be an edge type and can be provided at runtime. +You do not need to specify a direction when using a string parameter to specify the edge type. +* A global `SetAccum` accumulator of strings. +Each string is the name of an edge type. + +If the edge is directed, an atomic edge pattern has either a left pointer `<` on the left or a right pointer `>` on the right to indicate edge direction. +If the edge is undirected, the atomic edge pattern does not have a pointer. +Suppose we have 3 edge types or parameters called A, B, C. + +* `A>` is a rightward facing A edge +* `)-` refers to forward traversal of the directed edge type `STUDY_AT`. +* `-()-`. +* `-(KNOWS)-` refers to forward traversal of the undirected `KNOWS`. +* `-(_>)-` refers to forward traversal of any directed edge types. +* `-(_)-` refers to forward traversal of any undirected edge types. +* `-(<_)-` refers to backward traversal of any directed edge types. + +[discrete] +=== Disjunction pattern +Pattern disjunction allows a path edge pattern to indicate an `OR` relationship between two or more atomic patterns. +If an edge matches any of the atomic patterns, the edge matches the path edge pattern. + +.EBNF for disjunction pattern +[,ebnf] +---- +disjPattern := atomicEdgePattern ("|" atomicEdgePattern)* +---- + +For example: + +* `-(KNOWS|STUDY_AT>)-` refers to traversing an undirected `KNOWS` edge or a directed `STUDY_AT` edge. +* `-(KNOWS|_>)-` refers to traversing an undirected `KNOWS` edge or any directed edge from left to right. + + +=== Pattern repetition +The Kleene star``*`` and `min..max` range specifiers repeat an edge pattern for a specified number of times. +The range specifiers must be integers and must be constants. +See xref:tutorials:pattern-matching/repeating-a-pattern.adoc[] for a tutorial on how to use pattern repetition in a path edge pattern. + +.EBNF for star pattern +[,ebnf] +---- +starPattern := ([atomicEdgePattern] | "(" disjPattern ")") "*" [starBounds] + +starBounds := CONST_INT ".." CONST_INT + | CONST_INT ".." + | ".." CONST_INT + | CONST_INT +---- + +* Add `*` to the end of a pattern to have the star pattern match all paths where the edge pattern occurs one or more times. +** For example, `Person:s - (Friendship*) - Person` matches all paths between two `Person` vertices connected by any number of `Friendship` edges. +** The vertices in the middle do not need to be `Person` vertices. +For example, a path like `person1 -(Friendship)- dog1 - (Friendship) - person2` matches the star pattern. +* Add `*` to the end of a pattern, and then a number after the star to have the star pattern match paths where the edge pattern occurs for the specified number of times. +** For example, `Person:s - (Friendship*2) - Person` matches all paths between two `Person` vertices connected by exactly two `Friendship` edges. +The vertices in the middle do not need to be `Person` vertices. +* Add `*` to the end of a pattern, and then a range after the star (`*x..y`) to have the star pattern match all paths where the edge pattern occurs as many times as within the specified range. +** For example, `Employee:s - (Works_For>*2..4) - Employee` matches all paths between two `Employee` vertices with 2 - 4 right-directed `Works_For` edges. +The vertices in the middle do not need to be `Person` vertices. + +=== Pattern concatenation +The dot operator``.`` means concatenate the two edge patterns into one. +The vertex joining the two edges is omitted from the syntax. +The dot operator is a shorthand, when you don’t care about the type of that intermediate vertex. +`(A>.:e2)- Y:y -( + + +SELECT u +FROM X:x -(E2>. +---- +<1> This `FROM` clauses uses a longer pattern, but gives you access to `y`, `e2`, `z` and `e4`. +<2> This `FROM` clauses is more concise than the first `FROM` clause, but does not give you access to the intermediate vertex and edge sets. + +=== Conjunctive Pattern Matching + +The optional repeating phrase `["," pathPattern]*` allows you to have multiple path patterns. +They form a conjunction, meaning all of them must be satisfied in order to have a valid match result. +See xref:tutorials:pattern-matching/adv/conjunctive-pattern-matching.adoc[] for more details. + +[source,ebnf] +---- +fromClause := FROM (step | stepV2 | pathPattern ["," pathPattern]*) +---- + +Each step pattern or path pattern forms a match table, one row per matching path in the graph. +Each vertex alias or edge alias is one column in the table. +When we have a conjunctive path, each path must share at least one vertex alias with another path. +This enables the two path sets (and match tables) to be joined. +Formally, we make the natural join of the two tables. + + +[#_vertex_and_edge_aliases] +== Vertex and Edge Aliases + +Vertex and edge _aliases_ are declared within the `FROM` clause of a `SELECT` block, by using the colon `:`, followed by the alias name. +Aliases can be accessed anywhere within the same `SELECT` block. +They are used to reference a single selected vertex or edge of a set. +It is through the vertex or edge aliases that the attributes of these vertices or edges can be accessed. + +For example, the following code snippets show two different `SELECT` statements. +The first `SELECT` statement starts from a vertex set called `allVertices`, and the vertex alias name `v` can access each individual vertex from `allVertices`. +The second `SELECT` statement selects a set of edges.It can use the vertex alias `s` to reference the source vertices, or the alias `t` to reference the target vertices. + +.Vertex variables +[source,gsql] +---- +results = SELECT v FROM all_vertices:v; +results = SELECT t FROM all_vertices:s -()- :t; +---- + +The following example shows an edge-based `SELECT` statement, declaring aliases for all three parts of the edge. +In the `ACCUM` clause, the `e` and `t` aliases are assigned to local vertex and edge variables. + +.Edge variables +[source,gsql] +---- +results = SELECT v + FROM all_vertices:s -(:e)- :t + ACCUM VERTEX v = t, EDGE eg = e; +---- + +[WARNING] +==== +We strongly suggest that an alias should be declared with every vertex and edge in the FROM clause, as there are several functions and features only available to vertex and edge aliases. +==== From 336574a5f1c8fee1efc137e740d908da70909fe5 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Mon, 24 Mar 2025 23:03:43 -0400 Subject: [PATCH 045/194] Update modules/querying/pages/select-statement/FROM Clause (v2) --- modules/querying/pages/select-statement/FROM Clause (v2) | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/querying/pages/select-statement/FROM Clause (v2) b/modules/querying/pages/select-statement/FROM Clause (v2) index f0e1c749..af07ae04 100644 --- a/modules/querying/pages/select-statement/FROM Clause (v2) +++ b/modules/querying/pages/select-statement/FROM Clause (v2) @@ -1,4 +1,6 @@ -= FROM Clause (v2) += FROM Clause (Syntax V2) +:navtitle: From Clause (V2) + The FROM clause in GSQL Syntax V2 is used to define path patterns for traversing the graph structure. A path pattern specifies how vertices and edges are connected and provides the basis for the query to traverse the graph. In V2, the FROM clause supports both traditional vertex-edge patterns and more advanced multi-hop patterns. From dbce8b9c2c5bc77809f27efb73531b7aea6f754f Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Mon, 24 Mar 2025 23:11:19 -0400 Subject: [PATCH 046/194] DOC-2415 rename new file to from-clause-v2.adoc --- .../select-statement/{FROM Clause (v2) => from-clause-v2.adoc} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename modules/querying/pages/select-statement/{FROM Clause (v2) => from-clause-v2.adoc} (100%) diff --git a/modules/querying/pages/select-statement/FROM Clause (v2) b/modules/querying/pages/select-statement/from-clause-v2.adoc similarity index 100% rename from modules/querying/pages/select-statement/FROM Clause (v2) rename to modules/querying/pages/select-statement/from-clause-v2.adoc From bff3530b2989a083136c6a40393fba5321119001 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 25 Mar 2025 09:27:34 +0530 Subject: [PATCH 047/194] Changed V2 to v2 --- modules/querying/nav.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/nav.adoc b/modules/querying/nav.adoc index d3c59b45..4d1c41f9 100644 --- a/modules/querying/nav.adoc +++ b/modules/querying/nav.adoc @@ -25,7 +25,7 @@ *** xref:func/vertex-methods.adoc[] ** xref:declaration-and-assignment-statements.adoc[] ** xref:select-statement/index.adoc[] -*** xref:select-statement/from-clause-V2.adoc[] +*** xref:select-statement/from-clause-v2.adoc[] *** xref:select-statement/select-statement-v1.adoc[] *** xref:select-statement/sql-like-select-statement.adoc[] ** xref:control-flow-statements.adoc[] From 1dcc84140550b59ce01d5af8a2904930c3467666 Mon Sep 17 00:00:00 2001 From: yulitg2110 Date: Tue, 25 Mar 2025 15:56:44 +0800 Subject: [PATCH 048/194] DOC-2610 feat(endpoints): add an endpoint for fetching metadata from snowflake data source; --- modules/API/pages/gsql-endpoints.adoc | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/modules/API/pages/gsql-endpoints.adoc b/modules/API/pages/gsql-endpoints.adoc index 37dd063e..60bb216b 100644 --- a/modules/API/pages/gsql-endpoints.adoc +++ b/modules/API/pages/gsql-endpoints.adoc @@ -2763,6 +2763,39 @@ Sample Response:: -- ==== +''' +=== get metadata from a Snowflake data source + +`GET /gsql/v1/metadata/data-sources/{dsName}` + +This endpoint is used to get metadata from a Snowflake data source. + +==== Parameters: + +None + +==== Example: +[,tabs] +==== +Sample Request:: ++ +-- +[source,bash] +---- +curl -X GET 'Content-type: text/plain' "http://localhost:14240/gsql/v1/metadata/data-sources/k1" +---- +-- +Sample Response:: ++ +-- +[source.wrap,console] +---- +{"error":false,"message":"","results":{"databaseName":"snowflake_db","schemaName":"snowflake_schema","tableNames":["COMMENT","PERSON","POST"],"tables":[{"columns":[{"name":"ID","nullable":true,"type":"NUMBER"},{"name":"CONTENT","nullable":true,"type":"VARCHAR"},{"name":"CREATIONDATE","nullable":true,"type":"VARCHAR"}],"name":"COMMENT"},{"columns":[{"name":"ID","nullable":true,"type":"NUMBER"},{"name":"FIRSTNAME","nullable":true,"type":"VARCHAR"},{"name":"LASTNAME","nullable":true,"type":"VARCHAR"}],"name":"PERSON"},{"columns":[{"name":"ID","nullable":true,"type":"NUMBER"},{"name":"CONTENT","nullable":true,"type":"VARCHAR"},{"name":"CREATIONDATE","nullable":true,"type":"VARCHAR"}],"name":"POST"}],"viewNames":["VIEW_PERSON_DETAILS"],"views":[{"columns":[{"name":"FULLNAME","nullable":true,"type":"VARCHAR"},{"name":"EMAIL","nullable":true,"type":"VARCHAR"}],"name":"VIEW_PERSON_DETAILS"}]}} + +---- +-- +==== + ''' == Query From b73673e64d15085a8d4fc45940a0c74641948d71 Mon Sep 17 00:00:00 2001 From: srinadhmamidalaTG Date: Tue, 25 Mar 2025 14:23:33 +0530 Subject: [PATCH 049/194] Update accumulators.adoc --- modules/querying/pages/accumulators.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index 35c6218f..5173012b 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -1506,7 +1506,7 @@ In this case, each field of the multiple-field value has its own accumulation fu ==== Known Issue -* Currently, operations between different GroupByAccums with the same data types but different field names are not supported. These queries may pass semantic checks but will fail during query compilation with a Type Check Error. +Starting from version 4.2.0, operations between different GroupByAccums with the same data types but different field names will result in a Type Check Error during query compilation. In earlier versions, such queries may pass semantic checks but will fail with a compilation error. In GroupByAccum, the key types can be base type or tuple. The accumulators are used for aggregating group values. Each accumulator type can be any type including HeapAccum. Each base type and each accumulator type must be followed an alias. Below is an example declaration. From b2dbdd1d2803820f50b84d24be06ff312707e642 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 25 Mar 2025 20:56:23 -0400 Subject: [PATCH 050/194] DOC-2643-remove-extraneous-heading --- modules/querying/pages/query-operations.adoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index 3cf77c0b..13843f03 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -845,8 +845,6 @@ CREATE VERTEX Composite_Person(id UINT, name STRING, age UINT, primary key (name A vertex ID would be `"Tom,456"`, consisting of the `name` attribute and the `id` attribute. ==== -==== Parameter list - [width="100%",cols="28%,36%,36%",options="header",] |=== |Parameter type |Syntax |Example From 0ff9c09d05aab3ae463fa1d8a6bea8d564f81a1d Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 25 Mar 2025 22:15:37 -0400 Subject: [PATCH 051/194] DOC-2631-install-query-async --- modules/querying/pages/query-operations.adoc | 41 ++++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index 13843f03..6d23221e 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -679,33 +679,40 @@ Concurrent `INSTALL QUERY` commands are allowed as long as only one `INSTALL QUE === Options -The following options are available: +`INSTALL QUERY` offers the following options: -[width=``100%'',cols=``19%,81%'',options=``header''] +[cols=",6", options="header"] |=== -|Option|Effect - -|`-FORCE` -|Re-installs the query even if the system indicates the -query is already installed. This is useful for overwriting an -installation that is corrupted or otherwise outdated, without having to -drop and then recreate the query. If this option is not used, the GSQL -shell will refuse to re-install a query that is already installed. -a|`-SINGLE` -|Enables a new internal framework for compiling non-distributed queries. Equivalent to the `single_gpr` session parameter described on the xref:ddl-and-loading:running-gsql.adoc#_session_parameters[Session Parameters page.] +|Option|Effect -The loop variable in a `xref:querying:control-flow-statements.adoc#_foreach_statement[FOREACH` loop] with this option enabled is treated as a copy, while normally, changes to the loop variable will change the value in the set or bag expression. +|`-ASYNC` +a|Run the install operation in the background and return a requestId to the user. The requestId can be used to xref:{page-component-version}@tigergraph-server:api:built-in-endpoints.adoc#_check_query_installation_status[check the installation status]. -a|`-COST` -|Installs and optimizes the query using xref:query-optimizer/index.adoc[cost-based optimization]. +|`-COST` +a|Install and optimize the query using xref:query-optimizer/index.adoc[cost-based optimization]. The optimizer uses various statistics to generate an efficient traversal plan when compiling a query. You can benefit from this option if your query uses a `FROM` clause that uses a xref:select-statement/index.adoc#_path_pattern[path pattern]. -This option can be used together with other options, but it must come after the other options. +[NOTE] +==== +* This option can be used together with other options, but it must come after the other options. For example, you cannot run `INSTALL QUERY -COST -FORCE ALL`, it must be `INSTALL QUERY -FORCE -COST ALL` +* This is a *Preview feature* and should not be used in production. +==== + +|`-FORCE` +|Re-install the query even if the system indicates the +query is already installed. +This is useful for overwriting an installation that is corrupted or otherwise outdated. +If this option is not used, the GSQL shell will refuse to re-install a query that is already installed. + +|`-SINGLE` +a|Apply the same engine framework used for distributed queries, even on a single server. Equivalent to the `single_gpr` session parameter described at xref:ddl-and-loading:system-and-language-basics.adoc#_session_parameters[Session Parameters]. + +NOTE: This option treats the loop variable in a `xref:querying:control-flow-statements.adoc#_foreach_statement[FOREACH` loop] as a copy. +Updating the loop variable (copy) in the `FOREACH` block will not affect the actual loop variable. -This is a Preview feature and should not be used in production. |=== === Optimize installed queries From 5555f7dae821fda243bc004f5b82f9b4449953ea Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 26 Mar 2025 00:31:07 -0400 Subject: [PATCH 052/194] DOC-2631-install-async-UNDO --- modules/querying/pages/query-operations.adoc | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index 6d23221e..a1baff18 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -686,9 +686,6 @@ Concurrent `INSTALL QUERY` commands are allowed as long as only one `INSTALL QUE |Option|Effect -|`-ASYNC` -a|Run the install operation in the background and return a requestId to the user. The requestId can be used to xref:{page-component-version}@tigergraph-server:api:built-in-endpoints.adoc#_check_query_installation_status[check the installation status]. - |`-COST` a|Install and optimize the query using xref:query-optimizer/index.adoc[cost-based optimization]. The optimizer uses various statistics to generate an efficient traversal plan when compiling a query. From 0216b6d5445339df8bdde401bcc62d3c186aa543 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 26 Mar 2025 14:28:17 -0400 Subject: [PATCH 053/194] DOC-2387 GroupByAccum error: revise wording 4.2 --- modules/querying/pages/accumulators.adoc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index 5173012b..5b3e0e5e 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -1504,10 +1504,12 @@ In the EBNF above, the *type* terms form the key set, and the *accumType* terms In this case, each field of the multiple-field value has its own accumulation function. One way to think about GroupByAccum is that each unique key is a group ID. -==== Known Issue - -Starting from version 4.2.0, operations between different GroupByAccums with the same data types but different field names will result in a Type Check Error during query compilation. In earlier versions, such queries may pass semantic checks but will fail with a compilation error. - +[NOTE] +==== +Operations between different GroupByAccums with the same data types but different field names are not supported. +They will result in a Type Check Error during `CREATE QUERY`. +In earlier versions, such queries would fail with a compilation error during query installation. +==== In GroupByAccum, the key types can be base type or tuple. The accumulators are used for aggregating group values. Each accumulator type can be any type including HeapAccum. Each base type and each accumulator type must be followed an alias. Below is an example declaration. From ab98dc3f399727fbb643798caca454ba6a648ff3 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 28 Mar 2025 01:24:19 +0530 Subject: [PATCH 054/194] DOC-2415: Updated FROM syntax to v3 --- ..._index_sample_edges_per_source_vertex.gsql | 2 +- ...ment_index_limit_lower_bound_and_size.gsql | 2 +- ...ect_statement_index_limit_with_offset.gsql | 2 +- .../select_statement_index_limt_by.gsql | 2 +- ...t_statement_index_order_by_descending.gsql | 2 +- .../ldbc_snb/select_statement_accum.gsql | 4 +- .../ldbc_snb/select_statement_accum_2.gsql | 2 +- ...tement_index_three_post_accum_clauses.gsql | 14 +++---- ...atement_index_accum_vertex_accum_edge.gsql | 4 +- .../select_statement_index_global_accum.gsql | 2 +- ...ect_statement_index_global_post_accum.gsql | 2 +- .../select_statement_index_having.gsql | 2 +- ...select_statement_index_having_literal.gsql | 4 +- ...elect_statement_index_having_vs_where.gsql | 4 +- ...x_multiple_edge_type_accum_compilable.gsql | 2 +- ..._index_multiple_edge_type_accum_error.gsql | 2 +- ...ex_updating_indirect_reference_vertex.gsql | 4 +- ..._statement_index_vertex_accum_example.gsql | 2 +- .../select_statement_index_where.gsql | 2 +- .../select_statement_index_where_and_or.gsql | 38 +++++++++--------- ...tement_index_where_multiple_edge_type.gsql | 2 +- ...select_statement_index_where_using_in.gsql | 6 +-- ...statement_index_absolute_number_edges.gsql | 4 +- ...ect_statement_index_vertex_post_accum.gsql | 2 +- ...ent_index_where_using_edge_attributes.gsql | 2 +- modules/querying/pages/img.png | Bin 0 -> 88238 bytes .../pages/select-statement/index.adoc | 16 ++++---- 27 files changed, 65 insertions(+), 65 deletions(-) create mode 100644 modules/querying/pages/img.png diff --git a/modules/appendix/examples/computer_net/select_statement_index_sample_edges_per_source_vertex.gsql b/modules/appendix/examples/computer_net/select_statement_index_sample_edges_per_source_vertex.gsql index a2a0412f..10992b99 100644 --- a/modules/appendix/examples/computer_net/select_statement_index_sample_edges_per_source_vertex.gsql +++ b/modules/appendix/examples/computer_net/select_statement_index_sample_edges_per_source_vertex.gsql @@ -9,7 +9,7 @@ CREATE QUERY sample_ex_3() FOR GRAPH Computer_Net { start = {Computer.*}; // Sample one outgoing edge per source vertex = Random Walk - abs_sample = SELECT v FROM start:s -(:e)- :v + abs_sample = SELECT v FROM (s:start) -[e]- (v) SAMPLE 1 EDGE WHEN s.outdegree() >= 1 // sample 1 target vertex from each source vertex ACCUM @@abs_edges += (s.id -> v.id), diff --git a/modules/appendix/examples/friend_net/select_statement_index_limit_lower_bound_and_size.gsql b/modules/appendix/examples/friend_net/select_statement_index_limit_lower_bound_and_size.gsql index be153c1c..2fbfb71b 100644 --- a/modules/appendix/examples/friend_net/select_statement_index_limit_lower_bound_and_size.gsql +++ b/modules/appendix/examples/friend_net/select_statement_index_limit_lower_bound_and_size.gsql @@ -1,7 +1,7 @@ CREATE QUERY limit_ex_2 (INT j, INT k) FOR GRAPH Friend_Net { start = {Person.*}; - result2 = SELECT v FROM start:v + result2 = SELECT v FROM (v:start) ORDER BY v.id LIMIT j, k; diff --git a/modules/appendix/examples/friend_net/select_statement_index_limit_with_offset.gsql b/modules/appendix/examples/friend_net/select_statement_index_limit_with_offset.gsql index 7fb99e05..50c883e4 100644 --- a/modules/appendix/examples/friend_net/select_statement_index_limit_with_offset.gsql +++ b/modules/appendix/examples/friend_net/select_statement_index_limit_with_offset.gsql @@ -1,7 +1,7 @@ CREATE QUERY limit_ex_3 (INT j, INT k) FOR GRAPH Friend_Net { start = {Person.*}; - result3 = SELECT v FROM start:v + result3 = SELECT v FROM (v:start) ORDER BY v.id LIMIT k OFFSET j; diff --git a/modules/appendix/examples/friend_net/select_statement_index_limt_by.gsql b/modules/appendix/examples/friend_net/select_statement_index_limt_by.gsql index 61ca402c..ef315f54 100644 --- a/modules/appendix/examples/friend_net/select_statement_index_limt_by.gsql +++ b/modules/appendix/examples/friend_net/select_statement_index_limt_by.gsql @@ -1,7 +1,7 @@ CREATE QUERY limit_ex_1 (INT k) FOR GRAPH Friend_Net { start = {Person.*}; - result1 = SELECT v FROM start:v + result1 = SELECT v FROM (v:start) ORDER BY v.id LIMIT k; diff --git a/modules/appendix/examples/friend_net/select_statement_index_order_by_descending.gsql b/modules/appendix/examples/friend_net/select_statement_index_order_by_descending.gsql index 821c57ba..8957b971 100644 --- a/modules/appendix/examples/friend_net/select_statement_index_order_by_descending.gsql +++ b/modules/appendix/examples/friend_net/select_statement_index_order_by_descending.gsql @@ -3,7 +3,7 @@ CREATE QUERY top_popular() FOR GRAPH Friend_Net { SumAccum @num_coworkers; start = {Person.*}; - result = SELECT v FROM start -((Friend|Coworker):e)- Person:v + result = SELECT v FROM (start) -[e:Friend|Coworker]- (v:Person) ACCUM CASE WHEN e.type == "Friend" THEN v.@num_friends += 1 WHEN e.type == "Coworker" THEN v.@num_coworkers += 1 diff --git a/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql b/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql index a2e805d8..a4172856 100644 --- a/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql +++ b/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql @@ -3,9 +3,9 @@ CREATE QUERY accum_wrong_example() SYNTAX v2 { SumAccum @active_flag = 0; result = SELECT p - FROM Person: p - (KNOWS) - Person: w + FROM (p:Person) -[KNOWS]-> (w:Person) WHERE w.lastName == "Wang" AND p.firstName == "Peter" ACCUM p.@active_flag += 1, - @@count_total += p.@active_flag; // <1> + @@count_total += p.@active_flag; PRINT @@count_total, result[result.@active_flag]; } \ No newline at end of file diff --git a/modules/appendix/examples/ldbc_snb/select_statement_accum_2.gsql b/modules/appendix/examples/ldbc_snb/select_statement_accum_2.gsql index adc86908..a86d06a3 100644 --- a/modules/appendix/examples/ldbc_snb/select_statement_accum_2.gsql +++ b/modules/appendix/examples/ldbc_snb/select_statement_accum_2.gsql @@ -3,7 +3,7 @@ CREATE QUERY accum_example() SYNTAX v2 { SumAccum @active_flag = 0; result = SELECT p - FROM Person: p - (KNOWS) - Person: w + FROM (p:Person) -[KNOWS]-> (w:Person) WHERE w.lastName == "Wang" AND p.firstName == "Peter" ACCUM p.@active_flag += 1 POST-ACCUM @@count_total += p.@active_flag; diff --git a/modules/appendix/examples/ldbc_snb/select_statement_index_three_post_accum_clauses.gsql b/modules/appendix/examples/ldbc_snb/select_statement_index_three_post_accum_clauses.gsql index 29228828..0db07c4d 100644 --- a/modules/appendix/examples/ldbc_snb/select_statement_index_three_post_accum_clauses.gsql +++ b/modules/appendix/examples/ldbc_snb/select_statement_index_three_post_accum_clauses.gsql @@ -4,14 +4,14 @@ INTERPRET QUERY () { SumAccum @cnt2; SumAccum @@global_t_count; - R = SELECT s - FROM Person:s-(Likes>) -:msg - (Has_Creator>)-Person:t + R = SELECT s + FROM (s:Person) -[Likes>]- :msg -[Has_Creator>]- (t:Person) WHERE s.first_name == "Viktor" AND s.last_name == "Akhiezer" AND t.last_name LIKE "S%" AND year(msg.creation_date) == 2012 - ACCUM s.@cnt1 +=1 //execute this per match of the FROM pattern. - POST-ACCUM s.@cnt2 += s.@cnt1 // <1> - POST-ACCUM t.@cnt2 +=1 // <2> - POST-ACCUM(t) @@global_t_count += 1; // <3> + ACCUM s.@cnt1 +=1 + POST-ACCUM s.@cnt2 += s.@cnt1 + POST-ACCUM t.@cnt2 +=1 + POST-ACCUM(t) @@global_t_count += 1; - PRINT R [R.first_name, R.last_name, R.@cnt1, R.@cnt2]; + PRINT R [R.first_name, R.last_name, R.@cnt1, R.@cnt2]; } \ No newline at end of file diff --git a/modules/appendix/examples/social_net/select_statement_index_accum_vertex_accum_edge.gsql b/modules/appendix/examples/social_net/select_statement_index_accum_vertex_accum_edge.gsql index 02416229..1b3e5610 100644 --- a/modules/appendix/examples/social_net/select_statement_index_accum_vertex_accum_edge.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_accum_vertex_accum_edge.gsql @@ -5,10 +5,10 @@ CREATE QUERY user_posts_2() FOR GRAPH Social_Net { start = {Person.*}; // Find all user post topics and append them to the vertex list accum - user_postings = SELECT s FROM start:s -(Posted)- :g + user_postings = SELECT s FROM (s:start) -[Posted]- (g) ACCUM s.@person_posts += g; - user_postings = SELECT s from start:s -(Liked:e)- :g + user_postings = SELECT s FROM (s:start) -[Liked:e]- (g) ACCUM s.@person_liked_info += e; PRINT start; diff --git a/modules/appendix/examples/social_net/select_statement_index_global_accum.gsql b/modules/appendix/examples/social_net/select_statement_index_global_accum.gsql index ee20f0e5..660306d1 100644 --- a/modules/appendix/examples/social_net/select_statement_index_global_accum.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_global_accum.gsql @@ -4,7 +4,7 @@ CREATE QUERY user_posts_by_topic() FOR GRAPH Social_Net { start = {Person.*}; // Append subject and update the appearance count in the global map accum - posts = SELECT g FROM start -(Posted)- :g + posts = SELECT g FROM (start) -[Posted]- (g) ACCUM @@post_topic_counts += (g.subject -> 1); PRINT @@post_topic_counts; diff --git a/modules/appendix/examples/social_net/select_statement_index_global_post_accum.gsql b/modules/appendix/examples/social_net/select_statement_index_global_post_accum.gsql index 4755cd75..be1b1dbd 100644 --- a/modules/appendix/examples/social_net/select_statement_index_global_post_accum.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_global_post_accum.gsql @@ -5,7 +5,7 @@ CREATE QUERY person_gender(STRING gender) FOR GRAPH Social_Net { start = {ANY}; // Select all person vertices and check the gender attribute - friends = SELECT v FROM start:v + friends = SELECT v FROM (v:start) WHERE v.type == "Person" POST-ACCUM (v) CASE WHEN (v.gender == gender) THEN diff --git a/modules/appendix/examples/social_net/select_statement_index_having.gsql b/modules/appendix/examples/social_net/select_statement_index_having.gsql index 5797623c..c378905f 100644 --- a/modules/appendix/examples/social_net/select_statement_index_having.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_having.gsql @@ -1,7 +1,7 @@ CREATE QUERY active_members (INT activity_threshold) FOR GRAPH Social_Net { SumAccum @activity_amount; start = {Person.*}; - result = SELECT v FROM start:v -(:e)- Post:tgt + result = SELECT v FROM (v:start) -[e:]- (tgt:Post) ACCUM v.@activity_amount +=1 HAVING v.@activity_amount >= activity_threshold; PRINT result; diff --git a/modules/appendix/examples/social_net/select_statement_index_having_literal.gsql b/modules/appendix/examples/social_net/select_statement_index_having_literal.gsql index 76bffdb6..54c724fb 100644 --- a/modules/appendix/examples/social_net/select_statement_index_having_literal.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_having_literal.gsql @@ -4,11 +4,11 @@ CREATE QUERY print_member_activity() FOR GRAPH Social_Net start = {Person.*}; /* --- equivalent statements ----- - result = SELECT v FROM start:v -(:e)- Post:tgt + result = SELECT v FROM (v:start) -[e]- (tgt:Post) ACCUM v.@activity_amount +=1 HAVING true; */ - result = SELECT v FROM start:v -(:e)- Post:tgt + result = SELECT v FROM (v:start) -[e]- (tgt:Post) ACCUM v.@activity_amount +=1; PRINT result; diff --git a/modules/appendix/examples/social_net/select_statement_index_having_vs_where.gsql b/modules/appendix/examples/social_net/select_statement_index_having_vs_where.gsql index 10144024..24ea6bc3 100644 --- a/modules/appendix/examples/social_net/select_statement_index_having_vs_where.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_having_vs_where.gsql @@ -3,11 +3,11 @@ CREATE QUERY active_male_members() FOR GRAPH Social_Net SumAccum @activity_amount; start = {Person.*}; // The two statements produce equivalent results - result1 = SELECT v FROM start:v -(:e)- Post:tgt + result1 = SELECT v FROM (v:start) -[e:]-> (tgt:Post) WHERE v.gender == "Male" ACCUM v.@activity_amount +=1; - result2 = SELECT v FROM start:v -(:e)- Post:tgt + result2 = SELECT v FROM (v:start) -[e:]-> (tgt:Post) ACCUM v.@activity_amount +=1 HAVING v.gender == "Male"; diff --git a/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_compilable.gsql b/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_compilable.gsql index 9c9a93e3..e0b093c7 100644 --- a/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_compilable.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_compilable.gsql @@ -2,7 +2,7 @@ CREATE QUERY multiple_edge_type_check_ex_2(VERTEX m1) FOR GRAPH Social_N ListAccum @@test_list1; all_user = {m1}; all_user = SELECT s - FROM all_user:s - ((Posted|Liked|Friend):e) - (Post|Person):t + FROM (all_user:s) -[e:Posted|Liked|Friend]- (t:Post|Person) ACCUM CASE WHEN e.type == "Liked" THEN // for Liked edges @@test_list1 += to_string(datetime_to_epoch(e.action_time)) diff --git a/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_error.gsql b/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_error.gsql index 4b6f57b9..84959bd1 100644 --- a/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_error.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_error.gsql @@ -2,7 +2,7 @@ CREATE QUERY multiple_edge_type_check_ex (VERTEX m1) FOR GRAPH Social_Ne ListAccum @@test_list_1, @@test_list_2, @@test_list_3; all_user = {m1}; all_user = SELECT s - FROM all_user:s - ((Posted|Liked|Friend):e) - (Post|Person):t + FROM (all_user:s) -[e:Posted|Liked|Friend]- (t:Post|Person) ACCUM @@test_list_1 += to_string(datetime_to_epoch(e.action_time)), @@test_list_2 += t.gender, @@test_list_3 += to_string(datetime_to_epoch(e.action_time)) + t.gender // <1> diff --git a/modules/appendix/examples/social_net/select_statement_index_updating_indirect_reference_vertex.gsql b/modules/appendix/examples/social_net/select_statement_index_updating_indirect_reference_vertex.gsql index 3e1825c2..cd2ac7a6 100644 --- a/modules/appendix/examples/social_net/select_statement_index_updating_indirect_reference_vertex.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_updating_indirect_reference_vertex.gsql @@ -6,14 +6,14 @@ CREATE QUERY v_update_indirect_accum() FOR GRAPH Social_Net { persons = {Person.*}; // To each post, attach a list of persons who liked the post liked_posts = SELECT p - FROM persons:src -(Liked:e)- Post:p + FROM (src:persons) -[e:Liked]-> (p:Post) ACCUM p.@posters += src; // To each person who liked a post, attach a list of everyone // who also liked one of this person's liked posts. liked_posts = SELECT src - FROM liked_posts:src + FROM (src:liked_posts) ACCUM FOREACH v IN src.@posters DO v.@fellows += src.@posters diff --git a/modules/appendix/examples/social_net/select_statement_index_vertex_accum_example.gsql b/modules/appendix/examples/social_net/select_statement_index_vertex_accum_example.gsql index 3f01d4ab..24020a0a 100644 --- a/modules/appendix/examples/social_net/select_statement_index_vertex_accum_example.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_vertex_accum_example.gsql @@ -4,7 +4,7 @@ CREATE QUERY user_posts() FOR GRAPH Social_Net { start = {Person.*}; // Find all user post topics and append them to the vertex list accum - user_postings = SELECT s FROM start:s -(Posted)- :g + user_postings = SELECT s FROM (s:start) -[Posted]- (g) ACCUM s.@person_posts += g.subject; PRINT user_postings; diff --git a/modules/appendix/examples/social_net/select_statement_index_where.gsql b/modules/appendix/examples/social_net/select_statement_index_where.gsql index 2633c17b..671422d4 100644 --- a/modules/appendix/examples/social_net/select_statement_index_where.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_where.gsql @@ -1,5 +1,5 @@ CREATE QUERY print_cat_posts() FOR GRAPH Social_Net { - cat_posts = SELECT v FROM Post:v // select only those post vertices + cat_posts = SELECT v FROM (v:Post) // select only those post vertices WHERE v.subject == "cats"; // which have a subset of 'cats' PRINT cat_posts; } \ No newline at end of file diff --git a/modules/appendix/examples/social_net/select_statement_index_where_and_or.gsql b/modules/appendix/examples/social_net/select_statement_index_where_and_or.gsql index 7e24bbd4..06d19a1a 100644 --- a/modules/appendix/examples/social_net/select_statement_index_where_and_or.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_where_and_or.gsql @@ -5,42 +5,42 @@ CREATE QUERY find_female_members() FOR GRAPH Social_Net // are equivalent (i.e., produce the same results) all_vertices = {ANY}; # includes all posts and person - females = SELECT v FROM all_vertices:v + females = SELECT v FROM (all_vertices:v) WHERE v.type == "Person" AND v.gender != "Male"; - females = SELECT v FROM all_vertices:v + females = SELECT v FROM (all_vertices:v) WHERE v.type == "Person" AND v.gender == "Female"; - females = SELECT v FROM all_vertices:v + females = SELECT v FROM (all_vertices:v) WHERE v.type == "Person" AND NOT v.gender == "Male"; - females = SELECT v FROM all_vertices:v + females = SELECT v FROM (all_vertices:v) WHERE v.type != "Post" AND NOT v.gender == "Male"; /* does not compile. cannot use NOT operator in combination with type attribute - females = SELECT v FROM all_vertices:v - WHERE NOT v.type != "Person" AND - NOT v.gender == "Male"; + females = SELECT v FROM (all_vertices:v) + WHERE NOT v.type != "Person" AND + NOT v.gender == "Male"; does not compile. cannot use NOT operator in combination with type attribute - females = SELECT v FROM all_vertices:v - WHERE NOT v.type == "Post" AND - NOT v.gender == "Male"; */ + females = SELECT v FROM (all_vertices:v) + WHERE NOT v.type == "Post" AND + NOT v.gender == "Male"; - person_vertices = {Person.*}; - females = SELECT v FROM person_vertices:v - WHERE NOT v.gender == "Male"; + pperson_vertices = {Person.*}; + females = SELECT v FROM (person_vertices:v) + WHERE NOT v.gender == "Male"; - females = SELECT v FROM person_vertices:v - WHERE v.gender != "Male"; + females = SELECT v FROM (person_vertices:v) + WHERE v.gender != "Male"; - females = SELECT v FROM person_vertices:v - WHERE v.gender != "Male" AND true; + females = SELECT v FROM (person_vertices:v) + WHERE v.gender != "Male" AND true; - females = SELECT v FROM person_vertices:v - WHERE v.gender != "Male" OR false; + females = SELECT v FROM (person_vertices:v) + WHERE v.gender != "Male" OR false; PRINT females; } \ No newline at end of file diff --git a/modules/appendix/examples/social_net/select_statement_index_where_multiple_edge_type.gsql b/modules/appendix/examples/social_net/select_statement_index_where_multiple_edge_type.gsql index b7604809..c289f85b 100644 --- a/modules/appendix/examples/social_net/select_statement_index_where_multiple_edge_type.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_where_multiple_edge_type.gsql @@ -1,7 +1,7 @@ CREATE QUERY multiple_edge_type_where_ex(VERTEX m1) FOR GRAPH Social_Net { all_user = {m1}; filtered_user = SELECT s - FROM all_user:s - ((Posted|Liked|Friend):e) - (Post|Person):t + FROM (s:all_user) -[e:Posted|Liked|Friend]-> (t:Post|Person) // WHERE e.action_time > epoch_to_datetime(1) AND t.gender == "Male"; WHERE ( e.type == "Liked" AND e.action_time > epoch_to_datetime(1) ) OR ( e.type == "Friend" AND t.gender == "Male" ); diff --git a/modules/appendix/examples/social_net/select_statement_index_where_using_in.gsql b/modules/appendix/examples/social_net/select_statement_index_where_using_in.gsql index 62ee124d..a213ee71 100644 --- a/modules/appendix/examples/social_net/select_statement_index_where_using_in.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_where_using_in.gsql @@ -1,5 +1,5 @@ CREATE QUERY find_graph_focused_posts() FOR GRAPH Social_Net { - results = SELECT v FROM Post:v // select only post vertices - WHERE v.subject IN ("Graph", "tigergraph"); // which have a subject of either 'Graph' or 'tigergraph' - PRINT results; + results = SELECT v FROM (v:Post) // select only post vertices + WHERE v.subject IN ("Graph", "tigergraph"); // which have a subject of either 'Graph' or 'tigergraph' + PRINT results; } \ No newline at end of file diff --git a/modules/appendix/examples/work_net/select_statement_index_absolute_number_edges.gsql b/modules/appendix/examples/work_net/select_statement_index_absolute_number_edges.gsql index e93cfdd0..0b2ca077 100644 --- a/modules/appendix/examples/work_net/select_statement_index_absolute_number_edges.gsql +++ b/modules/appendix/examples/work_net/select_statement_index_absolute_number_edges.gsql @@ -6,7 +6,7 @@ CREATE QUERY sample_ex_1() FOR GRAPH Work_Net { // the 'before_sample' result set encapsulates the normal functionality of // a SELECT statement, where 'times_traversed_no_sample' vertex accumulator is increased for // each edge incident to the vertex. - before_sample = SELECT v FROM workers:t -(:e)- :v + before_sample = SELECT v FROM (t:workers) -[e]- (v) ACCUM v.@times_traversed_no_sample += 1; // The 'after_sample' result set is formed by those vertices which can be @@ -14,7 +14,7 @@ CREATE QUERY sample_ex_1() FOR GRAPH Work_Net { // This is demonstrated by the values of 'times_traversed_with_sample' vertex accumulator, which // is increased for each edge incident to the vertex which is used in the // sample. - after_sample = SELECT v FROM workers:t -(:e)- :v + after_sample = SELECT v FROM (t:workers) -[e]- (v) SAMPLE 1 EDGE WHEN t.outdegree() >= 1 // only use 1 edge from the source vertex ACCUM v.@times_traversed_with_sample += 1; diff --git a/modules/appendix/examples/work_net/select_statement_index_vertex_post_accum.gsql b/modules/appendix/examples/work_net/select_statement_index_vertex_post_accum.gsql index 542db5ca..cbdd097e 100644 --- a/modules/appendix/examples/work_net/select_statement_index_vertex_post_accum.gsql +++ b/modules/appendix/examples/work_net/select_statement_index_vertex_post_accum.gsql @@ -6,7 +6,7 @@ CREATE QUERY resident_employees() FOR GRAPH Work_Net { start = {Person.*}; - employees = SELECT s FROM start:s -(Works_For)- :c + employees = SELECT s FROM (s:start) -[Works_For]- (c) // If a person works for a company in the same country where they live, add the company to the list ACCUM CASE WHEN (s.location_id == c.country) THEN diff --git a/modules/appendix/examples/work_net/select_statement_index_where_using_edge_attributes.gsql b/modules/appendix/examples/work_net/select_statement_index_where_using_edge_attributes.gsql index d868a7dc..52c8583b 100644 --- a/modules/appendix/examples/work_net/select_statement_index_where_using_edge_attributes.gsql +++ b/modules/appendix/examples/work_net/select_statement_index_where_using_edge_attributes.gsql @@ -1,7 +1,7 @@ CREATE QUERY full_time_workers() FOR GRAPH Work_Net { // find all workers who are full time at some company start = {Person.*}; - full_time_workers = SELECT v FROM start:v -(Works_For:e)- Company:t + full_time_workers = SELECT v FROM (v:start) -[e:Works_For]- (t:Company) WHERE e.full_time; // full_time is a boolean attribute on the edge PRINT full_time_workers; diff --git a/modules/querying/pages/img.png b/modules/querying/pages/img.png new file mode 100644 index 0000000000000000000000000000000000000000..f8dbb78843e55fa8163480a39b317eb623dc64bc GIT binary patch literal 88238 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\>oKj(pxV=MhN5HIq?|FTTw#(6H#DODQ0Y+S1T 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 literal 0 HcmV?d00001 diff --git a/modules/querying/pages/select-statement/index.adoc b/modules/querying/pages/select-statement/index.adoc index d56d9d43..7b0a182f 100644 --- a/modules/querying/pages/select-statement/index.adoc +++ b/modules/querying/pages/select-statement/index.adoc @@ -194,9 +194,9 @@ In the following example, the selection conditions are completely specified in t .`WHERE` used as a filter [source,gsql] ---- -result_set1 = SELECT v FROM S:v-((E1|E2|E3):e)-(V1|V2):t; -result_set2 = SELECT v FROM S:v-(:e)-:t - WHERE t.type IN ("V1", "V2") AND t IN v.neighbors("E1|E2|E3") +result_set1 = SELECT v FROM (v:S) -[e:(E1|E2|E3)]- (t:V1|V2); +result_set2 = SELECT v FROM (v:S) -[e:]- (t) + WHERE t.type IN ("V1", "V2") AND t IN v.neighbors("E1|E2|E3"); ---- @@ -437,7 +437,7 @@ For example, consider the following clauses: [source,gsql] ---- -FROM Person:A -(Knows.Knows)- Person:C +FROM (A:Person) -[Knows.Knows:Knows]- (C:Person) WHERE C.email = "Andy@www.com" ACCUM C.@pattern_count += 1 ---- @@ -915,7 +915,7 @@ This query does not compile because the having condition is testing the wrong ve CREATE QUERY print_member_about_cats() FOR GRAPH Social_Net { start = {Person.*}; - result = SELECT v FROM start:v -(:e)- Post:tgt + result = SELECT v FROM (v:start) -[e]- (tgt:Post) HAVING tgt.subject == "cats"; PRINT result; } @@ -1006,9 +1006,9 @@ There are three forms: .`LIMIT` scenarios [source.wrap,gsql] ---- -result = SELECT v FROM S -(:e)- :v LIMIT k; <1> -result = SELECT v FROM S -(:e)- :v LIMIT j, k; <2> -result = SELECT v FROM S -(:e)- :v LIMIT k OFFSET j; <3> +result = SELECT v FROM (S) -[e]- (v) LIMIT k; <1> +result = SELECT v FROM (S) -[e]- (v) LIMIT j, k; <2> +result = SELECT v FROM (S) -[e]- (v) LIMIT k OFFSET j; <3> ---- <1> Case 1: k = Count <2> Case 2: j = Offset from the start of the list, k = Count From a51ecec2d5fc0d569520a1aad9f49cc5ed921a9a Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 28 Mar 2025 01:44:29 +0530 Subject: [PATCH 055/194] DOC-2416-updated query output to S3 [4.2.0-dev] --- modules/querying/pages/data-types.adoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/querying/pages/data-types.adoc b/modules/querying/pages/data-types.adoc index 14c211f3..e71ad7ad 100644 --- a/modules/querying/pages/data-types.adoc +++ b/modules/querying/pages/data-types.adoc @@ -597,15 +597,15 @@ When the query where the `FILE` was declared finishes running, the `FILE` conten The path should start with `s3://`, followed by the bucket name and the S3 path, e.g., `s3://bucket-name/queryoutput/output.csv`. During the execution of the query, content will be uploaded to the S3 bucket. Note that the S3 object cannot be modified or appended, if an S3 object with the same path already exists, it will be overwritten. ==== Set S3 connection credentials -To use an S3 path, ensure that the necessary permissions and configurations are properly set up to allow read/write access to the specified S3 bucket. Configure the S3 connection credentials using `gadmin config`: -[source,bash] +The S3 credentials can be set as GSQL session parameters, so they persist for a user for a full session. +[source,gsql] ---- -gadmin config set GPE.QueryOutputS3AWSAccessKeyID YOUR_AWS_ACCESS_KEY_ID -gadmin config set GPE.QueryOutputS3AWSSecretAccessKey YOUR_AWS_SECRET_ACCESS_KEY -gadmin config apply -y -gadmin restart gpe -y +set s3_aws_access_key_id = ; +set s3_aws_secret_access_key = ; ---- +These session parameters should be set within the GSQL Editor to enable read/write access to the specified S3 bucket for query results. Replace `` and `` with your actual AWS credentials. + ==== Output Since S3 is a shared storage system, multiple nodes in a cluster can upload to the same S3 bucket. To handle potential conflicts and ensure unique output files, the S3 path can include a suffix based on the instance name, such as `\_GPE_{PartitionId}_{ReplicaId}`. For distributed queries, additional suffixes will be used to differentiate between the manager and worker roles on the same GPE. Specifically, suffixes like `_coordinator` and `_worker` will be added, where `_coordinator` refers to the worker manager and `_worker` refers to the worker node. From a49a0c85b62611df1f0bb3fb96bd820bc7940ebd Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 28 Mar 2025 19:24:35 +0530 Subject: [PATCH 056/194] DOC-2415-FROM syntax changes (select_statement_accum) --- .../appendix/examples/ldbc_snb/select_statement_accum.gsql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql b/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql index a4172856..199055e0 100644 --- a/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql +++ b/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql @@ -3,9 +3,9 @@ CREATE QUERY accum_wrong_example() SYNTAX v2 { SumAccum @active_flag = 0; result = SELECT p - FROM (p:Person) -[KNOWS]-> (w:Person) + FROM (p:Person) -[:KNOWS]- (w:Person) WHERE w.lastName == "Wang" AND p.firstName == "Peter" ACCUM p.@active_flag += 1, @@count_total += p.@active_flag; PRINT @@count_total, result[result.@active_flag]; -} \ No newline at end of file +} From 53ccfc33b13716fdb9779f4857041c73dbd2865e Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 28 Mar 2025 19:29:23 +0530 Subject: [PATCH 057/194] DOC-2415-FROM syntax changes (select_statement_accum_1) --- .../appendix/examples/ldbc_snb/select_statement_accum.gsql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql b/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql index 199055e0..b459ccb3 100644 --- a/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql +++ b/modules/appendix/examples/ldbc_snb/select_statement_accum.gsql @@ -1,4 +1,4 @@ -CREATE QUERY accum_wrong_example() SYNTAX v2 { +CREATE QUERY accum_wrong_example() SYNTAX v3 { SumAccum @@count_total; SumAccum @active_flag = 0; @@ -6,6 +6,6 @@ CREATE QUERY accum_wrong_example() SYNTAX v2 { FROM (p:Person) -[:KNOWS]- (w:Person) WHERE w.lastName == "Wang" AND p.firstName == "Peter" ACCUM p.@active_flag += 1, - @@count_total += p.@active_flag; + @@count_total += p.@active_flag; // <1> PRINT @@count_total, result[result.@active_flag]; } From 90274fed3cd1b9b43fee8b747c8cf03d0d927ca7 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 28 Mar 2025 19:31:15 +0530 Subject: [PATCH 058/194] DOC-2415-FROM syntax changes (select_statement_accum_2) --- .../examples/ldbc_snb/select_statement_accum_2.gsql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/appendix/examples/ldbc_snb/select_statement_accum_2.gsql b/modules/appendix/examples/ldbc_snb/select_statement_accum_2.gsql index a86d06a3..b1ec90f8 100644 --- a/modules/appendix/examples/ldbc_snb/select_statement_accum_2.gsql +++ b/modules/appendix/examples/ldbc_snb/select_statement_accum_2.gsql @@ -1,11 +1,11 @@ -CREATE QUERY accum_example() SYNTAX v2 { +CREATE QUERY accum_example() SYNTAX v3 { SumAccum @@count_total; SumAccum @active_flag = 0; result = SELECT p - FROM (p:Person) -[KNOWS]-> (w:Person) + FROM (p:Person) -[:KNOWS]- (w:Person) WHERE w.lastName == "Wang" AND p.firstName == "Peter" ACCUM p.@active_flag += 1 POST-ACCUM @@count_total += p.@active_flag; PRINT @@count_total, result[result.@active_flag]; -} \ No newline at end of file +} From 14982f55f219d8f1dac445664173c87e04e7ccc5 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 28 Mar 2025 19:59:17 +0530 Subject: [PATCH 059/194] DOC-2415-FROM syntax changes (index_three_post_accum_clauses) --- ...ect_statement_index_three_post_accum_clauses.gsql | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/appendix/examples/ldbc_snb/select_statement_index_three_post_accum_clauses.gsql b/modules/appendix/examples/ldbc_snb/select_statement_index_three_post_accum_clauses.gsql index 0db07c4d..91771c97 100644 --- a/modules/appendix/examples/ldbc_snb/select_statement_index_three_post_accum_clauses.gsql +++ b/modules/appendix/examples/ldbc_snb/select_statement_index_three_post_accum_clauses.gsql @@ -5,13 +5,13 @@ INTERPRET QUERY () { SumAccum @@global_t_count; R = SELECT s - FROM (s:Person) -[Likes>]- :msg -[Has_Creator>]- (t:Person) + FROM (s:Person) -[:Likes]\-> (:msg) -[:Has_Creator]\-> (t:Person) WHERE s.first_name == "Viktor" AND s.last_name == "Akhiezer" AND t.last_name LIKE "S%" AND year(msg.creation_date) == 2012 - ACCUM s.@cnt1 +=1 - POST-ACCUM s.@cnt2 += s.@cnt1 - POST-ACCUM t.@cnt2 +=1 - POST-ACCUM(t) @@global_t_count += 1; + ACCUM s.@cnt1 +=1 //execute this per match of the FROM pattern. + POST-ACCUM s.@cnt2 += s.@cnt1 // <1> + POST-ACCUM t.@cnt2 +=1 // <2> + POST-ACCUM(t) @@global_t_count += 1; // <3> PRINT R [R.first_name, R.last_name, R.@cnt1, R.@cnt2]; -} \ No newline at end of file +} From 3d39ef821db337e43e9ec8a8c7410ce13082b487 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 28 Mar 2025 20:12:12 +0530 Subject: [PATCH 060/194] DOC-2415-FROM syntax changes (index_accum_vertex_accum_edge) --- .../select_statement_index_accum_vertex_accum_edge.gsql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/appendix/examples/social_net/select_statement_index_accum_vertex_accum_edge.gsql b/modules/appendix/examples/social_net/select_statement_index_accum_vertex_accum_edge.gsql index 1b3e5610..c844be6e 100644 --- a/modules/appendix/examples/social_net/select_statement_index_accum_vertex_accum_edge.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_accum_vertex_accum_edge.gsql @@ -5,11 +5,11 @@ CREATE QUERY user_posts_2() FOR GRAPH Social_Net { start = {Person.*}; // Find all user post topics and append them to the vertex list accum - user_postings = SELECT s FROM (s:start) -[Posted]- (g) + user_postings = SELECT s FROM (s:start) -[:Posted]- (g) ACCUM s.@person_posts += g; - user_postings = SELECT s FROM (s:start) -[Liked:e]- (g) + user_postings = SELECT s FROM (s:start) -[e:Liked]- (g) ACCUM s.@person_liked_info += e; PRINT start; -} \ No newline at end of file +} From 461953a090383ff20bbc3a6ee39c2ec469378c23 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 28 Mar 2025 20:22:08 +0530 Subject: [PATCH 061/194] DOC-2415-FROM syntax changes (index_order_by_descending) --- .../select_statement_index_order_by_descending.gsql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/appendix/examples/friend_net/select_statement_index_order_by_descending.gsql b/modules/appendix/examples/friend_net/select_statement_index_order_by_descending.gsql index 8957b971..5f4b412b 100644 --- a/modules/appendix/examples/friend_net/select_statement_index_order_by_descending.gsql +++ b/modules/appendix/examples/friend_net/select_statement_index_order_by_descending.gsql @@ -3,7 +3,7 @@ CREATE QUERY top_popular() FOR GRAPH Friend_Net { SumAccum @num_coworkers; start = {Person.*}; - result = SELECT v FROM (start) -[e:Friend|Coworker]- (v:Person) + result = SELECT v FROM (:start) -[e:Friend|Coworker]- (v:Person) ACCUM CASE WHEN e.type == "Friend" THEN v.@num_friends += 1 WHEN e.type == "Coworker" THEN v.@num_coworkers += 1 @@ -11,4 +11,4 @@ CREATE QUERY top_popular() FOR GRAPH Friend_Net { ORDER BY v.@num_friends DESC, v.@num_coworkers DESC; PRINT result; -} \ No newline at end of file +} From 1381661555e84262c31df2a58c2e080e3d37547d Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 28 Mar 2025 20:27:49 +0530 Subject: [PATCH 062/194] DOC-2415-FROM syntax changes (index_global_accum) --- .../social_net/select_statement_index_global_accum.gsql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/appendix/examples/social_net/select_statement_index_global_accum.gsql b/modules/appendix/examples/social_net/select_statement_index_global_accum.gsql index 660306d1..dc0235c1 100644 --- a/modules/appendix/examples/social_net/select_statement_index_global_accum.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_global_accum.gsql @@ -4,8 +4,8 @@ CREATE QUERY user_posts_by_topic() FOR GRAPH Social_Net { start = {Person.*}; // Append subject and update the appearance count in the global map accum - posts = SELECT g FROM (start) -[Posted]- (g) + posts = SELECT g FROM (:start) -[:Posted]- (g) ACCUM @@post_topic_counts += (g.subject -> 1); PRINT @@post_topic_counts; -} \ No newline at end of file +} From 1186534741e03ba6f7fb46d6b1acb157f813a7f1 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 28 Mar 2025 20:31:03 +0530 Subject: [PATCH 063/194] DOC-2415-FROM syntax changes (index_having) --- .../examples/social_net/select_statement_index_having.gsql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/appendix/examples/social_net/select_statement_index_having.gsql b/modules/appendix/examples/social_net/select_statement_index_having.gsql index c378905f..4fbfa4f4 100644 --- a/modules/appendix/examples/social_net/select_statement_index_having.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_having.gsql @@ -1,8 +1,8 @@ CREATE QUERY active_members (INT activity_threshold) FOR GRAPH Social_Net { SumAccum @activity_amount; start = {Person.*}; - result = SELECT v FROM (v:start) -[e:]- (tgt:Post) + result = SELECT v FROM (v:start) -[e]- (tgt:Post) ACCUM v.@activity_amount +=1 HAVING v.@activity_amount >= activity_threshold; PRINT result; -} \ No newline at end of file +} From 9d08117ad151b6dae1d1254e80f7bbc489315668 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Fri, 28 Mar 2025 11:30:28 -0400 Subject: [PATCH 064/194] DOC-2526-bitwise-accum-ops --- modules/querying/pages/accumulators.adoc | 73 +++++++++++++++++++----- 1 file changed, 58 insertions(+), 15 deletions(-) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index 5b3e0e5e..1b58f910 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -652,10 +652,8 @@ include::appendix:example$minimal_net/accum_oraccum_results.json[] [#_bitwiseandaccum_bitwiseoraccum] === BitwiseAndAccum / BitwiseOrAccum -The BitwiseAndAccum and BitwiseOrAccum types calculate and store the cumulative result of a series of bitwise boolean operations and store the resulting bit sequences. -The default length for both BitwiseAndAccum and BitwiseOrAccum is 64 bit. -You can specify the length of both types by appending the desired length in angle brackets``<>``. - +The BitwiseAndAccum and BitwiseOrAccum types store fixed-length bit sequences and calculate the cumulative result of a series of bitwise boolean operations and store the resulting bit sequences. +The default length for both BitwiseAndAccum and BitwiseOrAccum is 64 bits. Fundamental to understanding and using bitwise operations is the knowledge that integers are stored in base-2 representation as a 64-bit sequence of 1s and 0s. "Bitwise" means that each bit is treated as a separate boolean value, with 1 representing true and 0 representing false. @@ -664,14 +662,18 @@ Computing the Bitwise `AND` of two numbers A and B means computing the bit seque ==== Declaration -A bitwise accumulator has different declaration syntax depending on its length: +The default length for a bitwise accumulator is 64 bits. +You can specify a different length by appending the desired length in angle brackets``<>`` in the declaration statement: + +[,gsql] +---- +@@BitwiseOrAccum<100> @visited; +---- -* When a bitwise accumulator length is less than or equal to 64 bit, it's assigned using one integer. -The integer is converted to a 64-bit sequence of 1s and 0s. +* When a bitwise accumulator length is less than or equal to 64, it's stored using one 64-bit integer. Overflow on the left is ignored. -* When a bitwise accumulator length is longer than 64 bit, it's assigned using an array of two integers. -Each integer is converted to a 64-bit sequence of 1s and 0s. -The integer in the second position will take up the first 64 bits from the right of the sequence, and the integer on the left will take up the remaining bits. +* When a bitwise accumulator length is longer than 64, it's stored using an array of multiple integers. +The rightmost (last) integer in the array is for the 64 least significant bits. Any overflowing bits will be ignored. For example, if you are declaring an 80-bit BitwiseAndAccum: @@ -683,10 +685,9 @@ For example, if you are declaring an 80-bit BitwiseAndAccum: When the two integers are joined together, the 64-bit sequence on the right (456) takes up the 64 bits from the right. The 64-bit sequence on the left (123) takes up the remaining 16 bits and the overflow on the left is ignored. -The resulting BitwiseAndAccum prints as below: - - 0000000001111011 (16bits in total) 0000000...000111001000 (64bits in total) +The resulting BitwiseAndAccum is the concatenation of the two bit sequences: + 0000000001111011, followed by 0000000...000111001000 ==== Accumulation behavior @@ -694,6 +695,46 @@ The resulting BitwiseAndAccum prints as below: For BitwiseAndAccum, `+= arg` updates the accumulator's state to be the Bitwise `AND` of the current state and `arg`. BitwiseOrAccum behaves the same, with the exception that it computes a Bitwise `OR`. +==== Bitwise Comparison and Operators + +Because bitwise accumulators have values that are akin to binary integers, they support both comparison operators: + +`<`, `>`, `>=`, `\<=`, `==`,`!=` + +Examples: Assume AccumA and AccumB are 8-bit accumulators with the following values: + +[source] +---- +AccumA = 00010001; // decimal 17 +AccumB = 00010000; // decimal 16 + +AccumA == 17 // true +AccumA > AccumB // true +AccumA < AccumB // false +---- + +They also support bitwise Boolean logic operators. +If an operator acts on two accumuators, the accumulators must have the same type and length. +The operation produces a new accumulator with the same type and length. + +.Bitwise logic operators +[cols="1,2"] +|=== +|Operator |Description + +|` & ` +|Returns a new bitwise accumulator where each bit is the Boolean `AND` of the corresponding bits in `accum1` and `accum2`. + +|` \|\| ` +|Returns a new bitwise accumulator where each bit is the Boolean `OR` of the corresponding bits in `accum1` and `accum2`. + +|` ^ ` +|Returns a new bitwise accumulator where each bit is the Boolean `XOR` (exclusive OR) of the corresponding bits in `accum1` and `accum2`. + +|`~ ` +|Returns a new bitwise accumulator where each bit is the Boolean `NOT` of the corresponding bit in `accum`. +|=== + [CAUTION] ==== Bitwise Operations and Negative Integers @@ -701,9 +742,11 @@ Bitwise Operations and Negative Integers Most computer systems represent negative integers using "2's complement" format, where the uppermost bit has special significance. Operations that affect the uppermost bit are crossing the boundary between positive and negative numbers, and vice versa. ==== + + ==== Functions -This is a list of methods of BitwiseAndAccum and BitwiseOrAccum. -If a method returns an `BitwiseAndAccum` or `BitwiseOrAccum`, it returns the same type as the instance that calls the method. +This is a list of object functions of BitwiseAndAccum and BitwiseOrAccum. +If a function returns an `BitwiseAndAccum` or `BitwiseOrAccum`, it returns the same type as the instance that calls the object function. .Bitwise accumulator functions |=== From 00589ffd5de988a0aa5a47479baa540e9f57d2b7 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Fri, 28 Mar 2025 11:36:01 -0400 Subject: [PATCH 065/194] Update modules/querying/pages/accumulators.adoc --- modules/querying/pages/accumulators.adoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index 1b58f910..203f7161 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -652,8 +652,7 @@ include::appendix:example$minimal_net/accum_oraccum_results.json[] [#_bitwiseandaccum_bitwiseoraccum] === BitwiseAndAccum / BitwiseOrAccum -The BitwiseAndAccum and BitwiseOrAccum types store fixed-length bit sequences and calculate the cumulative result of a series of bitwise boolean operations and store the resulting bit sequences. -The default length for both BitwiseAndAccum and BitwiseOrAccum is 64 bits. +The BitwiseAndAccum and BitwiseOrAccum types represent fixed-length bit sequences and calculate the cumulative result of a series of bitwise boolean operations and store the resulting sequences. Fundamental to understanding and using bitwise operations is the knowledge that integers are stored in base-2 representation as a 64-bit sequence of 1s and 0s. "Bitwise" means that each bit is treated as a separate boolean value, with 1 representing true and 0 representing false. From f98b161665acb3d8663edd512bbc39723a57c922 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Fri, 28 Mar 2025 11:50:44 -0400 Subject: [PATCH 066/194] DOC-2526 Proofreading - fix GSQL syntax error --- modules/querying/pages/accumulators.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index 203f7161..f50509dc 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -666,7 +666,7 @@ You can specify a different length by appending the desired length in angle brac [,gsql] ---- -@@BitwiseOrAccum<100> @visited; +BitwiseOrAccum<100> @@visited; ---- * When a bitwise accumulator length is less than or equal to 64, it's stored using one 64-bit integer. From eb95052bf6d36c937063dcff23c8c774a4224f3e Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Fri, 28 Mar 2025 12:21:41 -0400 Subject: [PATCH 067/194] DOC-2526 Proofreading - fixed the name of the new subsection --- modules/querying/pages/accumulators.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index f50509dc..5d9e801a 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -694,7 +694,7 @@ The resulting BitwiseAndAccum is the concatenation of the two bit sequences: For BitwiseAndAccum, `+= arg` updates the accumulator's state to be the Bitwise `AND` of the current state and `arg`. BitwiseOrAccum behaves the same, with the exception that it computes a Bitwise `OR`. -==== Bitwise Comparison and Operators +==== Bitwise Comparison and Logic Operators Because bitwise accumulators have values that are akin to binary integers, they support both comparison operators: From 4e5e1d4bbcae6a54ac8a74a89e7205176e42c5ef Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Fri, 28 Mar 2025 22:54:34 -0400 Subject: [PATCH 068/194] Apply suggestions from code review --- modules/API/pages/gsql-endpoints.adoc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/API/pages/gsql-endpoints.adoc b/modules/API/pages/gsql-endpoints.adoc index 60bb216b..02cba985 100644 --- a/modules/API/pages/gsql-endpoints.adoc +++ b/modules/API/pages/gsql-endpoints.adoc @@ -2764,13 +2764,17 @@ Sample Response:: ==== ''' -=== get metadata from a Snowflake data source +=== get schema information from a Snowflake data source + `GET /gsql/v1/metadata/data-sources/{dsName}` -This endpoint is used to get metadata from a Snowflake data source. +This endpoint is used to get schema information from a Snowflake data source. +`{dsPath}` is the name of a previously created Snowflake data source object. + + +==== Query Parameters: -==== Parameters: None From 24aea7290b4e573af0875adf80824c9199ac7c2c Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Sat, 29 Mar 2025 15:54:04 -0400 Subject: [PATCH 069/194] DOC-2656-remove-gsql-api --- modules/API/images/financialGraph_schema.png | Bin 60670 -> 0 bytes modules/API/nav.adoc | 2 - modules/API/pages/gsql-endpoints.adoc | 6457 ------------------ modules/API/pages/index.adoc.bak | 41 - 4 files changed, 6500 deletions(-) delete mode 100644 modules/API/images/financialGraph_schema.png delete mode 100644 modules/API/nav.adoc delete mode 100644 modules/API/pages/gsql-endpoints.adoc delete mode 100644 modules/API/pages/index.adoc.bak diff --git a/modules/API/images/financialGraph_schema.png b/modules/API/images/financialGraph_schema.png deleted file mode 100644 index 0795cd3f829732a65c94f554b6dfcc72786a47dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60670 zcmeFZcU03^)Gq9dGdhk10jY|NfFj*cmFg%}fk+KKng~cAgwO*zHXs3{NfS`2v>+vv zP@*FV0stB|s)X=z)8}-22}5{q7&%A9tg`LzjOB4=h@HR=h?*F zvNSpVtN5=64jedcW@>1C;J{CW0|yQk{&EQXq;LbgDYM^C8C|vgNlofc#MN6ry?+P){r8`Y{yLWukW};= z_<;Pcq8~r+?M5`n4k?DVG)6W?MiS|f^p@OmMs{9aUUW6FqTKQbc;bJ*{@VioZGrz= z3mgh~D(11_xd}aI9EufFo3h~@t=nk|@g|lcg}RfGeZ(;Eg9ig83UX4$@Q(GDF>Kx= z3oT&QhS>I4)|I`l`^?!NP-QU>V^mZGp z&R%RZNi8&{&1c&SV!6>_N&2LgP?l<92d0h;96A@E9`o)EHT{&B zsctA;OGiLo5W|cK52mdRI_*q;;!`*17gtcRKeIlth(U)8zs*Fw$cnGhaxSajn#N6_ zd7vgr0kb|BH_O_yuNj&|=CHS(%y?b+bCR`2a8};7<&CtkLDeYlZ}@nvS|N|i)XJGA z>TZ9Yq|y_|`f1y_V2lG;Z&$PA_lDS!cztPH%iJ5>mX{vY3B_jA`PFT9yP~A8L=XkR z=N?#9Dafg2⩔9eSw`K&c5~6gl6*t{|M}AekK&)6fo@llY>l(<=*my#9~0p&eutF z3$e^0u-Pd7=gvM?#g^}Xl3M6B{xsW<3cD=n-srv6mi|++l0=`HibjcXz1CMcMO~;xFw9Lod^^5@ZQIiyfl-uDg+Ll|Z%62W!$oZe`XlHLK zYc?>|$hKsMMumXW>|*2uWk53pj&jx0sMVWXF^C?85hjqo4UCF_IsEGn=Eu|rglc+1 zd_;)cu5To~$XUDd?IR+nB+`-={oa$wS8ZBKyMIgvl45qFyaT7924Bo?DY2h!=0LT5 zp}}qbOT+OimO5|4ww9`e@^!pBJvOu8-w(#ORB!qQ zem~q$mST&lRid7&$Uh_2Rr~dVu@l9e9X?_}H(=>DXRf1yY!^e64MySBd)L_CC85gt z5ufet9A)NqqZVhg7e@tM`42DQz1S^B_3hDpqVvLq!^_CapXU}&gGJr8W!{KCcHvO= z+{o>!Vhn7TYHDk=vp!*i(ZTHmn{10n?u5W3Axbq%Q%NuhSUO&oV0k6F(PPxqwpVvB zvwY{^w(o>uwIH-dvH2?d?_M}#&OpFoGt#)S{R@JkIqKi+4Re)XPYifG+?-`Nyw%tD zY;)N2Oo}q8Yt=61^Uw;R=C9;7wu#TwDB! zmXr(B=?Iqp=}^N;h%l;!)#O%(jx1oB(8q`s#MiMCyZbnV#}$3Njd&G@V?|HvxpEfS zpT^;=pz-pxrq!_zub9R?>jQZBea$BLW4M* zR=^G!hyFArFP^xgqR?*{2JC^={ZCJZd^V)5TY6VzQD7Z{Ckw~Nf_m-u zp{$LjL2cNgT#@u$gJc@QBtl)$QS8maP(}Ojse)ep6BChjxDc*c@Zwtz!!9T6&%14j zu(Ry%T?F28Y9(Wu{*UEc6m+dQiRN~Y9DZwWTSBtvCBvQHFA$>lFw)y&oerG}BjjuA z;jX|?9I5q{PkNCWQcBhR*9(sF_TnBu+CzfZv*scg(9%xtmFkeg%K8eGg zUTcu%I9vkNu_QBQ;tGZp6<+OeO@24w=Wm66ifQ>Q8!#$6jTFJ&ZuG511f6m+e}dKM zlH#XMxb2TG${}OLR%{s-56rthrb<1Edu<+UR9_t`G$_*9r{&36e;M>?L^1!RAr09W zUF=AOeY!k#jAY~~@da-Hj9?VS#6;Snhqx5XgvlrE9`g?xsKC#Vl}~C0sXSX>xDF|{ zV-1)f?%tnz(W7sth~M}sKWP>hj-Hrl9Xzp69*`vKZ&3Et?->d+?BOR9FLkGWz3=oX z&)nL8x+I4c`4MA8xpE6P9;vhC7|>f>zRb5sbgx^0hvr&GF+Pk6S5$30_5NXN&cOJ& zAL0FSb@RoY(TUa@l>TVeL{o)wl0wW@vbP~jrlEjk+Si8ev1>`ZDZ^lJcgKI0WHLN2 zBHr{B&y{k2`WZ}iu3ESM()aT9IcbQhz*Mqx`n?5@Qf)iSJtT}ud!|Uz#X!p$SvfH9)fnDN@$)4)_Hme_ z%1ysjiwohJCgTxgF;7J|G>6jaZ8&l_)goR9<^oYUYc(0w1qIo~fd{)E!K%tFgI&YE zJqf4CxJI!_q>xcR*g^}dJ)9EDABW5G$d*%C${6);srrguAIEGjwWw5!zYRb$ok=DJ zTLZ04J;^3#9Tytu(c$b^f!UkUDf?D20ameoWEPCx8qCKvpy}Ha8L$LV@B=P=j|#jJYDDY?GA|B?ZYZ1@V{ZE_Iy*Zl?UwHfB1ZizF03OAPr2AYTC==!iJaU-0 z7Tm_?XZp6SoT>n&kP)xa$ut{Fx!rC0o+dMZ$X%PKLU&ZN{7OYSUQP@ac33&UK{;mRkO%dEh_q55u}zOoJ1|)Jh6_2cZV8F9XS9 zqyZC2*Qjqt;TLhl-L1qe*}SjZQhP$p;z`5mx%41#4uVTri6i+K36@SBw2_M)EKl5S z;#a@M@oc}p^7nRTCyxh&T~F`8EH;jZj3Rb7XH|Cpd1jzKYPhV>kic~Uu9t&0N~sx- zlg)ETH_749;KV{@Ln*&+Pehd0z9N$lIeragRJKz<8>gHV{KC;gE*eakz{4c3KyV7(D=YX)A>CXUvSGdUC30X*H_$*Y*b z5 zUDlvX;1tCBjWARS%WrD6+XLUNtwLF~ZcJh*r$_)y?2gu&|t1q;0b(3`*A=$RR zaYj+>D)bq#UWrzD)klO`BHN-zn!ET1R|@E|`BAlnx+NB5ZRgb5h1wo_pZj=>-1BPA zPaT=sqO4HhCLw8ib0!Am#?_i#KGOM1%j=V9PF~LbMy2pJ%KSB^eOXop*D&HO5r-2!a>_@C^s(Y%KoWXw zxD+`m+IDIhBCZhHcV#x%kA9ZUT?$>XICNgX6M|3@*?u8QK#b!;+gEZa_o}{T7zsNT zjc7tolAIivm35XTj*GQD%FHeE#ewz`$5^>U`1S}*yL(Hu#*hXM#S(+1J-|td*(r>0 zl_j`EZ%#AnX11+Ow(GyVpZgCy|8RGctkrIH{$j{P_-x{`kiEle`D#H|2akDo7 zC#;`j<*>cj2)6^1nKb*;>g>^$+31}qNf@do(YEblMC8u2N=%oQSlUgMw)zO-nq1^L z;V=1jo{D8x_v@~FLbPwrC|K$&)_belV`U-%Fkv*P4u#sri-?-7uY2u=wTfG9vw4x( zgPNn#k^}g;0!#>pp7CCWFsX;k_J|@!#Yin9)tV>Uay<7lv;!bEbO|u;8^LQ%Mpo7c zA+q6>7DCg>L-AIooY+^|aRO5FLhj)OKGkh&<=shoYhOKvkE*oZ;zq8Ihr&?Fe|OQI z#wVLxSEAD5J8WcHM@ZsMfaPUg``Vrei!Hs>2kAWH8uz9jy%a<`P2V6V);gIV#v)Oh z(;2gN==jHzvj%&cAWYmAa6NZc{NxdWoZLhUDq=rM!1Fva6>A)}yA`Tk&dX_z`qp`$ z+j6K@a5FJ1U^dU@RZuhHX~~LlvcH{;`saPGW_W=@$)r)Z?(s_{zmN-7o&E53bDigCD+qxtDdK?L3u>(|Dil0X=tTj`&Kq^p)7^Z|-cnCz)en9ZdXL)e0+ zQl7OaR29qp1h!8?)!392;qtn)v~;TMdCjgVgdwW2@3R2Jy|rMV&HiJ?(^ z{16LO;hz5Engc?eS5iXQKXp6F`~cP8{652c&(PzM^8<$z`_;@FbXcu*n?I3aHzKR> z)bia#8QWNV>j*78p2TPzyWgWP=nA&m9RD?HTvOmi@=h5kRY>~14b9{eZ~~I7!Dd&3 zn>b<%In?>%da8o4qhHgvr<4e1_Auf&F2b+&EA3=lz3B`otwXd-*w0dz-BE6lHy3|* zjKIV>>z%(JcmBnjT|an|;?`JTr$og%CfPPnaWc&HkM}?OwW)VZ?j%2Oy7&4?xhBNA zGP>41b|A2(A8qG_!jGC?Z$I)TN(W{^OJBOQ(a(bgzI!ko z{`B`aesjpkY|2gLvXWEeRgwcyu7pKd0?a|4EhL>?petZMP=eM*Ds8oZI8?qnVxo!1 z>>|=^6#w1@5qg%Ap5YczmK`F>(hyDl)Vw*9Q^Ads%dR;DTZr6o#yoadfOdS~GjQ<} z^xFl9-pCm`xsCd8T}DsC5usG2eHOhs z;K2oc*FVXM*^A_aa*09>QXGjOv@YU$5%agIv%aeD6X7B!QYIgg< z3BA?N@>hbsC!5UJNl#Fn16=>5aBt(0S@}ggFXkrCij@!?d>DXOMb`ktvA0=X8}`hf zEWjvxQw_k`AhA0o;V(lc!b!W^EO^4*2p(7!Cg~Hz%}{KTh}J0CwmpA$wUh+NkX0*) zbQks4oBM?T7cj`-)VQvqmb+v_eFfe5_jcEb6}7CWSse-!_)p7afY$Lm6t}xJ*Qdks z^$(p&(6aZVxrN)?`fTxbofscx=dNXutrj?SKX%O^R=Ut zxJ2&=x27cmvz*4u>S`wA73^dB!MP>@6F7m2SjpD*bOszJV4tj5(O8Y_I-jA)^MAlE z|1lh%#HdU}?Ezma9$o_!xvZP&D8)c@D7x>t;0^+C)FO? zxGE91u-BL8UOg(WH7$Aa5bzbZ@aajwp>SLAMX)q9mkF;P0WhXU`B=rHzVg*3_l;IL zh8;Xo=e<5k-_-;;1Tyi8M?oBpM_xAu^LK|7odLCrKX~Hut17$eGAEEklavV-Z|1x- z>ciW(WJ?Iif2=96H`x`U3X&E|T(;??p_IHY;QV&u2l;ew`L?pj6gqHK|GIwDJR@tx z?!Dy<;<3vED6krU61H6z0YCqc?S78h9KW17c^Q%%6jDRdlF zK?H>)tFtk50J)3fTC~rE?Ymd zrUeSr$#`NRx&<5xoP1I{vt8KPx5k4D=BEC}kY;?^&o&(nFkfQY=1Y-)YiWLTgvqea zd4jOR?T5IA4^`_eyvK;X1!=V%h3QR-#W_{R31Lc2Hm`!B5UV|sv(C%%JmAUdm|6## z0(B_9^a7a)V4y7wfI)>OTjs+>OeQEkfK6R1*Af5r|(A#0pE&2<5EH7*_4l(SW;kPDIIKacxM9p&o z7FIF)#D^=qJrZ3hMRf`4P1HPS7ED6yK}M8>_woT;V(jc4izB?h|H0t8{4c{iC0S^V z+wzc%LWB_JfEzfc{}DI;1akb+ZZyEjiUvNt)m!Yj!X*0`lN33|h@fM#E~Zoq9K3WA zGD(lB7$8zuK6xZoYa$HE(Wd^2i3SN=GXsTPD5n$GhHRjy1(TM0B4&jOxTb=U(ssjq z7#xjq)BTMz>z5R9%1J2^sxPmQch6C>&Lt|(fv9-)*GmE&SN>Blxa~mt|NL#LIv^oC zIvN5;uVG^WEM3X7;92bd>SeCCl2&8u>}yRHZeus7uK8i4doJUY+TmnJ$Cog2lm6tI z>JrOD*U1?26T5$CJT!6#f?^>hW{djzSDy@ReKINTLke`>!%R46;S;5Kb4k7A>@8#c z0-Er>JI6+0ewjUFN{&*-r>Gl1tA6U!D@*mUvMBt+DP9KDnv=i zv2#>$mI-$$f@M0%kTG^Jr73-1J7f;!6bn+^nJ={nY!^z}TxWEtNXUltVq-G_9{ z>t63m0=+QN&SpKDS`+GxE_q}|_RBK~Wyyah|C330!AQW{OhvviVH=%sCbNN^NNMB^%K-BP)@1?M z=DNYxuwpDREzn4et~4d+zFYC!zqcYB=2bq%*Xz!QM z>XM}(zgO(LVp>JyKX*(r*nO(@H?A9eIRPG(8Jl@cRO|a_T1||1LP~Qj)*yo&#b_^+ zj1Rk@k#Y={!Nv@Q^-pzg-13&GY_Lr5O1PO`bNf#@pVzAPDpOTuY@OI3NMD!edsL`c zKX^`)0sER*Xc5^)!@!>0;I8+181n8o%-2245`ONX=ZQnpbjq;#8G%0D*zE3rx3aQlp$WT)+^Rb3shORF?hCeL zvf1*llk*7`=`}&#l^kK|rb#We=gGI(X&(V4k9LL-j)4J1b_$6RPBU*1qJ_$NQu_< zjG8Dw03LXKl5+QTBfl?$s4_F$cgnCCHtQCD#7xBvg^7ZOctExD2#ZKU7l?omgl=w)Dxs%e;h^;%7r9#lFk-wqnw(a)1sp5k|$j8*z?!MXLm|F*rrQ^FV zYiQ(s$%H>DSa@^yF^Jmlf_;3&Smp_(XUT)VBGHvQGd0y=sv0E{(ZyKT?l9z!nGqh) z1kM4L**L9~m{x0x8KdhnJ71AX?lhR22X*EbOjBH7yo}7|1xgCXt z&PxkgYbz(!?&P?09ReP6Y&6A?D35dr7;`3b-F0n^2TmJ&+WwdT^-5}3PLe1&Wk>66;n~+QKm?l=3)K=b;foBrPX@OT6d0!l&U2#aT>cLu$ zHS*33J%eq{Xr1qo_WxByaq6S0rZSS+@m8MIEwW&d-CCh#78ERF*BwKI?M7NcrLUl_ zga0`Fs?jgjlbMSO&^dF(=)Co0%y&!4(Ke5?{Q1__B$we?H{NV&xmn?o&7z$20Ij&# zqJIq2^QZsTZ|Iq#>m{(}MpP5~wr|JBJ@edY!mcsLq`OwVd1r@wrVQfEjC9w{)(-e* zIjk1D(z9_}tb#-~zd|cj-`iL|)S?wARG8k-Gy1)|A%G?AwVZ9W78yQaf?Eixh-xu2 ztR!k$X_eM{Kxb|LN|id7Vd5BV3S|YqZ%rColvA>8h=kU&pkrgEeU`Sv9&NRYWq#XY z5M1Iim%OenV2z4WW=X>ut`JJMGc6R`Q`VCe){&j6(T->90@4-%yy2#qoB(sLZ>>sP z0UP&xmBRKlJvZ{N5=y|PqL3M7Wc84#6ITWAKeHUxfbFqHc2LDBFOFs9rMVfrZhgIE zF&EW{J=$3sjD||zS+tb|_pk2eZZ@a5=$J|@z?hP+7 zxZ?I`HFkPgf3DV1Y)`JR{VZAAZ6%~0O!M~Fj)HFX;}4nkRDJ7nNs&DpPGZg+{|^T` zhTc0oDl?FN-mU4wNlwdj=tx*I9MAlM&`T)ldgA`luDvs^t+4RK!n}l-kaSi=s?E{w zqiU*Y^j=-IL^^%6WO}pyo?AYKMMzq4N8HiAyVvoCxVCpJ_OK6l>?N$Gd4g9Qw3OQG z6xo_BF8w6&B64%WFYI{R;1o6g`4@l4mlE0Hfb>8!u^7cEqF>zO?Pb590hr{G*tM_{ zEOAv`0A`>(g$b8D*&P&Ed?dkW(ZD)S7S8m-3Sg{U_83#G@v-yWf|STaN%2ARo}(me zI5+ri(h$MTcwyL)2d8P8P%%m6DZa9mLsf~e?xq6lqaKH%(9;(RWQ%|94r@qy{N9Ij zH1);_Lo^hbyfM`sLzj$;7kw`%9lnHrYjFL0Ng8=gz2qht!Od6N<92PNz33X9?$(6W z=l1W(O?BTN?a!DVoyhz0GJM-=seXtMy{o5D5(CQJm!6OaI&f$%v%B7;vU4?A)eRnS zsVzQd51`1sYg1(r@NQ<%^!uFGzUxGN0jF?XJF=g8`4nw7~lTIrEm4SsLx^p?7@g zflgwy7wn`RGIu5#>&x^qhhlT~G6mLFYUwuJF$ONXEl6_~fpU$46_^g!3t}~+-8NZ| zHd)0R`c8LMp}q+3`{m-FHt2%t=fb5`WfPsL;LtewVPsm#Z(Qd zlPg%lbs6g4+GSV~Yi5aplz`hT2>Gjn_~oZN%eqENigdtOl zkMv})Z!^sAbKhV$M^0PxfcOBD?5bRg{pl-T&&I9r53PAd-|md4>KEJf&{*?7K_mYqsE`&*)L;Z>IUhb{8@@N&sUsC(2oGp}N`(zQ^6$CTz}2mjGNuKvAiXw&r< z2wuAHy;WJLJTkJD`MtIG7a_ibWyJhU1R%`sd}3u40oB*C@(i};Bc8T#YHF3^hKa3D zn^iSz_=FE`O=l)%1{fsBoxMEw+qtJolV?6by9bI|?V~Ce3GD8TG;04S_9|ZyRU@LS zPac?P1bqeX|7uAAiR)v0gH2%bMobV2lS``lK|wcsW=73F5Cr(HnfJy9T{4g}$yp`@ z28uzUrt|*<%JrtvlCG|oQc)3Em0)TQ+-gLF6#ZT3R~M;{da7w!MG7z2-U0WSboZB# zUyc3SUf?<&owQN=cSbWaX~NBIkZhC_`CtyL>E&8vJk8~?7}z`QD_l+PVy zGlZAx9Z&t@-iGO+LG0G={KWjvb8FMV<0v9`dAP7jP{aG@X?8J6G9ApLuiemUlx-%L z2K&npmm3Dla2+4+VKEaN90EfUQ4!7o*UFpVit7a2Gk3Con? zuy?6NB&bg}2r>u?Wur=U=IQ^$qq$vcqoMd*>l&7PMevylTK^T#nt239$N=4`Lm06P z7>G0%z0wD*3PQ2=SO0}+!z9nM9LG-$rhb_nF}ZJHI{&Wq_`#c&5(KIfNm-%t7D*9F zKBd-w8M%TooQRg`uwqujb0eQswT09zYzIU-!&>CTPz63&;j>DbF2Mr`a0gZG)(P3^ zRc;B!=jTZ!UZ0h_Lg2V%_{&WtFK5?ZcQg2L=L#N2^VtX4H2a%Xr%PLE333Ik4_(?? zlcQ>sx;UGy$J22g*JF@*j-Eu90h67?E+07Q3a?zW( zP*i~Z5l9hA~(*Rp88!){|$ji6VQ0_1jA+t*QTaBTe6 zvPX^(d>ny6jJ43mDV?L>#zA}igkw-IgG16;9HN-ibB%{%CQJ+$V7}`s5}}oD`E`p8 z=!P7Jp*WnN7QNN6p%WCy-C1yCLSjSmM*J?6?vXRO)X=}Zy&Oi0?jSBMs(=!IPA4I8 zYbB~p*I#R~E!1Q@cY6`W5u|r=r+l?LSM$eB$eh$Bp=s(Swd**j!LvLm4j%JKlHK?d8yLe;C;5z5Gx^VCF1RQY5 z*yTgZPaAT&6neDs&IMdAR$zaohgE^+SFz4iU&ku)f!QKCMY;3Z7^1C=gD>spv zkspr+FR&ULN6Iq`$7qCT@_nLy`};$^Tgd0M%5T5UZ$`S@*VCsHP`B`1i`bmmwz$&q zrp45r!bzUPEMI=H*cm{DAme*N$MN2RU3HtDIaNrwaIO!|qgG{7VcIip9mkx~n~L<= z8{@`JES8=YwBE9G{&DwJYjkFt9=?5rxqsFo{E`7qOlem$+ zim5BxwAOXCFI1QaZr2f^r>5Rw+Ku=KoU*&A?a8=GJ z#4P0tpC-K0^2h%8z~J~#2gVH`N?SL3DFj5|u|j=;JD5*bJkw(_+{9W@uF&WLam1U# z1i7|mfa1DRigj`(q3GrAtLFXAoCe%J8Hcupla>B zaTIBnYStJ=56e&Q@#|BeODCGi{3Uhg^57~ZiqrR}Y_?FN3E#WI^&|jfa}&(Y6Qq*wqXX`rpX6&Z!>u(HDq?=Jk%>m+m^K)O z=gvi}2;5X3jgFW~sHo+`;q5uv4H#NauTB6vw-#;Qh3T--C;1cYU{xbVlNV$53L|N( zczzdf*If{uAEt_|FB5c4{@UzEN9(NVu~>L1IJQ0UYa_v;k}hKOqSN%)r6 zp-y+Ok1N)-+&cBiOjA+tuZYAnJwZiB-CM+0)Mo07`!Nh@W7DA`bUW_uV!j`<_(l0h z2f<^&#BFb40x3>+=ISTkuIw2x*e)tqcQDuLW`5ygFm1xCBA{*tpSo{)tn5U2+5@5b z)oPRtb7p>~(*I+6s5eVFKuSe!s@d7bNxr)DI&AVa5dyAaT+l-lew*(Ibt{<<1%47Y zTbEFF=-jz@D>z3JKH^(fzVKjz-R; zrK^QA(QDq_e~V}i7d0Uo$IHD!YI?5%Ei%MTxn!cPOlwnMaC=0gA>W}uA;r;3#AXj6 zV;$L{Z8uP28LUKU2}l*(6n8zXLb%7#E(slIk zjLFdG&~IHEaYeg~=m^z;yE7XpxPnx&u#LdF3y>PMB>Exhorfqskw(@EG5HVmja0YH z29xvBaKMMOw5Td)93ZPN zWBv(h$Yu#KUQO@?d*aZf$3Xa1uPq;8g+o_Za>;Y?rNGHh!fs8&9$Xr+UA&6Y{tkVn zCraXN<_l49ZQLETb*HTlW*+EEFF}vo0Seg~?nXnY2KkrPuNSB~7@DMG=s1JJKTTX5 zJ$_f)Q(^#`ow!;Q9FsdIj~oUYk((n{-KkC$X{kK1Qho*~u|{ z91+y-N-_GPBJeOLJ>T>Fm6?kX5vifT4@k2KEZKJAc+Zr$%~_iKC|Q#eixV|!yfy4u zk71pgkWF+}G>wULwyrYZ=a$TOKyAbUGdT+20@hiq?mXd<*MRyS%abbp61q~`^zku@6; zIbqs&(kNib*UqQ7)u3g1r67V`xnVydw<9Hp;A%AllA=gYiWPlw3L5z`reV08-;Uk! zSEjWijow6aqqG}KZZ>ceGH-~YI|jv>wV4f~?(B{(f@0psrX?wi?UCvY^BQ4l^+=w8 zqltMl)(<)2=_YcNW&-Tu5g3I`-d_7@)V*cF+ONeTymHx(8Ec4?+4Y!r-Sb^osDoif zI)ljsi!-yPe^GpjjI5W6lnynVL>u~!1{xRFs$d@HY0b1wIWk3H?9L~L@t%2_w9^4O$ zTYngOkDH>^Dhl^TN*|ms`yO`~@-{ZvqowjK82fvrvxc5gwEl_TI|A++GR)>dRgso6 zw{_pmz?_`M4)c~E_UcrC05I3%3^0H}s7%~dcxt_xA3tDOgt3~Q7AeV{v z!iJAu8oq$X_41t`6b9ega^F>TGfT)Ro3)uT!ya>qh8tWQfaissM0k_aE|=EPj|ql` z0E*N8#Sze*cOCUArbLvz);-8I#I+lp9I|CN_hK@g#&_etJn(}Lrc_@))rmHZ*XGSF zGqbvcdYmFsNBBMG`Ij|6sCvugYRU7<+grcK?Jn=9IVBxea=9L1el4J;unFBy08`(( zdXL*C^fL}EzDUz77j$)>rOk2*4gb$MRxg$h5iUsP{F_e)rL$eU$86i2$O5^PM{4Ja zr$>x~^`6s`1UAv!S6B(1hW0KYgacwBYGt}~`qk=MPf=BxIPKeIH;_L+-QUbD>5@}a ztwPCe#vyl?8)}@QRYX7mGo5LZtrwv7>-Tle)trrl?*`&q!QS4knEw9#Y^;=P&7ARe z0oKuz8z0mx_rbSDpZdsRKGbBN?utG6s!?E#>2 zXH?sj)x|V{`or&S29{d$b{N2%ge-x!f$`?}vx?rOX>Z{+bK)-!PXzBgmk++BAu~{5=&aY_L7t z9}iU3Qa}#E)5|se{pZo;No8hLqgxFStIm=NtzU+2CV4ca(Oz9=_*jY2W;h>ib5z|d z5|FDm#1#Hrdo%TBl_9OJtj3i4Ja+zfKdlUSKeIFtI905zEJ3;TpTAnYQ}kD|`fW#f z`k;S>?GPmSJBfQA=#XLgET9yFx@p`7>RKcl7uu$vva}4e0*zrn#JoIdC70+o3-#DY zqvf9-Nm)8P%lYv4voh4Uo&hg+zx~`FB+NMJIzm?ns5Drb&aX5U)myn~@w`#`8rFJW zpk-kfwK`z3Z64ePmbI_>=3VuZfP5F0Fy<{H{gRw;8n%E3Ald+=pEexrNg(wwF&X`X z%b~&0uE7IFHtxTElL#HNT8xo-#~66l2J zZ?~;aj-!b@`JOn9<}7ch>q%-@>BcT*90;WKhPz0o)w@o11=e$rbXBOL++@RJ73 zh1cOggZ#Mg_anX~hU{c&{?1)zs8Qg%9}cTC5nG5Q&~=~ywDh@%UJY8MK1@ao`PiX8 zVLbp^i=H}7f0OuL+^5n?vEeI%r$vEV{5Zo+YKK_J7>&KDwy}F!rR*cVQ>ztT6zhrcP7%GCwfB5JVM;1lt!J3s%QW^;saznhACb^AbT%S9K+28`iXck&zCjB7X(~++PLf^_#=49d>60E%~eSohL%^JjISW7 zX?ylbY+l+fOqKxZs&^(lrDqQlMaHT{-^yVF_FO6~>!F?QUinM)u_&*G$4=`HeZ-cv%N2IpJxD-`jES zIvt)+AJ2VxhEIRvHihLHI!>|L&0B9Rl^&pEWF8VNERuRSv~(1{aVZS?&?!TLxB-{eP zw0w;xMK#&{1A{J)QT$Nc`W#*FH!^A3gv)*I;t8T|NxZ1nKlCBOkx@cjwmFEJmF>WE zFuJo$>WI;g7rJA>Xqr6;hMP={l$nst0p@%n3(blgZBQ&P3$i-fmFrTuD1?F#E^fV% zE?GC)^yB;~1GcjZy+^gE7NCKkS znMCwRB&)4rZL#Z9@^5Qp>y4_4-CFstWs4(6je{058ne2EZ{*Ux4y?&IfnqAZY#!Eu z{@78+V{(5Vfs_d>6#IvF=XgP=Zq1D_ zqdye{tT?MgCv&d_h51v6RoLq3BQ0~%Nm1S&m4`zZWu+l$9QR9cxUl}OrAg=or0cdI z`}1`^eCU;hNws>eTL}Tg(DBD~$D=&;oQ%k+L0u zuGpE^$dGttCbK-MFhNuPZ1l#r$x!09E5$RmXc#z!4JBq$F#pX~BA$pSq5<5b3_xS& zAJaGcLgNpg4g0N{kzs02Dp**QrWW+`bj%~qoMh^k9}fZ~vch+PGLE%U;xN#{!rKzL zN%(i(5OL)a}kS^i1k@2VQ%>5KK`F0lf5!5}Z>t8(6wD2f-N z0kn1y96{q|rnuPA+3MPEc@nRMisP*ERucLW+kb}XPGZLnc=LJ`C>Nl?q*O7aMGb+t z6Bo~uZ|cKkvh{&J9d@K`V<-8*C(GdDF$N#v2!%rH^hg^9=CuxgWP1mRjYU1SasT+6e=Q|OT8&UhLuow-l z&AZ9&sMIRi;?pC-Poo3e3=+CnOq0hv`gi&J^XvP9+a?gH%jFVkPQYY}uPGLsWriCS zoEK2t*D}KV7xameXeRv&-m>V)3uHWI|xC3O^!Mn0XSH>Cg);92;{sfl@YJs545m2 zd?QazDc^Mpjpnsvl{}a^I!WsTVVmJVdegXbBo@#cOFZ8qdz=;B=qTxv4I1wZDs~gs zv0I`w!hJw&%!sTq5`gF<&pe9Vz@kQzWum14bJRu|d%Hqo^7k_kAw@g#(K1w!rVMk` z+;sk<_JE!7G3TroBFMh~$OZ;qYnAlz*E$F9^BhW)4&J}dUkOR>V?1P%;-ne!Bz{ODd-Jj#%YVQcGovCF{=E-Q+R~9?QfYPU_pDR|2tX5dZN*17gK70pUQ7bq9y)ZA$>TXiN`;WAb zI_iakuh%hhzNq3pF-w2gMC*ONu)iZWvYvl|j^Jd8;6T<&TQegz*HvfcE5Vw<(7j#xwBO6&B!gUHV#jHc&L#-pwP_wvT%mSeQsd# zn?D=PPnKCyv9Q^e#t=`CZS22((GX6FIoa6)nLsUMeU-UvtoluY_UP^;p!|ZPjR7K& zYYS|TpRtD}qi&tLc5*xK|>SlO2)-+zZbaNzX~ zlV!fSuq;c9(2)4|IygR`_KnG-fva;?HK8mwUL1;*jM*8;=zQAO95ma(Q*N^XQHh`G zOsZI2neE4*x7XqTa*V-V09qW-kqXt9TVv5xCSvx`unEwOT#-m(QNF2DK}T?jTPK-Z zPJ>5p7H_N$LP_5~JfqC+0?~N;`VL4y?A=G|y$Tt~yoO!k191_>5AbqNbX+fdeRO(jp&ZCwiOADtShPp^L zR65~rh~4zHX8T_3d@Sei_LXY-nZgQ(8pPycBVBl4U_i>Q+;*}fPOu`I&1EMrYcS#Q^-JsGfT>?t?NDLj{;l022dcXZIoH={1wb!$r6?-3-!j=Fb zs^~TEkxc$ceGQEg6^hYQ*{>bNkAA!7F{gy%^}f2Lov68hH^n%L8T zHIWrWwA50O!ka|Ooh{|~pj`S3*IiHXi(SR87M-_$P;fZ?`bw=! z>P44drko>ES@&5YG@?i`qh%uX6^(pThZ(iW%4FaxrfU+z-fcw;O18L8GQat(hvRDx zgFG`VxkdU;eA(LbY>5IRlVK*E1*`O7hrR4;Uug5LeK%DSM{n5H#98QNi3jbQELOgb zV&$l$u%*ss;C@A$q_R*fwtbM_*ISag04Y_ICR6EMhLbM_v{5$&A&ViF7hz!$hRbv{b&ea@8sUvvNc6eX`y?(UnR zsHewjlfo2B@-{XMLxfy@YXk$UZSCsI2P;SJcR$3IL=B~R18%(PPd}wBI4{7|i&yR4 zs=swXjoN)Q@1Lm_%Ht-D2JJsc65;6=&1zV){dKFy+AzP&<6wdD7FL|?Qiu{SNC;VM zuy-wVCawc0%GadcKl^-+^RnMMisR&!U}OC&=M_$W(NtS29{S}xNh841<2xT4N^JEp zpHlA5kfdvy#am=R*UZ03@Ge`Om|3i3B+!X-SoC?4vN7|^4BLHn;Vk+M7cpbit$dc+ z8XAd=u9wFanzR7^c5vqS9ft!~dsw&$-~8!f^glmbsyr2o*O12V6JPs^hzkRn6_ZHJ zXLVsvc?*|~hht6;}hHqqfE~`GB0&Kip_c<*riZwf$$8L^&#Wu$J ztd9)(j^;c5b+$C6d*K~<>!^Ia^Ize4zLvd}y9+Y1(spCgxYyHgRX(Y zcoDXPUUeEE12+&NZw++2&@E0xDsEy-I?69s9vh$jS8 zYWOpR|1`bE(#&q=( zj1gP|2O#~uQO9&v=Z$W>vFVgFXy?BLqf9${N#k|(ZOy_v?>pfB01&8K`vm%+WQ+6o zT{zX3Q9^0Qh)-MqY~%1beRl+8CwyyHqg}IG8XT5(8EZ{@UexOsqNA*?RGWn|MgP7q z7pje}nw=;F_aOFW+oitaIZ!Q2ClIjqcYH{B<2#uU4qJzBb)+!<4+=Aw(=cg8b3GIK zJ*bFWEoob?3(4t_NbJ(5B|M7Rdjxv@Q@SmhmcxKnfN}9YMJ;&ak-GOuuq*>Cr+=j{ z+V#Ks4SVxCR?uSv6VPt6SR(h#g8z8hbp6o(|1+NrC~aVAOHc!fmKA+kSxLEe$-53k z51GUT&42f`m}E`FP4G9e{`4nt@7CYdMDzT(Rqt@vW=T*0@Cmr@@Si1Nj$&KH+TW4s zU2kQfC%oi2$bz4W!fgJ+NSwTY3yN((@S)3Q7foJY-M7O~A<$W}+*5#^fCB%+o}SfI zu+1#oZaHFY949}2^`x+a2Ab2*odq7eo zoWDqBkw9;nq5&`N*Zfw)u;FASlLwks(h1Noe!wH_`@>HEPKF`KdYz28W=C^6D~sJL zmkFg!R6ZJafGBnW;4>(ocTPk{Jn0wYD>yWZ*F!M_?%~_GN+-!LUoG{od~&||7W#Ak z|7HYIdtoQtu5>59>fSPxhKV2c!gn$r3*JNu%Ki4h)K(>!RYmR3HXVgp0m;k$Q5ygt zEEHg6{}Mu3>%_#X>>H$>>BIdmy?DdBp)z{5i8hBZyINe^cz9|n0(g7U8GF$QtY!|Vec zC&Q~)v4nRyrKE1VH^4`fy|iZ?`&VS_|M`{w%)((JK7#jvNcK*X zv9?U|akJ!<4Cx;f!OAfaM-dRHJD46;yAIE|qfHw4?*;~i1^X6sP~8W*bP5WZ7|`yP z98C1?uCf3#^EBqWye`O4t6%!BLcdn*h~J6Rl;r^b+x_ZbI;ygYO$QtctY75I7I`h!k{Mz*gIlus)_ABeTXUksdGMo&4a)fP^84Iw}0SqPwk-g9;R z*LpzInH1|}?`i~^YuCp3^WO2l>&Q)m@QyC^Fmr&!CS23Dbt|GfpxN}nfX)00_$_dG zo%K=;2BG=)?SYcV1eYk8E3!#0R()jrVI4B)+0Y+PC-&McK%jwOyBwsthRZ&hycQsC zFvY&SCPtTpR{fWVfnXN$r5t1cRxMwipJpz`EjK7Sg+0f@$-_Se= z*hyX7Rl?2f2)QTEzwdTB*GRYm{J_`};9V(D#+B!TcY^Vmsn9^NQ6Ku_dmgJ9#dhX+ zfB&D=k^~Qkf`BHvO35QU)k?7BQu_`l@E6tMs@TYS%Rp-ZU?4&Cu&sfWPCw?PuD{zw z*3^qOg$r|o&~O^q7J*KbF*K1(?H2F5&5zGncnf!%Yk@@YKO?Xp)Kg-O05TeQO7=k) zAM}AGB}~bdcGhT&W=yHXF7;meF2Ew_uLPbEx9w5FJGN2fmE-I8pMfx?y?8>Jyg!yS z021$~Mu=QqC!DB_SHAjp)nb9x;KQtO%NF33pOu)$U%^D}^KC!!ipuU&LPd`&G@k#J z5GFBR0yJ=t!#%y};lD?5^Q5aK$7m+wdn(uA5<0?vx476JSr!E4B?>GDjO&~vi@X)i z*&lSi(8ykk6ewH7*PJ2-_xvxd0S$;5!k`JzFIPnxdfMU0PH`n~naACI8K(8stlI#^ zn_x8Vy*!-u6u@{;GF?&DJl5043FG5sSy=KzOO5HclX{? zzx?-qV-HY#3dcHGQ%y)q?V2+4xDK$dPdHU=9SK2VbKehiSNcse|3{2yrv0K`x0wQ63$pX|81h~JDJkJGD#utPg8)1?Imd10L+)tq?Y99mj2u{Db5anEIRILw{xd!ZVSsNx-2^XG04PC) zvZW5VbSU6>A0ViS+s?sx(Rl%rs2{MJT-X%ZIvl&`LErxwfj>f!6a<6yW-vWHZeksy zS|r`{xLWU+PBF%o*Ba)v#cI{uebCjR<{I5#`{g&c@vGt42`DeW% z%*;mFb@`e-o`DW>at$i^V#j1;D?N+um`461jM;U_`nvY7cM|hjMN{e=0Zdqy(Hto< zg2qRct68K;JaJy1_3NMEk^A`0kxsE0PU(NwMovkfd?(IkTL36K7RMmoUXiQW!H}Z# zfCbxF4cxA9*DwlB4kjUbIMn#hc*b`ywQycfz}iVl*`47H~(XSx;WIf z3<+GA0io~7M4ttQtv^%U)ydOUTY*qAu8m-@OZB%Ob=Rt?{*QqptEuneA7g~&;#!Cjmbkd6NWO2P|7x?R>$dAWS`k?ae0BC>G$-~n7W3MIpU|3(@$!J}>FC0t$ zT|q3TEQ@>k4bnPUA!Dn2cY;nHQu;Vz(jxErVWZ2TJJKF;UoQUP_@5_g`dI!g7yA3U`a-360)h5PNup&7TDy8-|6LKkZa_kso=uW*47j9svQg$G(Bc^LoVUyT<~AIteG z+&w}V(POnX&x6}Kl6JR7kjQ_20lYbFN^DgtK-yA8)*Tbdzx`D{=w}3@nrJ*!#b27S z9soZtK`ekyeD2lEds{7OWDUkU2c9B`K`LtOGll{T>OTYX%q<@9z`=Xm6jb089nqfQXbT3TVN?(lei4 zwK3H+cA|d}p|TB5hp4F+rh_dgfcKE6{VJq)FYu8YiCtiD|4?q^uuOGd#m_r%&%S09 zk>$qPw|c%Gr^m*vR9c}SRg(-{=BW0RP_`%e9D!>ji#z)=(CgdKh!_91hYQMeXJKAm zp5z^+x73CnuH>W=Mx=;YOT=?q&wf|Cj!3?r&{UHN+#FSh3o3(+nK5 zURI88MGw{Y0q`59a-2|q+06s<9M}&{&=>OfHE+yRxPWOH0Jx=Rm~HKReGVpEyP7b^ zen0vrZ|zcr#b?-rh((`v{sCb&<0J!V)5d$xZPvvbz_(OO(((Uj{=E&rLHEL zF#qW)k;2SJwcdkf+*!<)!+Kt}`e>(cHO-bI#2fcnmJj^PoQF+4=Z~wH16mv2Qi__b zLCZ`tVxO#X-KRbDkK+(rjZ+*jvSnJvgAok!prH`m#(x>2^r}nnOtr5}wWCI$^ihIt6V&%HMVtxh_kt&YCOOj8*ZO`z;aeW$%|A}pm zne{-#I#oLe6FM6AF(c{uOrwRBYN4BV9IK+<8nN(dwH&H0S1JckMgcj2y+Hk7%*)T; zz#(lII1*{Ko0v31TKE`3KgH_~`3+H1o3x_RTa|}(JoT8DJmt#yT_hMblgPS*w4oXc zw?DT!P6_wMN@~nD$uK`DtkC*I=}_-B?lQ?IwHlcZ6IU5s>I!`|<6@O!c78eURC_XE(Aar0#w12l69=Rl%SOUzHmx28stz^dX7P~DJut`{KlB+0t-HE8r zMhvM~;r=u1x$)}S=Q)~|i&M*8JrbHW5vV&8L@VOhectOdsr3&xZ;yY$r;s{H%Nz!|*O=#5~ zemQ#=q&EK?ggMGg;dy;{Fd9Ra5-!mFYH4biH3otkqe0E20^Mq+YL`n?cVUC*;tQTf{AM=v~YQiiRtMxwOMQF*=M1WPg_yryOW-bjjn; zoBCPl3-!*EyR!kd7545zoG(mc?)92Uu121M=D2%5arL`d?=IsPnk=81nXjUBDF(GG zto+CnZ*s1%)OG-YEB%SLL6?QsS)gl-fjM6RZQq6?`&T=Zs!tr#z>?8s5?0Ug*}i$j z4BsgvmibggSmTzHAAc^{;Bb{(qUDwYi2;E;8Fh+oz>s>SuWjaIc_=T{rr;P6m9N5Z-8*VSp#HrTZPZt24U2wY?p z6Rr}6M~!e84Yk}z->8=h+*F!Se$4RN)a`pTDRp=w6%DuEbA_d;@dLAG#i8^3`Bg_= z^4I*yvG8#;+{SV?TE~}mh&!+C7>;yiSH;@~N8=>M%v?inxneVHI9EB*GaXrbi8e_` z6Nxl`f*!xaRd8~4&b(X^$IA=CYrE0z6uE^o1Ho$`w24&F`KB{FI{Q&YYiSmGyQPZ! zk0k%%o;C{Xo^~m)PtKE=?BvqYN=g9MzI;SuU4A>Klby-~d8%3^<;Y<*6d9t6!;s!_ zmRPb_*LqdC40kk2=sDwl4Ei8~CJmrSkBMv79 zY|HH_yvvN1kcYdGe?MkJq_H5-yh%SaALHS*OS57vD&Oarph}f`WZr48*srIWE$>kv z>Zjab3cG`kKyTANuRCL*CBl8CHZbg$+~aiZr`Cjv0NX2i!ePfsT>v z)hKRO5iqWXtEqD7&*pDNAkHA=Yj`7nO4O;hKCIqG?Pjmnnpik>)>5Cd))#0#v#EPTdZ8FbuLnkSeNhW4q9c)ex%)LLE>mM7T=h2 z*jNQs0U|7|8CaR#tO3+0#bx0UD-S!r1UW9yHpMpWB1)&6AmwVc+>l7#{~JURx`Q4atWe30R&?D7kZ{wL*vO(Kyv9i zkX-tJc_T662g@ixfJt_F@f{EOED7GIOzehB=}V=V7PgHcFMlZwb`1tV134L`U$1Cw zFRXTJkgb3-`=P@qbX6=cW0K1Xm-v3xk?YTVXl z=`HWriiw=L5bSMsz;*Tunw|#rGBoU`FS2<=YYlLi?7MB+s5PfNw+iG$p#M2j36Tbz!G-1$nk0#3105FQ-`JB>8CpF z(?s6?P^er3g02Fb<`jfWIT^4`)uM&KxO*C>G31b1^0J;Y`J-?8X)Lcew?)@X=J-Xsou>;7d~mD$r*nM`Gvb8~amim|x{9 zQqwiy08iKXLZrM zKLDoZ#QP^kuFY5C}5Lm!ECCXMgcU)D$_BLsP$gJSn_Qm*2G zS>nRp_yjeDwV$Z<-bZ{u!Pp}I6)LyK6|tg^^Jq)LfC*z1d)}obxx)3P@%i22Ybfih z=@j=ZiAsr-a39|jq-T9F*U=m+3Nw|bV(&P^>j)Bbxh$~siF_XW=@OnSwFaN)xQeQLdI1-loAcp&m-Yso{gj=iOM zXV>DwsFd(h-xXIPFMTh=)n9u|HZxU>*==pJ>{_`$CIN;i85jSg-Cr0bOo_eb(7a9Z zO@9Wd*uq2Q_k?ug!9+l?0-m^;zC?N*jR)vSWmb9j4n90hslUm5#T9g)!!Zg41FVJ` z8J&8lv$s@<8*-&!+P%LN@(AgPwtsIq=D795E{0$X%9K>ABLGnrl+B6}9f$i(ChC-D zGhjmgU;cjm5`(-a(169|k)DCQP*jO0FCZk|wkahV`E7=wI<^eIxvt;KnYi4upVd7$ zoySgMClUn+7Vbgq-pUA*T=lZEaMR0|-Z?K%ZW@7DMa=J4;j0cK3vcb7kAg8ZR?d1L{A>~#-G#khOI{_JBYF=W|PiXIqawayv^{(#T)rPRwcJO;&M zpex;@UoLKjs?9@a93+UrgpS#CgF7t6sLjqqWy@x8uu zU+~AEjU3QRC%~WVhX%B9aV1Y7Vd@nm_$1eL6lm9?KNBDeX{mwNl^E40pEqNcioOR# z)Bh#2E~eICI<)(2@*cRN8_?$3Bv}L{4U-p{htRX{UFd=9TckkbzQXfK_3?sbxfR3O z1KZ)`X=|l|+ZBt@DK5M*-F&)VPQW1GzV_waM0HSOj@2Z?TpM`C3Ql)!SCOvPx#-P& zR}FY^fj=%%K)DeBDuSmka70@0T(#a*SqR~;;$j2eI#8ozO(=7zC^9`iF(TM}fupwo zpw<*?>Qy_{O%0M*$&cip-F7Jf4$l39mjOZ3BU~I7 zEu9V)ONjfK!F&^1J`YJN6!|gXjs0Qj%oiv-VX!fYi0Q3xl)6H@_=3JG!%6+b-AYz| zUK_~9kck7dq`;X)yIi%ZV(xl%_8;xd#g^Y0+rqohJNH4DubC;Jt?L#L#L~QHui@ZD zo)giWornST_1yS4tY<$u0W|?R0`-WqS1?-6}06~LY-l7ZFD!vuAch?Z>83U z#mAS-*i9&TOM_j>agj;_z9 zUQ~(RB5v44%BbX$#nQzF=XmAI8O|9o_Vk})$xUu$h4p{|eyc}v8Y?Rgh--NUtqv9Sx>_y7a{N3n!)PE1s z+kZd4legpvaIqh$bwQz1)Sez~gfi*he)#L4bfE@O>R%f!(7S97upTCz-@m$4s1&Wj zT!O=xY|0G%OK70(KCYuJTqOFh_dTm{UCFl&hOm6?g$E-f79ZH(hy9+Q3=sX3O z2#&aQjeyuRAs(wLX)BX->{;7I61`DH$K98;`#)1NhoT^IZynh?kIM`VP0uqD@6>WW zqg?{DMG^Bu|L18P2>wjZ>{`4o}uH{z+v9 z;Grq`-g<1M@c2tt8~53U$UT+{nIUebsM+WT=HV6E;N}D5`jNBZA5!3uN@uG+IXxKI zypv9QnYbp}kvj^5egmfYiI#G~D8(z;*u8y~`q9yIN%%DBcjm{S_aj0zi^ioT^wr+S zlwHU{Y9V+cob!uxpQe}qHYiC+jNLnX6rI|>_>Yn@S=b`B-&i9;mw4LWfJBCaWm~$h=_nz)v*8hw*QS0y|rRd`#LH6l9H%ALLInf8W}qv z13uTsE}ENI$chFz@_{C`D3`GTT?DFAiC0#dBzyDFp)hDAhlBm<^-6w#) z`IPQ>E=87n8Z6W&-p^rVjIXc@<|bAwjaA_ja#{VjzEJde(gI#33cG93@V*uX=xm(g zE>+DUP{loG_0Ul`TFoM0N@UJIABX>_xX%InB+#(8aTT~fS~=`r-_w!O!GVfJ@1ogg z?Rjg`H&i754uJ&1^m`%iFLCF=-`wn;-n86z&oFIJCKFE6 z5wv|iXYmO1jV@%rAywE_%h_QPtLrpStw^b2fsV5PTy;KO2H^(kjFf>(=AJIVj3xeD z;*>0n`Ln*jbG@xO5ui|E2Mvs<95)Ua6-2bUgrg^99z$w(76`mB zp`5JwFhuZ4UZ0v2P>P)?s2^}&+j?z@l32s-`Nyk$Y;*oMqV5VXViQH83DWmeTl?G! znDiE5yrh4+_tGo1aX?}}!sC4sZtPu(lV?ZeJ^@thrKb{a6xy>1#9W4;ZX_x1I$FoziDwF16YFJZVh&=*|Jx99_Qx$!CT#K7}z8a_#u@!G8eBKa&y5 z8o_!y{*!R~;yZf+GL=EK;h~kt30#9A{n0q?GGtJ!pZRgy8Dgo;{3txK6;%T1y+h$H zhStpWMP%ZI$TCqFDH!+BGqlpU2DyR3@mf?@r1x$kq6XP#AJ(z`=f%8zZNRkN!*UHFq8IN=d>o~2o1F$V^8sh4@XN^YQrloUO%qxYZQ>!u zpl|Q1JVEAR6kD(H0u+05@s$01w#+n@027A{0i;&pYy2O?-=@6Y1-6>X_Z1A#GgL^w zLxy!;e$Ni~HJUoo`_+lbA&-bDnA*-*NKs`v5a^qTL2Cr7>vp(IQ>6NT9By@DdcREm zLFU19`T`jwi`NpjL<^AiNRr}Nf~QZBdt{U$^K>p7BcIQYTn)GnMxFkn|GHn~t7LIY zl_+(GHmMKGb+?|=gR=fPKAqCL1w<7a(ujR83cLvYwwRC>1-aUbzf4`ZU$4sOZJ7*U zhw;+85;cqFTjKVpCy(F1$~%e--SfXWS8J}j@}Q%|PG)?JX%j`+s<<_r4l$VX{>jcs zzU|>-zn4Ji8WMF?`{*|qSV@;cjbN35_sdAYWE=>HG1p6m{VQ2Q$y}$YL1OHL@*eub z=~R(?KGvU148&C4x&eWwYMz2>`zNE-Qs;-(5Mk@qBPBTRAUg-8TpP8kd2xXJCzd($ zb&2rVi^E{V)_2kVtIt6D+S}JLwWr+kS+ieu7SYTeHpb#v4bXz+Lh8}xE&ina?IY0p z#~8+ZG4VE$!L;W*3NN3@M_HEV8ST<3uv2zB*uv_Z=kYqG-^_TY$%;t6~H!=JWY?D}4elEpYeNHTgA2rHOW5?x0hpuhc;(5mE+lN|vDlxmcg9UVAer`mq32qt8(VazoOuFF)r2wX$8LbjO04i!w40IqEMyd99TUrcX^R z_vI!AAA*VVnIu|H^Q12aLOx@~ycV!8lO@TLhKKo=8kE82&L?<#eSzF`WmE6oRr%db?Kh8RV_?pMX<;1`7zNBBN*YS4B zjw54S)rCmO<4#gQ;Y$7S4<2l_uoF)B%j>Qt;7 zIa^kV0`I3;WTNX9cPb!ss}|%PuD`sGt{RG?PMxOa9D+}`zS9(ce*_#6iA$~nC3RWu zvqwcaP5oqH3!j4JPkRo=73X@HU-59*t^uEqx|pVvC}L)82k^J|S|{Vvz52fQZ!pzT z*(o6>Y)xpctvD_vzRvi%3_xd3H7f8b+z3oSZCq-8sq%dxTAq* zSHUxyYLoaX719;=y*FR#ReQ_q>9oV=GiW1ed@aL+tL(Xt-AMw>T6OAtL-wzW!&v&X z2`*bavLQ^HcG=8$@HB?(mYT8tE#o_1!?|3y<0}dyf%}7ky+`+1b$x968daWIkYdZX z_5uw*`OeH74^=Es6!v#o@osK2&4iqtQ;xFNXHqXEP6ft>G`(=I>H~Fm-xf;%IpTSwrnA_k7!>i{?DXNTrUY$0wWpG(a)T zgm`T@onXAwfhtbKUO0Iw0p$mZtAr)FjbU~A zQC+3qCC8e3FnA)XKW+8#4{q({{(0Z2S3L;j4mf!6&lHO3NE{LCL#}nLDRXmOrcl06 zBwxHNprg)R=6;u{^>+ULV#3VuZrME(NE`khYMtgBbc(k^>22;Z`WB;_0x=&U6kg12UDDql#>LKyh^-ToVOA7 zl{I#(+;-Qo`=9*5B}oxW>N@3o?6aC4=O=qo(*j8b8y5>`nNvfWF-TW}mjIvN27mJQ zu4RK@T)_+K_ZHvQ?Mx55-=w3JhOfbi|0LNj7sfHIlo{p=w2so?bUUxqYz&v?SfM;N z{4n=as^vn&*U>M`HFMu%vC6^knhyrM^aJNkv4ECoWr>_nV{H3D8tE z=t(D?*8UMmaEg#+JrwyoLa`!+N92%cvF5CcQCR&dD$n@PZ}8Vd$`Nk?2CX6^Xs(n~Q_g`1veoN7O)TpPJ@BBmXv0_fM!S2vI39n! zB(f}8y@xs$z3YlFrNF}L+@I>73&zNOS63ZoYg!(v{MRi2vG)$-b{$^S9ZqlaxvpQTs4^_ z_*UoyRD*b}eY3nrwyb4D5WDvWS9iw*sr(u8X3oQ`#ms#IL;63`lT=z&t!AAU5LtN> z@CuEgizp`?qR{3Od;|m=rc@g8Q8c9bk$6i}j2Dw4=C6%!opP{ya|hw(33l4Ia&`(E z46*uHGW94@sR6CQ>H}q(}B)!9< zjjh6>vA2|YY%{&arH(Dj3{aYr`*;aNIEP`Tzzj(Z4(qd!|`6d-fusm7)GtR zPF=t)BczpT+VN;*t?{Bws>M;^ZIO1{-4j61(9IkjLcK&}rQWG=~%?XWS8Q3O1p9=1~zby z>Dv!1=AKG%I94`ayX!lYw2kBm$oRP`bestxF<$fe>Xm!3{L&ry4xfhAEhY*S*--Lx zE+)W9Ri7t(V+`!t=nOVeJsXrtU*p{o^gc!2Sru5Vcq4AiIB#EJil_-;z_QT;!b1V= zY`LBy^fA5FS)l|uqYgg%5k4a_PTw`^HNKXkp6dF{G!sREDc-?j&K@AUR@&*k1Gz%g zV#ea>J9Q!EinNMx&c^0tu9ntr$E%0*IgC&174`R>XOm_4jb5J?Mt^4R%dO*%42&^} z5R0Sh7+WSH%X7lK>P%QN)Q-uvAi()u)Z_s%udiH`EhpiX85wpN+?AdM()f@*2Gt)| zsxut-r@6b!#t3DW`NN?#ny}1G0!SOOD%Wt?HuJa?v0WF_ppUK3 z2e|e!;VkaJ2M5TJ`{@xR^I6y^Hs`PLf0r8O-(c{eGs8zZvsP{0DuleIwJTSeGyx$3 zeFOh)t1++E zB?O~pWz(P;Rj3i&%=Ye&s=~ddmb8s%nVA}2?4(i4taHD&nk`szS}H!j`q-s%`>|K7 z;L#YWHVI2wwN|5y%gdg?-UgZ}F<(S4XK z`*MRjq)o5MwWX>m-1aPmHRj1?qD5_QhEYRJ{f7^09!Gn|1dtH{{Ud`5QlBw8jUKMC z8cWY7c9n8pzx|JFv=Ww-THm0;3!P&gTew9ZnvSpo7xG^|*Pah{oxMKJw1@^yUvK^OO2x)vqgtgOzdxxIu z+ibI3%lP7oWv`?TNVA_LZOs`g>7v`g3sx$|H@fl7x|EeM+`0GGF}j)S-vCWce=jw%{5nw5kju5uDh}nc7%Td*!NZmAbxD+qU9670kRPiA;b1fFT=6QWyegb z0@+W>vEp{3>Nv1i$0K}H-@uxEDLv}=&TvzQPbe@kJlFP?wKH`7*&n<* z^An~owRT0){YykWx@{eA7R#~lIk`~aWmu+&&0>BC7M9H_3B{$s3I0G?GP6K>y>ng_ z1|-0^l5yzUudKi=VuiaYv`+r+kf|?(x0l9 zX`}(&qqHJfHQT8!>Z@6bqeEgYw&uFR6nCXilnn1U`hU>t{S-xOvzYyI@U_mKm!8AMFx%WCMoT^v>;enFKxeG;%n4b0&c(hQsts?8vwlMZ>4s_eCTf z>)~-qJqioW5FR#_C7OnGB6e7IH2anhDGEJ?7|eS}Ss_at5~r;2*~mtp7Ylv>mZ zv?V#e&QYUE8MM93WHWOhEjg|)Mf*u>cd_mw)UPYI-G>XE zyYL9%7zO)dXn1XtSy#io2P0WeB@~CuHZKl`@|L)wZbBD@N{)eo!C^)_Vz{0Fw`<5d zhjp3X`S@71(o8{z)1UzCcwo4J%U0{^VQ60c9FHVxfxeG+w!<~UpzlDmqgC~=BYnf7 zGe_oj$=40vNS98OLK?qwbIn_n3fwSkx;UU&S@W5;(szM>jP@%5U~EjO(zA5nC4|~+ z`=zX3^8(`*0R$|V-WMi0KTAFpPIGN&pSr#5%$~{Jacw-_VaUZ%2T`UPD|_gFv(Qy$ zTlzgnM7c7ygYAp%URayfBglTd&&t#O(7W!ig-peE%9)MOlObtC z_U@d6QjVaHYs;{)^+In$B+98eAatph{L~XP+)h}C8@ zM-nsx{bH7ShG@Ne@rmsHI=FZ*Qr-xx1f?K$;9G&0O4;Xg?IDWGYiFk`j+4-) zWX+ILT2>Mu8|m0&^KP(*T`FF0z{0JaH>F!9Qm#!XPI9MBYhlV#i=O~OAtM44Es#v# zepl}{YAY+ILVmh1Lx~JNYw$Tlrzp~8KgHJSmd`+8R8Ap_FT+mJsrgapF`dZ@~yh~EoHcqnygEuAFs0& zVSGs6#$_L7kBaV&P$c&cU%L1m8O_P8)LAU~B#uW>AdbaWNj2ZbzuN6g#3;Zoy0ZAJ zlclABjPb=fTWK=*n7K@f>zrW2qgKH5-%ClU18ls zMpZ-e;aJ_IGWFW2>ZzC=jgXgGU2Ylytcs_wQ{Dno?(AXer1P&vE zj|VA3HvgZ>vf&R{V5#x%=Owl(&EJvo+l%;tH#tDXbr&<0`z>u>Ik(^Y@3rb%M-S>%k>uNo3xYRZ>R8U*G*I9D+=Z^(H^l19 z#7S;^r;ga79PfA$exiPR$=i65B3DyA(}))y-&{eHz`NNpc3Yc7-TS7l<68K*Hbh8r zb!F(M#bcW5^befv109Y)e*(|&vu7^~ymVpe_XRCYHnc$HENI8v^DRQ}j05!r{Z8F^ zPnAE{CXdMNXW1N%+Ll9rkMa&mr$6-HLg!d!nT%6S2#CTpGc4OBJA^(;UY%-{hZttb z5Ly()=oTK&A^VhgymU7Dh$5N(##-vijj;PS$(Cl?1p%ZFql1Ytx$N`c#$cLqnl{k< zr8S{gjsWKz_n;1?G=AX>xv0HBY=1t{OyiKK$a*ucVp?0`ByKyv%BK3Wa|2h?axhB)J>Q+ycF5pl+ zDxijiGE#-F=4&@`EWp}WmnV3t)-;hx+%X9{^ILeRE%E*&j9P5AsTi0z3b@R>5muA) zn(FGbAq??TE>V@tJ8~K7RR3%Fwd^&P1D`E@o%O;^Ej08N@%+2PC1y1jf-0&Q z%=Ukr@%r^;2zb<|&-XxG`LpAC;A>wmuC|UR-YUVDO;VkeZqjb%?FtTbT%`+-nyU$W zH&YU{nsVzUb_!I7ruXR14OO|S`B*rl@onFA?l2x4K^(*DJoZJhH#UT|OwFOv>~msg z=R4e-hlNg7FbO(Ll4f%r?2k*>nhnaN(?5xP)~MIEs43%Y~|C`0{! zT)k&lQ(M$6tavyc3t|E3a73jSBhm?|h^RCH=_E*vbm=7&8z7;HNH38tHS``(A#?~$ z0)!%92oNBU03n3(ZO(hY=e^JU;U6Be_S$QXIoF(H%(XUoYB`U9b>gyVQmpv~jwID_ z0o)sFVx5Dzk(eENiI&Odoahx@ezoywkgb5Tr=fTm{&1WWe5Mq~izkUI*Kv?Xx*h3% z0uGvbT)nsY?@9r?2T4V79kXRTwbwcBoE5W_LEGFn=EjP6jR0=PtDfrD(;5qhmB~e) zxSerKD#5wSz`glDzvGO>?yyW|4yARWc>ZSo;_Wo$m@+#bl|y@BAk*AJ5Y#WZ)K(Ho zv&tV)O#CmzHvd`&?ojblh=ZwAuE_eW%57~Qm6YGz0yX&u@F&ktng#||3g#Q_0~!CX z5q023i4?`oWbvw=&QPk0)FChLnHW?gt-L4xofhV`~JJ*n{yPAi4Z$AacW0K+%26XlNV)2Ipk-VN2E3(30^KkF@P(=z>qvIKDCkj({oE<=0chdw+ip$M+KwYxXSlptH`LCxM7B$hAcED;*-1P|{hTa*}DYo7~xd;8RvJ zSyqN?sR8bP_ee8Qk?9MV^COi`7_a0U(p8lE&1U^e@}r;__UPHvGNb0aoqbg}{ZA@r zgQoQNbQ07pm(=E)ap$^p+n*Y~;8NT^J zf&CZWUfqO+`P7?JcT?5|Bm7Qnb6>msAJrre~j5zscrlyZ4)~f1bx1lncmkFSE-r+oT9SEdw?kNU;S94*o44?YmPu;+-26 zbNeWn1$B6)G(XZZ9H#A|U6yyRDZ`d}_3&{if|&J8q)oVEi`X6n^zE^&4K_1EqE{a8qm z+L~{(lg-}Clga@P6z}+6XWhz43_7z-YX$a&s$!e8G67~Kzd(sUGrPlcS9YZCe#EMV^I?815J@)usG@fB;U<9}rb zjcg71PqsDy&KPA83aL+~6z5{T^;uQdD_Tm|_RI=7YPyT~@1|vJ%*pa7>;lz9esoK- zU?HZL{7J0$eBLp=caI0+x^DK;xw#4ZK5iadf4^I`>p9`nB<}U>?{nd&Pe1rE6n#`~ zzs`Wj0-beC-FNvooy996)zP#>*7Si9UZKDlPVDFtjH<)fqUk8)d< zYDi{psM8$#+@+7Sq~g20o-yH4e%d{kBNz z6XMH_N;ag_+HUR4t7HXqqB8&8z2e}#ev`o+odNE?!~3s@;=Na%?pF9OQ-tD5QPy_0 zr%srz<)*fjoisnWKYNxgQd`bRw%%KV(FbXMHfyH85U5`@Es4g3UyOuAW6Ire=08>y z%aXKt4!+iE-E7PH)hl+*3g9*F_3_#!M8i;9errY!16!K z9;=y5pSo*SsR3jHB0)O7#Ok9S8jCH{yUzwC0$$8{#}CAwp`xwdoh-bMz$+(C!&0D1 zrT1=n{xqk_vpJ6DQ6bInXD=@IEp_bmdcTtWt`H6oQ64Y-qTuo5o0qi7 zYpvbA@!`6^>Z)DmvE^0BT7062RQy&yXS#ShRefJ| z74g9MPAJH}c%^G))Ti|PXDpqW!eJycvq$wmcaumqg^%xT#6G^5QP#UQPfe_A zirU$qk_i3ecfAX^Jz+$wz4LN1-L~XF?WNz<#PtcY(&ZQ9E=8fz)xAMYKLc4w#F(W< z1@6%yvFhHVpd{dxD?K_NtORsD9<&{eJ=3d9-;!-ImDYKUgr|+&+8-C(I#i+_d^X>O zg$p|7g(O@p%E{@-pAlv`!}RW5HgTM940)mLN&dLF7?5PYJFxRp0kW_=+UNdx=H#(? z_zGSZQ)W}n&BYJYrxkfg98S&5voWz7XqUVI%vQZkU5itm@$Bb9qe zUBroe;A692v1LP?{`DC8Y%CuvjCrfUgV|A_{Cs-SwwmX4JlB?2QUDa~r@pEC78+K$ z__Tikve9oZ^~IAC%Ki=vyLj#5N%x2c-I=mG9^-633KRAInk% zb$+eZjS2W3TFTy4`Cl>fb4o;yn>u@OvTXm~A|6V6t8!PUBiC<&LEQI>k*`K-BK`M! zRc}g<7&Sb4fQ~~EiyK8R{I9b3i1U%JvWp3-$Xew?j^K~w1@fH=xB&3$K-(@*<;HN> z!ulZ$n4@7XgS3hbJ6)c3vTwZndooj(l(opB&eVhkPI}dw2HzQfq8D8tFlDG~e_EK!VO*u0d9;Y*4FAg;&cdavx6Pk%@9+5|uQ`NlgcQ$8 z{I{cPrI0PlC6C#Ss`13HmMq0hnQsD;QDk0_(I9|# zJ9TeLUtaK<_fqjV{1i|8W|W>}Gg;pFc)zTJ7($Wjii-1hTwE{zu}JibTo=Y6Y~3wr zAJoX*>CMre*?EKSr+_X@UXuYGv;Rw0{Ha@op9hWqUPIB%}=(#J@fk>C0`k^RoIrKu^3LGM5%j`&jc9E*s-;-K`TGR)7) z(T>^_Vi0{WpmMNOO=RDXRMzY3gom!B){pO%*N--z&Ejw_kh&b)y!)byG*^~v3bxN8 zWz_Xs3h}Ri@7E*}M=EuccjTk6hHB%Z;(kTjRAuB9FHIeN+#A>%KJ%6ylcnwbGp#gb zdo;1eWB+QU|MbPJ)!o7`mE#a-6zEXkihE#hmU+F^#noYxV82#q^Pk`h8K#@VXI7$9L%-j-brDT@KjC>meg>kDAuu&|ahla-yl#+P zQsPw5+L=Ubb=Gd{UcR_Hz9&>{U49eHag=*c&ydSyt!w}S%;6-LXNy{g0rVWD7FD*t#?Pvnvo1`NMTvm@x0bzn=O<+ zE0S)>4V>5m2-@}H_{iLkV-oH*r~X$8`kbj<* z`1IK}hjtilWvA8C`I6N2b>&*4fLJAOM`7PA^Fm5Mk3gZ%+7$Gjn+>1sTK|~EXg|WA#$t)|uvssggy#gAG5&B)+ zLmdn7st9d8892o2Ji7LT=>xY0Nap4D*mchLF)Y4SlM1?CRg)c}zH;d^x0IF188RkbgHINUr%S|FXz;9K zFLEkyr(`;H08Bn?b$3fSeBKwRAKg@e{hH)MeUD#(Iar_48Y7kpzP4Oc1V`P7(RD)3ir9pc(3| zr$J>xeEXEPO#ASrd&|fd{D!4-u!aMjUPs2F3uTZ*GL!9&Gc|szo0uURman&sfQAtHBH`a`KAed&I7i8H485$ ze>ZPd+fABhiIc43@v_AD=>Ov!vR0Rg7C@F#G~gRz@6ze z&B6q5n;(TVlv+jYPKKl2zS*uE$OB_KR#?B;l0ze+;R|rSu|rT z#R1+_J;*+&?fEXUBs7zN7Hy-S+e?E|!e8l*-*+hw) zcwjgJ3KlL>>-?2aSANzoK4-|M)3J~k_Sy70Gw?4A+0Y^zR?a!jfz#N!9q6l}SLD3U z(v4!g$HdjKHRYI$IhSPh;$rxpR<4a1>gj|w97Jwwif8r112Bhe24th%{WRDplsFbE ziCL83XmW^28>2KB&!|YZp(wV&K7<7NVkGpHdpW#yzUc{D%|2wPd44TIKN@il#e+r{ zxLYsV>n|htZ3qMmRZz_DvE-T8%_4sf z@+wwVq3Z@AwuOmm@|EsPHAV8D19N4939RDGkxO4LKwv)P)L3Mr6d#CQe&ESwjF{D{ zFF$$^80h;6!88y<#Sux5DsNx9??pa#Y}I9JTJT+j%_Ib0X;L~q?9EP~JTy8`U5VAC z?AZ9fwA_&QcWEtK*cZvuKvhu|oA;`wd~NUpap>Ae8zZ&|1o0}CUR+sUfQxQM+h^v~ zBZ;q&jexYz`RUgbV$pvI*j0;o}7&-Wt}$%R1ZN1*EXa8gM>!o+uxI09RYq zZ^EG=?pmxUjX12Es5j=XHIGAj^0sz!rqAP9amR@dH|Rcn$W-KPYoOB+qjvFZy^HvH z^(|(hKugT!?j%OH8@z{|gFw=Q_^T5t>*XqAj&QrqoHl#QaV93?Q8`A_CTw5QP~um^ z%9kta^0UJ=+@K29QDNmGx00~k3U2$|EpLo1V;S6Pxs@LS^yjGJ=zb*|A!%Miw`40Z za>M;*x`x3qZ+V+fK>p@X8e3TTjo|%yiKuK33}_+72kUN>U9$X?U87j!9}Kx&N+83E zLwytR5cf?S}8Iphb?yLN{@ zNA30`Y9CFfO&py^3}Ych^SySReP0>?cg+;3yUwspLdvfdopSw+I>F-cywlr!MZ!Z| zKl_}k+3eywz)}Mm$kXl4%q8*il7rHkpw*huW&);I0sqpH1N=h>Tf%oAm0l?%aFq*< z$tlFGCLiV7TX2lQqXrsjT`V+^%fh>$fMaK2If=Qn4!MO&$qOA zpRiFXA#K3cR4`3{L1lzR|rPy!4`6{A!$d;Nmvb~w+y1w>LGNYjM+X(Tp{t3)UfPbfQt{as;upi~rk$*P6= z_St;4?EgPqbTPvA5nIGm&X6p96~uxUTS{qyP5ty<`GdFE2sIR4niJzU0lv3Yrh;;P zszP45>DCR8)j$<(y$`Qv`_dcPh_Vr}rcwlfH$!|Fz{wKJ&O=OSGkdLHaL2Qs&EskX zP=QM89=nQkQd7uoZx9qU+MJctTCsW5yE~=Cs?*#YWce}p+E<;!;1PmPRwi3TN`cVxEL^^?`+fq?4;yMd3##kJdR<0KNPK7LKX8BuW%_632Rw zz8$x+k7SAgnmn3#n$>~4Ae^lfkX97ph=Run7h$3;-PVX*|vEU?rQ^Y!jPslsTg!- zq{lD1FDibkp%49C$!Q5ZcIQ#P>~a4o-o-f(o8oV?nxXXurPz2O&Mo+PXP0C|I7s#o+YyRwX{e|! zB|pn9AdWuXZBs&$CC+;%TlqVx3Y${vrf%vDKq0D9E-UV#Z}=9h0DrIEo@^^&yOlQj ze7Tr*3sJ+?vMuZoy&dsV*4ks2ASh*O+wgUiDU421;Rs<_|(2O!+>aI zv1;R^2THI0NYaC>K}4gAiZ0N?E_!l-ZDCpQe;zIOi>FlaWI+_0xW_|(!|3~x!c6{j zKl;$Xvb~&B@8@kwNjWwmxiiCd0FR$+q*hubvHF7MjLbll2dK|ZH%Mhna72>y9opf` zr};xeQ#A!cwUoxGWQ2$=c)PcAVTg`)K7Kus_RwV81~KQ};HpiitT7pH_4b247h^?6 z*K99Oz1AeiX-w4)C8BrHQmWF(H>yh%#E!hrZf|VLZ9S}LeP1Q23byi@fabdcswZaU z*{coU0- zre#EvLfw08C6nvxhS-^_Qe;X40&WQfN-v?su7bOIF=)YIhJ;Y6I~1A+z5v-u>l`~Z z04ts53J92gPgs0NojW?EJl!U|^B6|BaBM32WJIE}b+P`w07LV9F2tUN_VVmt=tKfyxf8Elz|uUfMR zHBp_ws5TTu67Y9J)5p#`x+Zeq@94qIhQm`6>^*rLo+pL4rnuKwx2C*kQ&{irxI8oN zL>I=iqvUqAr_z9RXHV$sB7;iHQ`E)7#jlfGbh4c>)l}*YoX67l9O8?9nyeRHhyK^b zKpc6s@(fi*zSH(qYq=2}6HGVbL5d7u*(3QKhh@rIB=|KmChrL0rIQk|{hW^2hq%%; z*~Z_Wp)42-%8QJs2v-(KF7keu+;Z+7?i zu7uUfY(>%3`(2ADCfumx1LRfW!Vd_JkwpR7*xk z&HhpVosi<)W_n^sk=KydZrB>l-C*aT{A42f_ku*Cme5=)hT$IdsIs<3?=k$$P=Pt( zd>PjU4j6|m97wxgv*WO#%S1Y_VWkTIMRBV=omp|wR!*G^>gzt+j9Lnuh5DAg@n{@Q zeM+{?DqA9%r*pcQT|6ss72LOQF@At_9sLW@x3&K$8`UtK6;>V=cj$ODZ5u#cS2iDS z*~U|TNbUYOHg1v-w1{7lIpd~dZU{s#t&3*SefnROh%MFB`A|$Mdp%(OWE4`i*q)*P z55l#RJOD0T2++U_;8?hV?SX_!$l1#L3m>eB(0;VA_EEosTgJy!Re0iOM2S~AX7X0< z1RD$*o%LdCq8H_U;!|b^EcJ0c!b@>Dk&rg};5io33Bq7+Ro0_N&7mcnot)_9PAqRC z$7UM2{w84_XKcJ{cx5ucQEIkE4pa$ed$yn*EXf?juD8@DsG%>q1YCt^y1k}Eik6`& z77IaT#jJz})ArU5;FLMr*b-AU#3TJvK!D)9d$$cZl%oL>4+-@j|Li?02y>V-vR$U1qd z>Y37gJ^t=AmDUArxXZnN9i`RpDi?ZC6Et$QXTQtx30*W_UQbswS5KS+LJ&a%&1w=Z@MZA7y1QV|q&AFy&NR;~O?`8b$iA z8ElEl?)a@b4r(N39e{BL0Tk$>!CGr`_0Usj+BfuQqEj1^g#E=HSEfL+&I2%dQYg=v z3@=I|%sm=aP$qz-^k0$!hV3QEdfE#DsKYnb^1co8QI#lm1|(R(h0G5D&STcW1`CX^ zbEz~pgpGDUfJ77<%shI>X3tWaSMB8lVdY(fL;f{b+yKt3YCbk-!s>t@lV_?HE)t8j z_dkMfYa>X#;JS^#?cJ6Nc6`)1T%lyv*y~P=p#H_CpeM+nhx8Lvr$mV_H6R2nr>*+0 z)ou4QChiD&EcE~jh8G8NyfbA%!P|DuQqN_D0}I(vR`HdrFr(!Z2YOIxKb0fb&ypG<27eKf@B$v~^W{L(Ah@MDxUN<+ zd2K3E&9FC!vXZ8M*G2@K#Ot4}|ED;^T}l(5*;Ftg@^T59VuV~$$a zlrA(?tHZf(PPBZhDLOa1C|9Y=)|ZBIc3rp_<+0TDw!QEV9wDQUBs?iCjL_2m)a<#O z*YaG}wdVp0Zq8#)k3uxqApFX}yAHR zE8nlk6O(iOuQS(+)L>L>_}2UX$C?Iwg>(E~-k8gkv^r~>k9hg1JBL$uKsB#Dc?x9P zJ?n%)HB^jTKMMF;p4`loi(Z`6N=hWXaY5iZ3EJB13EBQzoE5e9F*3L+K+SdWz{}uJ z#Z~L*R#6C$tm@tV<@?Gj_45mS$C73G3p`;dBlShxg#pDIMf~Y?Uk1-Lr>|$_YWc2r zyvC&5X;bm`Y|k(XK%w&G2g^(6k{r34CivB--h!u%Gkx@x+y>Wuo~pJ~2he2~-Sp1J zWkJnaWvXAbTP3pkTBLp3%j+=Xur~DV=7o%auA%WZDGT|B(z@Dfl^{h)r`$OpH!4`dJkkd1OZWK((j-ds+JKE30CQS%O z9aguZnAXX-r-xp93z@amHxO&30P@!2o|2As&rV3W-vW|^{oWYZlP?fyAP){#=-k9` z0ux@qWxzu%&HP}n&SI0^v(556yWRD>MG{`s2kJRPm@M(5C;c>rtn{3b=)I3?{r56` zK&>uk*2x^elNyf335h@7KY=f8nf28Xf!I^FYh&QO!e*(=bld+zaA-tdIV}aX| zT%DNU6NU#WMWNx>UB6|4pWDHfHdyMD@q21c6JBq3DVcdkik9Far5lY;;0}b2N#zA# zJY)EsB6%hC!qPIfTaTs$+Y4q5RVTnB6`F48HYelN1iekIb@0p|`nO8Pi!{a4=X&7B zvupVkt&%pT7D0WiTg1lyXiCQKBGOV-3gCMGhmR)PS4{uZi zhC;1Q*8exuMJ3v2ipP8>CHDN#^*|t#BSy`w{m*!<-o4C(_mH`8@YPo_qE8QH#u&v} zi4WWB9NMwuB8h90Q`=lqL!Em6O>jgF7!^x5$32_3cJ}JqB#k~uh64AHmDef1U(|}? z?(sMEB6y1`9Eqs}!nq;uBQOA80^qse{iB zn7uySK2VK1u-lPI^r@4Fh0y;{JhH9Yv(69wt*gBnGssX4e3<|5jgjm0A>me2)rsIT z>$tzn7ZG_!TuMa@6M&y_eR}N7$S=$abW(!N)Bq0@V?|d9g30f^c-OJ`&NmPQ^=6pDvMl=YCDvvl+n317DVBmDrfUBL?8jhZ`kOj`De*`k-CoMmM!v}S)$Bf;{MbJ*bEl; z`nV<<$z!$Ld4g?~e18uev|2&vFYGhd2et&122Y@%qy#|WEWh`w|CU4XPem@^OMdce z@%NpBWB|;o9!pJ%~;-T)5{9)IVP4}L^ws(-fqm-CUQ=hO;hG~~UM4hLAZ*&ZDc zT5}ievY8*y1Ta;tv+E^=#&v+zMh~Wvqi^J*N-gVedM-|T(04U;TMJI6xu=I)s(0*T zvhq5qVghOViYwcg1S$hc%WM`Wt#t>jMhQsQZxza&z>j_(Af1k8@o~j${B?4}49DrO z)+@ARRcPZz8RflwTs<$3ltMi$Yk_h?F&(|8UrWSqtCHUx1csIG_MMR-50aY!8rNNI zdz0dELsyV_XelINj3=v+_0S_<eq+JWLEFCfsvvX8KyGIEa2Bl3w#kKCvPu1 z*D9Xb>Tdx3=-9eZW+3Gak#)GQFFG#_d|S<;frRFlY& z5V$B4xTK!=^Fw!R|Bj!End-#hS8Kh$%uBosj+sV98BEm85^*t1__$D@*$m^XmO14= zI#Bc~P80j}HqXW@k&lTNAgo8P1NtZrZtfHN9?!gx{HwNL$mf`ryhP&we+DQ+*e~h@ z>W*<+MTIrJ;5&h85(>nF@z*ROF_)rT} zv2xHBg({MeCRQR#p9%!p_u(Dm9-62OqLs)-HCxB2_CU1Yc%`SNvl{9(BV!+ue`+}G zguK&|F6~}TCmM}MF8p$}b<@TwGcsCYRsx-H-kbR*d2utXDs3T#VddQ)Zrr5WdzCjg zRt-q9H_i5YYWk*U&0v8%1nHrel#FBi80n%ifJ-#W&Tc8fvNClAK-u<}ignnVa%jIW zlfjzt#S^pXleSrEA?AIDnKSF9F3R$GY8H&L@UDBde>##Ft9}p2-plsyDRc5bmG3Gi z9R*OInr;?Jx;&~kr2pPs@zDsS5i*n{*Wv^^pV@;JPyXt_af#P>YCRP zW+i{p*R92OO$a`uF;xsy_~Da;wnHn&3H8%cL(_S)dzN=LJD*uUw9_oW4w(_&XO3QI zuY-e&LX+Gq{0#Gd4^2H{EnT?q#BL;mBu0AV;V|?OXqG1hn&W~}7O%O_R!;&DYMj2xt<=1owt8JQ~DSV_Hbm0FQ*R z&KWn(J%O_|ErIWqO?MvaxAR}9sjq!{NcA60yeZE7aoldTVvC+(u0I{QYuob&FGlL; zlb3CiI&Te1rFS2hp zA+Dq3F#)GB@3ftW`=hq#DIq-`DQJT73LN9dDH8K>EWBwP6$_NTAMI41G=QwIT%_1@ zK&S5bnX+Xd);p-;fjK&@4z_P4mZYNWXR2|I2Vds{Jc|7X2dHTp*`oZ^?^;qND)oTJ z>&HQX54Hx8MuMcO{WIMJybSvSK~Iml3Ny1f1Q%t^RaWW_S{LOoN?TJj^jAOVZ{SN+ z@3vdH{0PjI{`>@@NghC6F7BW3RuZl!fOy`Q*NHsdSNtEhHqj+RR3{+#3SlM-TO)&G z2?zj-6GU`;SOtyU5fY74dwl{;dyg4*lN}vcS<2_xs#i9F9&Hy!pd6XWwBG=;SuiUL z%4|F+XyGtnd*77#OA<|M{`C%?A;Y6Sf!y32%Z6ahF=O77ZH*fk3A8gsM% z;o?!$P7ZFOr!XUf#vS$0vLzfuG-In;@GPYQQ7fOgy_TgmC&JWO*M;S+ot)2E*I(ua zxjt!(3H@pv$2^7i0bn%IOlnMI>KOl1ta?b@wFTfhpNyLt68XZ`CkIfAstR5nNASiW zBVFy+ZGo!=@HE$QfXd1;4e_m)83iJ6DNz6ai6rRFRw`Lt$CNgx93XD2=;6i!p&IUm zBL3{KSc&tHgmV5&;Sh4D{#^J&y=hIh)IeWyd~4n6O3-9nHIkV13#|6GPe957>3-ZF zs8_z=5;^Q#D)L>HqiI3TVrY3^oxSQ>EFpQZ&V+`pvd;7` zTd3pN_{IXykUvUV^YH1jLfT~FjKPV!3Z#q!iL?RQ48XrrTRpX^Kal~Xh|+Rvk>AHT6UWrFW~5Z|4PH-7S$aWSKVpCgK5Q#m-aKCik_b(gMce25z2b7-vz5(wi@%9|=F&rx zQURKbjlrVrNd$d+v;37QKg>E>I#@%x!oL-?UEQL)odgK2Y-7-}bxx!Pa4mjsc^ z(^DTVJqa0smc9;+F>TrZ+1e4X^sQxi8Pm@A@*y(x_pM)Mb2vv!@s2ziUE7I z#;`C#4pd71lHiQ4sw>bmxhNS;&`%MQZre($q*FKzINNVV0pyra*ODs-AWRe@ea(+# z__f&H^^!_643vd5Sj!Y-tmBt~Q+>H9wEh+!IvG?`8H8V+G*%%lF{D`MB?d?Xyy^pDhR;yxEtb)<43EALn;Es{fX?j%wLE7Niq)~=L{LE z?225(kcZVvg77&eCKrcYTFC?XBHjb0=He6Vk%Gn&NWbI$7MfX5WaO;?mAfvi;7 z5C_y-_^?+=#`22M#erxWW0kHYpQV_nEGXkpWh3E|+&6Xs`yYkOKp2Q!rmS=;Iek==7*z`moBBy5!2L`&=UG8W!Dh=rIboR9*fMJJmfgx$E+fDL=T` z#(=&DMuY=K=n_y@UZkbemp1;(8OdbE)|(cgQ|FWIe8@u@38vxerw0XQD!Q1I+j)Qj zt?xOM50a$uY2hP46nh{k_-eg%U(0k@ip2uKi zq{**XKFqBxk7JKUS#VRh9d>=*BKc2TJ*lYB0h=v%aOWzx#3nPxzow`oZ?jVOB2q$+ z)9T{NbkalIq0Dt4^4*B9JZNO5EvXAo>kg8X#p~m;9559fB7re{3N=-_Eova7Ih9f; z;w{PP<3&%|Jj((Xy06TcKE{(RjSRHTzYk>XBelfelpk*9?fn0^LmFi2@PnRYvg~`{H8nP|gaN1DUqdGDy^c4__)x9t|323#e zsJATZiseb`N5HJQBs>NSWSO(gW%OMlZDZ0i)Wk~uj=;i1%itc@&1&M5>6fS)zz&0l zhCt1alv^wMK3FAE6e<+~nP@Zk_{z2J#WF(hIdzg#a~Cz>!wF811Ge;l@|=IJ0W5de z0DjssyF?^bBQ8%Q2UE3Y)*rv~XL^bkf~oicG=;oM#fgPUsbg7qIo2|m|f zi~MQ0y^Ek%Ld~~d_ATzse%7>DYDN4s2Wd_e?~^uHdxb58Hscr)Y7tK^#!Db;E1v-E z9`j)YLUq^d7uGTfXj?0hHh962;FFb7E!O6mQ3;aLMAa{w(Q?`K>PoL&8|&Ka70HWdHSw7E4O-uQ6#t1e+e0uKO&JW6ujl2`bxlT>khpm1t zfg7D?1ys?3oKHp>Mq5peHz|FX1Jn5BMxULDx06k^)l84Aoj1FulC$Wn{Vo6=LLEXv z7@SiRC}=+dAQ*l1S}LX5q^|Z+)Rs7OyQMksu{j1H0b@2aAdlqQOjxs}Ap(9N&QWad z?lxe7u9^%Hr?McoQ5d9!REej$W=!pjCEbV{Caq*potP^e{q&qx)_qRu(RUGUt^q8- zDXdbN?fo0{N4tcc&2%_YV*ykaVr^|704x-)V7gjj@FiDVu87E`=K10lO*4A%N1T!y z4@%QR@%(EHp}QSb-Ve`WXa3p9v%ykZMF1UTQ?=V5HMqf{el}O+x~pNo8M~JcP^Wp|sU)g}#==^(hV|0$ z8q88aw2mvGwTnREV$YQ~vE`Svlx;U2WtpS5U?wD9{yiYt2J3@E%5K zAgo+|Ts0XQ;IY2elw01?WN(29+~SUIuz8|NHewrJhz{3aEvGLQ5=b3??Yx&p3x;kC zt4k!w(ttOYkg3w(aY{R>c|_f_dR9-pZjU07Lgwycn~~j=Q{a#|nahv2oU{^#k$6&u_b+PgJ3akZlP`L~#Ws7;3@|83 zQ@_|0M&VmDACI&deUn{VEh2|9+4gq=@`iGxQTp8NEJIKveEWId1xI1rU^pkH+9uOK z1Y--75pcjWg*4@%Btmlxq9+Ux4^6z%uoax>>YT4^uG&Da z+;55j`uWv_!enyS01|^3b`-)A0*Zn5+R?gVhMz+D&|Rk(&O$@zBmT5T8C#YNw^LpvSUOsi?!YdoieDVu?f&5n&S2x~$;WOL-d z+qgxlUr?lKD3iPVTfB29zEGUJBtGFVYLt1E&1U zwKf6Uo`_kO%1n{_7)$G6<>H{wVZ%~?mW7L7hMgtru7!PD>SB)z*#458*u@)G4g91c z<)vESR}FH*@`Ldfw{5p5-0i?Ih>Y8i&;`R`afxvE&O5ydTDEMoUi5cC&|g*bome(l z#q^cPcgsg-H>})pbg$!c8uFzokJglIY8U_&#$>yJzGU$+gVj>?zZUIX%bnJ%k^k8aO6VD z=5bX^+sOl9&Y$<+ZmwxPHadSD7`^ZDto{+x_Ifz@(gYN#vx-E$XH^z~SRoCc<$=A{ z7_p+j*D|Pu? zkpCVqLJ3=`wgNXBG+drc%Lo{*pm2PR;NHFWQj@L?48XTpcR1PwMIl-A^Y}dbo8zSF zsWADq)ccxO(4nEJV`?S!5amjPufXVBzShS8Q;4DH{!<|nEK;Pyo#MMOeLM4b6Zrzc zAz0Sa%W(t(?^WCcD#cNrlPByi<{g>wfT^p`Ko9dIJ@HNHy{-pp_LKE3hD?0DAM%a@ zz+2aV6zgO&mmdcs`Qdi$YHCt$6K78QRuK~d&-m=#1_+#s@#A)zJ5haSo7%doOag?@ z_LrEEM!$1DAIjmXnN(ghL)!@DgAGXe*8K>w4~&$o5d*gQE_sH*gA4okfe;wn)5 zvL3$DXqr1>B;n~;S%A&ftWhlrbzu0Aj6`32bkS=KJmBc<`he%&Re5vi-_EUL!6Nw= zXjGQ5sLe+g(M6(*h`@44GGS=sh`A=_EHLkl4AnxD|H^6;J*SiiLKk4CA$`oft90V7 zD?{MZ(d)@;i8f)~b$^Cawfcm=?qem$?i18gN*|A&9^Ut#i0{hlLoyi8Kq|2$*E3S1kc-O$!DdfNLIs9+zJ5cuAw=hvt>=3=~#{lYu-L^>|S?o;G`L z7^q5d_FnRS_5Nh+&1`qQWL1V=VovxIFV)>tR1&MV7SFE8*D?s8ScOKQ4~MoZakv-% z<#>7_M-86JYPr^|evl`0XPdlS3Cx?`E|Ajy3j-FFV7Y?gNl)R&(UEXQ$Qk zWEB@X+`q(~!+!C*`zF=}mFFv$-*Q@c>kl-MDdI`qaSEMq29n{pMSI4$G8D3Kq2KEE z4%YSsM|>@EHNP$+l)?n!|F@ymhY$0;*yCwkpv%Sh3-^*ir0?;{ZIEjs z6>tSWv@54=jNA?m99(_&K;6!;G2r(y;H-01Erl(%r`N;)e+GK)-jAcPDbFg^cl))Q zsPvjqC>+qO!F|e?Dn>0+#?+D_yBnXS0s?jO{cnta$Vhr{pt96VqUwtgfPjh4!}| z1l0t6g_l~#o%XE*`st92sjWn&@F&i9e>bTD9wl!UD?+yWF17wa;us*s7XJ&C6PHDa z87N;#fon%9eW!W+gx^5)3MHfg_^eORf+ZkF({m;Wfhyvk{-_8*BpP0n4m>)|*Hu`3 z00ZK&t|cI_c3hq`7!QHz2mXF=_6vSLo4|K*Lb6|L6}h!sbPepA7R4hN-;7GvSLJ^+ zC_#R5s=1iej*iQlZNN-x4`5g)Wjqh33)3PbE=iF^?nhMKDGJqPRig}T|1e21LU0MD z_a!%nR89{b3u+}(2AS8cU+Sd*T6T5F22QtxP2tf(e?}W^H#|YFOp^TQRCAN~XM@|J z9W{G#?zNW%o831;D5%k!u}XEo(p0s)KgHLZZ5EO_riOyRL#hq>FHgS6Is3A5?pAHJ zbSS#U>U48*_2-c}nwRFZsi=2%R;HVkQc;lhUUSDC-Sxi3_j_f_s%Oecuoa{O2IRzXc5DI>nCMED@iQ6tOxbO<0Z6ax=-zk(*WS zVq>aPN+QPGZ=KUdV#sor%}p%iW*LRKJMJxJ%xt#V_PO-S_h0ya9*=YV0oV1uUhmh< z^K}oppTq}}bOXuDsOZDVdl)5D?lUMIK=6~=ru8x zGOL5RN~FhJiT)>cTd29TMYYWB8SNcVI*S(8t#)ds|NUg%b1!D_Cf5@aZUUb5BSil6 z@~qX-_H_-$*Q~qqJMfjAdjaEk*9y$_B1P&s+Xs zu$p(td4J>&5tx`%Hn?dyEmvawQ+bW(lSG|>E*;+cAAqe^xg;G z^aJtp14zXXy_h;$KlD|`vYw9$vHup_u%0E{+A@SNjB8yWS@cB*|yjbqMJ zTAREgBkT}|B0P>ndr~eOsEt^_uCds<$+2+BX>kUO8u?S%T#Y%9LaLn~)@R5^4AZ^i z=d+^bSIoJpP=(^Io3aH7OyxY)pnap%n5DN;`OiNa)$B=Gw0y)*DZ^GxCi5tOX-y1y zx}aLd>=zo~)IZ3xiiFv*u&)uuDIR7=#2i%{QH|it0&1tS^S;M`4Kg;Z7usXDKm3{q ziE=TFZY5^)M90#GzA7;U7D2Sni*@%NB0E_e(?YkBH>S26V(u8Q4jrseUmn3SWh7sx zfKgEY&E{)7*VO2n)vP*M0br9~YdHG!eM-=b#mA0^ZbM-ey6piJu~xr1!>V2B@QuVv zj+t)aN=a0zhK&!a?K3c}FF3~Mb^uOAK}R9s z%3G9G9n5*Z5@Ol{gEcZ$8EYG5ry}~p8qXd|^2bf3VHfhJ$Dhn=BXM&A;fpFQ7aMJQ z);g*HmDxqZ5#Ofiqbg|UdCn$v+maK{{FZFKnuSaZ{ycB+7(!u5Y#(A=5`HVk%q&3s z3skiPmB39+7|YT{zr+;JOb<5S3m%IWfw!b#{ zFmE5|krkf(cKp+Vrt22{^0{fZ&_2pKOpx5$5h~C|MJrWWv3iAa&EL?*wet*kG|w^c zknJw+HKc;7%mVHQVy;;eV#+9OSb#Vk6r4jSJNRFsO2gLXZ+sWBsKxZDPXB9bKviCv zXlq>g3H1pMS!gkC&M+y`aPaB7s8N$-EtnN7{ez-mqbA(cP7lavYex<1PVv5+WK4eJ zrjI9tB@RheN#-PvBY#6Q=lA~VbdXKCI1|Qx(4D?c^r*>}BKCyS>V+Drl4U$>FWcCV z-~8ufvH_)j*UCJnf;LvUi)*zVJ=?Ym0)BGxluG}Do2eYV$A`Dg!iHrtp{LC?ulvmS ze$DRtE=!>)?YZt{{!thL(8;uK2ObZv!MJ}HH*HLeqclq$iVT^%naXWHzVIW+?H!s> z04UJJjNGqHKdjVxY14f#19Nubk89TCdT6~&Piht1MOgm!ak1KVpQ0RbJ4M6_uYwY_ z?_Fv-W773udOo4dKiZCF zxVjGAm>S$nRy(izZW!uZlz4uI5 z!wMZGYj;RaxU$K&_LprfuNsKKDd542{9&k%WbI?s?l`LXk-}~G)_q?Y;t>l*P;;*R zFXuVOpOK_1`CY}U8Auz(5_N;f>&`R-YX6OQwt!(tdH7LWqyhKoYqiFeRY#3WTKn0u zZDohOA4nh5j@0opBMVp^NN2;6)-Dzch+2twUyCHy7H5!2MkAL%mBV|HvG}xK2Uu8c zBKD|o`a$CSszatMEV}t}%W?3eXX{;`cB>yQ1**s9rg0J$GKj>Gd&@+79b3zg-B5EY zYpI7_`k-vpA3v7RkaWz_P_8RmSAhIqt*D4UQt~qRLo1i0k0z4P3Yjt<7W`=gDB^|K zFUs7|yiye$;bVDMDo_8AIG`%-2_ZWX+eDfvoydJa)}RfZQacfe+V(9sqjx9G}WryL9;Zq6*qdkKrw( zhXJsfsu4_HK?;PU`30gq)rFq!aQ~CdkXmS#U<{aQ7o4&C(5VJ-Cz7Px8R_564>HFXs!3Dd2_E@r4m6RA3H{I zE^rDcRSfs6po@z%+{tp9cE@9|Ri2|l~{Vz$CY{&6!T|GSWVZT&hE-%h+BBgI@^c6U!9K^{{# zhMnL$+)_Rd$t0xnW6i)m#$ydhyO$%j zwF~O;h{5GT)BXN`OCvs!H@)hq0>|779RxG}hPu*WAgyz`pu!tYBaGTG81S_lp09zL z_f|KEK~8-@!)xKv%BL%# z<$CS+nfo?=Zrql zYU4&(0tZC!=bl$dQK;y~xHj%uypoL2;N_U!Y)L#ejAd0|K zhYNRc+&Gj-hB8x_Ut3zFam#0L=c6W-328o1dgm1?Q(7Rq4v+jCx7|eXR6b1Rq6c0j zpE#N~ggYngG2h~u)BfQ|6}g4MKik<7*GlrQsTK(~lo?5}1R4JNje@^YMgvQ`xJ&i8 z>z1ohCU?9*nU6Tg*+pAiLQz~3i8-;tp7fK~5}J1~qmVW`Ot&{U2@8#Jna3)eAy|ns zcRgsb#eyw8*SOd(*6JBj*!`{P+L85RSy9cwfb3!$0R{~{#8_bKaE;ox1tgvuLw~$7 z(UZ&&KkVe;CaaJJdijS``h%PI{(x>5sKF|_;o=d@sBl#s4p()rx}7n{HJ?#f^t9Uz zr@&3X%-ZRht1Oi7UeeU!4=*R4m|1z`Op#I%IbVQ&aA8_#J<$Xc5kh&Qo5Kp83$cf; zFq18+lqpcBTmFZB>`!OHUXN!kRl%ICB0sCB=4X(?&q%2?bBCBDYn@RK;cZL7xC-}j zyjC~x8wytf5;;PwPXNtFjDwVg@r5%E#8sCn^{^f z^y3cqbzZ2AT?&-=$U94I5&PPHQO-gS;l6eDuPCY(jr^bIaleFNXQWYx61S%l!$>f99F$S2#24byfN+_Gbi*|9POh z$;iMZ`GHd?Fc`V(dF1n9ceRpLJ3Ec-ui}0xt4+Xpp|YlCU=>;pYF4u^glqUNd)J}c z7*CB`CK|jq$jAx$J9L#NV1S_Ig4{VtIAN}QKLG%*7&ze<7`32J>GVc5(cU{%tQIr= zjGN(9^BZr(-+_bcSPPp?tBBGGT1QVO)z(fiChntL5?oWRY4^26zl|L-2>}m23EA$<0CIA1-`#BRa8&qu5ds0)A^Ms}cq7(Tjk zKk}+)PV>|Aan^lVFdlzQ>F_4_=6ZNw%C>aVs}LvLJM3A?z21~%&Zh!4bHb0DL5%gZ z*^FBbHPScW)$4UX(~NU`vhcY8Qc+R|h%_Hyi*mDNG>mupxNdtJj8~5Y)xIkAiLxxL ze8_E#*G?l2R=Gv@N!^T?FNcrN__ZgksWTQm>$!Bnb-fC0_aYkh1aNmE_ZGjb%pmV^ z>4761{H-lor0w-(xc9f%x%3yk?(Uo{N!uHLfv4N6Xtj>`8w*t|gF*R$BUrQPQR#&Z zAUB;YFqHkR<=p1IMSu$xec2rR2j@V2yTG1MOZ&M~z%-WWfiMKP50Vfx4OZhTXE8l> zO(sJ;gHqJ$YO!!!XNJ;3m(2nr%V$Wmp=`hl26c{;^do&Fb7W3zCHdlv2^Rug?54N$ zPAYWSGPGxZ2&2x^W64L_(EEt%xbZwCrd$S9oNb{18#jO*Cda4vcur*MYJB9(51@#b znGs zLG*MdBrwaGU|g#I<#;&$>5T{L#nL^YbzjXHZ~RAvgvOgaHM$}8t|R}kiV=veNcL)z zaw6fBd%Kl@P-#`*J_%29q81;b8b6;KwfHhya>-|r&5Fdn%y;^ zjFYojxvOnLdOOSBjzzchSe#9a$mvx8fzwH5WlB#x*;*Rj4lF|*Rk-Cw>hEmo>+?Ga zIRe%_?RHYH(9sX3uQPNDuqgYq*YXDI|qFxd4dtnDNYn59oW$?=-%~?ipkIFI;dv1%-M@K0L5rI<&KW zLVC^gYw{q_LSUt&n-ce6M|0XtX+v2QH-da8DB^LZ?At@6Q`=o%LLn?T zJEbL+^G;W39WZ=M|E*^+xa!$pON2M(?QnnHjVHiT-=Y}f!cO0Cc=;o<+q}thHv%0A zjYyj`VDB*Kv{CcGW{h5iI<6UZT5+&&H<5D`$`V{6>?_aB>79NGtfU0RX?c^3!EJZ1 z6V4#>^()5olOYvj2Dt2?{SO2v*v+v+CYpWB|5GX9oq{oP1a$rF|33dx;9m;-OM(A2 v3M?uIAD-Q?e(Ezy6sGBa?fCz1&)abI1?yDfWVaT0{fIDIr*kF0dp-CshXT(D diff --git a/modules/API/nav.adoc b/modules/API/nav.adoc deleted file mode 100644 index 9daf2868..00000000 --- a/modules/API/nav.adoc +++ /dev/null @@ -1,2 +0,0 @@ -* xref:index.adoc[REST API Reference] -** xref:gsql-endpoints.adoc[] diff --git a/modules/API/pages/gsql-endpoints.adoc b/modules/API/pages/gsql-endpoints.adoc deleted file mode 100644 index 02cba985..00000000 --- a/modules/API/pages/gsql-endpoints.adoc +++ /dev/null @@ -1,6457 +0,0 @@ -= GSQL Endpoints -:pp: {plus}{plus} -:description: A set of GSQL REST API endpoints about vertex in TigerGraph server. -:toc: - -This page describes the REST API endpoints accessible on a TigerGraph server. Assume all the sample requests and sample response are based on this sample schema (graph name is "financialGraph"): - -.Sample schema -image::financialGraph_schema.png - - -== Schema - -=== show vertices - -`GET /gsql/v1/schema/vertices` - -This endpoint is used to show all the local vertices on a graph or show all the global vertices - -==== Parameters: -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph for which vertices should be displayed. If not provided, it indicates that all global vertices should be shown. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/vertices?graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},{"AttributeType":{"Name":"BOOL"},"AttributeName":"isBlocked"}],"PrimaryId":{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},"Name":"Account"},{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true}],"PrimaryId":{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},"Name":"City"},{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},{"AttributeType":{"Name":"BOOL"},"AttributeName":"isBlocked"}],"PrimaryId":{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},"Name":"Phone"}]} ----- --- -==== - -''' -=== show a vertex - -`GET /gsql/v1/schema/vertices/{vertexName}` - -This endpoint is used to show a local/global vertex. - -==== Parameters: -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph for which the vertex should be displayed. If not provided, it indicates that the global vertex should be shown. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/vertices/Account?graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},{"AttributeType":{"Name":"BOOL"},"AttributeName":"isBlocked"}],"PrimaryId":{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},"Name":"Account"}} ----- --- -==== - -''' - -=== create vertex using gsql command - -`POST /gsql/v1/schema/vertices` - -This endpoint is used to create global vertices using json contains gsql command - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `gsql` -| no -| Indicates whether to use the GSQL command for creation. Here must be set to true. The request body should contain the GSQL command within the JSON object. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/vertices?gsql=true" -d '{"gsql":["CREATE VERTEX UserA (PRIMARY_ID user_id UINT, name STRING)", "CREATE VERTEX UserB (PRIMARY_ID user_id UINT, name STRING)"]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully create vertices: [UserA, UserB]"} ----- --- -==== - - -''' - -=== add global vertices to a local graph - -`POST /gsql/v1/schema/vertices` - -This endpoint is used to add existing global vertices to a local graph - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph to which the global vertices should be added. Here must provide. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/vertices?graph=financialGraph" -d '{"addVertices":["UserA","UserB"]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully add vertices: [UserA, UserB] on graph financialGraph"} ----- --- -==== - -''' -=== create vertices (create vertices in global level) - -`POST /gsql/v1/schema/vertices` - -This api is used to create global vertices using json - -==== Parameters: - -None - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/vertices" -d '{ - "createVertices": [ - { - "Config": { - "STATS": "OUTDEGREE_BY_EDGETYPE" - }, - "Attributes": [ - { - "AttributeType": { - "Name": "STRING" - }, - "AttributeName": "name" - } - ], - "PrimaryId": { - "AttributeType": { - "Name": "UINT" - }, - "AttributeName": "user_id" - }, - "Name": "User5" - }, - { - "Config": { - "STATS": "OUTDEGREE_BY_EDGETYPE" - }, - "Attributes": [ - { - "AttributeType": { - "Name": "STRING" - }, - "AttributeName": "name" - } - ], - "PrimaryId": { - "AttributeType": { - "Name": "UINT" - }, - "AttributeName": "user_id" - }, - "Name": "User4" - } - ] -}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully create vertices: [User5, User4]"} ----- --- -==== - -''' - -=== drop vertices - -`DELETE /gsql/v1/schema/vertices` - -This endpoint is used to drop local vertices on specific graph or drop global vertices. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `vertex` -| yes -| Specifies the vertex types to be deleted. If there are multiple vertex types, separate them with commas. Use "all" to delete all vertices. - -| `graph` -| no -| Specifies the graph from which vertices should be deleted. If not provided, it indicates that global vertices should be dropped. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE -H "content-type: text/plain" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/vertices?vertex=user5,user4" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Vertices [user5, user4] deleted successfully."} ----- --- -==== - - -''' - -=== drop a vertex - -`DELETE /gsql/v1/schema/vertices/{vertexName}` - -This endpoint is used to drop a local/global vertex. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph from which the vertex should be deleted. If not provided, it indicates that a global vertex should be dropped. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE -H "content-type: text/plain" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/vertices/userB?graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Vertices [userB] deleted successfully."} ----- --- -==== - - -''' - -=== update a vertex attribute - -`PUT /gsql/v1/schema/vertices/{vertexName}` - -This endpoint is used to update a vertex attributes. - -==== Parameters: -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph in which the vertex attributes should be updated. If not provided, it indicates that the attributes of a global vertex should be updated. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X PUT -H "content-type: application/json" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/vertices/Account?graph=financialGraph" -d '{"dropAttributes":["isBlocked"],"addAttributes":[{"AttributeType":{"Name":"STRING"},"AttributeName":"attr1"}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully update vertex: Account"} ----- --- -==== - - -''' - -=== show all indexes -`GET /gsql/v1/schema/indexes` - -This endpoint is used to display all indexes within a specific graph or across all global vertices. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph for which to display indexes. If not provided, all indexes on global vertices will be shown. -|=== - -==== Example -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H "content-type: text/plain" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/indexes?graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"Account":[{"index":"index_type_name","attribute":"name"}]}]} ----- --- -==== - - -''' -=== show an index -`GET /gsql/v1/schema/indexes/{indexName}` - -This endpoint endpoint is used to retrieve information about a specific index. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph in which the index is located. -|=== - -==== Example -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H "content-type: text/plain" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/indexes/index_type_name?graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"index":"index_type_name","attribute":"name"}} ----- --- -==== - - -''' -=== create indexes -`POST /gsql/v1/schema/indexes` - -This endpoint is used to create indexes. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph where the indexes should be created. If not provided, the indexes will be created in the default graph. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: text/plain" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/indexes?graph=financialGraph" -d '{"vertex":"Account","addIndexAttributes":[{"indexName":"nameIndex","attributeName":"name"}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully add index nameIndex on attribute name\n"} ----- --- -==== - - -''' -=== drop an index -`DELETE /gsql/v1/schema/indexes/{indexName}` - -This endpoint is used to drop an index. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `vertex` -| yes -| Specifies the vertex from which to drop the index - -| `graph` -| no -| Specifies the graph from which the index should be dropped. If not specified, the index will be dropped from the global vertex. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE -H "content-type: text/plain" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/indexes/nameIndex" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully drop index"} ----- --- -==== - - -''' -=== drop indexes -`DELETE /gsql/v1/schema/indexes` - -This endpoint is used to drop indexes. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `vertex` -| yes -| Specifies the vertex on which to drop the indexes. - -| `index` -| yes -| Specifies the indexes to drop (separated by commas) - -| `graph` -| no -| Specifies the graph from which the indexes should be dropped. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE -H "content-type: text/plain" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/indexes?graph=financialGraph&vertex=Account&index=nameIndex" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully drop index"} ----- --- -==== - - -''' -=== get all edges - -`GET /gsql/v1/schema/edges` - -This endpoint is used to retrieve all local edges within a specific graph or retrieve all global edges. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph from which to retrieve the edges. If not provided, means to get all global edges. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/edges?graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"IsDirected":true,"ToVertexTypeName":"Account","Config":{"REVERSE_EDGE":"Transfer_Reverse"},"DiscriminatorCount":1,"Attributes":[{"AttributeType":{"Name":"DATETIME"},"IsDiscriminator":true,"AttributeName":"date"},{"AttributeType":{"Name":"UINT"},"AttributeName":"amount"}],"FromVertexTypeName":"Account","CompositeDiscriminator":["date"],"Name":"Transfer"},{"IsDirected":false,"ToVertexTypeName":"Phone","Config":{},"Attributes":[],"FromVertexTypeName":"Account","Name":"hasPhone"},{"IsDirected":true,"ToVertexTypeName":"City","Config":{},"Attributes":[],"FromVertexTypeName":"Account","Name":"isLocatedIn"}]} ----- --- -==== - -''' -=== retrieve a specific edge type info - -`GET /gsql/v1/schema/edges/{edgeName}` - -This endpoint is used to retrieve information about a specific edge type within a local graph, or retrieve information about a specific global edge type. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph in which the edge type is located. If not provided, it retrieves the global edge type information. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/edges/isLocatedIn?graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"IsDirected":true,"ToVertexTypeName":"City","Config":{},"Attributes":[],"FromVertexTypeName":"Account","Name":"isLocatedIn"}} ----- --- -==== - - -''' - -=== create edges using gsql command statement - -`POST /gsql/v1/schema/edges` - -This endpoint is used to create global edges using gsql command statement. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `gsql` -| no -| Indicates whether to use the GSQL command for creating edges. Here must set to true. The request body should contain the GSQL command within the JSON object. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/edges?gsql=true" -d '{"gsql":["CREATE UNDIRECTED EDGE edge1 (from Account, to City, attr1 float)", "CREATE UNDIRECTED EDGE edge2 (from Account, to Phone, attr2 float)"]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully create edges: [edge1, edge2]"} ----- --- -==== - - -''' - -=== add global edges to graph using json format - -`POST /gsql/v1/schema/edges` - -This endpoint is used to add global edges to graph using json format. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph to which the global edges will be added. Here must provide. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: application/json" -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/edges?graph=financialGraph" -d '{"addEdges":["has_account"]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":true,"message":"Failed to create edges [has_account]. Semantic Check Fails: The schema change job tries to add edge has_account to graph financialGraph, but the FROM vertex type user does not exist on the graph.\n"} ----- --- -==== - -''' -=== create global edges using json format - -`POST /gsql/v1/schema/edges` - -This endpoint is used to create global edges using json format. - -==== Parameters: - -None - - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/edges" -d ' {"createEdges":["IsDirected":true,"ToVertexTypeName":"City","Config":{},"Attributes":[],"FromVertexTypeName":"Account","Name":"isLocatedIn"},"IsDirected":true,"ToVertexTypeName":"Phone","Config":{},"Attributes":[],"FromVertexTypeName":"Account","Name":"hasPhone"}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully create edges: [isLocatedIn, hasPhone]"} ----- --- -==== - -''' - -=== drop edges from graph - -`DELETE /gsql/v1/schema/edges` - -This endpoint is used to drop edges from a graph or drop global edges. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `edge` -| yes -| Specifies the edge types to be deleted. If there are multiple edge types, separate them with a comma. Use 'all' to drop all edges. - - -| `graph` -| no -| Specifies the graph from which the edges will be deleted. If not provided, it means the operation will drop global edges. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/edges?edge=hasPhone&graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Edges [hasPhone] deleted successfully."} ----- --- -==== - -''' -=== drop an edge - -`DELETE /gsql/v1/schema/edges/{edgeName}` - -This endpoint is used to drop a local/global edge. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph from which the edge will be deleted. If not provided, it means the operation will drop a global edge. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE -H "content-type: text/plain" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/edges/hasPhone?graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Edges [hasPhone] deleted successfully."} ----- --- -==== - -''' -=== update attribute in edge - -`PUT /gsql/v1/schema/edges/{edgeName}` - -This endpoint is used to update attributes in edge. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| Specifies the graph in which the edge's attributes will be updated. If not provided, it means the operation will update attributes on the global level. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X PUT -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/edges/Transfer?graph=financialGraph" -d '{"dropAttributes":["date"],"addAttributes":[{"AttributeType":{"Name":"STRING"},"AttributeName":"attr"}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully update edge: Transfer"} ----- --- -==== - - -''' -=== show all graphs info that only contains the name of vertices and edges - -`GET /gsql/v1/schema/graphs` - -This endpoint is used to show all graphs info only containing names of vertices and edges. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H 'Content-Type: application/json' -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/graphs" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"graphs":[{"graphName":"financialGraph","vertices":["Account","City","Phone"],"edges":["Transfer","Transfer_Reverse","hasPhone","isLocatedIn"]}],"error":false,"message":""} ----- --- -==== - -''' -=== show one graph detailed info with given graph name - - -`GET /gsql/v1/schema/graphs/{graph}` - -This endpoint is used to show one graph detailed info with given graph name. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H "content-type: application/json" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/graphs/financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- - -{"error":false,"message":"","results":{"GraphName":"financialGraph","VertexTypes":[{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"AttributeType":{"Name":"BOOL"},"AttributeName":"isBlocked"},{"AttributeType":{"Name":"STRING"},"AttributeName":"name"}],"PrimaryId":{"AttributeType":{"Name":"UINT"},"AttributeName":"id"},"Name":"Account"},{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"AttributeType":{"Name":"STRING"},"AttributeName":"name"}],"PrimaryId":{"AttributeType":{"Name":"UINT"},"AttributeName":"id"},"Name":"City"},{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"AttributeType":{"Name":"BOOL"},"AttributeName":"isBlocked"},{"AttributeType":{"Name":"STRING"},"AttributeName":"number"}],"PrimaryId":{"AttributeType":{"Name":"UINT"},"AttributeName":"id"},"Name":"Phone"}],"EdgeTypes":[{"IsDirected":true,"ToVertexTypeName":"City","Config":{},"Attributes":[],"FromVertexTypeName":"Account","Name":"isLocatedIn"},{"IsDirected":true,"ToVertexTypeName":"Phone","Config":{},"Attributes":[],"FromVertexTypeName":"Account","Name":"hasPhone"}, {"IsDirected":false,"ToVertexTypeName":"Account","Config":{"REVERSE_EDGE":"Transfer_Reverse"},"Attributes":[{"AttributeType":{"Name":"UINT"},"AttributeName":"amount"},{"AttributeType":{"Name":"DATETIME"},"AttributeName":"date"}],"FromVertexTypeName":"Account","Name":"Transfer"}]}} - ----- --- -==== - -''' - - -=== create one graph using gsql command - -`POST /gsql/v1/schema/graphs` - -This endpoint is used to create one graph using gsql command. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `gsql` -| no -| default: false. Indicates whether to use the GSQL command for creation. Here must be set to true. The request body should contain the GSQL command within the JSON object. - -| `graphName` -| yes -| Specifies the name of the graph to be created. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: application/json" "http://localhost:14240/gsql/v1/schema/graphs?gsql=true" -d '{"gsql": "create graph g(*)"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created graph: [g]."} ----- --- -==== - -''' - -=== create one graph using JSON format - -`POST /gsql/v1/schema/graphs` - -This endpoint is used to create one graph using JSON format. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `gsql` -| no -| default: false. Indicates whether to use a GSQL command for graph creation. Here must set to false to use JSON format. - -| `graphName` -| yes -| Specifies the name of the graph to be created. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: application/json" "http://localhost:14240/gsql/v1/schema/graphs?graphName=gtest&gsql=false -" -d '{"VertexTypes":["Account","Phone"], "EdgeTypes":["hasPhone"]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created graph: [gtest]."} ----- --- -==== - -''' - -=== drop one graph - -`DELETE /gsql/v1/schema/graphs/{graphName}` - -This endpoint is used to drop one graph. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `cascade` -| no -| default: `false`. If set to `true`, it will automatically drop the queries and loading jobs associated with this graph. If set to `false`, the operation will fail if there are any existing queries or loading jobs related to the graph. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE -H "content-type: text/plain" "http://localhost:14240/gsql/v1/schema/graphs/financialGraph?cascade=true" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped graph: financialGraph."} ----- --- -==== - -''' - -=== drop graphs with given names - -`DELETE /gsql/v1/schema/graphs` - -This endpoint is used to drop graphs with given names. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graphNames` -| yes -| Specifies the names of the graphs to be dropped, separated by commas. Use 'all' to drop all graphs. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE -H "content-type: text/plain" "http://localhost:14240/gsql/v1/schema/graphs?graphNames=financialGraph,recommend" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped graphs: [financialGraph, recommend]."} ----- --- -==== - -''' -=== drop local/global schema change jobs - -`DELETE /gsql/v1/schema/jobs` - -This endpoint is used to drop local/global schema change jobs. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `jobName` -| yes -| Specifies the schema jobs to drop, separated by commas. - -| `graph` -| no -| Specifies the graph whose jobs are to be dropped. If not provided, means drop the global schema change jobs. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE -H "content-type: text/plain" "http://localhost:14240/gsql/v1/schema/jobs?jobName=test1,test2&graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped schema change jobs: [test1, test2]."} ----- --- -==== - - -''' -=== create local/global schema change job using gsql command - -`POST /gsql/v1/schema/jobs/{jobName}` - -This endpoint is used to create local/global schema change job using gsql command. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `gsql` -| no -| Indicates whether to use the GSQL command for creation. Here must be set to true. The request body should contain the GSQL command within the JSON object. - -| `graph` -| no -| Which graph to create schema change. Global schema change doesn't need provide. - -| `type` -| no -| When creating a global schema change job, provide `global`. This is not required for local schema change jobs. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: text/plain" "http://localhost:14240/gsql/v1/schema/jobs/test3?gsql=true&type=global" -d ' {"gsql" : "create global schema_change job test3 {add vertex website to graph financialGraph;}"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created global schema change job: [test3]."} ----- --- -==== - - -''' -=== create global schema change job using json - -`POST /gsql/v1/schema/jobs/{jobName}` - -This endpoint is used to create global schema change job using json. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: application/json" "http://localhost:14240/gsql/v1/schema/jobs/test4" -d '{"graphs": [{"graphName":"financialGraph","addVertexTypes":["user","website"],"dropVertexTypes":[], "dropEdgeTypes":[],"addEdgeTypes":[]}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created global schema change job: [test4]."} ----- --- -==== - - -''' -=== create local schema change job using json - -`POST /gsql/v1/schema/jobs/{jobName}` - -This endpoint is used to create local schema change job using json. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| The graph whose schema change job is to be created. Here should provide. -|=== - -==== Example: -Assuming we already have the following vertices and edges in the local graph financialGraph: - -[source] ----- -VERTEX LocalAccount ( - name STRING PRIMARY KEY, - isBlocked BOOL -) - -VERTEX LocalCity ( - name STRING PRIMARY KEY -) - -VERTEX LocalPhone ( - name STRING PRIMARY KEY, - isBlocked BOOL -) - -DIRECTED EDGE LocalTransfer ( - FROM Account, - TO Account, - DISCRIMINATOR(date DATETIME), - amount UINT -) WITH REVERSE_EDGE="LocalTransfer_Reverse" - -UNDIRECTED EDGE LocalhasPhone ( - FROM Account, - TO Phone -) - -DIRECTED EDGE LocalisLocatedIn ( - FROM Account, - TO City -) ----- - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: application/json" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/jobs/test5?graph=financialGraph" -d ' -{ - "dropVertexTypes": [ - "LocalPhone" - ], - "alterVertexTypes": [ - { - "name": "LocalAccount", - "addAttributes": [ - { - "DefaultValue": "defaultValue1", - "AttributeType": { - "Name": "STRING" - }, - "AttributeName": "attr2" - } - ], - "addIndexAttributes": [ - { - "indexName": "ppIndex", - "attributeName": "name" - } - ] - } - ], - "addVertexTypes": [ - { - "Config": { - "STATS": "OUTDEGREE_BY_EDGETYPE" - }, - "Attributes": [ - { - "AttributeType": { - "Name": "STRING" - }, - "AttributeName": "name" - } - ], - "PrimaryId": { - "AttributeType": { - "Name": "UINT" - }, - "AttributeName": "user_id" - }, - "Name": "User5" - }, - { - "Config": { - "STATS": "OUTDEGREE_BY_EDGETYPE" - }, - "Attributes": [ - { - "AttributeType": { - "Name": "STRING" - }, - "AttributeName": "name" - } - ], - "PrimaryId": { - "AttributeType": { - "Name": "UINT" - }, - "AttributeName": "user_id" - }, - "Name": "User4" - } - ], - "addEdgeTypes": [ - { - "IsDirected": true, - "ToVertexTypeName": "User4", - "Config": { - - }, - "IsLocal": true, - "Attributes": [ - { - "AttributeType": { - "Name": "DATETIME" - }, - "AttributeName": "live_date" - } - ], - "FromVertexTypeName": "User5", - "Name": "edge1" - } - ], - "dropEdgeTypes": [ - "LocalhasPhone" - ], - "alterEdgeTypes": [ - { - "dropAttributes": [ - "amount" - ], - "addAttributes": [ - { - "DefaultValue": "defaultValue1", - "AttributeType": { - "Name": "STRING" - }, - "AttributeName": "attr2" - } - ], - "name": "LocalTransfer" - } - ] -}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created schema change job: [test5]."} ----- --- -==== - -''' -=== get a specific local/global schema change job - -`GET /gsql/v1/schema/jobs/{jobName}` - -This endpoint is used to retrieve a specific local/global schema change job. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| the graph whose schema change job to show. don't provide this if get a global schema change job. - -| `json` -| yes -| Set to `true` to receive the response in JSON format; otherwise, the response will be in text format. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H "content-type: application/json" "http://localhost:14240/gsql/v1/schema/jobs/job12?json=true&graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"job12":{"dropVertexTypes":[],"addTags":[],"name":"job12","alterVertexTypes":[],"addVertexTypes":[{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},{"AttributeType":{"Name":"BOOL"},"AttributeName":"isBlocked"}],"PrimaryId":{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},"Name":"LocalAccount"},{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true}],"PrimaryId":{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},"Name":"LocalCity"},{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},{"AttributeType":{"Name":"BOOL"},"AttributeName":"isBlocked"}],"PrimaryId":{"IsUsingNewSyntax":true,"AttributeType":{"Name":"STRING"},"AttributeName":"name","IsPrimaryKey":true},"Name":"LocalPhone"}],"addEdgeTypes":[{"IsDirected":true,"ToVertexTypeName":"Account","Config":{"REVERSE_EDGE":"LocalTransfer_Reverse"},"DiscriminatorCount":1,"Attributes":[{"AttributeType":{"Name":"DATETIME"},"IsDiscriminator":true,"AttributeName":"date"},{"AttributeType":{"Name":"UINT"},"AttributeName":"amount"}],"FromVertexTypeName":"Account","Name":"LocalTransfer"},{"IsDirected":false,"ToVertexTypeName":"Phone","Config":{},"Attributes":[],"FromVertexTypeName":"Account","Name":"LocalhasPhone"},{"IsDirected":true,"ToVertexTypeName":"City","Config":{},"Attributes":[],"FromVertexTypeName":"Account","Name":"LocalisLocatedIn"}],"dropEdgeTypes":[],"graph":"financialGraph","alterEdgeTypes":[],"dropTags":[]}}} ----- --- -==== - -''' -=== run global schema change job directly - -`POST /gsql/v1/schema/change` - -This endpoint is used to run global schema change job directly. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: application/json" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/change" -d ' - {"addVertexTypes":[{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"AttributeType":{"Name":"STRING"},"AttributeName":"name"}],"PrimaryId":{"AttributeType":{"Name":"UINT"},"AttributeName":"user_id"},"Name":"User5"}, -{"Config":{"STATS":"OUTDEGREE_BY_EDGETYPE"},"Attributes":[{"AttributeType":{"Name":"STRING"},"AttributeName":"name"}],"PrimaryId":{"AttributeType":{"Name":"UINT"},"AttributeName":"user_id"},"Name":"User4"} -]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Global schema change runs successfully"} ----- --- -==== - -''' -=== run the schema change job directly - -`POST /gsql/v1/schema/change` - -This endpoint is used to run the schema change job directly. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| which graph to run the local schema change job on, run local schema change need provide this. If not provided, means running global schema change job. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: application/json" "http://localhost:14240/gsql/v1/schema/change?graph=financialGraph" -d ' -{ - "dropVertexTypes": [], - "alterVertexTypes": [ - { - "name": "LocalAccount", - "dropAttributes": [], - "addAttributes": [ - { - "DefaultValue": "defaultValue1", - "AttributeType": { - "Name": "STRING" - }, - "AttributeName": "attr2" - } - ], - "dropIndexAttributes": [], - "addIndexAttributes": [ - { - "indexName": "xIndex", - "attributeName": "name" - }, - { - "indexName": "yIndex", - "attributeName": "isBlocked" - } - ] - } - ], - "addVertexTypes": [ - { - "Config": { - "STATS": "OUTDEGREE_BY_EDGETYPE" - }, - "Attributes": [ - { - "AttributeType": { - "Name": "STRING" - }, - "AttributeName": "name" - } - ], - "PrimaryId": { - "AttributeType": { - "Name": "UINT" - }, - "AttributeName": "user_id" - }, - "Name": "User5" - }, - { - "Config": { - "STATS": "OUTDEGREE_BY_EDGETYPE" - }, - "Attributes": [ - { - "AttributeType": { - "Name": "STRING" - }, - "AttributeName": "name" - } - ], - "PrimaryId": { - "AttributeType": { - "Name": "UINT" - }, - "AttributeName": "user_id" - }, - "Name": "User4" - } - ], - "addEdgeTypes": [ - { - "IsDirected": true, - "ToVertexTypeName": "User4", - "Config": {}, - "IsLocal": true, - "Attributes": [ - { - "AttributeType": { - "Name": "DATETIME" - }, - "AttributeName": "live_date" - } - ], - "FromVertexTypeName": "User5", - "Name": "edge1" - } - ], - "dropEdgeTypes": [], - "alterEdgeTypes": [ - { - "dropAttributes": ["isBlocked"], - "addAttributes": [ - { - "DefaultValue": "defaultValue1", - "AttributeType": { - "Name": "STRING" - }, - "AttributeName": "attr2" - } - ], - "name": "LocalPhone" - } - ] -}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Schema change job runs successfully"} ----- --- -==== - -''' -=== run an existing schema change job - -`POST /gsql/v1/schema/jobs/{jobName}` - -This endpoint is used to run an existing schema change job. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| which graph to run the schema change job on. If not provided, means run the global schema change job. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: application/json" "http://localhost:14240/gsql/v1/schema/jobs/test5?graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Schema change job run successfully!"} ----- --- -==== - -''' -=== get schema change jobs - -`GET /gsql/v1/schema/jobs` - -This endpoint is used to get all local/global schema change jobs. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| The graph whose schema change job to show. If not provided, means to get all the global schema change job. - -| `json` -| yes -| Set to `true` means response in JSON format; otherwise, the response will be in text format. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H "content-type: application/json" -u tigergraph:tigergraph "http://localhost:14240/gsql/v1/schema/jobs?graph=financialGraph" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"job12":"CREATE SCHEMA_CHANGE JOB job12 FOR GRAPH financialGraph {\n ADD VERTEX LocalAccount(name STRING primary key, isBlocked BOOL) WITH STATS=\"OUTDEGREE_BY_EDGETYPE\";\n ADD VERTEX LocalCity(name STRING primary key) WITH STATS=\"OUTDEGREE_BY_EDGETYPE\";\n ADD VERTEX LocalPhone(name STRING primary key, isBlocked BOOL) WITH STATS=\"OUTDEGREE_BY_EDGETYPE\";\n ADD DIRECTED EDGE LocalTransfer(FROM Account, TO Account, DISCRIMINATOR( date DATETIME), amount UINT) WITH REVERSE_EDGE=\"LocalTransfer_Reverse\";\n ADD UNDIRECTED EDGE LocalhasPhone(FROM Account, TO Phone);\n ADD DIRECTED EDGE LocalisLocatedIn(FROM Account, TO City);\n }\n"},{"test5":"CREATE SCHEMA_CHANGE JOB test5 {\n ADD VERTEX User5(PRIMARY_ID user_id UINT, name STRING) WITH STATS=\"OUTDEGREE_BY_EDGETYPE\";\n ADD VERTEX User4(PRIMARY_ID user_id UINT, name STRING) WITH STATS=\"OUTDEGREE_BY_EDGETYPE\";\n ADD DIRECTED EDGE edge1(FROM User5, TO User4, live_date DATETIME);\n DROP VERTEX LocalPhone;\n DROP EDGE LocalhasPhone;\n ALTER VERTEX LocalAccount ADD ATTRIBUTE (attr2 STRING DEFAULT \"defaultValue1\");\n ALTER VERTEX LocalAccount ADD INDEX ppIndex ON (name);\n ALTER EDGE LocalTransfer ADD ATTRIBUTE (attr2 STRING DEFAULT \"defaultValue1\");\n ALTER EDGE LocalTransfer DROP ATTRIBUTE (amount);\n }\n"}]} ----- --- -==== - -''' - -== loading job - -=== get loading job names - -`GET /gsql/v1/loading-jobs` - -This endpoint is used to get all loading job names in a graph. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| the loading job names of which graph -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/loading-jobs?graph=financialGraph' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","jobNames":["incidents_fraud_report_company_csv"]} ----- --- -==== - -''' - -=== create a loading job - -`POST /gsql/v1/loading-jobs` - -This endpoint is used to create a new loading job - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| create loading job of which graph -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: text/plain' -X POST 'http://localhost:14240/gsql/v1/loading-jobs?graph=financialGraph' -d '' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created loading job: "} ----- --- -==== - -''' - -=== upload a loading job - -`PUT /gsql/v1/loading-jobs` - -This endpoint is used to update an existing loading job. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| update loading job of which graph -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: text/plain' -X PUT 'http://localhost:14240/gsql/v1/loading-jobs?graph=financialGraph' -d '' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created loading job: "} ----- --- -==== - -''' - -=== get loading job info - -`GET /gsql/v1/loading-jobs/{jobName}` - -This endpoint is used to get a specific loading job's information. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| get the loading job information under which graph - -| `verbose` -| no -| default: false, true means show verbose version, true means show concise version. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: applicaiton/json' -X GET 'http://localhost:14240/gsql/v1/loading-jobs/incidents_fraud_report_company_csv?graph=financialGraph&json=[true/false]' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -Default behavior: -json=false: -{"error":false,"message":"","results":{"jobName":"incidents_fraud_report_company_csv","jobContent":"this is jobContent"}} - -json=true: {"error":false,"message":"","results":{"Filters":[],"GraphName":"g","Headers":{"f1_header":["report_id","report_updated_at","report_status","report_type","report_source","report_data_source","fraud_type","tax_id"],"f1_header_company":["tax_id","report_updated_at","tax_status"]},"JobName":"incidents_fraud_report_company_csv","FileNames":{"f1":""},"LoadingStatements":[{"Type":"Vertex","UsingClauses":{"QUOTE":"double","EOL":"\\n","SEPARATOR":",","HEADER":"true","USER_DEFINED_HEADER":"f1_header"},"Mappings":[{"Type":"SrcColName","Value":"report_id"},{"Type":"SrcColName","Value":"report_updated_at"},{"Type":"SrcColName","Value":"report_status"},{"Type":"SrcColName","Value":"report_type"},{"Type":"SrcColName","Value":"report_source"},{"Type":"SrcColName","Value":"report_data_source"},{"Type":"SrcColName","Value":"fraud_type"}],"TargetName":"FraudReport","DataSource":{"Type":"FileVar","Value":"f1"}},{"Type":"Vertex","UsingClauses":{"QUOTE":"double","EOL":"\\n","SEPARATOR":",","HEADER":"true","USER_DEFINED_HEADER":"f1_header_company"},"Mappings":[{"Type":"SrcColName","Value":"tax_id"},{"Type":"SrcColName","Value":"report_updated_at"},{"Type":"SrcColName","Value":"tax_status"}],"TargetName":"Company","DataSource":{"Type":"FileVar","Value":"f1"}},{"Type":"Edge","UsingClauses":{"QUOTE":"double","EOL":"\\n","SEPARATOR":",","HEADER":"true","USER_DEFINED_HEADER":"f1_header"},"Mappings":[{"Type":"SrcColName","Value":"report_id"},{"Type":"SrcColName","Value":"tax_id"}],"TargetName":"HasIncident","FromVertexType":"FraudReport","ToVertexType":"Company","DataSource":{"Type":"FileVar","Value":"f1"}}]}} ----- --- -==== - -''' - -=== run loading job - -`POST /gsql/v1/loading-jobs/run` - -This endpoint is used to run a loading job. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| run the loading job under which graph -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'http://localhost:14240/gsql/v1/loading-jobs/run?graph=financialGraph' -payload could be one of these: -kafka loading: [{"name":"load_kafka","dataSources":[{"filename":"f1","name":"k1","path":"","config":{"topic":"regress7715","partition_list":[{"start_offset":-2,"partition":0}]}}],"streaming":false}] -s3: [{"name":"load_comment","streaming":true,"dataSources":[{"filename":"file_Comment","name":"s1","path":"s3-loading-test/tg_ldbc_snb/sf0.1_csv/dynamic/Comment"}]}] -file loading: [{"name":"load_job","sys.data_root":"/tmp","dataSources":[{"filename":"f","path":"./data","name":"file"}]}] -full parameters: [{"name":"load_job","sys.data_root":"/tmp","verbose":true,"dryrun":true,"interval":1,"maxNumError":1,"maxPercentError":1,"dataSources":[{"filename":"f","path":"./data","name":"file"}]}] ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error": false,"message":"Successfully ran loading job(s): [jobName]", "jobIds": ["jobId"]} ----- --- -==== - -''' - -=== drop a loading job - -`DELETE /gsql/v1/loading-jobs/{jobName}` - -This endpoint is used to drop a loading job by name. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| drop the loading job under which graph -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'http://localhost:14240/gsql/v1/loading-jobs/jobName?graph=financialGraph' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error": false,"message":"Successfully drop loading job 'jobName'."} ----- --- -==== - -''' - -=== abort loading job(s) - -`GET /gsql/v1/loading-jobs/abort` - -This endpoint is used to abort mutilple running loading jobs. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| abort the loading job under which graph - -| `jobIds` -| yes -| the loading job Ids -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/loading-jobs/abort?graph=financialGraph&jobIds=jobId1' -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/loading-jobs/abort?graph=financialGraph&jobIds=jobId1&isPause=true' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -default behavior: {"error": false,"message":"Successfully dropped loading job(s): [jobId1]."} -{"error": false,"message":"Successfully paused loading job(s): [jobId1]."} ----- --- -==== - -''' - -=== abort one loading job - -`GET /gsql/v1/loading-jobs/abort/{jobId}` - -This endpoint is used to abort a one loading job by job Id. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| abort the loading job under which graph - -| `jobId` -| yes -| the loading job Id -|=== - - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/loading-jobs/jobId1?graph=financialGraph' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -default behavior: {"error": false,"message":"Successfully dropped loading job(s): [jobId1]."} -{"error": false,"message":"Successfully paused loading job(s): [jobId1]."} ----- --- -==== - -''' - -=== resume loading job - -`GET /gsql/v1/loading-jobs/resume/{jobId}` - -This endpoint is used to resume a paused loading job by job Id. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `jobId` -| yes -| the loading job Id -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/loading-jobs/resume/jobId1' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error": false,"message":"Successfully resumed loading job(s): [jobId1]."} ----- --- -==== - -''' - -=== get loading job status - -`GET /gsql/v1/loading-jobs/status` - -This endpoint is used to get multiple loading jobs status. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `jobIds` -| yes -| the loading job Ids -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/loading-jobs/status/jobIds=financialGraph.load_ldbc_snb.jdbc.all.1111111111121' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"overall":{"averageSpeed":66666,"currentSpeed":55555,"duration":12345,"endTime":1111111123456,"id":"financialGraph.load_ldbc_snb.jdbc.all.1111111111121","progress":0,"size":1236,"startTime":1111111111111,"statistics":{"fileLevel":{"validLine":8},"objectLevel":{"vertex":[{"invalidAttribute":1,"noIdFound":1,"typeName":"Post","validObject":6}]}}},"workers":[{"tasks":[{"filename":"f1"}]}]}]} ----- --- -==== - -''' - -=== get one loading job status - -`GET /gsql/v1/loading-jobs/status/{jobId}` - -This endpoint is used to get a loading job's status by job Id. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `jobId` -| yes -| the loading job Id -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/loading-jobs/status/financialGraph.load_ldbc_snb.jdbc.all.1111111111121' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"overall":{"averageSpeed":66666,"currentSpeed":55555,"duration":12345,"endTime":1111111123456,"id":"financialGraph.load_ldbc_snb.jdbc.all.1111111111121","progress":0,"size":1236,"startTime":1111111111111,"statistics":{"fileLevel":{"validLine":8},"objectLevel":{"vertex":[{"invalidAttribute":1,"noIdFound":1,"typeName":"Post","validObject":6}]}}},"workers":[{"tasks":[{"filename":"f1"}]}]}]} ----- --- -==== - -''' - - -== Data source - -=== get a data source - -`GET /gsql/v1/data-sources/{dsName}` - -This endpoint is used to get a data source. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET "http://localhost:14240/gsql/v1/data-sources/k1" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"name":"k1","type":"KAFKA","content":{"broker":"kafka-0.tigergraph.com","kafka_config":{"security.protocol":"SSL"}}}} ----- --- -==== - -''' - -=== get all data sources - -`GET /gsql/v1/data-sources` - -This endpoint is used to get all data sources. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET "http://localhost:14240/gsql/v1/data-sources" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"name":"s1","belongTo":"empty_graph","type":"S3","content":{"access.key":"AKIA6B6T6R52UU7XJ2NL","secret.key":"","type":"s3"},"isLocal":true},{"name":"s2","belongTo":"person_movie","type":"S3","content":{"access.key":"AKIA6B6T6R52UU7XJ2NL","secret.key":"","type":"s3"},"isLocal":true},{"name":"k1","type":"KAFKA","content":{"broker":"kafka-0.tigergraph.com","kafka_config":{"security.protocol":"SSL"}},"isLocal":false}]} ----- --- -==== - - -''' -=== update a data source - -`PUT /gsql/v1/data-sources` - -This endpoint is used to update a data source . - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| the graph whose data source to update. If not provided, means to update a global data source. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X PUT 'Content-type: application/json' "http://localhost:14240/gsql/v1/data-sources/s5?graph=financialGraph" -d '{"name":"s5","config":{"type":"s3","access.key":"AKIA6B6T6R52UU7XJ2NL","secret.key":""}}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Data source s5 is created"} ----- --- -==== - -''' -=== create data source - -`POST /gsql/v1/data-sources` - -This endpoint is used to create a data source. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| the graph whose data source to create. If not provided, means to create a global data source. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST 'Content-type: application/json' "http://localhost:14240/gsql/v1/data-sources?graph=financialGraph" -d '{"name":"s4","config":{"type":"s3","access.key":"AKIA6B6T6R52UU7XJ2NL","secret.key":""}}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Data source s4 is created"} ----- --- -==== - -''' -=== drop one data source - -`DELETE /gsql/v1/data-sources/{dsName}` - -This endpoint is used to drop one data source. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| the graph whose data source to delete. If not provided, means to delete a global data source. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE 'Content-type: application/json' "http://localhost:14240/gsql/v1/data-sources/k1?graph=financialGraph" -d '{"error":false,"message":"Data source k1 is dropped."}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Data source k1 is dropped."} ----- --- -==== - -''' -=== grant one data source - -`POST /gsql/v1/data-sources/grant` - -This endpoint is used to grant one data source. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST 'Content-type: application/json' "http://localhost:14240/gsql/v1/data-sources/grant" -d '{"graphs":["empty_graph","person_movie"],"datasource":"k1"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully grant datasource k1 to the graph(s) [empty_graph, person_movie]"} ----- --- -==== - -''' -=== revoke datasource - -`POST /gsql/v1/data-sources/revoke` - -This endpoint is used to revoke data source. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST 'Content-type: text/plain' "http://localhost:14240/gsql/v1/data-sources/revoke" -d '{"graphs":["empty_graph","person_movie"],"datasource":"k1"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully revoke datasource k1 from graph(s) [empty_graph, person_movie]"} ----- --- -==== - -''' -=== drop all data source - -`DELETE /gsql/v1/data-sources/dropAll` - -This endpoint is used to drop all data source. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| If given, will delete all the data sources used by this graph. otherwise will delete all the global data sources. -|=== - - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE 'Content-type: text/plain' "http://localhost:14240/gsql/v1/data-sources/dropAll" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"All data sources is dropped successfully."} ----- --- -==== - -''' -=== get the sample data of S3 file.uris or local files - -`POST /gsql/v1/sample-data` - -This endpoint is used to get the sample data of S3 file.uris or local files. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST 'Content-type: application/json' "http://localhost:14240/gsql/v1/sample-data" -d ' - { - "graphName": "ldbc_snb", - "dataSource": "adsafsfsfsfds", - "type": "s3", - "path": "s3a://gsql-sample-data/test-json/test.json", - "dataFormat": "json", - "parsing": { - "fileFormat": "none", - "eol": "\\n" - }, - "filling": "N/A", - "size": 10 -}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{ - "error": false, - "message": "", - "results": { - "data": [ - { - "age": 40, - "gender": "male", - "name": "Tom", - "state": "ca" - }, - { - "age": 34, - "gender": "male", - "name": "Dan", - "state": "ny" - }, - { - "age": 25, - "gender": "female", - "name": "Jenny", - "state": "tx" - }, - [ - { - "age": 28, - "gender": "male", - "name": "Kevin", - "state": "az" - }, - { - "age": 22, - "gender": "female", - "name": "Amily", - "state": "ca" - }, - { - "age": 20, - "gender": "female", - "name": "Nancy", - "state": "ky" - } - ], - { - "age": 26, - "gender": "male", - "name": "Jack", - "state": "fl" - }, - { - "age": 8, - "gender": "male", - "name": "a", - "state": "OR" - }, - { - "age": 57, - "gender": "male", - "name": "aa", - "state": "MA" - }, - { - "age": 25, - "gender": "male", - "name": "aaa", - "state": "MI" - }, - { - "age": 71, - "gender": "female", - "name": "ab", - "state": "WY" - }, - { - "age": 71, - "gender": "female", - "name": "abandoned", - "state": "KS" - } - ], - "header": [], - "json": true - } -} ----- --- -==== - -''' -=== get all buckets of given S3 data source - -`GET /gsql/v1/list-buckets/{s3Name}` - -This endpoint is used to get all buckets of given S3 data source. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET 'Content-type: text/plain' "http://localhost:14240/gsql/v1/list-buckets/abcd" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -"error":false,"message":"","results":["acxiom2019","antifraudtg","aws-cloudtrail-logs-966275272565-4bde22f6","aws-glue-assets-966275272565-us-east-1","aws-logs-966275272565-us-east-1","bofa-louvain","ces-bucket-2","ces-neptune-bucket","ces-new-bucket","cf-templates-58ygac5qoly7-us-east-1","cloud-gbar-test","config-bucket-966275272565","databricks-workspace-stack-aa423-lambdazipsbucket-xjxhu6ikq892","databricks-workspace-stack-f31e4-bucket","databricks-workspace-stack-f31e4-lambdazipsbucket-ucd8ilhr3buv","databricks-workspace-stack-lambdazipsbucket-1qcpzmo9f4qzv","databricks-workspace-stack-lambdazipsbucket-1tycaofagn975","db-0cb8f9da9d4e67f9345947c4c54a5c3e-s3-root-bucket","db-81dc2edb4436079cea7c8c522f2ca24c-s3-root-bucket","db-ed2852b62420a6b838035944365a583a-s3-root-bucket","docker-image-store","docker-registry-backup","faerskit","faq.graphtiger.com","fareshealthcare","files.graphtiger.com","finfraud-demo-files","gbar-test","graphsql","graphsql-ctrip","graphsql-download","graphsql-elb-log","graphsql-eric-elb-log","graphsql-s3download","graphsql-test","graphsql-testdrive","graphsql-web","graphsql-xyz","graphsql-yeepay","graphstudio-customerportal","graphstudio-s3-e2e-test","graphstudio-sample-data-e2e-test","gsql-sample-data","kafka-connector-experiment","ldbc1","like-elb-test","litong","loading-test","merklescience","movie-rec-demo","pmitigergraph","presalesdocs","presalestg","racsftp","release-download-access-log","release-package-stats","release.graphtiger.com","renmaitong","rhfraud1","rik-bucket1","robb-tg-finfraud","robb-tgload-data","s3-import-test","s3-loading-test","se.training.deepdive","stevefuller-db","tango-test","test-gbar","test-graphstudio-bucket","test-s3import-el","test-website.graphtiger.com","tg-app-team","tg-isgs","tg-it-resource","tigergraph-aws-usage","tigergraph-benchmark-dataset","tigergraph-build-artifacts","tigergraph-cloudphysics","tigergraph-customer-support","tigergraph-development-artifects","tigergraph-download-hk","tigergraph-engineering-development-packages","tigergraph-fs-data","tigergraph-gle-prebuild","tigergraph-gui-prebuild-package","tigergraph-kafka-prebuild-package","tigergraph-mcafee-dlp","tigergraph-misc","tigergraph-release-download","tigergraph-release-prebuild","tigergraph-release-replica","tigergraph-temporary-files","tigergraph-test-dataset","tigergraph-testdrive-testdata","tigergraph-training","traininggsql","twitter-graph-benchmark","urbana-docker-ws","vladsynthea","xandrlog"]} ----- --- -==== - -''' -=== get all files and directories under given S3 bucket path - -`GET /gsql/v1/list-files/{s3Name}` - -This endpoint is used to get all files and directories under given S3 bucket path. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `path` -| no -| Uri of the data source. If not provide, list files under `/` -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET 'Content-type: text/plain' "http://localhost:14240/gsql/v1/list-files/fl2323?path=s3a://import-test" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"results":{"folders":["test-folder"],"files":["chinese.csv","movies.csv","ratings.csv","ratings.tar","ratings.tar.gz","ratings.zip","中文®初めまして.csv"]}} ----- --- -==== - -''' -=== get schema information from a Snowflake data source - - -`GET /gsql/v1/metadata/data-sources/{dsName}` - -This endpoint is used to get schema information from a Snowflake data source. -`{dsPath}` is the name of a previously created Snowflake data source object. - - -==== Query Parameters: - - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET 'Content-type: text/plain' "http://localhost:14240/gsql/v1/metadata/data-sources/k1" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"databaseName":"snowflake_db","schemaName":"snowflake_schema","tableNames":["COMMENT","PERSON","POST"],"tables":[{"columns":[{"name":"ID","nullable":true,"type":"NUMBER"},{"name":"CONTENT","nullable":true,"type":"VARCHAR"},{"name":"CREATIONDATE","nullable":true,"type":"VARCHAR"}],"name":"COMMENT"},{"columns":[{"name":"ID","nullable":true,"type":"NUMBER"},{"name":"FIRSTNAME","nullable":true,"type":"VARCHAR"},{"name":"LASTNAME","nullable":true,"type":"VARCHAR"}],"name":"PERSON"},{"columns":[{"name":"ID","nullable":true,"type":"NUMBER"},{"name":"CONTENT","nullable":true,"type":"VARCHAR"},{"name":"CREATIONDATE","nullable":true,"type":"VARCHAR"}],"name":"POST"}],"viewNames":["VIEW_PERSON_DETAILS"],"views":[{"columns":[{"name":"FULLNAME","nullable":true,"type":"VARCHAR"},{"name":"EMAIL","nullable":true,"type":"VARCHAR"}],"name":"VIEW_PERSON_DETAILS"}]}} - ----- --- -==== - -''' - -== Query - -=== install queries - -`GET /gsql/v1/queries/install` - -This api is used for installing queries - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| which graph to install queries - -| `queries` -| yes -| query names(join with `,` separated); value `*` or `all` mean all the queries. - -| `flag` -| no -| Possible values: - `-single`: Install the query in single gpr mode. - `-force`: Force the installation of the query. - `-legacy`: Install the query in UDF mode. - `-debug`: Present results contains debug info. - `-cost`: Present results contains performance consumption. - `-single` and `-legacy` cannot be used together. The other options can be combined. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H "Content-type: text/plain" "http://localhost:14240/gsql/v1/queries/install?graph=financialGraph1&queries=q1,q2&flag=-single" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{ -"requestId": ": "121212121331", -"message": "Successfully submitted request", -"startTime": "2024-07-07T23:17:06.831474Z" -} ----- --- -==== - -''' - -=== check query install status - -`GET /gsql/v1/queries/install/{requestId}` - -This api is used for checking query install status - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H "Content-type: text/plain" "http://localhost:14240/gsql/v1/queries/install/121212121331" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{ -"error":false, -"message":"Request 121212121331 is running", -"requestId" : "121212121331", -"startTime": "2024-07-07T23:17:06.831474Z" -} ----- --- -==== - -''' - -=== list query names - -`GET /gsql/v1/queries` - -This endpoint is used to get all query names of a graph. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/quries?graph=financialGraph' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":["query1","query2"]} ----- --- -==== - -''' - -=== create query - -`POST /gsql/v1/queries` - -This endpoint is used to create a query. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| the query created under which graph -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: text/plain' -X POST 'http://localhost:14240/gsql/v1/quries?graph=financialGraph' -d 'create query q1 {...}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created queries: [q1].\n"} ----- --- -==== - -''' - -=== drop query - -`DELETE /gsql/v1/queries` - -This endpoint is used to drop quries. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `query` -| yes -| the queries to be dropped - -| `graph` -| yes -| the queries dropped under which graph -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'http://localhost:14240/gsql/v1/queries?query=q1&graph=financialGraph' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"failedToDrop":[],"dropped":["q1"],"error":false,"message":""} ----- --- -==== - -''' - -=== get query content - -`GET /gsql/v1/queries/{queryName}` - -This endpoint is to get the content of a query by its name. Please note that calling this endpoint needs to set 'Content-Type: application/json' in header. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `queryName` -| yes -| the content of which query - -| `graph` -| yes -| the query under which graph -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/queires/q1?graph=financialGraph ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"queryContent":"CREATE QUERY q1() { print 1;}","name":"test","syntax":"GSQL v2","error":false,"message":"","status":"VALID"} ----- --- -==== - -''' - -=== run query - -`POST /gsql/v1/queires/{queryName}` - -The endpoint is used to run a query by its name. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `queryName` -| yes -| the query to run -|=== - -==== Example - -[,tabs] -==== - -Sample Query:: -+ --- -[source,bash] ----- -CREATE QUERY q1(String param1) { print param1;} ----- --- -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'http://localhost:14240/gsql/v1/queires/q1?graph=financialGraph --d '{"diagnose":false,"denseMode":false,"allvertex":false,"asyncRun":false,"parameters":{"param1":"1"}}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"error":false,"message":"","version":{"schema":1,"edition":"enterprise","api":"v2"},"results":[{"1":1}]}} ----- --- -==== - -''' - -=== drop one query - -`DELETE /gsql/v1/queries/{queryName}` - -This endpoint is used to drop a query by its name. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `queryName` -| yes -| the query to drop -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'http://localhost:14240/gsql/v1/queires/q1?graph=financialGraph ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"failedToDrop":[],"dropped":["q1"],"error":false,"message":""} ----- --- -==== - -''' - -=== interpret query - -`POST /gsql/v1/queries/interpret` - -This endpoint is used to intepret query. Please note that calling this endpont need to set 'Content-Type: text/plain' in header. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| the query interpreted under which graph -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: text/plain' -X POST 'localhost:14240/gsql/v1/queries/interpret?p1=hello&p1=world' -d 'INTERPRET QUERY (SET p1) FOR GRAPH financialGraph syntax v1 { print p1; }' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","version":{"schema":1,"edition":"enterprise","api":"v2"},"results":[{"p1":["hello","world"]}]} ----- --- -==== - -''' - -=== get query info - -`GET /gsql/v1/queries/info` - -This endpoint is used to get the query's information. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| the query under which graph - -| `query` -| no -| the query name - -| `status` -| no -| the query status -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/queries/info?graph=financialGraph' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"graphUpdate":false,"installed":true,"endpoint":{"query":{"financialGraph":{"q1":{"GET/POST":{"graphUpdate":false,"summary":"This is query entrance","readDataList":{},"alternative_endpoint":"/query/q1","graph_name":"financialGraph","needReadRole":false,"executeGranted":false,"updateDataList":{},"enabled":true,"target":"GPE","deleteDataList":{},"libudf":"libudf-financialGraph-1","payload":[{"rule":"AS_JSON"},{"rule":"AS_QUERY_STRING"}],"function":"queryDispatcher","needCurrentRoles":false,"createDataList":{},"action":"query","executorList":[],"parameters":{"query":{"default":"q1","type":"STRING"}}}}}}},"code":"create query q1(){ print 1;}","callerQueries":[],"isACLSpecified":false,"name":"q1","syntax":"GSQL v2","installing":false,"enabled":true,"isHidden":false,"status":"VALID"}]} ----- --- -==== - -''' - -=== get query signature - -`GET /gsql/v1/queries/signature` - -This endpoint is used to get query's signature by its name. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| the query under which graph - -| `queryName` -| no -| the query name to get query signature - -| `interpret` -| no -| default: false, false means the query in compiled mode and true means the query in interpret mode -|=== - - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: text/plain' -X GET 'localhost:14240/gsql/v1/queries/signature?queryName=q1&graph=financialGraph' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"output":[{"1":"int"}],"input":[],"queryname":"q1","error":false,"message":"","version":{"schema":0,"edition":"ENTERPRISE_EDITION","api":"V2"}} ----- --- -==== - -''' - -=== query semantic check - -`POST /gsql/v1/internal/check/query` - -This endpoint is used to query semantic check. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'localhost:14240/gsql/v1/internal/check/query' -d ' {"code":""}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"warnings":[],"errors":[]} ----- --- -==== - -''' - -== templeta query - -=== get all package names - -`GET /gsql/v1/packages` - -This endpoint is used to get all package names. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/packages ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":["gds","gds.community"]} ----- --- -==== - -''' - -=== get package content - -`GET /gsql/v1/package/{packageName}` - -This endpoint is used to get package by its name. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/packages/gds.community ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"fullPackageName":"gds.community","functions":[],"templateQueries":["printVertex"],"subpackageNames":[]}} ----- --- -==== - -''' - -=== create package - -`POST /gsql/v1/package/{packageName}` - -This endpoint is used to create package. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: text/plain' -X POST 'localhost:14240/gsql/v1/packages/gds.commumity1 ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created package: [gds.community1]."} ----- --- -==== - -''' - -=== drop package - -`DELETE /gsql/v1/package/{packageName}` - -This endpoint is used to drop package by its name. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE 'localhost:14240/gsql/v1/packages/gds.commumity1 ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped package: [gds.community1]."} ----- --- -==== - -''' - -=== create function - -`POST /gsql/v1/package/function` - -This endpoint is used to create function - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: text/plain' -X POST 'localhost:14240/gsql/v1/packages/function -d 'create function gds.community.func1 {}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created function: [gds.community.func1]."} ----- --- -==== - -''' - -=== delete function - -`DELETE /gsql/v1/package/{functionName}` - -This endpoint is used to delete function by its name. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE 'localhost:14240/gsql/v1/packages/function/gds.community.func1' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped function: [gds.community.func1]."} ----- --- -==== - -''' - -=== create template query - -`POST /gsql/v1/package/template` - -This endpoint is used to create template query. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: text/plain' -X POST 'localhost:14240/gsql/v1/packages/template' -d 'create template query gds.community.templateQuery1 {}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created template query: [gds.community.templateQuery1]."} ----- --- -==== - -''' - -=== drop template query - -`DELETE /gsql/v1/package/template/{queryName}` - -This endpoint is used to drop template query. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE 'localhost:14240/gsql/v1/packages/template/gds.community.templateQuery1' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped template query: [gds.community.templateQuery1]."} ----- --- -==== - -''' - -=== import package - -`POST /gsql/v1/package/import/{packageName}` - -This endpoint is used to import package. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST 'localhost:14240/gsql/v1/packages/import/pkg' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully import package pkg."} ----- --- -==== - -''' - -=== call template query - -`POST /gsql/v1/library/{functionName}` - -This endpoint is used to call template query. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| the function under which graph - -| `functionName` -| yes -| the function name to call -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'localhost:14240/gsql/v1/library/gds_community_printVertex_0000000000?graph=financialGraph' -d '{parameters: {"vertex": ""}}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"generatedQueryName":"gds_community_printVertex_0000000000","error":false,"message":"","results":{"error":false,"message":"","version":{"schema":1,"edition":"enterprise","api":"v2"},"results":[{"a":"3"}]}} ----- --- -==== - -''' - -=== get template query info - -`GET /gsql/v1/library/{functionName}` - -This endpoint is used to get template query's information. - -==== Parameters: - -[%autowidth] -|=== -| Name | Required | Description - -| `functionName` -| yes -| the function name of the tempalte query - -| `isRegularExpression` -| no -| deafult: false, true means using the regex pattern to match function name -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/library/printVertex' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"query":"CREATE template QUERY gds.community.printVertex(vertex a) SYNTAX V1 {\n print a;\n}","name":"printVertex","params":{"a":{"id_type":"$a.type","type":"STRING","is_id":"true","min_count":0},"a.type":{"type":"STRING","min_count":0}}}]} ----- --- -==== - -''' - - -== Database Utilities - -=== generic endpoint to execute any GSQL command - -`POST /gsql/v1/statements` - -This endpoint is used to execute any GSQL command asynchronously or synchronously. - -==== Parameters: - -[%autowidth] -|=== -| Name | Required | Description - -| `async` -| no -| default: false; run the request asynchronously if true, otherwise run the request synchronously. - -| `timeout` -| no -| default: 0; the request will be aborted if not finished in timeout seconds. A value of 0 means the request will never time out. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: text/plain" "http://localhost:14240/gsql/v1/statements" -d 'ls' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- ----- Global vertices, edges, and all graphs -Vertex Types: -Edge Types: - -Graphs: -Jobs: - - -JSON API version: v2 -Syntax version: v2 ----- --- -==== - -''' - -=== check status of asynchronous request with requestId - -`GET /gsql/v1/statements/{requestId}` - -This endpoint is used to check status of asynchronous request with requestId. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H "content-type: application/json" "http://localhost:14240/gsql/v1/statements/00000000006.317280417" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{ -"endTime":"2024-08-08T13:16:10.038174Z", -"error":false, -"message":"Request 00000000006.317280417 is finished with status SUCCESS", -"results":"---- Global vertices, edges, and all graphs\nVertex Types: \nEdge Types: \n\n\nGraphs: \nJobs: \n\n\n\n\nJSON API version: v2 \nSyntax version: v2\n" -} ----- --- -==== - -''' - -=== cancel an asynchronous request with requestId - -`PUT /gsql/v1/statements/{requestId}/cancel` - -This endpoint is used to cancel an asynchronous request with requestId. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X PUT -H "content-type: application/json" "http://localhost:14240/gsql/v1/statements/00000000006.317280417/cancel" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{ -"error":false, -"message":"Successfully aborted request 00000000006.317280417", -} ----- --- -==== - -''' - -=== recover gdict catalog - -`POST /gsql/v1/schema/recover` - -This endpoint is used to recover catalog. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: text/plain" "http://localhost:14240/gsql/v1/schema/recover" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Recover schema succeed!"} ----- --- -==== - -''' -=== validate graph schema - -`POST /gsql/v1/schema/check` - -This endpoint is used to validate graph schema. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "content-type: text/plain" "http://localhost:14240/gsql/v1/schema/check" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Schema Check succeeded."} ----- --- -==== - -''' - -=== clear graph store - -`GET /gsql/v1/clear-store` - -This endpoint permanently deletes all the data out of the graph store (database), for all graphs. -It does not delete the database schema, nor does it delete queries or loading jobs. -It is equivalent to the GSQL command xref:gsql-ref:ddl-and-loading:running-a-loading-job.adoc#_clear_graph_store[CLEAR GRAPH STORE]. - -[WARNING] -==== -This operation is not reversible. -The deleted data cannot be recovered. -==== - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/clear-store' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully cleared graph store."} ----- --- -==== - -''' -=== get gsql version - -`GET /gsql/v1/version` - -This endpoint used for get the gsql version infomation. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `verbose` -| no -| `bool` type, `true` will print detail info. -|=== - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: text/plain' -X GET 'http://localhost:14240/gsql/v1/version?verbose=true' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -GSQL version: GLE-7162 -GSQL commit number: 3f46585895039eb41a460e87e6b8f15eef224800 -GSQL commit date: 2024-07-26 08:56:11 +0800 -Copyright (c) 2014-2024 TigerGraph. All rights reserved. -This product is protected by U.S. and international copyright and intellectual property laws. ----- --- -==== - -''' - -=== drop all - -`GET /gsql/v1/drop-all` - -This endpoint is used to drop all. - -[WARNING] -==== -This operation is not reversible. -The deleted data cannot be recovered. -==== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/drop-all' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped all."} ----- --- -==== - -''' - -=== graph export - -`POST /gsql/v1/db-export` - -This endpoint is used to export database. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'localhost:14240/gsql/v1/db-export' -d '{"path":"pass","graphNames":["*"],"schema":false,"template":false,"data":false,"users":false,"password":"password","separator":"\u001d","eol":"\u001c"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully exported database."} ----- --- -==== - -''' - -=== graph import - -`POST /gsql/v1/db-import` - -This endpoint is used to import database. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'localhost:14240/gsql/v1/db-import' -d '{"path":"pass","graphNames":["*"],"keepUsers":false,"password":"password"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully imported database."} ----- --- -==== - -''' - -== Security - -=== create new JWT token - -`POST /gsql/v1/tokens` - -This endpoint is used to create a new JWT token. - -==== Payload: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `secret` -| no -| the secret denotes the user - -| `graph` -| no -| the graph the token created for - -| `lifetime` -| no -| default: one week, the duration time of the token -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'localhost:14240/gsql/v1/tokens' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"expiration":"Wed Jul 10 06:12:47 UTC 2024","error":false,"message":"Generate new JWT token successfully.","token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0aWdlcmdyYXBoIiwiaWF0IjoxNzE5OTg3MTYyLCJleHAiOjE3MjA1OTE5NjcsImlzcyI6IlRpZ2VyR3JhcGgiLCJncmFwaCI6InBvY19ncmFwaCJ9.w4ms-si5egtbhI2Cms7uL1qUU8oG0S08KIiaG_VL3Fs"} ----- --- -==== - -''' - -=== drop JWT tokens - -`DELETE /gsql/v1/tokens` - -This endpoint is used to drop specific a list of tokens. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `clear` -| no -| default: false, true means clear out the current block list. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'localhost:14240/gsql/v1/tokens' -d {"tokens": "$token1,$token2"} ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped the specified JWT tokens"} ----- --- -==== - -''' - -=== check JWT token - -`POST /gsql/v1/tokens/check` - -This endpoint is used to check JWT token is valid or not. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'localhost:14240/gsql/v1/tokens/check' -d {"token": "$token1"} ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"The token eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0aWdlcmdyYXBoIiwiaWF0IjoxNzE5OTg3MTYyLCJleHAiOjE3MjA1OTE5NjcsImlzcyI6IlRpZ2VyR3JhcGgiLCJncmFwaCI6InBvY19ncmFwaCJ9.w4ms-si5egtbhI2Cms7uL1qUU8oG0S08KIiaG_VL3Fs verification succeed."} ----- --- -==== - -''' - -=== create secret - -`POST /gsql/v1/secrets` - -This endpoint is used to create a secret. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `userName` -| no -| the user the secret created for. The default user is the logged-in user if not specified. - -| `alias` -| no -| the alias of the secret created. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'localhost:14240/gsql/v1/secrets?alias=s1' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"alias":"s1","value":"59ccqdlqmkfcqjl99u2jv4qt2telmeoj"}} ----- --- -==== - -''' - -=== show secrets - -`GET /gsql/v1/secrets` - -This endpoint is used to show secrets for the user. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `userName` -| no -| the user who wants to show the secrets. The default user is the logged-in user if not specified. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/secrets' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"alias":"s1","value":"59ccqdlqmkfcqjl99u2jv4qt2telmeoj"}} ----- --- -==== - -''' - -=== delete secrets - -`DELETE /gsql/v1/secrets` - -This endpoint is used to delete the secrets of the user. - -==== Parameters: - -[%autowidth] -|=== -| Name | Required | Description - -| `userName` -| no -| the user who wants to delete the secrets. The default user is the logged-in user if not specified. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'localhost:14240/gsql/v1/secrets' -d '{"secrets":[$secret1,$secret2]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully removed the secrets for user tigergraph."} ----- --- -==== - -''' - -=== get secret by alias - -`GET /gsql/v1/secrets/{alias}` - -This endpoint is used to get the secrets by its alias name. - -==== Parameters: - -[%autowidth] -|=== -| Name | Required | Description - -| `userName` -| no -| the user who wants to get the secret. The default user is the logged-in user if not specified. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/secrets/s2' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"alias":"s2","value":"g2ea27q79tes6nsark3k3ecp718rp4ej"}} ----- --- -==== - -''' - -=== drop secret by alias - -`DELETE /gsql/v1/secrets/{alias}` - -This endpoint is used to delete the secret of the user by its alias name. - -==== Parameters: - -[%autowidth] -|=== -| Name | Required | Description - -| `userName` -| no -| the user who wants to delete the secret. The default user is the logged-in user if not specified. -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'localhost:14240/gsql/v1/secrets/s2' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully removed the secrets for user tigergraph."} ----- --- -==== - -''' - -=== retrieve a group by id using gsql format - -`GET /gsql/v1/groups/{id}` - -This endpoint is used to retrieve a group by id response scim format or gsql format JSON. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET "http://localhost:14240/gsql/v1/groups/g1" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"lastSuccessLogin":"Thu Aug 08 16:31:56 HKT 2024","privileges":{},"nextValidLogin":"Thu Aug 08 16:31:56 HKT 2024","roles":{},"failedAttempts":0,"members":[],"name":"g1","rule":"group=th-department","disabled":false,"isSuperUser":false,"showAlterPasswordWarning":false,"secrets":[]}} ----- --- -==== - -''' - -=== retrieve groups using gsql format - -`GET /gsql/v1/groups` - -This endpoint is used to retrieve groups response gsql format JSON. - -==== Parameters: - -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| If the graph is not specified and the current user has global READ_PROXYGROUP privilege, they can see all proxy groups. Otherwise, no proxy group information can be accessed. - -If the graph is specified and the current user has local READ_PROXYGROUP privilege for this graph, they can only view the proxy groups on this specific graph. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET "Content-type: text/plain" "http://localhost:14240/gsql/v1/groups" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"results":[{"lastSuccessLogin":"Tue Jul 02 17:07:50 HKT 2024","privileges":{},"nextValidLogin":"Tue Jul 02 17:07:50 HKT 2024","roles":{},"failedAttempts":0,"members":[],"name":"g1","rule":"group=tech-department","disabled":false,"isSuperUser":false,"showAlterPasswordWarning":false,"secrets":[]},{"lastSuccessLogin":"Tue Jul 02 17:07:50 HKT 2024","privileges":{},"nextValidLogin":"Tue Jul 02 17:07:50 HKT 2024","roles":{},"failedAttempts":0,"members":[],"name":"g2","rule":"group=tech-department","disabled":false,"isSuperUser":false,"showAlterPasswordWarning":false,"secrets":[]}]} ----- --- -==== - -''' - -=== create a group using gsql format - -`POST /gsql/v1/groups` - -This endpoint is used to create a group using gsql format. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST "Content-type: application/json" "http://localhost:14240/gsql/v1/groups" -d '{"groupName":"g4","proxyRule":"group=tech-department"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created group g4","results":{"lastSuccessLogin":"Tue Jul 02 17:32:40 HKT 2024","privileges":{},"nextValidLogin":"Tue Jul 02 17:32:40 HKT 2024","roles":{},"failedAttempts":0,"members":[],"name":"g4","rule":"group=tech-department","disabled":false,"isSuperUser":false,"showAlterPasswordWarning":false,"secrets":[]}} ----- --- -==== - -''' -=== update a group using gsql format - -`PUT /gsql/v1/groups` - -This endpoint is used to update a group. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X PUT "Content-type: application/json" "http://localhost:14240/gsql/v1/groups" -d '{"name": "g1", "rule": ""group=tech-department""}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error": true, "message": "Successfully change the proxy rule for group g1"} ----- --- -==== - -''' - -=== drop one group by name using gsql format - -`DELETE /gsql/v1/groups/{id}` - -This endpoint is used to drop one group by name. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE "Content-type: application/json" "http://localhost:14240/gsql/v1/groups/g1" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped group g1"} ----- --- -==== - -''' - -=== drop groups using gsql format - -`POST /gsql/v1/groups` - -This endpoint is used to drop groups. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `action` -| no -| The default value is `create`. Possible values are `create` and `delete`. `Delete` indicates dropping groups, while `create` indicates creating groups. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST "Content-type: application/json" "http://localhost:14240/gsql/v1/groups?action=delete" -d '{"groupNames":["g1"]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped groups: [g1]"} ----- --- -==== - -''' - -=== retrieve a user by id using gsql format - -`GET /gsql/v1/users/{id}` - -This endpoint is used to retrieve a user by id respond gsql format. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET "http://localhost:14240/gsql/v1/users/u1" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"lastSuccessLogin":"Thu Aug 08 16:51:23 HKT 2024","privileges":{"recommend":{"privileges":[]}},"nextValidLogin":"Thu Aug 08 16:51:23 HKT 2024","roles":{"recommend":["r1"]},"failedAttempts":0,"name":"u1","disabled":false,"isSuperUser":false,"showAlterPasswordWarning":false,"secrets":[]}} ----- --- -==== - -''' -=== update an user using gsql format - -`PUT /gsql/v1/users` - -This endpoint is used to update a user. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X PUT -H "Content-type: application/json" "http://localhost:14240/gsql/v1/users" -d '{"name": "tigergraph", "password": "123"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error": false, "message": "Successfully updated user tigergraph"} ----- --- -==== - -''' - -=== drop users for gsql format - -`POST /gsql/v1/users` - -This endpoint is used to drop users. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `action` -| no -| default: `create`. Possible values: `create`, `delete`. `delete` indicates to drop users; `create` indicates to create users. Here set the value `delete`. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "Content-type: application/json" "http://localhost:14240/gsql/v1/users?action=delete" -d ' {"userNames":["u1"]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped users: [u1]"} ----- --- -==== - -''' - -=== drop a user using gsql format - -`DELETE /gsql/v1/users/{id}` - -This endpoint is used to drop a user. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE -H "Content-type: application/json" "http://localhost:14240/gsql/v1/users/u1" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped user u1"} ----- --- -==== - -''' - -=== create a user using gsql format - -`POST /gsql/v1/users` - -This endpoint is used to create a user using gsql format. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "Content-type: application/json" "http://localhost:14240/gsql/v1/users" -d ' {"password":"tiger123","username":"user2"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully created user user2"} ----- --- -==== - -''' - -=== retrieve users using gsql format - -`GET /gsql/v1/users` - -This endpoint is used to retrieve users response gsql format JSON. - -==== Parameters: - -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| If the graph is not provided and the current user has global READ_USER privilege, they can view all users. Otherwise, no user information can be accessed. - -If the graph is provided, users with global READ_USER privilege can view all users. If the current user holds local READ_USER privilege for this graph, they can only see users with access to this specific graph. Otherwise, they can only view their own information if they have access to the graph. -|=== -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H "Content-type: application/json" "http://localhost:14240/gsql/v1/users" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"results":[{"lastSuccessLogin":"Wed Jul 03 15:26:33 HKT 2024","privileges":{"1":{"privileges":["READ_SCHEMA","WRITE_SCHEMA","READ_LOADINGJOB","EXECUTE_LOADINGJOB","WRITE_LOADINGJOB","CREATE_QUERY","WRITE_DATASOURCE","READ_ROLE","WRITE_ROLE","READ_USER","WRITE_USER","READ_PROXYGROUP","WRITE_PROXYGROUP","READ_FILE","WRITE_FILE","DROP_GRAPH","EXPORT_GRAPH","CLEAR_GRAPHSTORE","DROP_ALL","ACCESS_TAG","READ_DATA","CREATE_DATA","UPDATE_DATA","DELETE_DATA","APP_ACCESS_DATA","READ_POLICY","WRITE_POLICY","USE_FUNCTION","WRITE_FUNCTION","READ_WORKLOAD_QUEUE","WRITE_WORKLOAD_QUEUE"]},"recommend":{"privileges":[]}},"nextValidLogin":"Wed Jul 03 15:26:33 HKT 2024","roles":{"1":["superuser"],"recommend":["superuser"]},"failedAttempts":0,"name":"tigergraph","disabled":false,"isSuperUser":true,"showAlterPasswordWarning":false,"secrets":[]},{"lastSuccessLogin":"Wed Jul 03 15:26:33 HKT 2024","privileges":{"recommend":{"privileges":[]}},"nextValidLogin":"Wed Jul 03 15:26:33 HKT 2024","roles":{"recommend":["r1"]},"failedAttempts":0,"name":"u1","disabled":false,"isSuperUser":false,"showAlterPasswordWarning":false,"secrets":[]}]} ----- --- -==== - -''' - -=== show all privileges - -`GET /gsql/v1/privileges` - -This endpoint is used to list all built-in privileges. - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET "http://localhost:14240/gsql/v1/privileges" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"privilegeType":"GRAPH","privilege":"READ_SCHEMA"},{"privilegeType":"GRAPH","privilege":"WRITE_SCHEMA"},{"privilegeType":"GRAPH","privilege":"READ_LOADINGJOB"},{"privilegeType":"GRAPH","privilege":"EXECUTE_LOADINGJOB"},{"privilegeType":"GRAPH","privilege":"WRITE_LOADINGJOB"},{"privilegeType":"QUERY","privilege":"READ_QUERY"},{"privilegeType":"GRAPH","privilege":"CREATE_QUERY"},{"privilegeType":"QUERY","privilege":"UPDATE_QUERY"},{"privilegeType":"QUERY","privilege":"DROP_QUERY"},{"privilegeType":"QUERY","privilege":"INSTALL_QUERY"},{"privilegeType":"QUERY","privilege":"EXECUTE_QUERY"},{"privilegeType":"QUERY","privilege":"OWNER"},{"privilegeType":"GRAPH","privilege":"WRITE_DATASOURCE"},{"privilegeType":"GRAPH","privilege":"READ_ROLE"},{"privilegeType":"GRAPH","privilege":"WRITE_ROLE"},{"privilegeType":"GRAPH","privilege":"READ_USER"},{"privilegeType":"GLOBAL","privilege":"WRITE_USER"},{"privilegeType":"GRAPH","privilege":"READ_PROXYGROUP"},{"privilegeType":"GLOBAL","privilege":"WRITE_PROXYGROUP"},{"privilegeType":"GLOBAL","privilege":"READ_FILE"},{"privilegeType":"GLOBAL","privilege":"WRITE_FILE"},{"privilegeType":"GLOBAL","privilege":"DROP_GRAPH"},{"privilegeType":"GLOBAL","privilege":"EXPORT_GRAPH"},{"privilegeType":"GLOBAL","privilege":"CLEAR_GRAPHSTORE"},{"privilegeType":"GLOBAL","privilege":"DROP_ALL"},{"privilegeType":"GRAPH","privilege":"ACCESS_TAG"},{"privilegeType":"GRAPH","privilege":"READ_DATA"},{"privilegeType":"GRAPH","privilege":"CREATE_DATA"},{"privilegeType":"GRAPH","privilege":"UPDATE_DATA"},{"privilegeType":"GRAPH","privilege":"DELETE_DATA"},{"privilegeType":"GRAPH","privilege":"APP_ACCESS_DATA"},{"privilegeType":"GRAPH","privilege":"READ_POLICY"},{"privilegeType":"GRAPH","privilege":"WRITE_POLICY"},{"privilegeType":"PACKAGE","privilege":"USE_FUNCTION"},{"privilegeType":"PACKAGE","privilege":"WRITE_FUNCTION"},{"privilegeType":"GLOBAL","privilege":"READ_WORKLOAD_QUEUE"},{"privilegeType":"GLOBAL","privilege":"WRITE_WORKLOAD_QUEUE"}]} ----- --- -==== - -''' - -=== grant privilege(s) to role(s) - -`POST /gsql/v1/privileges/grant` - -This endpoint is used to grant RABC privileges to specific roles. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| in which graph the privilege(s) should be granted, -or grant privilege(s) on global level if the parameter is missing -|=== - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST "http://localhost:14240/gsql/v1/privileges/grant?graph=financialGraph" -d "{"privileges":["READ_DATA", "CREATE_DATA", "UPDATE_DATA"], "vertexName": "Account", "roles":["r1", "r2"]}" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"The privileges \"CREATE, READ, UPDATE\" are successfully granted on \"VERTEX Account\" IN GRAPH recommend to role: r2\nThe privileges \"CREATE, READ, UPDATE\" are successfully granted on \"VERTEX Account\" IN GRAPH recommend to role: r1\n","results":[{"privileges":{"1":{"privileges":[]},"recommend":{"privileges":[],"childPermissions":{"user":{"privileges":["READ_DATA","CREATE_DATA","UPDATE_DATA"]}}}},"role":"r1"},{"privileges":{"recommend":{"privileges":[],"childPermissions":{"user":{"privileges":["READ_DATA","CREATE_DATA","UPDATE_DATA"]}}}},"role":"r2"}]} ----- --- -==== - -''' - -=== revoke privilege(s) from role(s) - -`POST /gsql/v1/privileges/revoke` - -This endpoint is used to revoke RABC privileges from specific roles - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| in which graph the privilege(s) should be revoked, -or revoke privilege(s) on global level if the parameter is missing -|=== - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST "http://localhost:14240/gsql/v1/privileges/revoke?graph=financialGraph" -d "{"privileges":["READ_DATA", "CREATE_DATA", "UPDATE_DATA"], "vertexName": "Account", "roles":["r1", "r2"]}" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"The privileges \"CREATE, READ, UPDATE\" are successfully revoked on \"VERTEX Account\" IN GRAPH recommend from role: r2\nThe privileges \"CREATE, READ, UPDATE\" are successfully revoked on \"VERTEX Account\" IN GRAPH recommend from role: r1\n","results":[{"privileges":{"1":{"privileges":[]}},"role":"r1"},{"privileges":{},"role":"r2"}]} ----- --- -==== - -''' - -=== show all roles - -`GET /gsql/v1/roles` - -Call this endpoint to show all roles, including built-in roles and user defined roles. - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET "http://localhost:14240/gsql/v1/roles" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"builtIn":{"global":["globalobserver","globaldesigner","superuser"],"local":["observer","queryreader","querywriter","designer","admin"]},"userDefinedRoles":{"1":["r1","r2","r3"],"recommend":["r4"]}}} ----- --- -==== - -''' - -=== Create roles - -`POST /gsql/v1/roles` - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| in which graph to create local roles, -or create global roles if the parameter is missing -|=== - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST "http://localhost:14240/gsql/v1/roles?graph=financialGraph" -d "{"roles":["r1", "r2"]}" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":"Successfully created local roles on graph 'financialGraph': [r1, r2]."} ----- --- -==== - -''' - -=== Delete roles - -`DELETE /gsql/v1/roles` - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| in which graph to delete local roles, -or delete global roles if the parameter is missing - -| `roles` -| yes -| roles to delete -|=== - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE "http://localhost:14240/gsql/v1/roles?graph=financialGraph&role=r1,r2" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":"Successfully dropped roles: [r1, r2]."} ----- --- -==== - -''' - -=== show one role - -`GET /gsql/v1/roles/{roleName}` - -Call this endpoint to show the info of a specific role. - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET "http://localhost:14240/gsql/v1/roles/r1" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"Graph":"financialGraph","roleName":"r1","isGlobal":false,"rolePrivileges":{"financialGraph":{"privileges":["READ_DATA","CREATE_DATA"]}}}} ----- --- -==== - -''' - -=== delete one role - -`DELETE /gsql/v1/roles/{roleName}` - -Call this endpoint to delete a specific role. - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE "http://localhost:14240/gsql/v1/roles/r1" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":"Successfully dropped roles: [r1]."} ----- --- -==== - -''' - -=== grant role(s) to user(s) - -`POST /gsql/v1/roles/grant` - -This endpoint is used to grant roles to specific users - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| in which graph the role(s) should be granted, -or grant role(s) on global level if the parameter is missing -|=== - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'http://localhost:14240/gsql/v1/roles/grant?graph=financialGraph' -d '{"roles":["observer", "r1"], "users":["user1", "user2"]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":"Successfully granted roles [observer, r1] on graph 'financialGraph' to users [user1, user2]."} ----- --- -==== - -''' - -=== revoke role(s) from user(s) - -`POST /gsql/v1/roles/revoke` - -This endpoint is used to revoke roles from specific users - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| no -| in which graph the role(s) should be revoked, -or revoke role(s) on global level if the parameter is missing -|=== - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'http://localhost:14240/gsql/v1/roles/revoke?graph=financialGraph' -d '{"roles":["observer", "r1"], "users":["user1", "user2"]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":"Successfully revoked roles [observer, r1] on graph 'financialGraph' from users [user1, user2]."} ----- --- -==== - -''' - - -== SCIM APIs for users/groups - -=== retrieve a group by id using scim format - -`GET /gsql/scim/v2/Groups/{id}` - -This endpoint is used to retrieve a group by id response scim format. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET "http://localhost:14240/gsql/scim/v2/Groups/g2" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"displayName":"g2","meta":{"location":"/scim/v2/Groups/54ba8a0f-693c-4cf3-9c53-5caaa244049a","resourceType":"Group"},"members":[],"id":"54ba8a0f-693c-4cf3-9c53-5caaa244049a"} ----- --- -==== - -''' - -=== retrieve groups using scim format - -`GET /gsql/scim/v2/Groups` - -This endpoint is used to retrieve groups response scim format. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `filter` -| no -| The filter format should follow this structure: `displayName op {value} op2 displayName op {value}`. Here, `op` can be one of `eq`, `ne`, `co`, `sw`, `ew`, and `op2` can be either `and` or `or`. - -| `excludedAttributes` -| no -| Specifies attributes to be excluded. Currently supports only `members`. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H "Content-type: text/plain" "http://localhost:14240/gsql/scim/v2/Groups?excludedAttributes=members&filter=displayName%ne%20'g2'%20and%20displayName%20sw%20'g1'" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"totalResults":1,"startIndex":1,"itemsPerPage":100,"schemas":true,"Resources":[{"displayName":"g1","meta":{"location":"/scim/v2/Groups/0570fc42-79ea-427e-aa2e-2b53a0470163","resourceType":"Group"},"id":"0570fc42-79ea-427e-aa2e-2b53a0470163"}]} ----- --- -==== - -''' - -=== create a group using scim format - -`POST /gsql/scim/v2/Groups` - -This endpoint is used to create a group using scim format. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST "Content-type: application/json" "http://localhost:14240/gsql/scim/v2/Groups" -d '{"displayName":"scimG3","schemas":"[\"urn:ietf:params:scim:schemas:core:2.0:Group\"]","members":[{"display":"user3"},{"value":"user4"}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"displayName":"scimG3","meta":{"location":"/scim/v2/Groups/706d0ad6-2165-4190-8512-de5abfd06988","resourceType":"Group"},"members":[{"display":"user3","type":"User","value":"16c1e6cc-3b2a-4d57-9a2e-fb55a5d14804"},{"display":"user4","type":"User","value":"457b9982-d5fb-4ad6-b50a-266919bf0c16"}],"id":"706d0ad6-2165-4190-8512-de5abfd06988"} ----- --- -==== - -''' - -=== update a group using scim format - -`PATCH /gsql/scim/v2/Groups/{id}` - -This endpoint is used to update a group. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X PATCH "Content-type: application/json" "http://localhost:14240/gsql/scim/v2/Groups/g1" -d ' -{"schemas":"[\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"]","Operations":[{"op":"remove","path":"members"},{"op":"replace","path":"members","value":[{"display":"user4"}]},{"op":"add","value":[{"display":"user3"}]}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"displayName":"g1","meta":{"location":"/scim/v2/Groups/0b181bc8-d055-4fcb-af52-20c560324c6f","resourceType":"Group"},"members":[{"display":"user3","type":"User","value":"5cdad092-af32-435e-9865-c2ad06b9d6f8"},{"display":"user4","type":"User","value":"c14765de-ea78-422a-bd87-88f3f7d3ceda"}],"id":"0b181bc8-d055-4fcb-af52-20c560324c6f"} ----- --- -==== - -''' - -=== drop one group by name using scim format - -`DELETE /gsql/scim/v2/Groups/{id}` - -This endpoint is used to drop one group by name. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE "Content-type: application/json" "http://localhost:14240/gsql/scim/v2/Groups/g1" -d ' -{"schemas":"[\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"]","Operations":[{"op":"remove","path":"members"},{"op":"replace","path":"members","value":[{"display":"user4"}]},{"op":"add","value":[{"display":"user3"}]}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped group g1"} ----- --- -==== - -''' - -=== drop groups using scim format - -`POST /gsql/scim/v2/Groups` - -This endpoint is used to drop groups. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `action` -| no -| The default value is `create`. Possible values are `create` and `delete`. `Delete` indicates dropping groups, while `create` indicates creating groups. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST "Content-type: application/json" "http://localhost:14240/gsql/scim/v2/Groups?action=delete" -d '{"groupNames":["g1"]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped groups: [g1]"} ----- --- -==== - -''' - -=== retrieve a user by id using scim format - -`GET /gsql/scim/v2/Users/{id}` - -This endpoint is used to retrieve a user by id respond with scim format. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET "http://localhost:14240/gsql/scim/v2/Users/u1" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"meta":{"location":"/scim/v2/Users/1e224fd0-54eb-43c3-84d6-455ca3b6339d","resourceType":"User"},"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"name":{},"active":true,"id":"1e224fd0-54eb-43c3-84d6-455ca3b6339d","userName":"u1"} ----- --- -==== - -''' -=== update a user using scim format - -`PUT /gsql/scim/v2/Users/{id}` - -This endpoint is used to update a user. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X PUT -H "Content-type: application/json" "http://localhost:14240/gsql/scim/v2/Users/u1" -d '{"schemas":"[\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"]","Operations":[{"op":"replace","path":"password","value":"newPassword"}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"meta":{"location":"/scim/v2/Users/1e224fd0-54eb-43c3-84d6-455ca3b6339d","resourceType":"User"},"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"name":{},"active":true,"id":"1e224fd0-54eb-43c3-84d6-455ca3b6339d","userName":"u1"} ----- --- -==== - -''' - -=== drop users using scim format - -`POST /gsql/scim/v2/Users` - -This endpoint is used to drop users. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `action` -| no -| default: `create`. Possible values: `create`, `delete`. `delete` indicates to drop users; `create` indicates to create users. Here set the value `delete`. -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "Content-type: application/json" "http://localhost:14240/gsql/scim/v2/Users?action=delete" -d ' {"userNames":["u1"]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped users: [u1]"} ----- --- -==== - -''' - -=== drop a user using scim format - -`DELETE /gsql/scim/v2/Users/{id}` - -This endpoint is used to drop a user. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X DELETE -H "Content-type: application/json" "http://localhost:14240/gsql/scim/v2/Users/u1" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped user u1"} ----- --- -==== - -''' - -=== create a user using scim format - -`POST /gsql/scim/v2/Users` - -This endpoint is used to create a user using scim format. - -==== Parameters: - -None - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X POST -H "Content-type: application/json" "http://localhost:14240/gsql/scim/v2/Users" -d ' -{"password":"12345678","schemas":"[\"urn:ietf:params:scim:schemas:core:2.0:User\"]","name":{"familyName":"f","givenName":"g"},"externalId":"externalId123","active":false,"userName":"scimUser2"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"meta":{"location":"/scim/v2/Users/d838c224-d1d6-4a07-b6b5-5c0aab43f0a6","resourceType":"User"},"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"active":true,"id":"d838c224-d1d6-4a07-b6b5-5c0aab43f0a6","userName":"scimUser2"} ----- --- -==== - -''' - -=== retrieve users using scim format - -`GET /gsql/scim/v2/Users` - -This endpoint is used to retrieve users response scim format. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `excludedAttributes` -| no -| `names`, currently only support this value. - -| `filter` -| no -| The format should follow this pattern: `userName op {value} op2 displayName op {value}`. Here, `op` can be one of `eq`, `ne`, `co`, `sw`, `ew`, and `op2` can be either `and` or `or`. Example: 1. userName eq "user1" 2. userName sw "u" and userName ne "u1" -|=== - -==== Example: -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET -H "Content-type: application/json" "http://localhost:14240/gsql/scim/v2/Users?filter=userName%20ne%20%22tigergraph%22%20and%20userName%20sw%20%22u%22&excludedAttributes=names" ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"totalResults":2,"startIndex":1,"itemsPerPage":100,"schemas":true,"Resources":[{"meta":{"location":"/scim/v2/Users/7a004538-8d41-4f85-b5e7-2a26358f0173","resourceType":"User"},"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"name":{},"active":true,"id":"7a004538-8d41-4f85-b5e7-2a26358f0173","userName":"tigergraph"},{"meta":{"location":"/scim/v2/Users/0a71523d-9623-4b04-908d-395096e288f4","resourceType":"User"},"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"name":{},"active":true,"id":"0a71523d-9623-4b04-908d-395096e288f4","userName":"u1"}]} ----- --- -==== - -''' - -== Statistics - -=== get cardinality statistics - -`GET /gsql/v1/stats/cardinality` - -This endpoint is used to fetch cardinality statistics. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| Get the cardinality stats of which graph -|=== - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/stats/cardinality?graph=financialGraph' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"vertex_counts":[{"count":5,"type":"Account"}],"edge_counts":[{"count":5,"type":"isLocatedIn"},{"count":10,"from":"Account","to":"City","type":"isLocatedIn"}]}} ----- --- -==== - -''' - -=== post cardinality statistics - -`POST /gsql/v1/stats/cardinality` - -This endpoint has to usage: 1) Fetch fresh up-to-date cardinality statistics and persist it to storage. 2) Persist user defined cardinality statistics to storage. - -==== 1) Fetch fresh up-to-date cardinality statistics and persist it to storage - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| Persist the cardinality stats to which graph - -| `vertex` -| no -| Fetch fresh up-to-date cardinality stats for specific vertex types and persist them to storage - -| `edge` -| no -| Fetch fresh up-to-date cardinality stats for specific edge types and persist them to storage, if `vertex` is not empty, this parameter will be ignored - -| `from` -| no -| Fetch fresh up-to-date cardinality stats for not only specific edge types but also from specific vertex, if `edge` is not empty, this parameter will be ignored, this parameter usually used together with `to`. - -| `to` -| no -| Fetch fresh up-to-date cardinality stats for not only specific edge types but also to specific vertex, if `edge` is not empty, this parameter will be ignored, this parameter usually used together with `from`. -|=== - -===== Example: - -[,tabs] -====== -Sample Request 1:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'http://localhost:14240/gsql/v1/stats/cardinality?graph=financialGraph&vertex=Account' ----- --- -Sample Response 1:: -+ --- -[source.wrap,console] ----- -{"error": false,"message": "successfully persisted statistics"} ----- --- -====== - -[,tabs] -====== -Sample Request 2:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'http://localhost:14240/gsql/v1/stats/cardinality?graph=financialGraph&edge=isLocatedIn&from=Account&to=City' ----- --- -Sample Response 2:: -+ --- -[source.wrap,console] ----- -{"error": false,"message": "successfully persisted statistics"} ----- --- -====== - -==== 2) Persist user defined cardinality statistics to storage. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| Persist the cardinality stats to which graph -|=== - -===== Example: - -[,tabs] -====== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'http://localhost:14240/gsql/v1/stats/cardinality?graph=financialGraph' -d '{"vertex_counts":[{"type": "Account","count": 5}], "edge_counts":[{"type":"hasPhone","count":5},{"type":"isLocatedIn","from":"Account","to":"City","count":10}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"vertex_counts":[{"count":5,"type":"Account"}],"edge_counts":[{"count":5,"type":"hasPhone"},{"count":10,"from":"Account","to":"City","type":"isLocatedIn"}]}} ----- --- -====== - -''' - -=== delete cardinality statistics - -`DELETE /gsql/v1/stats/cardinality` - -This endpoint is used to remove cardinality statistics from storage. - -==== Parameters: - -//[width="100%",cols="25%,25%,50%",options="header",] -[%autowidth] -|=== -| Name | Required | Description - -| `graph` -| yes -| Delete the cardinality stats of indicated graph from storage -|=== - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'http://localhost:14240/gsql/v1/stats/cardinality?graph=financialGraph' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"successfully deleted statistics"} ----- --- -==== - -''' - -=== get histogram statistics - -`GET /gsql/v1/stats/histogram` - -This endpoint is used to fetch histogram statistics. - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'http://localhost:14240/gsql/v1/stats/histogram' -d ' {"graph":"financialGraph", "edge":"isLocatedIn", "from":"Account", "to":"City", "attribute":"name", "bucket":10}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -[{"histogram": [{"rowsTotal": 104,"rowsUpper": 1,"upperBound": "2010-05-05 10:44:41"},{"rowsTotal": 12599,"rowsUpper": 1,"upperBound": "2012-06-09 21:24:20"},{"rowsTotal": 15986,"rowsUpper": 1,"upperBound": "2012-09-13 09:27:04"},{"rowsTotal": 1995,"rowsUpper": 1,"upperBound": "2010-11-14 17:07:00"},{"rowsTotal": 3570,"rowsUpper": 1,"upperBound": "2011-02-18 09:33:18"},{"rowsTotal": 4193,"rowsUpper": 1,"upperBound": "2011-05-24 21:54:24"},{"rowsTotal": 5481,"rowsUpper": 1,"upperBound": "2011-08-28 09:45:29"},{"rowsTotal": 752,"rowsUpper": 1,"upperBound": "2010-08-11 07:41:03"},{"rowsTotal": 8665,"rowsUpper": 1,"upperBound": "2012-03-06 08:31:44"},{"rowsTotal": 8880,"rowsUpper": 1,"upperBound": "2011-12-01 21:13:33"}]}] ----- --- -==== - -''' - -=== post histogram statistics - -`POST /gsql/v1/stats/histogram` - -This endpoint is used to persist new histogram statistics to storage. - -==== Example: - -[,tabs] -===== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'http://localhost:14240/gsql/v1/stats/histogram' -d '{"graph":"financialGraph", "edge":"isLocatedIn", "from":"Account", "to":"City", "attribute":"name"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"0": {"rowsTotal": 151037,"rowsUpper": 90,"upperBound": 183},"1": {"rowsTotal": 0,"rowsUpper": 0,"upperBound": 399},"2": {"rowsTotal": 0,"rowsUpper": 0,"upperBound": 598},"3": {"rowsTotal": 1,"rowsUpper": 1,"upperBound": 710},"4": {"rowsTotal": 1,"rowsUpper": 1,"upperBound": 908},"5": {"rowsTotal": 1,"rowsUpper": 1,"upperBound": 1119},"6": {"rowsTotal": 1,"rowsUpper": 1,"upperBound": 1211},"7": {"rowsTotal": 1,"rowsUpper": 1,"upperBound": 1402},"8": {"rowsTotal": 0,"rowsUpper": 0,"upperBound": 1789},"9": {"rowsTotal": 1,"rowsUpper": 1,"upperBound": 1988}} ----- --- -===== - -''' - -=== delete histogram statistics - -`DELETE /gsql/v1/stats/histogram` - -This endpoint is used to remove histogram statistics from storage. - -==== Example: - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'http://localhost:14240/gsql/v1/stats/histogram' -d ' {"graph":"financialGraph", "edge":"isLocatedIn", "from":"Account", "to":"City", "attribute":"name"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error": false,"message": "","results": "Deleting any histogram(s) for G.E1.a"} ----- --- -==== - -''' - - -== User Defined Objects - -=== list all tuples - -`GET /gsql/v1/udt/tuples` - -This endpoint is used to get all tuples. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/udt/tuples' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"name":"TestTup","fields":[{"fieldName":"da","length":8,"fieldType":"UINT"},{"fieldName":"flow","length":8,"fieldType":"STRING"}]}]} ----- --- -==== - -''' - -=== list one tuple - -`GET /gsql/v1/udt/tuples/{tupleName}` - -This endpoint is used to get tuple by its name. - -==== Parameters: - -[%autowidth] -|=== -| Name | Required | Description - -| `tupleName` -| yes -| the tuple name to get information -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/udt/tuples/TestTup' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"name":"TestTup","fields":[{"fieldName":"da","length":8,"fieldType":"UINT"},{"fieldName":"flow","length":8,"fieldType":"STRING"}]}]} ----- --- -==== - -''' - -=== create tuple - -`POST /gsql/udt/tuples` - -This endpoint is used to create a tuple. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'localhost:14240/gsql/v1/udt/tuples?gsql=true' -d '{"gsql":"create tuple commands"}' -or -curl -H 'Content-Type: application/json' -X POST 'localhost:14240/gsql/v1/udt/tuples' -d '{"tuples":[{"Name":"tuple1","TupleElements":[{"name":"attr1","AttributeType":"int"}]}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully create tuples: TestTup."} ----- --- -==== - -''' - -=== delete multiple tuples - -`DELETE /gsql/v1/udt/tuples` - -This endpoint is used to delte multiple tuples. - -==== Parameters: - -[%autowidth] -|=== -| Name | Required | Description - -| `tupleName` -| yes -| the tuple names to be dropped -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'localhost:14240/gsql/v1/udt/tuples?tupleName=TestTuple' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped userDefinedTuple: [TestTup]."} ----- --- -==== - -''' - -=== delete one tuple - -`DELETE /gsql/v1/udt/tuples/{tupleName}` - -This endpoint is used to delete one tuple by its name. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'localhost:14240/gsql/v1/udt/tuples/TestTuple' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped userDefinedTuple: [TestTup]."} ----- --- -==== - -''' - -=== list all accumulators - -`GET /gsql/v1/udt/accum` - -This endpoint is used to get all accumulators. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/udt/accum' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"myGroup":"GroupByAccum b> myGroup\n"}]} ----- --- -==== - -''' - -=== list one accumulator - -`GET /gsql/v1/udt/accum/{accumName}` - -This endpoint is used to get one accumulator by its name. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/udt/accum/myGroup' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"myGroup":"GroupByAccum b> myGroup\n"}]} ----- --- -==== - -''' - -=== create accumulators - -`POST /gsql/v1/udt/accum` - -This endpoint is used to create one accumulator. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X POST 'localhost:14240/gsql/v1/udt/accum' -d '{"AccumString":"typedef GroupByAccum or typedef HeapAccum"}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully create accumulator."} ----- --- -==== - -''' - -=== delete mulitple accumulators - -`DELETE /gsql/v1/udt/accum` - -This endpoint is used to delete multiple accumulators. - -==== Parameters: - -[%autowidth] -|=== -| Name | Required | Description - -| `accumName` -| yes -| the accumulator names to drop -|=== - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'localhost:14240/gsql/v1/udt/accum?accumName=myGroup' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped accumulator: [myGroup]."} ----- --- -==== - -''' - -=== delete one accumulator - -`DELETE /gsql/v1/udt/accum/{accumName}` - -This endpoint is used to delete one accumulator. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X DELETE 'localhost:14240/gsql/v1/udt/accum/myGroup' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"Successfully dropped accumulator: [myGroup]."} ----- --- -==== - -''' - -=== download expr files - -`GET /gsql/v1/udt/files/{fileName}` - -This endpoint is used to download one file by its name, {fileName} can be one of: [tg_]ExprFunctions, [tg_]ExprUtil, TokenBank. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/udt/files/TokenBank' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"results": {"TokenBank": ""}} ----- --- -==== - -''' - -=== download all files - -`GET /gsql/v1/udt/files` - -This endpoint is used to get all files. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X GET 'localhost:14240/gsql/v1/udt/files' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"results": {"TokenBank": "TokenBank File Content", "ExprFunctions": "ExprFunctions file content", "ExprUtil": "", "tg_ExprFunctions": "", "tg_ExprUtil": ""}} ----- --- -==== - -''' - -=== upload one file - -`PUT /gsql/v1/udt/files/{fileName}` - -This endpoint is used to upload file. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: text/plain' -X PUT 'localhost:14240/gsql/v1/udt/files/TokenBank' -d '' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message": "Successfully update file: TokenBank"} ----- --- -==== - -''' - -=== upload file - -`PUT /gsql/v1/udt/files` - -This endpoint is used to upload all files. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -H 'Content-Type: application/json' -X PUT 'localhost:14240/gsql/v1/udt/files' -d '{"files":[{"Name":"ExprUtil","Content":""}]}' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message": "All files get updated: [TokenBank, ExprFunctions]."} ----- --- -==== - -''' - -=== get token bank functions - -`GET /gsql/v1/udt/token-functions/{functionName}` - -This endpoint is used to get function content by its name. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET 'localhost:14240/gsql/v1/udt/token-functions/_Concat' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":{"code":"token bank function code","name":"_Concat","returnType":"string"}} ----- --- -==== - -''' - -=== get all token bank functions - -`GET /gsql/v1/udt/token-functions` - -This endpoint is used to get all token bank functions. - -==== Example - -[,tabs] -==== -Sample Request:: -+ --- -[source,bash] ----- -curl -X GET 'localhost:14240/gsql/v1/udt/token-functions' ----- --- -Sample Response:: -+ --- -[source.wrap,console] ----- -{"error":false,"message":"","results":[{"code":"token bank function code","name":"_Concat","returnType":"string"}]} ----- --- -==== - -''' diff --git a/modules/API/pages/index.adoc.bak b/modules/API/pages/index.adoc.bak deleted file mode 100644 index d38c23e7..00000000 --- a/modules/API/pages/index.adoc.bak +++ /dev/null @@ -1,41 +0,0 @@ -= GSQL SERVER REST API -:description: Overview of GSQL SERVER's REST API. -:pp: {plus}{plus} -//:page-aliases: tigergraph-server:API:intro.adoc, tigergraph-server:api:intro.doc - -This user guide provides information on how to engage with our REST APIs: the introduction section explains how to send requests, pass parameters, and format request bodies, while xref:gsql-endpoints.adoc[] describes in detail each endpoint and its input and output. - -To submit a request, send an HTTP request to the NGINX server or the GSQL server. -By default, the GSQL server listens for requests at port 8123 and the NGINX server listens on port 14240. -A request must include the following specifications: - -* The request method (`GET`, `POST`, `PUT`, or `DELETE`) -* The endpoint address -* Any required or optional request parameters in URL encoding -* For `POST` requests, a data payload (i.e., request body) in JSON encoding unless otherwise specified -* In some cases, request header parameters - -For requests sent to the GSQL server, TigerGraph user credentials must be provided for the request to be accepted. - - -== `curl` options - -Request examples in this guide are made using https://curl.se/docs/manpage.html[`curl`]. Below is a list of `curl` options used in our code examples: - -* `-d ` - ** Sends the specified data in a `POST` request to the HTTP server in the same way that a browser does when a user has filled in an HTML form and presses the submit button. This will cause curl to pass the data to the server using the content-type `application/x-www-form-urlencoded`. - ** If the data starts with the character @, the rest should specify the filepath from which to read the data. The command `curl -d @foobar` will read data from a file named `foobar`. -* `--data-binary ` - ** Sends data with a `POST` request exactly as specified with no extra processing. -* `--fail` - ** Makes curl fail silently (no output at all) on server errors. - ** This is mostly done to enable scripts etc. to better deal with failed attempts. In normal cases when an HTTP server fails to deliver a document, it returns an HTML document stating so (which often also describes why and more). This flag will prevent curl from outputting that and return error 22. -* `-H
` - ** Extra header to include in the request when sending HTTP to a server. Any number of extra headers can be specified. - ** TigerGraph APIs use headers to specify xref:API:index.adoc#_size_and_time_limits[size and time limits], as well as to provide RESTPP xref:authentication.adoc#_restpp_server_requests[authentication] tokens. -* `-s` - ** Silent or quiet mode. Don't show a progress meter or error messages. It will still output the data you ask for, potentially even to the terminal/stdout unless you redirect it. -* `-u ` - ** Submits the specified user name and password for server authentication. -* `-X ` - ** Specifies a custom request method to use when communicating with the HTTP server. If this option is not used, curl will make a `GET` request by default. From 3b8580639b9e367214449a832f9c8ef8ba9000c9 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Mon, 31 Mar 2025 23:41:29 +0530 Subject: [PATCH 070/194] DOC-2415-FROM syntax changes (multiple_edge_type_accum_compilable) --- ...t_statement_index_multiple_edge_type_accum_compilable.gsql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_compilable.gsql b/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_compilable.gsql index e0b093c7..1458decb 100644 --- a/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_compilable.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_compilable.gsql @@ -2,7 +2,7 @@ CREATE QUERY multiple_edge_type_check_ex_2(VERTEX m1) FOR GRAPH Social_N ListAccum @@test_list1; all_user = {m1}; all_user = SELECT s - FROM (all_user:s) -[e:Posted|Liked|Friend]- (t:Post|Person) + FROM (s:all_user) -[e:Posted|Liked|Friend]- (t:Post|Person) ACCUM CASE WHEN e.type == "Liked" THEN // for Liked edges @@test_list1 += to_string(datetime_to_epoch(e.action_time)) @@ -12,4 +12,4 @@ CREATE QUERY multiple_edge_type_check_ex_2(VERTEX m1) FOR GRAPH Social_N @@test_list1 += to_string(datetime_to_epoch(t.post_time)) END; PRINT @@test_list1; -} \ No newline at end of file +} From 221c3ad072b5d8693b843e8c5bde7a6e507b4f55 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Mon, 31 Mar 2025 23:43:54 +0530 Subject: [PATCH 071/194] DOC-2415-FROM syntax changes (multiple_edge_type_accum_error) --- ...select_statement_index_multiple_edge_type_accum_error.gsql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_error.gsql b/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_error.gsql index 84959bd1..4b7c681d 100644 --- a/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_error.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_multiple_edge_type_accum_error.gsql @@ -2,10 +2,10 @@ CREATE QUERY multiple_edge_type_check_ex (VERTEX m1) FOR GRAPH Social_Ne ListAccum @@test_list_1, @@test_list_2, @@test_list_3; all_user = {m1}; all_user = SELECT s - FROM (all_user:s) -[e:Posted|Liked|Friend]- (t:Post|Person) + FROM (s:all_user) -[e:Posted|Liked|Friend]- (t:Post|Person) ACCUM @@test_list_1 += to_string(datetime_to_epoch(e.action_time)), @@test_list_2 += t.gender, @@test_list_3 += to_string(datetime_to_epoch(e.action_time)) + t.gender // <1> ; PRINT @@test_list_1, @@test_list_2, @@test_list_3; -} \ No newline at end of file +} From 878c55ba2f865b78a902af264e0d8aaf4d60df41 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 1 Apr 2025 00:07:29 +0530 Subject: [PATCH 072/194] DOC-2415-FROM syntax changes (index_updating_indirect_reference_vertex) --- ...ct_statement_index_updating_indirect_reference_vertex.gsql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/appendix/examples/social_net/select_statement_index_updating_indirect_reference_vertex.gsql b/modules/appendix/examples/social_net/select_statement_index_updating_indirect_reference_vertex.gsql index cd2ac7a6..3e13a4e6 100644 --- a/modules/appendix/examples/social_net/select_statement_index_updating_indirect_reference_vertex.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_updating_indirect_reference_vertex.gsql @@ -6,7 +6,7 @@ CREATE QUERY v_update_indirect_accum() FOR GRAPH Social_Net { persons = {Person.*}; // To each post, attach a list of persons who liked the post liked_posts = SELECT p - FROM (src:persons) -[e:Liked]-> (p:Post) + FROM (src:persons) -[e:Liked]\-> (p:Post) ACCUM p.@posters += src; @@ -21,4 +21,4 @@ CREATE QUERY v_update_indirect_accum() FOR GRAPH Social_Net { ORDER BY src.subject; PRINT persons[persons.@fellows]; -} \ No newline at end of file +} From c88d797d9bc72edabce856e5541a86fbd7e08c4f Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 1 Apr 2025 00:14:34 +0530 Subject: [PATCH 073/194] DOC-2415-FROM syntax changes (indirect_vertex_accum) --- .../select_statement_index_vertex_accum_example.gsql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/appendix/examples/social_net/select_statement_index_vertex_accum_example.gsql b/modules/appendix/examples/social_net/select_statement_index_vertex_accum_example.gsql index 24020a0a..d9058c1a 100644 --- a/modules/appendix/examples/social_net/select_statement_index_vertex_accum_example.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_vertex_accum_example.gsql @@ -4,8 +4,8 @@ CREATE QUERY user_posts() FOR GRAPH Social_Net { start = {Person.*}; // Find all user post topics and append them to the vertex list accum - user_postings = SELECT s FROM (s:start) -[Posted]- (g) + user_postings = SELECT s FROM (s:start) -[:Posted]- (g) ACCUM s.@person_posts += g.subject; PRINT user_postings; -} \ No newline at end of file +} From 76975c51ee1e83468edb6d17da2b3a30e0ff3e98 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 1 Apr 2025 00:18:44 +0530 Subject: [PATCH 074/194] DOC-2415-FROM syntax changes (index_where_and_or) --- .../select_statement_index_where_and_or.gsql | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/appendix/examples/social_net/select_statement_index_where_and_or.gsql b/modules/appendix/examples/social_net/select_statement_index_where_and_or.gsql index 06d19a1a..26fdec4c 100644 --- a/modules/appendix/examples/social_net/select_statement_index_where_and_or.gsql +++ b/modules/appendix/examples/social_net/select_statement_index_where_and_or.gsql @@ -5,31 +5,31 @@ CREATE QUERY find_female_members() FOR GRAPH Social_Net // are equivalent (i.e., produce the same results) all_vertices = {ANY}; # includes all posts and person - females = SELECT v FROM (all_vertices:v) + females = SELECT v FROM (v:all_vertices) WHERE v.type == "Person" AND v.gender != "Male"; - females = SELECT v FROM (all_vertices:v) + females = SELECT v FROM (v:all_vertices) WHERE v.type == "Person" AND v.gender == "Female"; - females = SELECT v FROM (all_vertices:v) + females = SELECT v FROM (v:all_vertices) WHERE v.type == "Person" AND NOT v.gender == "Male"; - females = SELECT v FROM (all_vertices:v) + females = SELECT v FROM (v:all_vertices) WHERE v.type != "Post" AND NOT v.gender == "Male"; /* does not compile. cannot use NOT operator in combination with type attribute - females = SELECT v FROM (all_vertices:v) + females = SELECT v FROM (v:all_vertices) WHERE NOT v.type != "Person" AND NOT v.gender == "Male"; does not compile. cannot use NOT operator in combination with type attribute - females = SELECT v FROM (all_vertices:v) + females = SELECT v FROM (v:all_vertices) WHERE NOT v.type == "Post" AND NOT v.gender == "Male"; - pperson_vertices = {Person.*}; + person_vertices = {Person.*}; females = SELECT v FROM (person_vertices:v) WHERE NOT v.gender == "Male"; @@ -43,4 +43,4 @@ CREATE QUERY find_female_members() FOR GRAPH Social_Net WHERE v.gender != "Male" OR false; PRINT females; -} \ No newline at end of file +} From 255be60ad278efe9883e29719ea86710fa71792d Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 1 Apr 2025 00:37:59 +0530 Subject: [PATCH 075/194] DOC-2415-FROM syntax changes (index_vertex_post_accum) --- .../work_net/select_statement_index_vertex_post_accum.gsql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/appendix/examples/work_net/select_statement_index_vertex_post_accum.gsql b/modules/appendix/examples/work_net/select_statement_index_vertex_post_accum.gsql index cbdd097e..ed7ff294 100644 --- a/modules/appendix/examples/work_net/select_statement_index_vertex_post_accum.gsql +++ b/modules/appendix/examples/work_net/select_statement_index_vertex_post_accum.gsql @@ -6,7 +6,7 @@ CREATE QUERY resident_employees() FOR GRAPH Work_Net { start = {Person.*}; - employees = SELECT s FROM (s:start) -[Works_For]- (c) + employees = SELECT s FROM (s:start) -[:Works_For]- (c) // If a person works for a company in the same country where they live, add the company to the list ACCUM CASE WHEN (s.location_id == c.country) THEN @@ -22,4 +22,4 @@ CREATE QUERY resident_employees() FOR GRAPH Work_Net { END; PRINT employees WHERE (employees.@works_and_lives == TRUE); -} \ No newline at end of file +} From cc0376b6b422aa42c59c4f7ba85ba08e18dcb01a Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 1 Apr 2025 00:42:48 +0530 Subject: [PATCH 076/194] DOC-2415-FROM syntax changes (index page) --- modules/querying/pages/select-statement/index.adoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/querying/pages/select-statement/index.adoc b/modules/querying/pages/select-statement/index.adoc index 7b0a182f..7a521fcf 100644 --- a/modules/querying/pages/select-statement/index.adoc +++ b/modules/querying/pages/select-statement/index.adoc @@ -194,7 +194,7 @@ In the following example, the selection conditions are completely specified in t .`WHERE` used as a filter [source,gsql] ---- -result_set1 = SELECT v FROM (v:S) -[e:(E1|E2|E3)]- (t:V1|V2); +result_set1 = SELECT v FROM (v:S) -[e:E1|E2|E3]- (t:V1|V2); result_set2 = SELECT v FROM (v:S) -[e:]- (t) WHERE t.type IN ("V1", "V2") AND t IN v.neighbors("E1|E2|E3"); ---- @@ -437,7 +437,7 @@ For example, consider the following clauses: [source,gsql] ---- -FROM (A:Person) -[Knows.Knows:Knows]- (C:Person) +FROM (A:Person) -[:Knows*2]- (C:Person) WHERE C.email = "Andy@www.com" ACCUM C.@pattern_count += 1 ---- @@ -1006,9 +1006,9 @@ There are three forms: .`LIMIT` scenarios [source.wrap,gsql] ---- -result = SELECT v FROM (S) -[e]- (v) LIMIT k; <1> -result = SELECT v FROM (S) -[e]- (v) LIMIT j, k; <2> -result = SELECT v FROM (S) -[e]- (v) LIMIT k OFFSET j; <3> +result = SELECT v FROM (:S) -[e]- (v) LIMIT k; // <1> +result = SELECT v FROM (:S) -[e]- (v) LIMIT j, k; // <2> +result = SELECT v FROM (:S) -[e]- (v) LIMIT k OFFSET j; // <3> ---- <1> Case 1: k = Count <2> Case 2: j = Offset from the start of the list, k = Count From b87b6a578619970aacd9b838abfe1f73d535f02e Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 1 Apr 2025 00:26:00 -0400 Subject: [PATCH 077/194] DOC-2388-optional-match and table layout improvements --- modules/openCypher-in-gsql/pages/index.adoc | 174 ++++++++++---------- 1 file changed, 91 insertions(+), 83 deletions(-) diff --git a/modules/openCypher-in-gsql/pages/index.adoc b/modules/openCypher-in-gsql/pages/index.adoc index 24bdc57a..7a35bb1c 100644 --- a/modules/openCypher-in-gsql/pages/index.adoc +++ b/modules/openCypher-in-gsql/pages/index.adoc @@ -15,7 +15,7 @@ From version 4.1.2, certain restrictions on the `MATCH` and `WITH` clauses have == openCypher Features in GSQL === Clauses -[cols="1,1"] +[cols="1,2"] |=== |Clause |Description @@ -35,6 +35,8 @@ See below for restrictions before version *4.1.2*. |MANDATORY MATCH |Reading Specify the patterns to search for in the database, and fail if no match is found. +|OPTIONAL MATCH |Reading Specify the patterns to search for in the database while using nulls for missing parts of the pattern. + |ORDER BY [ASC[ENDING] DESC[ENDING]] |Reading sub-clause A sub-clause following |RETURN or WITH |Specifying that the output should be sorted in either ascending (the default) or descending order. @@ -43,16 +45,18 @@ See below for restrictions before version *4.1.2*. |SKIP |Reading/Writing A sub-clause defining from which record to start including the records in the output. +|WHERE |Reading sub-clause A sub-clause used to add constraints to the patterns in a MATCH clause, or to filter the results of a WITH clause. + |WITH … [AS] |Projecting Allows query parts to be chained together, piping the results from one to be used as starting points or criteria in the next. See below for restrictions before version *4.1.2*. - -|WHERE |Reading sub-clause A sub-clause used to add constraints to the patterns in a MATCH clause, or to filter the results of a WITH clause. |=== === Operators -[cols="1,1"] +[cols="1,3"] |=== +|Operator |Description + |% |Mathematical Modulo division |* |Mathematical Multiplication @@ -112,131 +116,135 @@ See below for restrictions before version *4.1.2*. === Functions -[cols="1,1"] +[%autowidth] |=== -|abs() |Numeric Returns the absolute value of a number. +|Operator | Value type | Description -|acos() |Trigonometric Returns the arccosine of a number in radians. +|abs() |Numeric | Returns the absolute value of a number. -|asin() |Trigonometric Returns the arcsine of a number in radians. +|acos() |Numeric | Returns the arccosine of a number in radians. -|atan() |Trigonometric Returns the arctangent of a number in radians. +|asin() |Numeric | Returns the arcsine of a number in radians. -|atan2() |Trigonometric Returns the arctangent2 of a set of coordinates in radians. +|atan() |Numeric | Returns the arctangent of a number in radians. -|avg() |Aggregating Returns the average of a set of numeric values. +|atan2() |Numeric | Returns the arctangent2 of a set of coordinates in radians. -|ceil() |Numeric Returns the smallest floating point number that is greater than or equal to a number and equal to a mathematical integer. +|avg() |Numeric | Returns the average of a set of numeric values. -|coalesce() |Scalar Returns the first non-null value in a list of expressions. +|ceil() |Numeric | eturns the smallest floating point number that is greater than or equal to a number and equal to a mathematical integer. -|cos() |Trigonometric Returns the cosine of a number. +|coalesce() |Scalar |Returns the first non-null value in a list of expressions. -|cot() |Trigonometric Returns the cotangent of a number. +|cos() |Numeric | Returns the cosine of a number. -|count() |Aggregating Returns the number of values or records. +|cot() |Numeric | Returns the cotangent of a number. -|degrees() |Trigonometric Converts radians to degrees. +|count() |Numeric | Returns the number of values or records. -|e() |Logarithmic Returns the base of the natural logarithm, e. +|degrees() |Numeric | Converts radians to degrees. -|elementId() |Scalar Returns the String id of a relationship or node. +|e() |Numeric | Returns the base of the natural logarithm, e. -|exp() |Logarithmic Returns e^n, where e is the base of the natural logarithm, and n is the value of the argument expression. +|elementId() |Scalar |Returns the String id of a relationship or node. -|floor() |Numeric Returns the largest floating point number that is less than or equal to a number and equal to a mathematical integer. +|exp() |Numeric | Returns e^n, where e is the base of the natural logarithm, and n is the value of the argument expression. -|head() |Scalar Returns the first element in a list. +|floor() |Numeric | Returns the largest floating point number that is less than or equal to a number and equal to a mathematical integer. -|id() |Scalar Returns the id of a relationship or node. +|head() |Scalar |Returns the first element in a list. -|last() |Scalar Returns the last element in a list. +|id() |Scalar |Returns the id of a relationship or node. -|left() |String Returns a string containing the specified number of leftmost characters of the original string. +|labels() |List |Returns a list containing the string representations for all the labels of a node. -|log() |Logarithmic Returns the natural logarithm of a number. +|last() |Scalar |Returns the last element in a list. -|log10() |Logarithmic Returns the common logarithm (base 10) of a number. +|left() |String |Returns a string containing the specified number of leftmost characters of the original string. -|lTrim() |String Returns the original string with leading whitespace removed. +|log() |Numeric | Returns the natural logarithm of a number. -|labels() |List Returns a list containing the string representations for all the labels of a node. +|log10() |Numeric | Returns the common logarithm (base 10) of a number. -|max() |Aggregating Returns the maximum value in a set of values. +|lTrim() |String |Returns the original string with leading whitespace removed. -|min() |Aggregating Returns the minimum value in a set of values. -|pi() |Trigonometric Returns the mathematical constant pi. +|max() |Numeric | Returns the maximum value in a set of values. -|radians() |Trigonometric Converts degrees to radians. +|min() |Numeric | Returns the minimum value in a set of values. -|rand() |Numeric Returns a random floating point number in the range from 0 (inclusive) to 1 (exclusive); i.e. [0, 1). +|pi() |Numeric | Returns the mathematical constant pi. -|range() |List Returns a list comprising all integer values within a specified range. +|radians() |Numeric | Converts degrees to radians. -|replace() |String Returns a string in which all occurrences of a specified string in the original string have been replaced by another (specified) string. +|rand() |Numeric | Returns a random floating point number in the range from 0 (inclusive) to 1 (exclusive); i.e. [0, 1). -|reverse() |String Returns a string in which the order of all characters in the original string have been reversed. +|range() |List |Returns a list comprising all integer values within a specified range. -|right() |String Returns a string containing the specified number of rightmost characters of the original string. +|replace() |String |Returns a string in which all occurrences of a specified string in the original string have been replaced by another (specified) string. -|round() |Numeric Returns the value of a number rounded to the nearest integer. +|reverse() |String |Returns a string in which the order of all characters in the original string have been reversed. -|rTrim() |String Returns the original string with trailing whitespace removed. +|right() |String |Returns a string containing the specified number of rightmost characters of the original string. -|sign() |Numeric Returns the signum of a number: 0 if the number is 0, -1 for any negative number, and 1 for any positive number. +|round() |Numeric |Returns the value of a number rounded to the nearest integer. -|sin() |Trigonometric Returns the sine of a number. +|rTrim() |String |Returns the original string with trailing whitespace removed. -|size() |Scalar Returns the number of items in a list. (When applied to a list) +|sign() |Numeric |Returns the signum of a number: 0 if the number is 0, -1 for any negative number, and 1 for any positive number. -|split() |String Returns a list of strings resulting from the splitting of the original string around matches of the given delimiter. +|sin() |Numeric | Returns the sine of a number. -|sqrt() |Logarithmic Returns the square root of a number. +|size() |Numeric | Returns the number of items in a list. (When applied to a list) -|stDev() |Aggregating Returns the standard deviation for the given value over a group for a sample of a population. +|split() |List |Returns a list of strings resulting from the splitting of the original string around matches of the given delimiter. -|stDevP() |Aggregating Returns the standard deviation for the given value over a group for an entire population +|sqrt() |Numeric | Returns the square root of a number. -|substring() |String Returns a substring of the original string, beginning with a 0-based index start and length. +|stDev() |Numeric | Returns the standard deviation for the given value over a group for a sample of a population. -|sum() |Aggregating Returns the sum of a set of numeric values. +|stDevP() |Numeric | Returns the standard deviation for the given value over a group for an entire population -|tail() |List Returns all but the first element in a list. +|substring() |String |Returns a substring of the original string, beginning with a 0-based index start and length. -|tan() |Trigonometric Returns the tangent of a number. +|sum() |Numeric | Returns the sum of a set of numeric values. -|timestamp() |Scalar Returns the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC. +|tail() |List |Returns all but the first element in a list. -|trim() |String Returns the original string with leading and trailing whitespace removed. +|tan() |Numeric | Returns the tangent of a number. -|type() |Scalar Returns the string representation of the relationship type. +|timestamp() |Scalar |Returns the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC. -|toLower() |String Returns the original string in lowercase. +|trim() |String |Returns the original string with leading and trailing whitespace removed. -|toString() |String Converts an integer, float or boolean value to a string. +|toLower() |String |Returns the original string in lowercase. -|toUpper() |String Returns the original string in uppercase. +|toString() |String |Converts an integer, float or boolean value to a string. -|toBoolean() |Scalar Converts a string value to a boolean value. +|toUpper() |String |Returns the original string in uppercase. -|toFloat() |Scalar Converts an integer or string value to a floating point number. +|toBoolean() |Scalar |Converts a string value to a boolean value. -|toInteger() |Scalar Converts a floating point or string value to an integer value. +|toFloat() |Scalar |Converts an integer or string value to a floating point number. +|toInteger() |Scalar |Converts a floating point or string value to an integer value. + +|type() |Scalar |Returns the string representation of the relationship type. |=== === Expressions -[cols="1,1"] +[cols="1,3"] |=== -|CASE Expression |A generic conditional expression, similar to if/else statements available in other languages. +|Expression |Description + +|CASE |A generic conditional expression, similar to if/else statements available in other languages. |=== == openCypher Features Not Yet Supported === Clauses -[cols="1,1] +[cols="1,3"] |=== -|OPTIONAL MATCH |Reading Specify the patterns to search for in the database while using nulls for missing parts of the pattern. +|Clause |Description |CALL […YIELD] |Reading/Writing Invoke a procedure deployed in the database. @@ -246,51 +254,51 @@ See below for restrictions before version *4.1.2*. |REMOVE |Writing Remove properties and labels from nodes and relationships. +|SET |Writing Update labels on nodes and properties on nodes and relationships. + |UNION |Set operations Combines the result of multiple queries. Duplicates are removed. |UNION ALL |Set operations Combines the result of multiple queries. Duplicates are retained. |UNWIND … [AS] |Projecting Expands a list into a sequence of records. - -|SET |Writing Update labels on nodes and properties on nodes and relationships. |=== === Operators N/A === Functions -[cols="1,1"] -|=== -|collect() |Aggregating Returns a list containing the values returned by an expression. +[%autowidth] +|=== +| Function | Value Type | Description -|endNode() |Scalar Returns the end node of a relationship. +|collect() |Numeric | Returns a list containing the values returned by an expression. -|exists() |Predicate Returns true if a match for the pattern exists in the graph, or if the specified property exists in the node, relationship or map. +|endNode() |Scalar |Returns the end node of a relationship. -|keys() |List Returns a list containing the string representations for all the property names of a node, relationship, or map. +|exists() |Boolean | Returns true if a match for the pattern exists in the graph, or if the specified property exists in the node, relationship or map. -|length() |Scalar Returns the length of a path. +|keys() |List |Returns a list containing the string representations for all the property names of a node, relationship, or map. -|nodes() |List Returns a list containing all the nodes in a path. +|length() |Numeric | Returns the length of a path. -|percentileCont() |Aggregating Returns the percentile of the given value over a group using linear interpolation. +|nodes() |List |Returns a list containing all the nodes in a path. -|percentileDisc() |Aggregating Returns the percentile of the given value over a group using a rounding method. +|percentileCont() |Numeric | Returns the percentile of the given value over a group using linear interpolation. -|properties() |Scalar Returns a map containing all the properties of a node or relationship. +|percentileDisc() |Numeric | Returns the percentile of the given value over a group using a rounding method. -|relationships() |List Returns a list containing all the relationships in a path. +|properties() |Map | Returns a map containing all the properties of a node or relationship. -|reverse() |List Returns a list in which the order of all elements in the original list have been reversed. +|relationships() |List |Returns a list containing all the relationships in a path. -|size() |Scalar Returns the number of subgraphs matching the pattern expression. (When applied to -pattern expression) +|reverse() |List |Returns a list in which the order of all elements in the original list have been reversed. -|size() |Scalar Returns the size of a string. (When applied to string) +|size() of a pattern expression |Numeric | Returns the number of subgraphs matching the pattern expression. -|startNode() |Scalar Returns the start node of a relationship. +|size() of a string |Numeric | Returns the size of a string. +|startNode() |Scalar |Returns the start node of a relationship. |=== === Syntax From 834735db8b09c3ae3bb437b65465fb38e107f1ed Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 1 Apr 2025 23:22:13 -0400 Subject: [PATCH 078/194] DOC-2413-openCypher-behavior-4.2 --- modules/openCypher-in-gsql/pages/index.adoc | 30 +++++++++++++++------ 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/modules/openCypher-in-gsql/pages/index.adoc b/modules/openCypher-in-gsql/pages/index.adoc index 24bdc57a..f10c7f09 100644 --- a/modules/openCypher-in-gsql/pages/index.adoc +++ b/modules/openCypher-in-gsql/pages/index.adoc @@ -1,11 +1,13 @@ = openCypher in GSQL +:description: Summary of TigerGraph's level of support for the openCypher query language. :page-aliases: openCypher-in-gsql.adoc, openCypher-in-gsql/openCypher-in-gsql.adoc openCypher is a popular open-source declarative query language for property graphs. More about openCypher can be found at http://opencypher.org[openCypher.org]. -TigerGraph's GSQL query language supports many openCypher features. This page lists the features currently xref:_opencypher_features_in_gsql[supported] and features xref:_opencypher_features_not_yet_supported[not yet supported ]. +TigerGraph supports the majority of openCypher features, embedded within its native GSQL language. This page lists the features currently xref:_opencypher_features_in_gsql[supported] and features xref:_opencypher_features_not_yet_supported[not yet supported ]. + +It also describes how the different xref:#_key_differences_gsql_vs_opencypher[schema models in OpenCypher vs. GSQL] affect some queries. -To see how to run openCypher on the TigerGraph platform, see xref:index.adoc[]. [NOTE] ==== @@ -332,11 +334,23 @@ WHERE x.friendCount = y.friendCount * Pattern fragments (x:user) and (y:user) *are not* connected by edge traversal or by sharing vertex variables. -== Key Differences: GSQL vs. OpenCypher +[#_key_differences_gsql_vs_opencypher] +== OpenCypher vs. GSQL Schema Models + +GSQL, the language and storage engine, is strongly typed and *schema-first*: + +* Every vertex and edge belongs to a previously defined _type_. +* Each type had a characteristics set of properties (attributes); there are no optional properties. -GSQL is strongly typed and **schema-first**, while OpenCypher is **schema-optional**. This fundamental difference impacts how OpenCypher queries behave in each system. +OpenCypher is *schema-optional*: -=== Example: OpenCypher Query Behavior +* A vertex or edge _may_ have a _label_. +* A label _may_ be associated with characteristic set of properties. +* An individual vertex or edge could have additional properties. + +This fundamental difference impacts how OpenCypher queries behave in each system. + +=== Example Consider the following OpenCypher query: @@ -360,14 +374,14 @@ OpenCypher does not enforce a schema, so the query: * Processes all vertex types, regardless of their attributes * Returns values for existing attributes but returns `NULL` for attributes that do not exist -==== Importance +[#_importance] +==== Expected Outcomes For users migrating from OpenCypher to GSQL, it is important to understand that: * In GSQL, queries must align with the predefined schema. -* Unlike OpenCypher, GSQL does not return NULL for missing attributes—if a vertex does not contain all required attributes, it is not included in the result. +* Unlike OpenCypher, GSQL does not return NULL for missing attributes: if a vertex does not contain all required attributes, it is not included in the result. * A query attempting to access a non-existent attribute in GSQL may either return no results or be rejected if no matching vertex type exists. By understanding this distinction, users can write more effective OpenCypher queries tailored to GSQL’s schema-first approach. - From 16d72500c8e692bf11008ef074f5eba271cd4768 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 1 Apr 2025 23:41:45 -0400 Subject: [PATCH 079/194] DOC-2413-openCypher-behavior 4.2 polish --- modules/openCypher-in-gsql/pages/index.adoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/openCypher-in-gsql/pages/index.adoc b/modules/openCypher-in-gsql/pages/index.adoc index 8fc5bdf9..a7d6fb79 100644 --- a/modules/openCypher-in-gsql/pages/index.adoc +++ b/modules/openCypher-in-gsql/pages/index.adoc @@ -366,9 +366,9 @@ Consider the following OpenCypher query: MATCH (p) RETURN p.firstName, p.year -==== How GSQL Interprets This Query +==== How GSQL OpenCypher mode Interprets This Query -Since GSQL enforces a predefined schema, the query: +Since GSQL OpenCypher enforces a predefined schema, the query: * Only considers vertex types that contain both `firstName` and `year` attributes * Returns values only if both attributes exist in a given vertex type @@ -382,14 +382,14 @@ OpenCypher does not enforce a schema, so the query: * Processes all vertex types, regardless of their attributes * Returns values for existing attributes but returns `NULL` for attributes that do not exist +[#_key_considerations] [#_importance] -==== Expected Outcomes +==== Key Considerations -For users migrating from OpenCypher to GSQL, it is important to understand that: +For users migrating from OpenCypher to GSQL OpenCypher, it is important to understand that: * In GSQL, queries must align with the predefined schema. * Unlike OpenCypher, GSQL does not return NULL for missing attributes: if a vertex does not contain all required attributes, it is not included in the result. * A query attempting to access a non-existent attribute in GSQL may either return no results or be rejected if no matching vertex type exists. -By understanding this distinction, users can write more effective OpenCypher queries tailored to GSQL’s schema-first approach. - +By understanding this distinction, users can write more effective OpenCypher queries tailored to GSQL OpenCypher’s schema-first approach. From e582dc07623e1f3e5c97ec7a36c737857b6622c7 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 2 Apr 2025 04:05:51 -0400 Subject: [PATCH 080/194] DOC-2651-create-run-query-rewrite --- modules/querying/nav.adoc | 31 +- .../pages/create-and-install-queries.adoc | 524 ++++++++++++++++++ modules/querying/pages/img.png | Bin 88238 -> 0 bytes modules/querying/pages/query-modes.adoc | 251 +++++++++ modules/querying/pages/query-operations.adoc | 33 +- .../enable-cost-optimizer.adoc | 2 +- .../querying/pages/query-optimizer/index.adoc | 4 +- .../pages/query-optimizer/stats-api.adoc | 2 +- modules/querying/pages/run-queries.adoc | 1 + modules/querying/pages/syntax-versions.adoc | 2 +- ...-cloud.adoc => write-output-to-cloud.adoc} | 4 +- 11 files changed, 819 insertions(+), 35 deletions(-) create mode 100644 modules/querying/pages/create-and-install-queries.adoc delete mode 100644 modules/querying/pages/img.png create mode 100644 modules/querying/pages/query-modes.adoc create mode 100644 modules/querying/pages/run-queries.adoc rename modules/querying/pages/{write-query-data-to-cloud.adoc => write-output-to-cloud.adoc} (94%) diff --git a/modules/querying/nav.adoc b/modules/querying/nav.adoc index 4d1c41f9..f91dfb28 100644 --- a/modules/querying/nav.adoc +++ b/modules/querying/nav.adoc @@ -1,12 +1,19 @@ +* xref:query-modes.adoc[] + +* xref:query-optimizer/index.adoc[] +** xref:query-optimizer/enable-cost-optimizer.adoc[Enable Query Optimizer] +** xref:query-optimizer/stats-api.adoc[] +* xref:query-operations.adoc[Create and Run Queries] +** xref:distributed-query-mode.adoc[] * xref:index.adoc[GSQL Queries] ** xref:syntax-versions.adoc[] -** xref:query-operations.adoc[] -** xref:query-optimizer/index.adoc[] -*** xref:query-optimizer/enable-cost-optimizer.adoc[] -*** xref:query-optimizer/stats-api.adoc[] -** xref:distributed-query-mode.adoc[] + ** xref:data-types.adoc[] ** xref:accumulators.adoc[] +** xref:select-statement/index.adoc[] +*** xref:select-statement/from-clause-v2.adoc[] +*** xref:select-statement/select-statement-v1.adoc[] +*** xref:select-statement/sql-like-select-statement.adoc[] ** xref:operators-and-expressions.adoc[] ** xref:func/index.adoc[] *** xref:func/aggregation-functions.adoc[] @@ -24,14 +31,12 @@ *** xref:func/vector-functions.adoc[] *** xref:func/vertex-methods.adoc[] ** xref:declaration-and-assignment-statements.adoc[] -** xref:select-statement/index.adoc[] -*** xref:select-statement/from-clause-v2.adoc[] -*** xref:select-statement/select-statement-v1.adoc[] -*** xref:select-statement/sql-like-select-statement.adoc[] -** xref:control-flow-statements.adoc[] -** xref:data-modification-statements.adoc[] -** xref:output-statements-and-file-objects.adoc[] + +** xref:control-flow-statements.adoc[Control Flow] +** xref:data-modification-statements.adoc[Updating Data] +** xref:output-statements-and-file-objects.adoc[Writing Output] +*** xref:write-output-to-cloud.adoc[Write Output to Cloud] ** xref:exception-statements.adoc[] ** xref:comments.adoc[] -** xref:write-query-data-to-cloud.adoc[] + diff --git a/modules/querying/pages/create-and-install-queries.adoc b/modules/querying/pages/create-and-install-queries.adoc new file mode 100644 index 00000000..3e6c6357 --- /dev/null +++ b/modules/querying/pages/create-and-install-queries.adoc @@ -0,0 +1,524 @@ += Create and Install Queries +:navtitle: CREATE/INSTALL QUERY +:description: the CREATE QUERY and INSTALL QUERY commands in GSQL, key stages for developing optimized TigerGraph queries. +:toc: + +This page describes the <<#_create_query>> and <<#_install_query>> commands, the steps that precede running an installed (compiled) procedural query. +See + +[#_create_query] +== CREATE QUERY + +Define and store a procedural query in the catalog for future use. +The syntax of the query is checked but it is not compiled. + +=== Required privilege + +`CREATE_QUERY` or `UPDATE_QUERY` + +* To create a new query, `CREATE_QUERY` privilege is needed. +* To replace (update) a query, `UPDATE_QUERY` privilege is needed. + +=== Basic Syntax and Example + +[source,ebnf] +.Basic Syntax, with only the most common options +---- +createQuery := CREATE [OR REPLACE] [DISTRIBUTED] [OPENCYPHER] queryName + "(" [parameterList] ")" + [FOR GRAPH graphName] + "{" queryBody "}" + +queryBody := [declStmts] queryBodyStmts +---- + +[,gsql] +.Example +---- +CREATE OR REPLACE DISTRIBUTE QUERY listTopBooks <1> + (INT k = 10) <2> +{ + AvgAccum @avg_rating; <3> + + books = SELECT b <4> + FROM (u:User) -[r:User_Book_Rating]- (b:Book) + ACCUM b.@avg_rating := r.rating + ORDER BY b.@avg_rating DESC + LIMIT k; + PRINT books; +} +---- + +<1> The `queryName` is `listTopBooks`. +<2> The `[parameterList]` is a single parameter with a default value of 10. +<3> There is one `declStmt` : a local accumulator AvgAccum to compute average ratings of books. +<4> The `queryBodyStmts` has one `SELECT` and one `PRINT` statement. + + +=== Full Syntax and Options +[source,ebnf] +.Full syntax for CREATE QUERY +---- +createQuery := CREATE [OR REPLACE] [TEMPLATE | DISTRIBUTED] QUERY + [packageName["."packageName].]queryName + "(" [parameterList] ")" + [FOR GRAPH graphName] + [RETURNS "(" baseType | accumType ")"] + [API "(" apiName ")"] + [SYNTAX syntaxName] + "{" queryBody "}" + +queryBody := [typedefs] [declExceptStmts] queryBodyStmts +---- + + + +=== Key Parts of CREATE QUERY + +`OR REPLACE`:: + +If the optional keywords `OR REPLACE` are included, then this query definition, if error-free, replaces a previous definition with the same query name. +If the original query was installed, you'll need to reinstall the new query. ++ +However, if there are any errors in this query definition, then the previous query definition is maintained. +If the `OR REPLACE` option is not used, GSQL rejects a `CREATE QUERY` command that uses an existing name. +`DISTRIBUTED`:: +The `DISTRIBUTED` option applies only to installations where the graph has been distributed across a cluster. +If specified, the query will run with a different execution model which may give better performance for queries that traverse a large portion of the cluster. +For details, see xref:distributed-query-mode.adoc[Distributed Query Mode.] + +`queryName`:: Name of the query. + +`parameterList`:: A list of parameters for the query. +The parameter list for a query follows the following form: ++ +[source,ebnf] +---- +parameterType paramName ["=" constant] ["," parameterType paramName ["=" constant]]* +---- +For a list of allowed data types for query parameters, see xref:data-types.adoc#_query_parameter_types[Query parameter types]. + +`FOR GRAPH graphName`:: Specifies the graph that the query is created on. +This clause is optional if you have already specified a working graph either when entering GSQL or through the `USE GRAPH` command. + +`RETURNS` clause:: +The optional `RETURNS` clause makes the query a subquery and specifies the data type to be returned in the `RETURN` statement of the subquery. +For more information, see xref:operators-and-expressions.adoc#_subqueries[Subqueries]. + +`API v2`:: Specifies the JSON output format. +The only option is v2. + +`SYNTAX syntaxName`:: Specifies the GSQL syntax version to be used by the query. +See the +xref:querying:syntax-versions.adoc[] for an outline of the differences. +See +xref:tutorials:pattern-matching/index.adoc[Pattern Matching tutorial] for +details on v2. + +`queryBody`:: +The query body contains a sequence of data retrieval-and-computation statements. ++ +Typedefs allow the definition of custom types for use within the body. +The declarations support the definition of _accumulators_ (see Chapter "xref:accumulators.adoc[Accumulators]" for more details) and global/local variables. +All accumulators and global variables must be declared before any statements.There are various types of statements that can be used within the body. ++ +Typically, the core statement(s) in the body of a query is one or more `SELECT`, `UPDATE`, `INSERT`, `DELETE` statements. +The language supports conditional statements such as an `IF` statement as well as looping constructs such as `WHILE` and `FOREACH`. +It also supports calling functions, assigning variables, printing, and modifying the graph data. ++ +The query body may include calls to other queries. That is, the other queries are treated as subquery functions. +See the subsection on "xref:querying:operators-and-expressions.adoc#_subqueries[subqueries]". ++ +Additionally, GSQL supports openCypher syntax in the query body. See pages xref:openCypher-in-gsql:openCypher-in-gsql.adoc[], xref:openCypher-in-gsql:openCypher-in-gsql-web-shell.adoc[], and xref:openCypher-in-gsql:openCypher-gsql-from-clause-extension.adoc[] to learn more about openCypher and for examples. + +=== Examples + +.Example of a `CREATE QUERY` statement +[source.wrap,gsql] +---- +include::appendix:example$social_net/query_operations_example_create_query.gsql[] +---- + +=== Default query parameter values + +You can specify default values for parameters of primitive types when creating a query. Primitive types include: + +* `INT` +* `UINT` +* `FLOAT` +* `DOUBLE` +* `STRING` +* `BOOL` +* `DATETIME` + +To specify the default value for a parameter, use the assignment operator (`=`) after the parameter name and specify the default value: + +.Example of a `CREATE QUERY` command with a default parameter value +[source.wrap,gsql] +---- +include::appendix:example$social_net/query_operations_example_create_query_defaults.gsql[] +---- + +To specify the default value of a `DATETIME` type parameter, use the `to_datetime()` function. +You cannot use other functions that return a `DATETIME` value to specify the default value. +For example, the following query definition sets the default value of `d1` to `2023-01-01 00:00:00`. + +[.wrap,gsql] +---- +CREATE QUERY print_default(DATETIME d1 = to_datetime("2023-01-01 00:00:00")) { + PRINT d1; +} +---- + + + +[#_dynamic_querying] +=== Dynamic querying + +TigerGraph 3.0+ supports Dynamic Querying. +This means the query can be written and installed as a saved procedure without referencing a particular graph. +Schema details -- the name of the graph, vertex types, edge types, and attributes -- can all be parameterized and only need to be specified at run time. + +Here are the ingredients for a dynamic query: + +* *Graph name:* When xref:querying:query-operations.adoc#_create_query[creating a query], *`FOR GRAPH graphName`* is optional, as long as the graph has been specified already. +The graph name can be specified either when entering GSQL: *`GSQL -g graphName []`* or once inside the GSQL shell, by using the *`USE GRAPH graphName`* command. +* *Vertex type and edge type in `SELECT` statements*. +Typically, the xref:querying:select-statement/index.adoc#_from_clause[`FROM` clause] mentions the name of specific vertex types and edge types. +String or string set parameters can be used for edge and target types instead. +* *Attribute names*. +The xref:querying:func/vertex-methods.adoc[`getAttr` and `setAttr` functions], which take attribute name and data type as string parameters, can be used to parameterize attribute access. +* `INSERT` *statements*: If you are using xref:querying:data-modification-statements.adoc#_insert_into_statement[`INSERT`] to add data to your graph, you need to specify what type of vertex or edge you want to add.This can also be parameterized. + +The following example demonstrates Dynamic GSQL Query techniques using the xref:graph-ml:centrality-algorithms:pagerank.adoc[PageRank algorithm] from our Graph Data Science library. +The query is written with schema information embedded statically in it: + +* graph name = social +* vertex type = Page +* edge type = Link +* vertex attribute = Score + +[tabs] +==== +Embedded schema:: ++ +-- +[source,gsql] +---- +include::appendix:example$test-schema/query_operations_embedded_schema.gsql[] +---- +-- +Dynamic querying:: ++ +-- +[source,gsql] +---- +include::appendix:example$test-schema/query_operations_dynamic_querying.gsql[] +---- +-- +==== + + + +=== Draft queries + +GSQL internally has two statuses for queries, `DRAFT` and `VALID`. + +If your query passes the semantic checks upon running the `CREATE QUERY` command, it is saved automatically in `VALID` status. +If not, along with the error statement, a message appears to indicate the draft status. + +In this example, the first query gets saved upon running `CREATE QUERY`, while the second one remains a draft. + +[source, gsql] +---- +GSQL > CREATE QUERY valid_query(){ print 1; } +Successfully created queries: [valid_query]. + + +GSQL > BEGIN +GSQL > CREATE QUERY draft_query(){ +GSQL > PRINT; +GSQL > PRINT "I am a draft" +GSQL > } +GSQL > END +line 2:7 mismatched input ';' expecting {ABORT, AND, ANY, AVG, BY, COALESCE, COMMIT, COUNT, DATETIME_ADD, DATETIME_SUB, DISTINCT, FALSE, FILE, GROUP, INSERT, ISEMPTY, LASTHOP, LIST, LOG, MAP, MATCH, MAX, MIN, NOT, NOW, OR, PATH, PER, RANGE, REPLACE, SELECT_VERTEX, SET, SRC, SUM, TGT, TO_DATETIME, TRIM, TRUE, UPDATE, GSQL_INT_MAX, GSQL_INT_MIN, GSQL_UINT_MAX, '__ENGINE__E_ATTR', '__ENGINE__SRC_ATTR', '__ENGINE__TGT_ATTR', '__ENGINE__V_ATTR', '__ENGINE__SRC_VAL', '__ENGINE__TGT_VAL', '__ENGINE__V_VAL', '__ENGINE__MESSAGE', '__ENGINE__CONTEXT', '__ENGINE__REQUEST', '__ENGINE__SERVICEAPI', '(', '[', '-', '.', '_', CONST_INT, CONST_STR, NAME, GACCNAME} +line 4:0 mismatched input '}' expecting {TO_CSV, WHERE, ',', ';'} +Parsing encountered 2 syntax error(s) + +Saved as draft query with type/semantic error: [draft_query]. +---- + +Because the query status is determined and saved internally, there are no commands for users to choose to save valid queries as `DRAFT` status. + +Queries are not saved as drafts in the following situations: + +* The user does not have the correct permissions to create a query. +* An existing valid query has the same name, and there is no `REPLACE` command used while creating the new query. +* An existing valid query is called by another query. +** The new query will change its signature (parameters or return type). +* A circular call is detected, where `queryA` calls `queryB and `queryB` calls `queryA`. +** However, a recursive call (A calls A) is allowed. + +If a query is saved as a draft before it reaches valid status, any queries that call it are also set to draft status. + +[NOTE] +==== +If a user creates a query, this user becomes the owner of this query automatically. + +For a detailed description, please refer to xref:xref:tigergraph-server:user-access:fine-grained-query-privileges.adoc +==== + +[#_statement_types] +== Statement types + +A _statement_ is a standalone instruction that expresses an action to be carried out. +The most common statements are _data manipulation language (DML) statements_. +DML statements include the `SELECT`, `UPDATE`, `INSERT INTO`, `DELETE FROM`, and `DELETE` statements. + +A GSQL query has two levels of statements. +The upper-level statement type is called _query-body-level statement_, or _*query-body statement*_ for short. +This statement type is part of either the top-level block or a query-body control flow block. +For example, each of the statements at the top level directly under `CREATE QUERY` is a query-body statement. +If one of the statements is a `CASE` statement with several `THEN` blocks, each of the statements in the `THEN` blocks is also a query-body statement. +Each query-body statement ends with a semicolon. + +The lower-level statement type is called _DML-sub-level statement_ or _DML-sub statement_ for short. +This statement type is used inside certain query-body DML statements, to define particular data manipulation actions.DML-sub-statements are comma-separated. +There is no comma or semicolon after the last DML-sub-statement in a block. +For example, one of the top-level statements is a `SELECT` statement, each of the statements in its `ACCUM` clause is a DML-sub-statement. +If one of those DML-sub-statements is a `CASE` statement, each of the statement in the `THEN` blocks is a DML-sub-statement. + +There is some overlap in the types. +For example, an assignment statement can be used either at the query-body level or the DML-sub-level. + +[source,ebnf] +---- +queryBodyStmts := (queryBodyStmt ";")+ + +queryBodyStmt := assignStmt // Assignment + | vSetVarDeclStmt // Declaration + | gAccumAssignStmt // Assignment + | gAccumAccumStmt // Assignment + | lAccumAccumStmt // Assignment + | funcCallStmt // Function Call + | selectStmt // Select + | queryBodyCaseStmt // Control Flow + | queryBodyIfStmt // Control Flow + | queryBodyWhileStmt // Control Flow + | queryBodyForEachStmt // Control Flow + | BREAK // Control Flow + | CONTINUE // Control Flow + | updateStmt // Data Modification + | insertStmt // Data Modification + | queryBodyDeleteStmt // Data Modification + | printStmt // Output + | printlnStmt // Output + | logStmt // Output + | returnStmt // Output + | raiseStmt // Exception + | tryStmt // Exception + +DMLSubStmtList := DMLSubStmt ["," DMLSubStmt]* + +DMLSubStmt := assignStmt // Assignment + | funcCallStmt // Function Call + | gAccumAccumStmt // Assignment + | lAccumAccumStmt // Assignment + | attrAccumStmt // Assignment + | vAccumFuncCall // Function Call + | localVarDeclStmt // Declaration + | DMLSubCaseStmt // Control Flow + | DMLSubIfStmt // Control Flow + | DMLSubWhileStmt // Control Flow + | DMLSubForEachStmt // Control Flow + | BREAK // Control Flow + | CONTINUE // Control Flow + | insertStmt // Data Modification + | DMLSubDeleteStmt // Data Modification + | printlnStmt // Output + | logStmt // Output +---- + +Guidelines for understanding statement type hierarchy: + +* Top-level statements are Query-Body type (each statement ending with a semicolon). +* The statements within a DML statement are DML-sub statements (comma-separated list). +* The blocks within a Control Flow statement have the same type as the entire Control Flow statement itself. + +// Each statement's operation type is either ControlFlow, DML, or other. +// Each statement's syntax type is either queryBodyStmt or DMLSubStmt. + +.Schematic illustration of relationship between queryBodyStmt and DMLSubStmt +[source,gsql] +---- +CREATE QUERY stmt_types (parameterList) FOR GRAPH g [ + other queryBodyStmt1; + ControlFlow queryBodyStmt2 // ControlFlow inside top level. + other queryBodyStmt2.1; // subStmts in ControlFlow are queryBody unless inside DML. + ControlFlow queryBodyStmt2.2 // ControlFlow inside ControlFlow inside top level + other queryBodyStmt2.2.1; + other queryBodyStmt2.2.2; + END; + DML queryBodyStmt2.3 // DML inside ControlFlow inside top-level + other DMLSubStmt2.3.1, // switch to DMLSubStmt + other DMLSubStmt2.3.2 + ; + END; + DML queryBodyStmt3 // DML inside top level. + other DMLSubStmt3.1, // All subStmts in DML must be DMLSubStmt type + ControlFlow DMLSubStmt3.2 // ControlFlow inside DML inside top level + other DMLSubStmt3.2.1, + other DMLSubStmt3.2.2 + , + DML DMLsubStmt3.3 + other DMLSubStmt3.3.1, + other DMLSubStmt3.3.2 + ; + other queryBodyStmt4; +---- + +Here is a descriptive list of query-body statements: + +|=== +| EBNF term | Common Name | Description + +| assignStmt +| Assignment Statement +| See "Declaration and Assignment Statements" + +| vSetVarDeclStmt +| Vertex Set Variable Declaration Statement +| See "Declaration and Assignment Statements" + +| gAccumAssignStmt +| Global Accumulator Assignment Statement +| See "Declaration and Assignment Statements" + +| gAccumAccumStmt +| Global Accumulator Accumulation Statement +| See "Declaration and Assignment Statements" + +| lAccumAccumStmt +| Local Accumulator Accumulation Statement +| See "Declaration and Assignment Statements" + +| funcCallStmt +| Functional Call or Query Call Statement +| See "Declaration and Assignment Statements" + +| selectStmt +| SELECT Statement +| See "SELECT Statement" + +| queryBodyCaseStmt +| query-body CASE statement +| See "Control Flow Statements" + +| queryBodyIfStmt +| query-body IF statement +| See "Control Flow Statements" + +| queryBodyWhileStmt +| query-body WHILE statement +| See "Control Flow Statements" + +| queryBodyForEachStmt +| query-body FOREACH statement +| See "Control Flow Statements" + +| updateStmt +| UPDATE Statement +| See "Data Modification Statements" + +| insertStmt +| INSERT INTO statement +| See "Data Modification Statements" + +| queryBodyDeleteStmt +| Query-body DELETE Statement +| See "Data Modification Statements" + +| printStmt +| PRINT Statement +| See "Output Statements" + +| logStmt +| LOG Statement +| See Output Statements" + +| returnStmt +| RETURN Statement +| See "Output Statements" + +| raiseStmt +| PRINT Statement +| See "Exception Statements" + +| tryStmt +| TRY Statement +| See "Exception Statements" +|=== + +Here is a descriptive list of DML-sub-statements: + +|=== +| EBNF term | Common Name | Description + +| assignStmt +| Assignment Statement +| See "Declaration and Assignment Statements" + +| funcCallStmt +| Functional Call Statement +| See "Declaration and Assignment Statements" + +| gAccumAccumStmt +| Global Accumulator Accumulation Statement +| See "Declaration and Assignment Statements" + +| lAccumAccumStmt +| Local Accumulator Accumulation Statement +| See "Declaration and Assignment Statements"/ + +| attrAccumStmt +| Attribute Accumulation Statement +| See "Declaration and Assignment Statements" + +| vAccumFuncCall +| Vertex-attached Accumulator Function Call Statement +| See "Declaration and Assignment Statements" + +| localVarDeclStmt +| Local Variable Declaration Statement +| See "SELECT Statement" + +| insertStmt +| INSERT INTO Statement +| See "Control Flow Statements" + +| DMLSubDeleteStmt +| DML-sub DELETE Statement +| See "Data Modification Statements" + +| DMLSubcaseStmt +| DML-sub CASE statement +| See "Data Modification Statements" + +| DMLSubIfStmt +| DML-sub IF statement +| See "Data Modification Statements" + +| DMLSubForEachStmt +| DML-sub FOREACH statement +| See "Data Modification Statements" + +| DMLSubWhileStmt +| DML-sub WHILE statement +| See "Data Modification Statements" + +| logStmt +| LOG Statement +| See "Output Statements" +|=== + +## INSTALL QUERY diff --git a/modules/querying/pages/img.png b/modules/querying/pages/img.png deleted file mode 100644 index f8dbb78843e55fa8163480a39b317eb623dc64bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88238 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\>oKj(pxV=MhN5HIq?|FTTw#(6H#DODQ0Y+S1T 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 diff --git a/modules/querying/pages/query-modes.adoc b/modules/querying/pages/query-modes.adoc new file mode 100644 index 00000000..2da545c0 --- /dev/null +++ b/modules/querying/pages/query-modes.adoc @@ -0,0 +1,251 @@ += Query Language Choices +:description: Explains the options that TigerGraph users have for querying - language choice, execution mode, and API choice + +The TigerGraph database provides users with a wide range of choices for how to write and run queries, letting you choose what is the best fit for your needs and preferences. + +This page presents the options in a simple outline, pointing out the advantages and typical use cases for each mode or option. It then directs you to where you can learn in more detail about each option. + +The following sections will summarize the options in four areas: + +* xref:#_query_languages[] +* xref:#_query_structure[] +* xref:#_query_apis[] +* xref:#_execution_modes[] + +== Query Languages + +Query Language Options: + +* xref:#_gsql[] | xref:#_opencypher[] | xref:#_gsql[] + +=== GSQL + +GSQL is xref:index.adoc[TigerGraph's original native language]. +it offers graph traversal and pattern matching queries using declarative syntax similar to SQL, extends it for procedural programming to enable more complex algorithmic querying, adds _xref:querying:accumulators.adoc[accumulators]_ for efficient analytics, and installs (pre-compiles) queries to optimize the execution performance. + +GSQL is more than just for xref:querying:query-operations.adoc[querying] and xref:ddl-and-loading:defining-a-graph-schema.adoc[schema definition]. +It also includes a xref:ddl-and-loading:index.adoc[data loading language] to define stored procedures (jobs) that map and transform data from tabular sources to a graph. + +=== OpenCypher + +openCypher is a popular open-source declarative query language for property graphs. It is well suited for basic graph traversal queries and pattern matching queries. More about openCypher can be found at http://opencypher.org[openCypher.org]. + +GSQL V3 Syatax xref:openCypher-in-gsql:index.adoc[supports the majority of openCypher features], embedded within its native GSQL framework. +To learn to how to run OpenCypher on TigerGraph, see the link:https://github.com/tigergraph/ecosys/blob/master/tutorials/Cypher.md[OpenCypher in GSQL tutorial]. + +=== GQL + +GQL is a new ISO standard for a property graph query language. +Its initial version was published in 2024, focusing on pattern matching queries. +TigerGraph was and is a contributing member of the ISO GQL committee. + +GQL borrows from and extends both OpenCypher and GSQL, enabling a graceful transition for users. +link:https://github.com/tigergraph/ecosys/blob/master/tutorials/GSQL.md[GSQL's V3 Syntax for path patterns] aligns with GQL's syntax. +GQL can work with both schema-first and schema-optional graph databases. + +TigerGraph currently supports the path pattern matching syntax (the `MATCH` or `FROM` clause) of GQL. + +[TIP] +==== +* Use GSQL for analytical and algorithmic queries. +* Use OpenCypher for graph traversal queries if you are already familar with it. +* Become familiar with V3 syntax to learn GQL. +==== + +== Query Structure + +Query Structure Options: + +* Stored Procedure (Procedural and Saved) +* Anonymous (Procedural and Ad Hoc) +* Non-Procedural (Ad Hoc) + +=== Stored Procedure Queries + +Originally, all GSQL queries were *stored procedures*. +A stored procedure is a named sequence of executable statements that is *saved*, and then executing by calling it by name. +Key characteristics: + +* Looping and conditional flow, to implement algorithms and analytics +* Input parameters +* A header and body. The body is bounded by curly braces. +* Output must be explicitly requested with PRINT statements. + +NOTE: Since this was the only query structure format for some time, we will often simply refer to this choice as a *GSQL query*. + +.Example of a Stored Procedure Query +[console] +---- +CREATE QUERY topMovies(INT year, INT k) { + +topK = SELECT m FROM (m:Movie) WHERE m.year == year + ORDER BY m.boxoffice DESC + LIMIT k; +PRINT topK; +} +---- + +=== Anonymous Queries + +There are times when you will run a only query one or a few times. +You may not want to bother to first save it by name and then call it; you just want to run it. You may be exploring the data as you go, without a full plan in advance. You are building an application that will construct and run custom queries based on the interests of the end user's real time behavior and requests. +Similar to a stored procedura query, except + +* no name +* no parameters +* Still has a header, delimited body, and explicit output. + +.Example of an Anonymous Query +[console] +---- +CREATE QUERY () { + +topK = SELECT m FROM (m:Movie) WHERE m.year == 1939 + ORDER BY m.boxoffice DESC + LIMIT 10; +PRINT topK; +} +---- + + +=== Non-Procedural Queries + +Starting with version 4.2, TigerGraph can run non-procedural queries. +This is very much like how the composition of SQL queries: + +* No header. +* Output selection is implicit. +* Queries consisting of a single query statement/block do not need to define the body's start and end. +* Optionally, can use `BEGIN` and `END` to delimit a multi-line query. + +.Example of an Non-Procedural Query +[console] +---- +SELECT m FROM (m:Movie) WHERE m.year == 1939 ORDER BY m.boxoffice DESC LIMIT 10 +---- + +[IMPORTANT] +==== +Stored procedural queries with are installed (see Execution Modes) before running will always run faster and more effiiently, sometimes much faster. +==== + +== Query APIs + +There are four major APIs for running queries and performing other database operations: + +* xref:basics:running-gsql.adoc[GSQL command line interface] (aka GSQL Shell) +* xref:{page-component-version}@tigergraph-server:API:index.adoc[REST endpoints] +* Graphical user interface, in xref:gui:graphstudio:overview.adoc[GraphStudio] or xref:main@savanna:graph-development:gsql-editor/index.adoc[Savanna] +* xref:pytigergraph:core-functions:[pyTigerGraph] Python language driver + +.Query APIs +[cols="1,2,2"] +|=== +| API (link to documentation) | Description | Use Cases + +| xref:basics:running-gsql.adoc[GSQL CLI] +| Classic SQL-like commands +| text-based, interactive user + +| xref:{page-component-version}@tigergraph-server:API:index.adoc[REST endpoints] +| HTTP requests, JSON responses +| General application development + +| xref:gui:graphstudio:overview.adoc[GraphStudio], + xref:main@savanna:graph-development:gsql-editor/index.adoc[Savanna] +| Browser GUI-based interaces for building graphs, developing queries, and running queries +| Cloud users, those who prefer a graphical interface + +| xref:pytigergraph:core-functions:[pyTigerGraph] +| Open-source Python library +| Data science applications based on Python + +|=== + +== Query Execution Modes + +Excecution Mode Options: + +* Install and run a stored procedure query +* Interpret a stored procedure query +* interpret an ad hoc anonymous query +* Interpret a non procedural query +* BONUS: Distributed Mode + +=== Install and run a stored procedure query + +The classic--and still most performant--way to run a GSQL query is to create, install it, and run it. The `INSTALL` step provides a level of optimization that is not available when running in interpreted mode. + +[console] +---- +CREATE QUERY topMovies(INT year, INT k) { + +topK = SELECT m FROM (m:Movie) WHERE m.year == year + ORDER BY m.boxoffice DESC + LIMIT k; +PRINT topK; +} +INSTALL QUERY topMovies +RUN QUERY topMovies(1939, 10) +---- + +=== Interpret a stored procedure query + +When a developer is writing and refining a stored procedure query, they may be rapidly iterating through different versions of the query. +In this case, they may not want to take the time to install the query. +And if they are experimenting with a small database, they may not be concerned with the slower run time. + +In this case, they can simply skip the `INSTALL` step, and use `INTERPRET` instead of `RUN`: + +[console] +---- +CREATE QUERY topMovies(INT year, INT k) { + +topK = SELECT m FROM (m:Movie) WHERE m.year == year + ORDER BY m.boxoffice DESC + LIMIT k; +PRINT topK; +} +INTERPRET QUERY topMovies(1939, 10) +---- + +=== Interpret an ad hoc anonymous query + +If we plan to run a query just once, we can skip the step of saving the query. +The query is not named, and there is no need to have parameters. + +[console] +---- +INTERPRET QUERY () { +topK = SELECT m FROM (m:Movie) WHERE m.year == 1939 +ORDER BY m.boxoffice DESC +LIMIT 10; +PRINT topK; +} +---- + +[NOTE] +==== +When this approach is used by an application that is building the query, users often find the REST API or pyTigerGraph library to be the best fit. +==== + +=== Interpret a non procedural query + +This method, introduced in 4.2, is well-suited both for applications and for interactive users, due to its simplicity. +If you are running the GSQL shell, you simply type in the query with minimal overhead. +There is no `RUN` or `INTERPRET` command; you just submit the query itself. + +[console] +---- +SELECT m FROM (m:Movie) WHERE m.year == 1939 ORDER BY m.boxoffice DESC LIMIT 10 +---- + +For more examples, see the link:https://github.com/tigergraph/ecosys/blob/master/tutorials/GSQL.md#1-block-query-examples[1-Block Query Examples] in the GSQL V3 Tutorial. + +=== Distributed Mode + +We cannot end without mentioning Distributed Mode. +Any procedural query can be run in distributed mode. +It is the more performant mode when the query will traverse a large percentage of your graph, especially if it begins the query not at a single vertex but at a large set of vertices. + +For more information, see the xref:querying:distributed-query-mode.adoc[] page. \ No newline at end of file diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index a1baff18..48d1b6c0 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -1,9 +1,10 @@ -= Queries += Create and Run Queries :pp: {plus}{plus} :description: Commands in the GSQL query language associated with query operations. + A GSQL query is a sequence of data retrieval and computation statements executed as a single operation. -Users can write queries to explore and manipulate data in the graph, perform computations, update the graph, and retrieve results. +Users can write queries to explore and manipulate data in the graph, perform computations, update the graph, and retrieve results. A query functions similarly to a user-defined procedure or function, accepting one or more input parameters and producing output by either returning values or printing results. In addition to querying the graph, you can also manage descriptions for your queries and query parameters. This includes updating, viewing, and removing descriptions, which can help document and clarify the purpose of your queries. @@ -78,18 +79,18 @@ queryNamePrefix := name"*" A query can be run in one of three ways: . Define and run an unnamed query immediately: - .. `INTERPRET QUERY`: execute the query's statements +.. `INTERPRET QUERY`: execute the query's statements + Alternately, there is also a built-in REST{pp} endpoint to interpret a query string: + `POST /gsqlserver/interpreted_query` + See the xref:tigergraph-server:API:index.adoc[RESTPP API User Guide] for details. . Define a named query and then run it. - .. `CREATE QUERY`: define the functionality of the query - .. `INTERPRET QUERY`: execute the query with input values +.. `CREATE QUERY`: define the functionality of the query +.. `INTERPRET QUERY`: execute the query with input values . Define a named query, compile it to optimize performance, and then run it. - .. `CREATE QUERY`: define the functionality of the query - .. `INSTALL QUERY`: compile the query - .. `RUN QUERY`: execute the query with input values +.. `CREATE QUERY`: define the functionality of the query +.. `INSTALL QUERY`: compile the query +.. `RUN QUERY`: execute the query with input values There are some limitations to Interpreted Mode. See the section on <> and the appendix section xref:appendix:interpreted-gsql-limitations.adoc[Interpreted GSQL Limitations]. @@ -238,7 +239,7 @@ String or string set parameters can be used for edge and target types instead. The xref:querying:func/vertex-methods.adoc[`getAttr` and `setAttr` functions], which take attribute name and data type as string parameters, can be used to parameterize attribute access. * `INSERT` *statements*: If you are using xref:querying:data-modification-statements.adoc#_insert_into_statement[`INSERT`] to add data to your graph, you need to specify what type of vertex or edge you want to add.This can also be parameterized. -The following example demonstrates Dynamic GSQL Query techniques using the xref:graph-ml:centrality-algorithms:pagerank.adoc[PageRank algorithm] from our Graph Data Science library. +The following example demonstrates Dynamic GSQL Query techniques using the xref:graph-ml:centrality-algorithms:pagerank.adoc[PageRank algorithm] from our Graph Data Science library. The query is written with schema information embedded statically in it: * graph name = social @@ -747,7 +748,7 @@ parmeterValueJSON ::= '{"'parameterName'":' parameterValue(', "'parameterName'": Required privilege: EXECUTE_QUERY -To learn more about the -queue option, please refer xref:tigergraph-server:system-management:workload-management.adoc#_running_a_query[Workload Management] +To learn more about the -queue option, please refer xref:{page-component-version}@tigergraph-server:system-management:workload-management.adoc#_running_a_query[Workload Management] === Query parameters @@ -837,7 +838,7 @@ More details about all parameter types are described in xref:data-types.adoc#_qu [NOTE] ==== -If a vertex type has a xref:ddl-and-loading:defining-a-graph-schema.adoc#_composite_keys[composite key], use a comma to separate the different attributes to denote their ID. +If a vertex type has a xref:ddl-and-loading:defining-a-graph-schema.adoc#_composite_key_using_primary_key[composite key], use a comma to separate the different attributes to denote their ID. For example, if you have the following vertex definition: @@ -1248,7 +1249,7 @@ GSQL > SHOW DESCRIPTION OF QUERY_PARAM query2.* === Drop description -The `DROP DESCRIPTION` removes descriptions of queries or query parameters. +The `DROP DESCRIPTION` removes descriptions of queries or query parameters. *Syntax* [source] @@ -1257,12 +1258,12 @@ DROP DESCRIPTION OF [ON GRAPH ] ---- * `` can include a comma-separated list of names. -* For the `DROP DESCRIPTION` command, you can specify multiple queries or parameters in a single command using a comma-separated list. +* For the `DROP DESCRIPTION` command, you can specify multiple queries or parameters in a single command using a comma-separated list. Required privilege `WRITE_QUERY` -To remove a description, run the `DROP DESCRIPTION` command as shown below. +To remove a description, run the `DROP DESCRIPTION` command as shown below. [source, gsql] ---- @@ -1281,9 +1282,9 @@ Therefore, after dropping the query description, the query parameter's descripti [NOTE] ==== -* *Wildcards:* +* *Wildcards:* SHOW supports `\*` to both queries and parameters, while DROP only supports `*` to remove descriptions of all queries or parameters. -* *List of Objects:* +* *List of Objects:* SHOW cannot specify multiple objects in a comma-separated list, whereas DROP can. ==== diff --git a/modules/querying/pages/query-optimizer/enable-cost-optimizer.adoc b/modules/querying/pages/query-optimizer/enable-cost-optimizer.adoc index fde3e0f0..27b3fde0 100644 --- a/modules/querying/pages/query-optimizer/enable-cost-optimizer.adoc +++ b/modules/querying/pages/query-optimizer/enable-cost-optimizer.adoc @@ -1,4 +1,4 @@ -= Enabling Cost-Based Optimization (Preview Feature) += Enabling Cost-Based Optimization :sectnums: :description: Steps to enable the query optimizer. diff --git a/modules/querying/pages/query-optimizer/index.adoc b/modules/querying/pages/query-optimizer/index.adoc index dd891cba..b120b55c 100644 --- a/modules/querying/pages/query-optimizer/index.adoc +++ b/modules/querying/pages/query-optimizer/index.adoc @@ -1,9 +1,9 @@ -= Query Optimizer (Preview Feature) += Query Optimizer (Preview) :description: Overview of the query optimizer. The query optimizer optimizes the execution plan of a query. -When writing a GSQL query with multi-hop `SELECT` statements, the xref:querying:select-statement/index.adoc#_path_pattern[path pattern (Syntax V2)] specified in the `FROM` clause is declarative. +When writing a GSQL query with multi-hop `SELECT` statements, the xref:querying:select-statement/from-clause-v2.adoc#_path_pattern[path pattern (Syntax V2)] specified in the `FROM` clause is declarative. In other words, it specifies the structure of paths to be matched, without specifying the particulars of how the graph is traversed to find these paths. It is the query optimizer's job to determine the best graph traversal plan to satisfy the query. diff --git a/modules/querying/pages/query-optimizer/stats-api.adoc b/modules/querying/pages/query-optimizer/stats-api.adoc index f85280ec..c9ed71ad 100644 --- a/modules/querying/pages/query-optimizer/stats-api.adoc +++ b/modules/querying/pages/query-optimizer/stats-api.adoc @@ -1,4 +1,4 @@ -= Statistics REST APIs (Preview Feature) += Statistics REST APIs The endpoints on this page calculate cardinality and histogram statistics of vertex and edge types and attributes. The statistics are required for effective optimization. diff --git a/modules/querying/pages/run-queries.adoc b/modules/querying/pages/run-queries.adoc new file mode 100644 index 00000000..00590d72 --- /dev/null +++ b/modules/querying/pages/run-queries.adoc @@ -0,0 +1 @@ += Run Queries diff --git a/modules/querying/pages/syntax-versions.adoc b/modules/querying/pages/syntax-versions.adoc index 6a534ed0..c0d159a1 100644 --- a/modules/querying/pages/syntax-versions.adoc +++ b/modules/querying/pages/syntax-versions.adoc @@ -1,4 +1,4 @@ -= Query Language Syntax Versions += GSQL Syntax Versions :description: Summary of the differences between GSQL syntax V1 and V2. GSQL has three syntax versions: V3, V2, and V1 (legacy version). diff --git a/modules/querying/pages/write-query-data-to-cloud.adoc b/modules/querying/pages/write-output-to-cloud.adoc similarity index 94% rename from modules/querying/pages/write-query-data-to-cloud.adoc rename to modules/querying/pages/write-output-to-cloud.adoc index c6486d19..771278ea 100644 --- a/modules/querying/pages/write-query-data-to-cloud.adoc +++ b/modules/querying/pages/write-output-to-cloud.adoc @@ -1,4 +1,6 @@ -= Write Query Output to Cloud += Writing Output to Cloud Storage +:description: How to set up the ability to write query output to cloud storage +:page-aliases: write-query-data-to-cloud.adoc Before you can write query results to an S3 bucket, you need to set up the connection to the S3 service. This requires credentials like an AWS Access Key ID and Secret Access Key. Make sure the necessary read/write permissions are granted for the S3 bucket. There are two methods to configure these credentials: From 1e16ea03836b543618dd1fe2ef7749672f30b957 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 2 Apr 2025 04:14:12 -0400 Subject: [PATCH 081/194] DOC-2651-create-run-query-rewrite --- modules/querying/pages/query-modes.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/querying/pages/query-modes.adoc b/modules/querying/pages/query-modes.adoc index 2da545c0..fdaa8d90 100644 --- a/modules/querying/pages/query-modes.adoc +++ b/modules/querying/pages/query-modes.adoc @@ -1,4 +1,4 @@ -= Query Language Choices += Querying Choices :description: Explains the options that TigerGraph users have for querying - language choice, execution mode, and API choice The TigerGraph database provides users with a wide range of choices for how to write and run queries, letting you choose what is the best fit for your needs and preferences. @@ -10,7 +10,7 @@ The following sections will summarize the options in four areas: * xref:#_query_languages[] * xref:#_query_structure[] * xref:#_query_apis[] -* xref:#_execution_modes[] +* xref:#_query_execution_modes[] == Query Languages From 6200e9ca52b50c5290f127a5f745786fc7ea175e Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 2 Apr 2025 04:26:11 -0400 Subject: [PATCH 082/194] DOC-2651 tweak the querying menu --- modules/querying/nav.adoc | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/modules/querying/nav.adoc b/modules/querying/nav.adoc index f91dfb28..b20cdfbd 100644 --- a/modules/querying/nav.adoc +++ b/modules/querying/nav.adoc @@ -1,11 +1,7 @@ * xref:query-modes.adoc[] - -* xref:query-optimizer/index.adoc[] -** xref:query-optimizer/enable-cost-optimizer.adoc[Enable Query Optimizer] -** xref:query-optimizer/stats-api.adoc[] * xref:query-operations.adoc[Create and Run Queries] ** xref:distributed-query-mode.adoc[] -* xref:index.adoc[GSQL Queries] +* xref:index.adoc[GSQL Language] ** xref:syntax-versions.adoc[] ** xref:data-types.adoc[] @@ -39,4 +35,6 @@ ** xref:exception-statements.adoc[] ** xref:comments.adoc[] - +* xref:query-optimizer/index.adoc[] +** xref:query-optimizer/enable-cost-optimizer.adoc[Enable Query Optimizer] +** xref:query-optimizer/stats-api.adoc[] From bc3b1d9ea624ce48a84cc19460a54b2a19f903b3 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 2 Apr 2025 16:46:24 +0530 Subject: [PATCH 083/194] DOC-2487-Updating query optimizer section --- modules/querying/nav.adoc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/querying/nav.adoc b/modules/querying/nav.adoc index b20cdfbd..f0141aba 100644 --- a/modules/querying/nav.adoc +++ b/modules/querying/nav.adoc @@ -35,6 +35,9 @@ ** xref:exception-statements.adoc[] ** xref:comments.adoc[] -* xref:query-optimizer/index.adoc[] -** xref:query-optimizer/enable-cost-optimizer.adoc[Enable Query Optimizer] -** xref:query-optimizer/stats-api.adoc[] +* Profile and Optimize +** xref:profile-and-optimize/query-plan-cache.adoc[] +** xref:profile-and-optimize/query-profiling.adoc[] +** xref:profile-and-optimize/index.adoc[] +*** xref:profile-and-optimize/enable-cost-optimizer.adoc[Enable Query Optimizer] +*** xref:profile-and-optimize/stats-api.adoc[] From 87e652ff53d779d127358552085b82cfbdd2c6dc Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 2 Apr 2025 17:43:48 +0530 Subject: [PATCH 084/194] DOC-2487-Added a new page --- .../pages/query-optimizer/Query Plan Cache | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 modules/querying/pages/query-optimizer/Query Plan Cache diff --git a/modules/querying/pages/query-optimizer/Query Plan Cache b/modules/querying/pages/query-optimizer/Query Plan Cache new file mode 100644 index 00000000..b404a12b --- /dev/null +++ b/modules/querying/pages/query-optimizer/Query Plan Cache @@ -0,0 +1,54 @@ += Query Plan Cache + +This page covers how TigerGraph handles query execution and optimization through query plan caching. +When a query is executed, the system parses, transforms, and optimizes it before generating a query plan in JSON format to guide its execution. +While these steps are essential for processing the query, they can introduce significant overhead, especially when the same query is executed multiple times. +To mitigate this, TigerGraph caches the generated query plan in memory, ensuring faster execution on subsequent queries. + +== Query Normalization + +In many cases, users may frequently change constants in their queries. These changes can invalidate the cached query plan, making it necessary to re-interpret the query. +To handle this issue, TigerGraph employs a process known as *query normalization*. + +Query normalization helps maintain the validity of the cached query plan even when constants in the query change. Here's how it works: + +. *Extract Constants*: TigerGraph identifies and extracts constants from the query. For example, values like specific numbers or strings in the WHERE clause are identified as constants. + +. *Bind Variables*: The extracted constants are replaced with query parameters. This ensures that even if the constant values change, the query text itself remains unchanged. + +. *Cache the Normalized Query Plan*: The normalized query plan is cached, and since the text of the query doesn't change (only the constants are replaced with parameters), the plan remains valid even when the constants change. + +== Example of Query Normalization + +[source.wrap,gsql] +---- +INTERPRET QUERY () { + L = SELECT s + FROM Person:s + WHERE s.id >= 100 AND s.lastName == "Wang" + ; + R = SELECT t + FROM L:s -(LIKES>:e)- Comment:t + WHERE e.creationDate >= "1982-02-06 00:00:00" AND t.id >= 1200; + PRINT R.size() AS result_size; +} +---- + +In the example above, the query has constants like `100` and `"Wang"`, which are likely to change over time. +After normalization, the query would look like this: + +[source.wrap,gsql] +---- +INTERPRET QUERY (INT GSQL_p1, STRING GSQL_p2, STRING GSQL_p3, INT GSQL_p4) { + L = SELECT s + FROM Person:s + WHERE s.id >= GSQL_p1 AND s.lastName == GSQL_p2; + R = SELECT t + FROM L:s -(LIKES>:e)- Comment:t + WHERE e.creationDate >= GSQL_p3 AND t.id >= GSQL_p4; + PRINT R.size() AS result_size; +} +---- + +Here, the constants `100`, `"Wang"`, `"1982-02-06 00:00:00"`, and `1200` have been replaced with query parameters (`GSQL_p1`, `GSQL_p2`, `GSQL_p3`, `GSQL_p4`). +This allows the query plan to remain valid even if the values of these constants change in future executions. From ce9538e9ee07a4cd7093b2fe6e9c12fbf245c267 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 2 Apr 2025 10:34:27 -0400 Subject: [PATCH 085/194] Querying Choices - fix wrong link --- modules/querying/pages/query-modes.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/querying/pages/query-modes.adoc b/modules/querying/pages/query-modes.adoc index fdaa8d90..63d1e3cd 100644 --- a/modules/querying/pages/query-modes.adoc +++ b/modules/querying/pages/query-modes.adoc @@ -16,7 +16,7 @@ The following sections will summarize the options in four areas: Query Language Options: -* xref:#_gsql[] | xref:#_opencypher[] | xref:#_gsql[] +* xref:#_gsql[] | xref:#_opencypher[] | xref:#_gql[] === GSQL @@ -248,4 +248,4 @@ We cannot end without mentioning Distributed Mode. Any procedural query can be run in distributed mode. It is the more performant mode when the query will traverse a large percentage of your graph, especially if it begins the query not at a single vertex but at a large set of vertices. -For more information, see the xref:querying:distributed-query-mode.adoc[] page. \ No newline at end of file +For more information, see the xref:querying:distributed-query-mode.adoc[] page. From f4a7495b5c02c01066876bc0918a9d94a2cc1664 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 2 Apr 2025 14:23:43 -0400 Subject: [PATCH 086/194] DOC-2321-list-map-query-param --- modules/querying/pages/data-types.adoc | 27 ++++-- modules/querying/pages/query-operations.adoc | 96 +++++++++++++------- 2 files changed, 85 insertions(+), 38 deletions(-) diff --git a/modules/querying/pages/data-types.adoc b/modules/querying/pages/data-types.adoc index e71ad7ad..8edbdd54 100644 --- a/modules/querying/pages/data-types.adoc +++ b/modules/querying/pages/data-types.adoc @@ -622,11 +622,19 @@ When you write to an S3 path, any existing object will be overwritten. == Query parameter types -Input parameters to a query can be base type (except `EDGE` , `JSONARRAY`, or `JSONOBJECT`). -A parameter can also be a `SET` or `BAG` which uses base type (except `EDGE` , `JSONARRAY`, or `JSONOBJECT`) as the element type. A `FILE` object can also be a parameter. -Within the query, `SET` and `BAG` are converted to xref:accumulators.adoc#_setaccum[`SetAccum`] and xref:accumulators.adoc#_bagaccum[`BagAccum`], respectively. +A query can have one or more input parameters having any of the following types: -[WARNING] +* xref:#_base_types[Base types] (except `EDGE` , `JSONARRAY`, or `JSONOBJECT`). +* xref:#_file_object[FILE object] +* A `SET` or `BAG` of base type elements (except `EDGE` , `JSONARRAY`, or `JSONOBJECT`). +* As of 4.2, `LIST` and `MAP` of base type elements are also supported. + +Within the query, `SET`, `BAG`, `LIST`, and `MAP` parameters are converted to xref:accumulators.adoc#_setaccum[`SetAccum`], +xref:accumulators.adoc#_bagaccum[`BagAccum`], +xref:accumulators.adoc#_listaccum[`ListAccum`], and +xref:accumulators.adoc#_mapaccum_[`MapAccum`], respectively. + +[NOTE] ==== A query parameter is immutable. It cannot be assigned a new value within the query. @@ -646,16 +654,21 @@ parameterType := INT | BOOL | VERTEX ["<" vertexType ">"] | DATETIME - | [ SET | BAG ] "<" baseType ">" + | [ SET | BAG | LIST | MAP] "<" baseType ">" | FILE ---- -.Examples of collection type parameters +.Examples of base type and collection type parameter declarations [source,gsql] ---- -(SET p1, BAG ids, FILE f1) +(STRING name, BAG ids, SET> friends, FILE f1) ---- +For how to declare the parameters in a query, see xref:querying:query-operations.adoc#_parameters[CREATE QUERY: parameterList]. + +For how to run a query, see +* xref:querying:query-operations.adoc#_query_parameters[Parameters went running a query in the GSQL CLI]. +* xref:tigergraph-server:API:gsql-endpoints.adoc#_format_for_parameters_of_query_being_run[Parameters when running a query as a REST endpoint]. diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index 48d1b6c0..d9684c44 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -138,12 +138,13 @@ For details, see xref:distributed-query-mode.adoc[Distributed Query Mode.] `queryName`:: Name of the query. -`parameterList`:: A list of parameters for the query. -The parameter list for a query follows the following form: +`parameterList`:: A comma-separated list of parameters for the query. +Each parameter declaration gives the parameter type, the parameter name, and optionally, the default value of the parameter. + [source,ebnf] ---- -parameterType paramName ["=" constant] ["," parameterType paramName ["=" constant]]* +parameterDeclaration := parameterType paramName ["=" constant] +parameterDeclaration ["," parameterDeclaration]* ---- For a list of allowed data types for query parameters, see xref:data-types.adoc#_query_parameter_types[Query parameter types]. @@ -757,7 +758,15 @@ There are two ways of passing parameters to a query in a `RUN QUERY` command: * link:#_parameter_list[Pass parameters as an ordered list separated by commas] * link:#_parameter_json_object[Pass parameters by name in JSON] -==== Parameter list +[NOTE] +==== +These rules are for running a query in the GSQL CLI. +Slightly different rules apply when running the query either with the xref:{page-component-version}@tigergraph-server:API:built-in-endpoints.adoc#_run_an_installed_query_post[RESTPP endpoint] or with the newer xref:{page-component-version}@tigergraph-server:API:gsql-endpoints.adoc#_run_query[GSQL endpoint]. + +==== + +[#_parameter_list] +==== Ordered list of Parameters To pass parameters to a query with a list, the parameters must be put in the same order as they were in the query definition. Each value passed in will correspond to the parameter at the same index when the query was created. @@ -812,9 +821,11 @@ GSQL > RUN QUERY greet_person(21) } ---- -==== Parameter JSON object +[#_parameter_json_object] +==== Parameters by name -To pass query parameters by name with a JSON object, map the parameter names to their values in a JSON object enclosed in parentheses. Parameters that are not named in the JSON object will keep their default values for the execution of the query. +Passing parameters as a JSON object has two advantages: they can be in any order, and you simply omit ones if you accept the default. +To pass query parameters by name, map the parameter names to their values in a JSON object enclosed in parentheses. Parameters that are not named in the JSON object will keep their default values for the execution of the query. For example, if we have the following query: @@ -830,7 +841,8 @@ Supplying the parameters with a JSON object will look like the following. The pa RUN QUERY greet_person( {"name": "Emma", "age": 21} ) ---- -=== Complex type parameter passing +[#_complex_type_parameter_passing] +=== Parameter format for complex types This subsection describes how to format the complex type parameter values when executing a query by `RUN QUERY`. @@ -842,7 +854,7 @@ If a vertex type has a xref:ddl-and-loading:defining-a-graph-schema.adoc#_compos For example, if you have the following vertex definition: -[.wrap,gsql] +[cols="2,3,3",.wrap,gsql] ---- CREATE VERTEX Composite_Person(id UINT, name STRING, age UINT, primary key (name, id)) ---- @@ -853,27 +865,34 @@ A vertex ID would be `"Tom,456"`, consisting of the `name` attribute and the `id [width="100%",cols="28%,36%,36%",options="header",] |=== |Parameter type |Syntax |Example -|`DATETIME` |Use a string formatted as `"YYYY-MM-DD HH-MM-SS"` +|`DATETIME` |A string formatted as `"YYYY-MM-DD HH-MM-SS"` |`"2019-02-19 19:19:19"` -|Set or bag of primitives |Use square brackets to enclose the collection -of values. |A set of integers: `[1,5,10]` +|List/set/bag |Square brackets enclose a comma-separated list +of values. |A collection of integers: `[1,5,10]` -|Typed vertex parameter: `VERTEX` |If the vertex type is specified in the query -definition, then the vertex argument is `**vertex_id**` |The vertex type -is `Person` and the desired ID is `person2`. `"person2"` +|Map +|Divide the map in an ordered list of keys and a correspondingly ordered list +of values: JSON object containing a `"valuelist"` object and a `"keylist"` object +a| An map: -|Generic vertex parameter: `VERTEX` |If the type is not defined in the -query definition, then the argument must be a tuple of strings with both the id and type: `("vertex_id", "vertex_type")` |A vertex with ID `person1` and -type `Person`: `("person1","Person")` +`{"keylist":[49,50], "valuelist":["Alaska","Hawaii"]}}` -|Set or bag of typed vertex parameters `VERTEX` |Same as a set or bag of primitives, where -the primitive type is the vertex ID. |`[ "person3", "person4" ]` +|Typed vertex parameter: `VERTEX` +|If the vertex type is specified in the query definition, +then the vertex argument is `**vertex_id**` +|The vertex type +is `Person` and the desired ID is `person2`. `"person2"` + +|Generic vertex parameter: `VERTEX` +|If the type is not defined in the query definition, then the argument must be +a tuple of strings with both the id and type: `("vertex_id", "vertex_type")` +|A vertex with ID `person1` and type `Person`: `("person1","Person")` -|Set or bag of generic `VERTEX` parameters |Same as a set or bag of -vertices, with vertex type not pre-specified. Square brackets enclose a -comma-separated list of vertex (id, type) tuples. Mixed types are -permitted. |`[ ("person1","Person"),("11","Post") ]` +|List/set/bag of generic `VERTEX` parameters +|Square brackets enclose a comma-separated list of vertex +(id, type) tuples. Mixed types are permitted. +|`[ ("person1","Person"),("11","Post") ]` |=== @@ -882,17 +901,32 @@ Users who call these queries will provide `("id", "type")` tuple arguments for t ==== Parameter JSON object -[width="99%",cols="28%,36%,36%",options="header",] +Each parameter has the form `"":`. +The table below focuses on the part. + +[cols="2,3,3",options="header",] |=== -|Parameter type |Syntax |Example -|`DATETIME` |Use a string formatted as `"YYYY-MM-DD HH-MM-SS"` +|Parameter type |Syntax for Value |Example + +|`DATETIME` +|A string formatted as `"YYYY-MM-DD HH-MM-SS"` |`"2023-01-01 00:00:00"` -|Set or bag of primitives |Use a JSON array containing the primitive -values |`["a", "list", "of", "args"]` +|List/set/bag of primitives +|A JSON array containing the primitive values +|`["a", "list", "of", "args"]` + +|Map +|Divide the map in an ordered list of keys and a correspondingly ordered list +of values: JSON object containing a `"valuelist"` object and a `"keylist"` object +a| An map: + +`{"keylist":[49,50], "valuelist":["Alaska","Hawaii"]}}` -|`VERTEX` (typed vertex parameter) |Since the type is already specified in the query, you only need to use a JSON object containing the field -`"id"` for the vertex ID |`{"id": "person1"}` +|`VERTEX` (typed vertex parameter) +|Since the type is already specified in the query, you only need +to use a JSON object containing the field `"id"` for the vertex ID +|`{"id": "person1"}` |`VERTEX` (generic vertex parameter) @@ -900,7 +934,7 @@ values |`["a", "list", "of", "args"]` vertex ID and a field `"type"` for the type of the vertex. |`{"id": "person1","type": "Person"}` -|Set or bag of `VERTEX` |Use a JSON array containing a list of +|List/set/bag of `VERTEX` |Use a JSON array containing a list of JSON `VERTEX` objects |`[{"id": "person1"}, {"id": "person2"}]` |=== From c4c61b8d3ecab6541837d1f2c50b57a2e8e9851b Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 3 Apr 2025 00:10:49 +0530 Subject: [PATCH 087/194] DOC-2487-Final updates in the new page --- .../{Query Plan Cache => query-plan-cache} | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) rename modules/querying/pages/query-optimizer/{Query Plan Cache => query-plan-cache} (73%) diff --git a/modules/querying/pages/query-optimizer/Query Plan Cache b/modules/querying/pages/query-optimizer/query-plan-cache similarity index 73% rename from modules/querying/pages/query-optimizer/Query Plan Cache rename to modules/querying/pages/query-optimizer/query-plan-cache index b404a12b..2cafbd22 100644 --- a/modules/querying/pages/query-optimizer/Query Plan Cache +++ b/modules/querying/pages/query-optimizer/query-plan-cache @@ -3,12 +3,12 @@ This page covers how TigerGraph handles query execution and optimization through query plan caching. When a query is executed, the system parses, transforms, and optimizes it before generating a query plan in JSON format to guide its execution. While these steps are essential for processing the query, they can introduce significant overhead, especially when the same query is executed multiple times. -To mitigate this, TigerGraph caches the generated query plan in memory, ensuring faster execution on subsequent queries. +To mitigate this, TigerGraph caches the generated query plan in memory, ensuring faster execution on subsequent executions of a query. == Query Normalization -In many cases, users may frequently change constants in their queries. These changes can invalidate the cached query plan, making it necessary to re-interpret the query. -To handle this issue, TigerGraph employs a process known as *query normalization*. +In many cases, users may frequently change constants in their queries. These changes would invalidate the cached query plan, making it necessary to re-interpret the query. +To avoid the reinterpretation, TigerGraph employs a process known as *query normalization*. Query normalization helps maintain the validity of the cached query plan even when constants in the query change. Here's how it works: @@ -52,3 +52,8 @@ INTERPRET QUERY (INT GSQL_p1, STRING GSQL_p2, STRING GSQL_p3, INT GSQL_p4) { Here, the constants `100`, `"Wang"`, `"1982-02-06 00:00:00"`, and `1200` have been replaced with query parameters (`GSQL_p1`, `GSQL_p2`, `GSQL_p3`, `GSQL_p4`). This allows the query plan to remain valid even if the values of these constants change in future executions. + +There are two key xref:tigergraph-server:reference:configuration-parameters.adoc#gsql[configuration parameters] available to customize the query plan cache. +The `GSQL.QueryPlanCache.Enable` parameter enables the query plan cache, with the default value set to `true`. This ensures that query plans are cached to improve performance. +Additionally, the `GSQL.QueryPlanCache.Capacity` parameter defines the maximum number of queries that can be stored in the cache, with a default value of `10,000`. +This capacity can be adjusted within the range of 1 to 100,000, depending on your system’s requirements. From db7cda44487e3959450bad353d393c16446fecfc Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 2 Apr 2025 14:41:48 -0400 Subject: [PATCH 088/194] DOC-2321 proofRead: fix parameterList EBNF typo --- modules/querying/pages/query-operations.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index d9684c44..ba05eb61 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -32,8 +32,8 @@ parameterValue := parameterConstant | "[" parameterValue ["," parameterValue]* "]" // BAG or SET | "(" stringLiteral "," stringLiteral ")" // generic VERTEX value parameterConstant := numeric | stringLiteral | TRUE | FALSE -parameterList := parameterType paramName ["=" constant] - ["," parameterType paramName ["=" constant]]* +parameterDeclaration := parameterType paramName ["=" constant] +parameterList := parameterDeclaration ["," parameterDeclaration]* syntaxName := name @@ -144,7 +144,7 @@ Each parameter declaration gives the parameter type, the parameter name, and opt [source,ebnf] ---- parameterDeclaration := parameterType paramName ["=" constant] -parameterDeclaration ["," parameterDeclaration]* +parameterList := parameterDeclaration ["," parameterDeclaration]* ---- For a list of allowed data types for query parameters, see xref:data-types.adoc#_query_parameter_types[Query parameter types]. From 914d64354dd90b9b7868d2e9276784fb636efd1c Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 2 Apr 2025 14:44:38 -0400 Subject: [PATCH 089/194] DOC-2321 proofread: add missing subheading --- modules/querying/pages/query-operations.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index ba05eb61..f76ec7eb 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -862,6 +862,8 @@ CREATE VERTEX Composite_Person(id UINT, name STRING, age UINT, primary key (name A vertex ID would be `"Tom,456"`, consisting of the `name` attribute and the `id` attribute. ==== +==== Values in a parameter List + [width="100%",cols="28%,36%,36%",options="header",] |=== |Parameter type |Syntax |Example @@ -899,7 +901,7 @@ a tuple of strings with both the id and type: `("vertex_id", "vertex_type")` Queries that could take any vertex type as input should be written using generic `VERTEX` parameters. Users who call these queries will provide `("id", "type")` tuple arguments for these parameters. -==== Parameter JSON object +==== Values in parameter by name Each parameter has the form `"":`. The table below focuses on the part. From 4c434c2dd36b074e84e45fdb46ef23f76a1c1c1a Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 2 Apr 2025 14:56:19 -0400 Subject: [PATCH 090/194] DOC-2321 proofread: typo "went" -> "when" --- modules/querying/pages/data-types.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/data-types.adoc b/modules/querying/pages/data-types.adoc index 8edbdd54..d0986f9d 100644 --- a/modules/querying/pages/data-types.adoc +++ b/modules/querying/pages/data-types.adoc @@ -670,5 +670,5 @@ For how to declare the parameters in a query, see xref:querying:query-operations For how to run a query, see -* xref:querying:query-operations.adoc#_query_parameters[Parameters went running a query in the GSQL CLI]. +* xref:querying:query-operations.adoc#_query_parameters[Parameters when running a query in the GSQL CLI]. * xref:tigergraph-server:API:gsql-endpoints.adoc#_format_for_parameters_of_query_being_run[Parameters when running a query as a REST endpoint]. From c6f9dd05f9abaece00a2f8b48167408c231f4226 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 3 Apr 2025 00:50:21 +0530 Subject: [PATCH 091/194] Rename query-plan-cache to query-plan-cache.adoc --- .../query-optimizer/{query-plan-cache => query-plan-cache.adoc} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename modules/querying/pages/query-optimizer/{query-plan-cache => query-plan-cache.adoc} (100%) diff --git a/modules/querying/pages/query-optimizer/query-plan-cache b/modules/querying/pages/query-optimizer/query-plan-cache.adoc similarity index 100% rename from modules/querying/pages/query-optimizer/query-plan-cache rename to modules/querying/pages/query-optimizer/query-plan-cache.adoc From f35817aaf377ec2c6f529159aabc5405a4a950de Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 2 Apr 2025 15:48:54 -0400 Subject: [PATCH 092/194] DOC-2487, DOC-2449 update nav for Query Profile/Optimize/Query Plan Cache --- modules/querying/nav.adoc | 10 +++++----- .../querying/pages/query-optimizer/query-profilng.adoc | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 modules/querying/pages/query-optimizer/query-profilng.adoc diff --git a/modules/querying/nav.adoc b/modules/querying/nav.adoc index f0141aba..aa8f6404 100644 --- a/modules/querying/nav.adoc +++ b/modules/querying/nav.adoc @@ -36,8 +36,8 @@ ** xref:comments.adoc[] * Profile and Optimize -** xref:profile-and-optimize/query-plan-cache.adoc[] -** xref:profile-and-optimize/query-profiling.adoc[] -** xref:profile-and-optimize/index.adoc[] -*** xref:profile-and-optimize/enable-cost-optimizer.adoc[Enable Query Optimizer] -*** xref:profile-and-optimize/stats-api.adoc[] +** xref:query-optimizer/query-plan-cache.adoc[] +** xref:query-optimizer/query-profilng.adoc[] +** xref:query-optimizer/index.adoc[] +*** xref:query-optimizer/enable-cost-optimizer.adoc[Enable Query Optimizer] +*** xref:query-optimizer/stats-api.adoc[] diff --git a/modules/querying/pages/query-optimizer/query-profilng.adoc b/modules/querying/pages/query-optimizer/query-profilng.adoc new file mode 100644 index 00000000..6df45329 --- /dev/null +++ b/modules/querying/pages/query-optimizer/query-profilng.adoc @@ -0,0 +1,2 @@ += Query Profiling +:description: Query Profiling provides datato analyze the details of a query execution. \ No newline at end of file From 99f64405f9243431a8207702bb5cba40d6dc9df4 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 3 Apr 2025 00:03:43 -0400 Subject: [PATCH 093/194] DOC-2423/DOC-2445-schema-change-force-warn --- .../pages/defining-a-graph-schema.adoc | 54 ++++- .../pages/modifying-a-graph-schema.adoc | 193 ++++++++++++++---- 2 files changed, 208 insertions(+), 39 deletions(-) diff --git a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc index addc1d0b..db6ece16 100644 --- a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc +++ b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc @@ -56,7 +56,55 @@ You need the `WRITE_SCHEMA` privilege in the scope you are operating on to run c To learn more about permission and privileges, see xref:tigergraph-server:user-access:access-control-model.adoc[]. ==== -== `CREATE VERTEX` +== Global and Local Schemas + +In GSQL schema terminology, a *_graph_* is a subset of the database's vertex types and related edge types. That is, it is a subschema of the graph's total (global) schema. +(See xref:{page-component-version}@tigergraph-server:intro:multigraph-overview.adoc[]). + +Each graph is an access domain; users are granted the privilege to work on a particular graph(s). +We use *_local_* to mean graph-level as opposed to global level. + +Each vertex type or edge type is created as either global or local. + +A global type: + +* Can only be created or modified by a user with global schema prilivege, using xref:_create_vertex[] and xref:_create_edge[]. ++ +NOTE: Run xref:modifying-a-graph-schema.adoc#_use_global[] first to enter global mode. + +* Is put to use by assigning it to one or more local graph schemas, with xref:_create_graph[] or xref:modifying-a-graph-schema.adoc#_create_global_schema_change_job[GLOBAL SCHEMA CHANGE]. This means it is shared: any change to a global vertex is seen by all graphs that have that vertex. +* Queries run only on (local) graphs, not on the global schema. + +A local type: + +* Can only be created or modified by a user with schema privilege for that particular graph, using a xref:modifying-a-graph-schema.adoc[(local) SCHEMA CHANGE JOB] (not with CREATE VERTEX/EDGE). +* Is visible only to users with read privilege on that graph. + +Hence, a local graph can be a combination of global (shared) and local element types. + +Suppose we have Book and User vertex types which are both global. The friend_of and user_book_rating edges are local, belonging to the Rating_graph and Social_graph, respectively. +The bracketed numbers refer on one possible sequence for how the database got to this state. + +[cols="<,^,^,^"] +|=== +| type | scope |Rating_graph <3>| Social_graph <5> + +| Book <1> | global | x <3> | x <7> +| User <2> | global | x <3> | x <5> +| user_book_rating <4> | local | x <4> | +| friend_of <6> | local | | x <6> +|=== + +1. Book was created with CREATE VERTEX. +2. User was created with CREATE VERTEX. +3. Rating_graph was created with CREATE GRAPH, containing Book and User vertices. +4. user_book_rating was created with a SCHEMA CHANGE JOB on Rating_graph. +5. Social_graph was created with CREATE GRAPH, containing only User vertices. +6. friend_of was created with a SCHEMA CHANGE JOB on Social_graph. +7. Book was added to Social_graph using a GLOBAL SCHEMA CHANGE JOB. + + +== CREATE VERTEX *Required privilege*: `WRITE_SCHEMA` @@ -274,7 +322,7 @@ image::comms-graph-outdegree.png["Diagram of a graph with five person vertices. | 1 |=== -== `CREATE EDGE` +== CREATE EDGE `CREATE EDGE` defines a new global edge type. Data loaded to a global edge type in one graph will be shared across all graphs that use that edge type. See xref:modifying-a-graph-schema.adoc#_global_vs_local_schema_changes[Global vs. local schema changes] for instructions on creating local edges. @@ -463,7 +511,7 @@ Example: `ALTER VERTEX User ADD INDEX user_country_index ON (country);` -== `CREATE GRAPH` +== CREATE GRAPH `CREATE GRAPH` defines a graph schema, which contains the given vertex types and edge types, and prepares the graph store to accept data. The vertex types and edge types may be listed in any order. diff --git a/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc b/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc index f359162a..7b6ce40c 100644 --- a/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc +++ b/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc @@ -1,25 +1,46 @@ = Modifying a Graph Schema +:description: How to create and run schema changes; the side effects of schema change; global vs. local schema changes. -After a graph schema has been created , it can be modified. Data already stored in the graph and which is not logically part of the change will be retained. For example, if you had 100 Book vertices and then added an attribute to the Book schema, you would still have 100 Books, with default values for the new attribute. If you dropped a Book attribute, you still would have all your books, but one attribute would be gone. +GSQL lets you modify a graph schema -- add or remove vertex types, edge types, or attributes. Data already stored in the graph and which is not logically part of the change is unaffected. +For example, if you had 100 Book vertices and then added an attribute to the Book schema, you would still have 100 Books, with default values for the new attribute. If you dropped a Book attribute, you still would have all your books, but one attribute would be gone. -To safely update the graph schema, the user should follow this procedure: +The schema change workflow is as follows: -* Create a schema change job, which defines a sequence of `ADD`, `ALTER` and/or `DROP` statements. -* Run the schema change job (using *`RUN SCHEMA_CHANGE JOB `*), which will do the following: -** Attempt the schema change. -** If the change is successful, invalidate any loading job or query definitions which are incompatible with the new schema. -** if the change is unsuccessful, report the failure and return to the state before the attempt. +. xref:#_create_global_schema_change_job[Create a schema change job], which defines a sequence of `ADD`, `ALTER` and/or `DROP` statements. + +. [Recommended] If your schema change will drop any elements, prescreen your xref:#_side_effects_of_schema_change[queries and loading jobs for expected side effects]. + +. Either stop all database activity or read carefully the section on xref:#_dynamic_schema_change__abilities_and_limitations[dynamic schema change] to see what concurrent activity is reasonable. + +. xref:#_run_global_schema_change_job[Run the schema change job], which will do the following: +** It attempts the schema change. +** It aborts in-progress loading jobs or queries, depending on the options selected by the user. +** When the schema change is complete, xref:#_side_effects_of_schema_change[it invalidates any loading job or query definitions which are incompatible] with the new schema. +** If the change was unsuccessful, it reports the failure and return to the state before the attempt. + +. Review loading jobs and queries which we invalidated. +If they are still wanted, revise them and reinstall them to be consistent with the new schema. + + +== Side Effects of Schema Change + +When a schema changes, this has side effects on loading jobs and queries, both ones in the catalog and especially ones which may be actively running during the schema change. [WARNING] ==== A schema change will invalidate any loading jobs or query which relate to an altered part of the schema. Specifically: -* A loading job becomes invalid if it refers to a vertex or and an edge which has been *dropped* (deleted) or *altered* . -* A query becomes invalid if it refers to a vertex, and edge, or an attribute which has been *dropped* . +* A loading job becomes invalid if it refers to a vertex type or an edge type that has been DROPPED or ALTERED. -Invalid loading jobs are dropped, and invalid queries are uninstalled. After the schema update, the user will need to create and install new load and query jobs based on the new schema. +* A query becomes invalid if it refers to a vertex type, edge type, or an attribute of a type that has been DROPPED. + +Invalid loading jobs are moved to the `disabled` state, and invalid queries are uninstalled. After the schema change, a user will need to create and install new load and query jobs based on the new schema. ==== +Prior to 4.2, invalid loading jobs would be dropped (removed) from the catalog. Beginning with 4.2, loading jobs invalidated by a schema change are retained but marked as `disabled`. They cannot be re-enabled. They are retained for reference so users can read them, as a guide to creating a new loading job that is consistent with the new schema. + +Even queries which are not invalidated by a schema change may behave differently, if they traverse _all_ vertices or _all_ edges. + [WARNING] ==== Load or query operations which begin before the schema change will be completed based on the pre-change schema. Load or query operations which begin after the schema change, and which have not been invalidated, will be completed based on the post-change schema. @@ -28,6 +49,42 @@ Load or query operations which begin before the schema change will be completed Schema changes that are performed during times with high query or data loading volume may have a chance of failure. It is considered good practice to perform schema changes during times of low graph activity. +== Dynamic Schema Change - Abilities and Limitations + +Dynamic Schema Change (DSC) acts as a traffic manager for schema change jobs. First, if there are any active loading jobs in progress when a schema change is requested, and the schema change affects a graph element included in the loading job, DSC should pause the schema change until the loading job completes. + +Once the schema change begins, DSC enables a modest amount of database activity (queries and loading) during a schema change, but ONLY if those operations do not involve graph elements affected by the schema change. If the activity level is too high, there is a risk of either the schema change job not succeeding, the concurrent database activity not succeeding, or both. + +[WARNING] +==== +For maximum safety, is it best to halt all graph activity before and during a schema change. If a schema change job fails, it can leave the graph in an inconsistent state. +==== + +[IMPORTANT] +==== +Perform schema changes only when no active queries or loading jobs are running to avoid data consistency and application errors. +Always abort ongoing jobs before initiating the schema change. +==== + +=== Do's and Don'ts for Schema Change + +Because the demands of each graph activity vary, there is no universal way to state what level of concurrent graph activity can be handled by dynamic schema change. + +*Do's:* + +* *Do backup your data before performing a schema change* as a precaution. +* *Do perform schema changes only during no- or low-traffic periods.* + +*Don'ts:* + +* *Don’t change the schema during high-traffic periods.* Schema changes during heavy operations may cause system conflicts and errors. +* *Don't run queries and loading jobs which you know are affected by the schema* as they will be invalidated. + +*For maximum safety:* + +* *Don’t run any queries or loading jobs during schema changes.* + + [#_global_vs_Local_schema_changes] == Global vs. local schema changes @@ -36,7 +93,8 @@ It is considered good practice to perform schema changes during times of low gra Users must have the global scope to interact with global schema change jobs (create, delete, run). See xref:_use_global[]. ==== -=== `USE GLOBAL` + +=== USE GLOBAL The `USE GLOBAL` command changes a superuser's mode to Global mode. In global mode, a superuser can define or modify global vertex and edge types, as well as specifying which graphs use those global types. @@ -261,10 +319,93 @@ CREATE SCHEMA_CHANGE JOB add_reviews FOR GRAPH Book_Rating { RUN SCHEMA_CHANGE JOB add_reviews ---- -=== -N Option (Local and Global) +=== Run Schema Change Options + +==== `-warn` + +Before beginning the schema change, check to see if any loading jobs in progress have a schema conflict with the planned changes. +If so, ask the user if they want to abort the loading jobs. + +Example: + +[console] +---- +GSQL > RUN GLOBAL SCHEMA_CHANGE JOB change_vt_comment -warn + +[Warning] This schema change job will disrupt the following loading jobs: + - Graph test_graph: + load_ldbc_snb +Do you want to abort these loading jobs to proceed the schema change? (Y/n):yes + +WARNING: When modifying the graph schema, reinstalling all affected queries is required, and the duration of this process may vary based on the number and complexity of the queries. To skip query reinstallation, you can run with the '-N' option, but manual reinstallation of queries will be necessary afterwards. +[Warning] Following loading jobs will be aborted: + + - Graph test_graph: + load_ldbc_snb + +Kick off global schema change job change_vt_comment +Doing schema change on graph 'test_graph' (current version: 0) + +Doing schema change on the global schema (current version: 0) +Trying to drop attribute 'content' from global vertex 'Comment'. +Loading job 'load_ldbc_snb' from graph 'test_graph' will be disabled after schema change. + +Graph test_graph updated to new version 1 +Global schema change succeeded. +---- + +==== `-force` + +Before beginning the schema change, check to see if any loading jobs in progress have a schema conflict with the planned changes. If so, abort the loading jobs. + +Example: +---- +GSQL > RUN GLOBAL SCHEMA_CHANGE JOB change_vt_comment -force + +WARNING: When modifying the graph schema, reinstalling all affected queries is required, and the duration of this process may vary based on the number and complexity of the queries. To skip query reinstallation, you can run with the '-N' option, but manual reinstallation of queries will be necessary afterwards. +[Warning] Following loading jobs will be aborted: + + - Graph test_graph: + load_ldbc_snb + +Kick off global schema change job change_vt_comment +Doing schema change on graph 'test_graph' (current version: 0) + +Doing schema change on the global schema (current version: 0) +Trying to drop attribute 'content' from global vertex 'Comment'. +Loading job 'load_ldbc_snb' from graph 'test_graph' will be disabled after schema change. + +Graph test_graph updated to new version 1 +Global schema change succeeded. +---- + + + + + + +==== `-N` + + + +Option `-N`, for both global and local scopes, marks all queries as invalid and the user will need to manually re-install the invalid queries. + +Local jobs with the `-N` option will skip recompile and reinstall queries created for the local graph. + +.Example +[source,gsql] +---- +RUN SCHEMA_CHANGE JOB test_job -N +---- + +Global jobs with the `-N` option will skip recompile and re-install queries. + +.Example +[source,gsql] +---- +RUN GLOBAL SCHEMA_CHANGE JOB test_job -N +---- -Additionally, an option `-N` is currently supported for both local and global schema change jobs. -See xref:_n_option[] for more details. == `DROP JOB SCHEMA_CHANGE` @@ -454,30 +595,10 @@ CREATE GLOBAL SCHEMA_CHANGE JOB alter_friendship_make_library { RUN GLOBAL SCHEMA_CHANGE JOB alter_friendship_make_library ---- -=== `-N` Option +=== Run Global Schema Change Options -Additionally, an option `-N` is currently supported for both local and global schema change jobs. +RUN GLOBAL SCHEMA CHANGE JOB has the xref:#_run_schema_change_options[same options as RUN SCHEMA CHANGE JOB]. -[NOTE] -==== -Option `-N`, for both global and local scopes, will mark the queries as deprecated and the user will need to manually re-install the deprecated queries. -==== - -Local jobs with the `-N` option will skip recompile and reinstall queries created for the local graph. - -.Example -[source,gsql] ----- -RUN SCHEMA_CHANGE JOB test_job -N ----- - -Global jobs with the `-N` option will skip recompile and re-install queries. - -.Example -[source,gsql] ----- -RUN GLOBAL SCHEMA_CHANGE JOB test_job -N ----- === Impact Warning From 4ebaefd6f0a345fb052edefbd2465084dca182e3 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 3 Apr 2025 00:29:15 -0400 Subject: [PATCH 094/194] DOC-2445 Proofread - fix display text of an xref --- modules/ddl-and-loading/pages/defining-a-graph-schema.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc index db6ece16..08d850f5 100644 --- a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc +++ b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc @@ -70,7 +70,7 @@ A global type: * Can only be created or modified by a user with global schema prilivege, using xref:_create_vertex[] and xref:_create_edge[]. + -NOTE: Run xref:modifying-a-graph-schema.adoc#_use_global[] first to enter global mode. +NOTE: Run xref:modifying-a-graph-schema.adoc#_use_global[USE GLOBAL] first to enter global mode. * Is put to use by assigning it to one or more local graph schemas, with xref:_create_graph[] or xref:modifying-a-graph-schema.adoc#_create_global_schema_change_job[GLOBAL SCHEMA CHANGE]. This means it is shared: any change to a global vertex is seen by all graphs that have that vertex. * Queries run only on (local) graphs, not on the global schema. From 09c0dca67520b6e685c1aadf843778779eba8c4f Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 3 Apr 2025 00:50:27 -0400 Subject: [PATCH 095/194] fix broken link; fix filename query-profilng.adoc --- modules/querying/nav.adoc | 2 +- modules/querying/pages/data-types.adoc | 2 +- modules/querying/pages/query-optimizer/query-profiling.adoc | 2 ++ modules/querying/pages/query-optimizer/query-profilng.adoc | 2 -- 4 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 modules/querying/pages/query-optimizer/query-profiling.adoc delete mode 100644 modules/querying/pages/query-optimizer/query-profilng.adoc diff --git a/modules/querying/nav.adoc b/modules/querying/nav.adoc index aa8f6404..8de04b7a 100644 --- a/modules/querying/nav.adoc +++ b/modules/querying/nav.adoc @@ -37,7 +37,7 @@ * Profile and Optimize ** xref:query-optimizer/query-plan-cache.adoc[] -** xref:query-optimizer/query-profilng.adoc[] +** xref:query-optimizer/query-profiling.adoc[] ** xref:query-optimizer/index.adoc[] *** xref:query-optimizer/enable-cost-optimizer.adoc[Enable Query Optimizer] *** xref:query-optimizer/stats-api.adoc[] diff --git a/modules/querying/pages/data-types.adoc b/modules/querying/pages/data-types.adoc index d0986f9d..9a41d6f1 100644 --- a/modules/querying/pages/data-types.adoc +++ b/modules/querying/pages/data-types.adoc @@ -167,7 +167,7 @@ baseType := INT The default value of each base type is shown in the table below. The default value is the initial value of a base type variable (see Section "Variable Types" for more details), or the default return value for some functions. -The first seven types (`INT`, `UINT`, `FLOAT`, `DOUBLE`, `BOOL`, `STRING`, and `DATETIME`) are the same ones mentioned in the "xref:ddl-and-loading:attribute-data-types.adoc#_primitive_types[Attribute Data Types]" section of xref:ddl-and-loading:running-gsql.adoc[GSQL Language Reference, Part 1]. +The first seven types (`INT`, `UINT`, `FLOAT`, `DOUBLE`, `BOOL`, `STRING`, and `DATETIME`) are the same ones mentioned in the "xref:ddl-and-loading:attribute-data-types.adoc#_primitive_types[Attribute Data Types]" section of xref:ddl-and-loading:attribute-data-types.adoc[GSQL Language Reference, Part 1]. |=== | Type | Default value | Literal diff --git a/modules/querying/pages/query-optimizer/query-profiling.adoc b/modules/querying/pages/query-optimizer/query-profiling.adoc new file mode 100644 index 00000000..0a6e5652 --- /dev/null +++ b/modules/querying/pages/query-optimizer/query-profiling.adoc @@ -0,0 +1,2 @@ += Query Profiling +:description: Query Profiling provides data to analyze the details of a query execution. \ No newline at end of file diff --git a/modules/querying/pages/query-optimizer/query-profilng.adoc b/modules/querying/pages/query-optimizer/query-profilng.adoc deleted file mode 100644 index 6df45329..00000000 --- a/modules/querying/pages/query-optimizer/query-profilng.adoc +++ /dev/null @@ -1,2 +0,0 @@ -= Query Profiling -:description: Query Profiling provides datato analyze the details of a query execution. \ No newline at end of file From 04ce0623c32b789d13f6e84736d7a70f219170b7 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 3 Apr 2025 05:29:09 -0400 Subject: [PATCH 096/194] DOC-2415-change-FROM-to-v3 --- .../select-statement/from-clause-v3.adoc | 203 +++++++++++++++++ .../pages/select-statement/index.adoc | 205 ++++++++++++++++++ 2 files changed, 408 insertions(+) create mode 100644 modules/querying/pages/select-statement/from-clause-v3.adoc diff --git a/modules/querying/pages/select-statement/from-clause-v3.adoc b/modules/querying/pages/select-statement/from-clause-v3.adoc new file mode 100644 index 00000000..8ccda483 --- /dev/null +++ b/modules/querying/pages/select-statement/from-clause-v3.adoc @@ -0,0 +1,203 @@ += FROM Clause (Syntax V3 - GQL Compatible) +:navtitle: From Clause (V2) +:toc: + +[#_from_clause] +The FROM clause in GSQL is used to define path patterns for traversing the graph structure. +It is analogous to the MATCH clause in OpenCypher. + +It has the form + + FROM path_pattern + +A _path_ is a chain of vertices, linked by edges. +A _path pattern_ is a template expression for a path. +Formally, it is a chain of _vertex patterns_, linked by _edge patterns_. +The `FROM` clause searches for all paths that satisfy the path pattern. + +Here is an example of a FROM clause: + + FROM (s:Student) -[e:visited]-> (c:Country) + +`(s:Student)` and `(c:Country)` are vertex patterns. +`-[e:visited]\->` is an edge pattern. + +[NOTE] +==== +GSQL V3 supports the path pattern syntax of GQL as well as the GSQL V2 syntax. +The language parser automatically detects which syntax you are using. +==== + +[#_vertex_and_edge_aliases] +== Pattern Matching and Aliases + +The path pattern in preceding section means find the students who visited at least one country. +When a query is executed, a FROM clause generates a _binding table_. In this example, the columns of the table are `s`, `e`, and `c`, the three _aliases_. Each row of the table is a full set of aliases values that satisfies the pattern. + +For example, if + +[console] +---- + Maria visited Germany + Ahmed visited Japan +---- + +Aliases enable the subsequent parts of the query to refer to the pattern matches. For example `s` is the set (Maria, Ahmed). Likewise `c` is (Germany, Japan) + +However, if a clause refers to multiple aliases, it will maintain the row-wise integrity of the table. +For example, if an expression refers to both `s` and `c`, it will yield (Maria, Germany) and (Ahmed, Japan). +It will not yield (Maria, Japan) pr (Ahmed, Germany). + + +== Vertex Patterns + +A vertex pattern expresses a set of candidate vertices. +The fundamental notation is a pair of parentheses `( )`. +Within the parentheses is an _alias_, following by a colon, following by one or more vertex sets or vertex types, separated by vertical bars. This is optionally followed by a _pattern filter_. + +`(c:company)` + +Strictly speaking, the alias and vertex sets are optional, as shown in the table below. + +.Vertex Pattern Examples +[cols="2,3", separator="!"] +|=== +! Example ! Explanation + +!`(v:Account)` +!All Account vertices, aliased with `v` + +!`(:Account)` +!All Account vertices. No alias, so the matching vertices cannot be referred to later in the query. + +!`(v:)` +!All vertices, aliased with `v` + +!`(v:Account|Post)` +!All Account and Post vertices, aliased with `v` + +!`(v:Post {owner: "Lee"})` +!All Post vertices which satisfy the filter of attribute `owner` be equal to `Lee`, aliased with `v` +|=== + +== Edge Patterns + +An edge pattern expresses a set of candidate edges. +Edge patterns are more complicated than vertex patterns because edges have directionality. +The fundamental notation is a pair of square brackets [ ], which are themselves bracketed by _directionality markers_. + +Within the square brackets, the syntax is analogous to that of vertex patterns: an alias, a set of edge types or edge sets, and an optional filter. + +The table below lists the directionality markers. + +.Edge Directionality +[cols="1,^1", separator="!", none] +|=== +! Orientation ! Example + +! Directed Left +! `\<-[e]-` + +! Directed Right +! `-[e]\->` + +! Directed Left or Right +! `\<-[e]\->` + +! Undirected +! `\~[e]~` + +! Undirected or Directed Left +! `<\~[e]~` + +! Undirected or Directed Right +! `\~[e]~>` + +! Undirect, Directed Left, or Directed Right +! `-[e]-` +|=== + +=== Pattern Quantifiers + +GSQL has a special syntax for a repeated sequence of a pattern (usually repeated edges). +This shorthand is useful when the pattern is focusing only on the relationships (e.g., number of hops) and does not need to refer to the vertices amidst the repeated edges. For example, + + (s:Person{name:"Paul Erdos"}) -[:coauthor]-{1:3} (t:Person) + +means find all the Persons (alias `t`) who are within 3 degrees of coauthor connection with Paul Erdos. + +GSQL V3 supports two notations for edge quantifiers, GQL style and the GSQL style originating in GSQL V2. + +.GQL Style Pattern Quantifiers +[cols="1,2, 2", separator="!", none] +|=== +! Orientation ! Description ! Example + +! `{m,n}` +! from m to n repetitions +! `-[:paid]\->{2,4}` + +! `{m,}` +! m or more repetitions +! `-[:paid]\->{2,}` + +! `{,n}` +! from 0 to n repetitions +! `-[:paid]\->{,4}` + +! `*` +! 0 or more repetitions +! `-[:paid]\->*` + +! `+` +! 1 or more repetitions +! `-[:paid]\->+` +|=== + +.GSQL Style Pattern Quantifiers +[cols="1,2, 2", separator="!", none] +|=== +! Orientation ! Description ! Example + +! `*m..n*` +! from m to n repetitions +! `-[:paid*2..4]\->` + +! `*m..` +! m or more repetitions +! `-[:paid*m..]\->` + +! `*..n` +! 0 to n repetitions +! `-[:paid*..n]\->` + +! `*n` +! exactly n repetitions +! `-[:paid*n]\->*` + +! `*` +! 1 or more times +! `-[:paid*]\->*` +|=== + +=== Conjunctive Pattern Matching + +The pattern we have described so far are all linear path patterns. +You can combine two or more linear path patterns, simply by forming them as a comma-separated list. +They form a conjunction, meaning all of them must be satisfied in order to have a valid match result. + +The aliases used among them are shared. +So, if you use `s` in one pattern and `s` in another pattern, the are the same `s`. +This enables you to combine the linear patterns to for a "V"-shaped or "X"-shaped pattern + +For example: + +[console] +---- +(p:Person{name:"Paul Erdos"}) -[:coauthor]-{1:3} (t:Person), +(k:Person{name:"Kevin Bacon"}) -[:worked_with]-{1:3} (t:Person) +---- + +Find Persons (alias `t`) who both are within 3 coauthorship hops of Paul Erdos and within 3 coworker hops of Kevin Bacon. + + diff --git a/modules/querying/pages/select-statement/index.adoc b/modules/querying/pages/select-statement/index.adoc index 7a521fcf..20d3c1a6 100644 --- a/modules/querying/pages/select-statement/index.adoc +++ b/modules/querying/pages/select-statement/index.adoc @@ -47,6 +47,211 @@ The `SELECT` block has many optional clauses, which fit together in a logical fl Overall, the `SELECT` block starts from a source set of vertices and returns a result set that is either a subset of the source vertices or a subset of their neighboring vertices. Along the way, computations can be performed on the selected vertices and edges. +[#_from_clause] +== FROM Clause (Syntax V3 - GQL Compatible) +:navtitle: From Clause (V2) + + +The FROM clause in GSQL is used to define path patterns for traversing the graph structure. +It is analogous to the MATCH clause in OpenCypher. + +It has the form + + FROM path_pattern + +A _path_ is a chain of vertices, linked by edges. +A _path pattern_ is a template expression for a path. +Formally, it is a chain of _vertex patterns_, linked by _edge patterns_. +The `FROM` clause searches for all paths that satisfy the path pattern. + +Here is an example of a FROM clause: + + FROM (s:Student) -[e:visited]-> (c:Country) + +`(s:Student)` and `(c:Country)` are vertex patterns. +`-[e:visited]\->` is an edge pattern. + +[NOTE] +==== +GSQL V3 supports the path pattern syntax of GQL as well as the xref:select-statement/from-clause-v2.adoc[GSQL V2 syntax]. +The language parser automatically detects which syntax you are using. +==== + +[#_vertex_and_edge_aliases] +=== Pattern Matching and Aliases + +The path pattern in preceding section means find the students who visited at least one country. +When a query is executed, a FROM clause generates a _binding table_. In this example, the columns of the table are `s`, `e`, and `c`, the three _aliases_. Each row of the table is a full set of aliases values that satisfies the pattern. + +For example, if + +[console] +---- + Maria visited Germany + Ahmed visited Japan +---- + +Aliases enable the subsequent parts of the query to refer to the pattern matches. For example `s` is the set (Maria, Ahmed). Likewise `c` is (Germany, Japan) + +However, if a clause refers to multiple aliases, it will maintain the row-wise integrity of the table. +For example, if an expression refers to both `s` and `c`, it will yield (Maria, Germany) and (Ahmed, Japan). +It will not yield (Maria, Japan) pr (Ahmed, Germany). + +=== Vertex Patterns + +A vertex pattern expresses a set of candidate vertices. +The fundamental notation is a pair of parentheses `( )`. +Within the parentheses is an _alias_, following by a colon, following by one or more vertex sets or vertex types, separated by vertical bars. This is optionally followed by a _pattern filter_. + +`(c:company)` + +Strictly speaking, the alias and vertex sets are optional, as shown in the table below. + +.Vertex Pattern Examples +[cols="2,3", separator="!"] +|=== +! Example ! Explanation + +!`(v:Account)` +!All Account vertices, aliased with `v` + +!`(:Account)` +!All Account vertices. No alias, so the matching vertices cannot be referred to later in the query. + +!`(v:)` +!All vertices, aliased with `v` + +!`(v:Account|Post)` +!All Account and Post vertices, aliased with `v` + +!`(v:Post {owner: "Lee"})` +!All Post vertices which satisfy the filter of attribute `owner` be equal to `Lee`, aliased with `v` +|=== + +=== Edge Patterns + +An edge pattern expresses a set of candidate edges. +Edge patterns are more complicated than vertex patterns because edges have directionality. +The fundamental notation is a pair of square brackets [ ], which are themselves bracketed by _directionality markers_. + +Within the square brackets, the syntax is analogous to that of vertex patterns: an alias, a set of edge types or edge sets, and an optional filter. + +The table below lists the directionality markers. + +.Edge Directionality +[cols="1,^1", separator="!", none] +|=== +! Orientation ! Example + +! Directed Left +! `\<-[e]-` + +! Directed Right +! `-[e]\->` + +! Directed Left or Right +! `\<-[e]\->` + +! Undirected +! `\~[e]~` + +! Undirected or Directed Left +! `<\~[e]~` + +! Undirected or Directed Right +! `\~[e]~>` + +! Undirect, Directed Left, or Directed Right +! `-[e]-` +|=== + +=== Pattern Quantifiers + +GSQL has a special syntax for a repeated sequence of a pattern (usually repeated edges). +This shorthand is useful when the pattern is focusing only on the relationships (e.g., number of hops) and does not need to refer to the vertices amidst the repeated edges. For example, + + (s:Person{name:"Paul Erdos"}) -[:coauthor]-{1:3} (t:Person) + +means find all the Persons (alias `t`) who are within 3 degrees of coauthor connection with Paul Erdos. + +GSQL V3 supports two notations for edge quantifiers, GQL style and the GSQL style originating in GSQL V2. + +.GQL Style Pattern Quantifiers +[cols="1,2, 2", separator="!", none] +|=== +! Orientation ! Description ! Example + +! `{m,n}` +! from m to n repetitions +! `-[:paid]\->{2,4}` + +! `{m,}` +! m or more repetitions +! `-[:paid]\->{2,}` + +! `{,n}` +! from 0 to n repetitions +! `-[:paid]\->{,4}` + +! `*` +! 0 or more repetitions +! `-[:paid]\->*` + +! `+` +! 1 or more repetitions +! `-[:paid]\->+` +|=== + +.GSQL Style Pattern Quantifiers +[cols="1,2, 2", separator="!", none] +|=== +! Orientation ! Description ! Example + +! `*m..n*` +! from m to n repetitions +! `-[:paid*2..4]\->` + +! `*m..` +! m or more repetitions +! `-[:paid*m..]\->` + +! `*..n` +! 0 to n repetitions +! `-[:paid*..n]\->` + +! `*n` +! exactly n repetitions +! `-[:paid*n]\->*` + +! `*` +! 1 or more times +! `-[:paid*]\->*` +|=== + +=== Conjunctive Pattern Matching + +The pattern we have described so far are all linear path patterns. +You can combine two or more linear path patterns, simply by forming them as a comma-separated list. +They form a conjunction, meaning all of them must be satisfied in order to have a valid match result. + +The aliases used among them are shared. +So, if you use `s` in one pattern and `s` in another pattern, the are the same `s`. +This enables you to combine the linear patterns to for a "V"-shaped or "X"-shaped pattern + +For example: + +[console] +---- +(p:Person{name:"Paul Erdos"}) -[:coauthor]-{1:3} (t:Person), +(k:Person{name:"Kevin Bacon"}) -[:worked_with]-{1:3} (t:Person) +---- + +Find Persons (alias `t`) who both are within 3 coauthorship hops of Paul Erdos and within 3 coworker hops of Kevin Bacon. + + + + + == `SAMPLE` The `SAMPLE` clause is an optional clause that selects a uniform random sample from the population of edges or target vertices specified in the `FROM` argument. From 138da3baae7065edf927028fa4a3c70496b7700e Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 3 Apr 2025 18:10:51 +0530 Subject: [PATCH 097/194] DOC-2449-Added Query Profiling Page --- .../query-optimizer/query-profiling.adoc | 426 +++++++++++++++++- 1 file changed, 425 insertions(+), 1 deletion(-) diff --git a/modules/querying/pages/query-optimizer/query-profiling.adoc b/modules/querying/pages/query-optimizer/query-profiling.adoc index 0a6e5652..ba5acec7 100644 --- a/modules/querying/pages/query-optimizer/query-profiling.adoc +++ b/modules/querying/pages/query-optimizer/query-profiling.adoc @@ -1,2 +1,426 @@ = Query Profiling -:description: Query Profiling provides data to analyze the details of a query execution. \ No newline at end of file +:toclevels: 1 +:description: Query Profiling provides data to analyze the details of a query execution. + +This page provides an overview of query profiling in TigerGraph, a feature introduced in version 4.2.0. +Query profiling allows users to view detailed metrics and data about a query's execution, whether it is running or completed. +By analyzing query profiling data, users can identify performance bottlenecks, troubleshoot issues, and optimize queries for better performance. + +== Introduction + +Query profiling is designed to provide insights into query execution, allowing users to examine the performance of a query in real-time or after completion. This data helps identify potential areas for optimization and diagnose performance issues. +You can use query profiling to gain visibility into execution times, memory usage, and the number of vertices and edges accessed during query processing. + +== Scope + +=== Query Syntax + +This feature applies only to GSQL syntax and is not supported for OpenCypher syntax at this time. + +=== Query Mode + +Query profiling is supported for the following types of queries: + +* Installed *DISTRIBUTED* user-defined queries +* Installed *NON-DISTRIBUTED* user-defined queries, if installed with the `-SINGLE` flag (e.g., `INSTALL QUERY -SINGLE q1`) +* Three built-in endpoints: +** `/kstep_expansion` +** `/allpaths` +** `/searchvertex` + +For these queries, profiling data will include more detailed information about memory usage and the overall query execution, as explained in the xref:{page-component-version}@gsql-ref:querying:query-optimizer/query-profiling.adoc[Profiling Data Explanation] section below. + +== Prerequisite + +To enable query profiling, users must have the READ QUERY or OWNERSHIP privileges for the query being executed. +If RESTPP authentication is enabled, users will need to ensure they have the appropriate privileges. +Otherwise, they may encounter an error message like this: + +[source,json] +---- +{ + "version": { + "edition": "enterprise", + "api": "v2", + "schema": 1 + }, + "error": true, + "message": "Insufficient permissions to enable profiling on this request.", + "required_privileges": { + "Query Privileges": { + "GRAPHS": { + "SocialNet": { + "QUERIES": { + "qTest": { + "QUERY-LEVEL Privileges": [ + "READ [MISSING]" + ] + } + } + } + } + } + }, + "code": "REST-15001" +} +---- + +== How to Activate Profiling + +In TigerGraph version 4.2.0, profiling can be activated using the *PROFILE* flag. Currently, only one profiling mode, `BASIC`, is available. + +=== RESTPP Request + +Add the header -H "PROFILE: BASIC" to the request to activate profiling via RESTPP. Here’s an example: + +[source.wrap,bash] +---- +curl -H "PROFILE: BASIC" -X POST 'http://localhost:14240/restpp/query/testGraph/qtest' +---- + +If you want to fetch real-time profiling data for an asynchronous request, you can use the `/query_status` endpoint: + +[source.wrap,bash] +---- +// Send async request with profiling activated +curl -H "GSQL-ASYNC: true" -H "PROFILE: BASIC" -X GET 'http://localhost:14240/restpp/query/testGraph/qtest' + +// Get real-time profiling data +curl -X GET "http://localhost:14240/restpp/query_status?requestid=$reqid" +---- + +=== GSQL + +In GSQL Shell, you can activate profiling in two ways: + +==== RUN QUERY Option + +[source, gsql] +---- +GSQL > RUN QUERY -PROFILE BASIC qtest() +---- + +==== GSQL Session Parameter + +[source, gsql] +---- +GSQL > SET PROFILE = "BASIC" +GSQL > RUN QUERY qtest() +---- + +== Profiling Data Explanation + +When profiling is activated, the query result JSON and the `/query_status` output for real-time profiling will include a field called `profile`, which contains the profiling data. + +=== Profile Query Stages Breakdown + +To understand the query profiling stages, consider the following simple example: + +[source, gsql] +---- +CREATE DISTRIBUTED QUERY qTest(INT temp) { + INT threshold = 90; // statementKey 1 (1 action) + IF temp > threshold THEN // statementKey 2 (2 child statements) + STRING new_state = "sweat"; // statementKey 2.1 (1 action) + vSet = SELECT s from person:s // statementKey 2.2 (3 actions: create_vset, vertex, reduce) + POST-ACCUM s.state = new_state; + END; +} +---- + +The execution of this query `qTest` can be broken down into the following stages: + +* *Scheduling*: The stage between when TigerGraph receives the request and assigns a thread to process it. +* *Execution*: This stage includes several sub-stages: +** *Initialization*: Initializes global variables and starts workers on all nodes for distributed queries. +** *Processing*: The main logic of the query, including control flow, graph traversal, and data processing. +** *Finalization*: Constructs and sends the query result. + +Within the *Processing* stage, there are two types of fine-grained stages: + +* *Statement*: Represents a complete statement in the original query (e.g., graph traversal, control-flow). +* *Action*: Represents the smallest unit of execution in the final query plan. A statement without child statements will have child actions, while a statement with child statements will not have child actions. + +=== General Metrics + +Query profiling includes several general metrics at different levels (Query, Statement, and Action). Some of the key metrics are: + +==== ExecutionCount + +This metric indicates how many times a particular stage has been executed and completed. It does not count stages that are currently in progress. + +==== Time + +The time metric provides the following data: + +* *startTime*: The start time of the stage. +* *endTime*: The end time of the stage. + +[NOTE] +==== +If the execution count is greater than 1, the *startTime* and *endTime* fields will not be provided. +==== + +==== Memory + +The memory metric tracks memory usage across different GPE nodes. +It includes data for `vertexAccumulator` memory, which represents memory used by vertex-attached accumulators. + +Notice the vertexAccumulator include internal variables not explicitly declared in original query, so it can be non-zero even there’s no VERTEX-attached accumulators declared. + +Key memory fields: + +* *totalPeakMB*: Peak memory usage during the stage execution. +* *totalFinalMB*: Memory usage at the end of the stage. + +==== Topology + +Data for this metric is separated to different GPE nodes, with name in format `GPE__`. + +For each GPE node, this metric contains non-zeros values for following fields: + +* `vertex` +** `readCount`: The number of accesses to vertices. + +* `edge` +** `readCount`: The number of accesses to edges. + +* `table` +** `rowCount`: The number of accesses to table rows. + +* `join` +** `totalCount`: The total number of join operations. + +=== Profiling Data Hierarchy + +Profiling data is organized in three hierarchical levels: Query, Statement, and Action. +Each level provides additional details about the query execution. + +==== Query Level + +This is for field `profile.overall`. It may contain the following extra fields. + +* `runningActionKey`: current on-going action. It only appears before query completes. +* `time` +** `scheduling` +*** `schedulingTimeMs`: time spent on “Scheduling” +*** `schedulingTimePercentage`: percentage of `schedulingTimeMs` to the `totalTimeMs`. +** `execution` +*** `initialization` +**** `initializationTimeMs`: time spent on “Initialization” +**** `initializationTimePercentage`: percentage of `initializationTimeMs` to the `totalTimeMs`. +*** `processing` +**** `processingTimeMs`: time spent on “Processing” +**** `processingTimePercentage`: percentage of `processingTimeMs` to the `totalTimeMs`. +*** `finalization` +**** `finalizationTimeMs`: time spent on “Finalization” +**** `finalizationTimePercentage`: percentage of `finalizationTimeMs` to the `totalTimeMs`. +** `totalTimeMs`: total time of query run, including “Scheduling” and “Execution”. + +==== Statement Level + +Element in `profile.statements` are statement-level entries. +A statement-level entry can also contain child statements. Each statement-level entry represents a statement in the original query. +It may contain the following extra fields: + +* `statementKey`: this is unique key for this statement in the original query. +* `statementType`: type of this statement in the original query. +* `statementText`: text of this statement in the original query. +* `statementOverall` +** `time` +*** `processingTimeMs`: time spent on this statement, including all executions. +*** `processingTimePercentage`: percentage of `processingTimeMs` to query-level `totalTimeMs`. +*** `averageProcessingTimeMs`: average process time of each execution. It only appears when `executionCount > 1`. +* `statements`: child statement entries of this statement. +* `actions`: child action entries of this statement. + +==== Action Level + +Elements in `actions` of statement-level entry are action-level entries. +Each action-level entry represents a minimum execution unit in execution plan, from final transformed and optimized query. +It may contain the following extra fields: + +* `actionKey`: this is unique key for this action. +* `actionType`: type of this action in the final transformed query. +* `actionText`: text of this action in the final transformed query. +* `actionOverall` +** `time` +*** `processingTimeMs`: time spent on this action, including all executions. +*** `processingTimePercentage`: percentage of `processingTimeMs` to query-level `totalTimeMs`. +*** `averageProcessingTimeMs`: average process time of each execution. It only appears when `executionCount > 1`. + +== Disable Query Profiling Feature + +If the Query Profiling feature is causing issues, it can be disabled for all installed queries by adding `DISABLE_PROFILE=true;` to `GSQL.BasicConfig.Env`, then re-install all queries. + +== Limitation + +While query profiling is a powerful tool for diagnosing and optimizing query performance, there are some limitations: + +* It does not support OpenCypher syntax. +* It does not support `INTERPRET` queries. +* It is not available for non-distributed queries unless installed with the `-SINGLE` flag. +* Profiling does not include data for subqueries. +* Memory metrics do not account for edge and global accumulators. +* Topology metrics do not include attribute data. +* Profiling does not track create/update/delete operations in the topology metric. + +== Profiling Data Example + +=== Example of Profiling Data for Finished Request + +Below is an example final result for a request of query `qTest`, with profiling enabled. It’s running on a 2x1 cluster. + +[source,json] +---- +{ + "version": { + "edition": "enterprise", + "api": "v2", + "schema": 0 + }, + "error": false, + "message": "", + "results": [], + "profile": { + "queryName": "qTest", + "requestId": "16973826.RESTPP_1_1.1742242555505.N", + "serverId": "GPE_1_1", + "overall": { + "executionCount": 1, + "time": { + "startTime": "2025-03-17 20:15:55.505 UTC", + "endTime": "2025-03-17 20:16:02.420 UTC", + "totalTimeMs": 6915, + "scheduling": { + "schedulingTimeMs": 1, + "schedulingTimePercentage": 0.0145 + }, + "execution": { + "executionTimeMs": 6914, + "executionTimePercentage": 100, + "initialization": { + "initializationTimeMs": 4, + "initializationTimePercentage": 0.0578 + }, + "processing": { + "processingTimeMs": 6910, + "processingTimePercentage": 99.9 + }, + "finalization": { + "finalizationTimeMs": 0, + "finalizationTimePercentage": 0 + } + } + }, + "memory": { + "GPE_2_1": { + "vertexAccumulator": { + "totalPeakMB": 23, + "totalFinalMB": 21 + } + }, + "GPE_1_1": { + "vertexAccumulator": { + "totalPeakMB": 23, + "totalFinalMB": 21 + } + } + }, + "topology": { + "GPE_2_1": { + "vertex": { + "readCount": 12360296 + } + }, + "GPE_1_1": { + "vertex": { + "readCount": 12368774 + } + } + } + }, + "statements": [....] // Nested statement, details not showm + } + ] + } +} +---- + +=== Example of Realtime Profiling Data for Running Request + +Below is an example output of `/query_status` for an async request of query `qTest`, with profiling enabled, running on a 2x1 cluster. +You can notice this field `"runningActionKey": "2.2.3"`, which indicates the current running action. And there’s not much profiling data in `"actionOverall"` for `"actionKey": "2.2.3"`, except for the `"startTime"`. + +[source,json] +---- +{ + "version": { + "edition": "enterprise", + "api": "v2", + "schema": 0 + }, + "error": false, + "message": "", + "results": [ + { + "requestid": "16973827.RESTPP_1_1.1742242692587.N", + "startTime": "2025-03-17 20:18:12.587", + "expirationTime": "2025-03-17 20:18:28.587", + "url": "/query/SocialNet/qTest?temp=93", + "elapsedTime": 1137, + "status": "running", + "user": "", + "profile": { + "queryName": "qTest", + "requestId": "16973827.RESTPP_1_1.1742242692587.N", + "serverId": "GPE_2_1", + "overall": { + "executionCount": 0, + "runningActionKey": "2.2.3", + "time": { + "startTime": "2025-03-17 20:18:12.583 UTC", + "scheduling": { + "schedulingTimeMs": 0 + }, + "execution": { + "initialization": { + "initializationTimeMs": 4 + }, + "processing": {} + } + }, + "memory": { + "GPE_1_1": { + "vertexAccumulator": { + "totalPeakMB": 24, + "totalFinalMB": 21 + } + }, + "GPE_2_1": { + "vertexAccumulator": { + "totalPeakMB": 23, + "totalFinalMB": 21 + } + } + }, + "topology": { + "GPE_1_1": { + "vertex": { + "readCount": 6184387 + } + }, + "GPE_2_1": { + "vertex": { + "readCount": 6180148 + } + } + } + }, + "statements": [....] // Nested statement, details not showm + } + } + ], + "code": "REST-0000" +} +---- From de28f709f8444cc823d8bfa4ccff0e843f7f16cb Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 3 Apr 2025 20:50:05 +0530 Subject: [PATCH 098/194] DOC-2449-Updates done in run options --- .../query-optimizer/query-profiling.adoc | 41 +++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/modules/querying/pages/query-optimizer/query-profiling.adoc b/modules/querying/pages/query-optimizer/query-profiling.adoc index ba5acec7..cc4b973c 100644 --- a/modules/querying/pages/query-optimizer/query-profiling.adoc +++ b/modules/querying/pages/query-optimizer/query-profiling.adoc @@ -2,7 +2,7 @@ :toclevels: 1 :description: Query Profiling provides data to analyze the details of a query execution. -This page provides an overview of query profiling in TigerGraph, a feature introduced in version 4.2.0. +This page provides an overview of query profiling in TigerGraph, a feature introduced in version 4.2. Query profiling allows users to view detailed metrics and data about a query's execution, whether it is running or completed. By analyzing query profiling data, users can identify performance bottlenecks, troubleshoot issues, and optimize queries for better performance. @@ -67,45 +67,62 @@ Otherwise, they may encounter an error message like this: == How to Activate Profiling -In TigerGraph version 4.2.0, profiling can be activated using the *PROFILE* flag. Currently, only one profiling mode, `BASIC`, is available. +Activate profiling by setting a profiling mode. Currently, only one profiling mode, `BASIC`, is available. +You can choose the appropriate method from the options below based on whether you need real-time profiling or asynchronous query execution. === RESTPP Request -Add the header -H "PROFILE: BASIC" to the request to activate profiling via RESTPP. Here’s an example: +*Option 1*: +To activate profiling for a single query and view the profile information in real-time, add the `PROFILE: BASIC` header to your RESTPP request: [source.wrap,bash] ---- curl -H "PROFILE: BASIC" -X POST 'http://localhost:14240/restpp/query/testGraph/qtest' ---- -If you want to fetch real-time profiling data for an asynchronous request, you can use the `/query_status` endpoint: +*Option 2*: +To run a query asynchronously with profiling enabled, add both the `GSQL-ASYNC: true` and `PROFILE: BASIC` headers to your request: [source.wrap,bash] ---- -// Send async request with profiling activated curl -H "GSQL-ASYNC: true" -H "PROFILE: BASIC" -X GET 'http://localhost:14240/restpp/query/testGraph/qtest' +---- + +*Option 3*: +To fetch real-time profiling data for a query running in asynchronous mode, use the `/query_status` endpoint: -// Get real-time profiling data +[source.wrap,bash] +---- curl -X GET "http://localhost:14240/restpp/query_status?requestid=$reqid" ---- === GSQL -In GSQL Shell, you can activate profiling in two ways: +*Option 1*: +In GSQL, you can activate profiling for a single query and view the profile information during execution using the following command: -==== RUN QUERY Option +[source, gsql] +---- +RUN QUERY -PROFILE BASIC qtest() +---- + +*Option 2*: +To run a query asynchronously in GSQL with profiling enabled, use the `-async` flag: [source, gsql] ---- -GSQL > RUN QUERY -PROFILE BASIC qtest() +RUN QUERY -async ---- -==== GSQL Session Parameter +Make sure to replace `` with the name of the query you are running. + +*Option 3*: +You can set the profiling mode for a session in GSQL. Use the `SET PROFILE` command to enable profiling in your session: [source, gsql] ---- -GSQL > SET PROFILE = "BASIC" -GSQL > RUN QUERY qtest() +SET PROFILE = "BASIC" +RUN QUERY qtest() ---- == Profiling Data Explanation From 6cb0437be258a211c7fb1cf96d99a8483037c316 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 3 Apr 2025 12:08:28 -0400 Subject: [PATCH 099/194] DOC-2449 proofread query profiling main page --- .../query-optimizer/query-profiling.adoc | 76 +++++++++++-------- 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/modules/querying/pages/query-optimizer/query-profiling.adoc b/modules/querying/pages/query-optimizer/query-profiling.adoc index cc4b973c..1f027f4b 100644 --- a/modules/querying/pages/query-optimizer/query-profiling.adoc +++ b/modules/querying/pages/query-optimizer/query-profiling.adoc @@ -1,6 +1,7 @@ = Query Profiling -:toclevels: 1 :description: Query Profiling provides data to analyze the details of a query execution. +:toc: +:toclevels: 1 This page provides an overview of query profiling in TigerGraph, a feature introduced in version 4.2. Query profiling allows users to view detailed metrics and data about a query's execution, whether it is running or completed. @@ -11,13 +12,11 @@ By analyzing query profiling data, users can identify performance bottlenecks, t Query profiling is designed to provide insights into query execution, allowing users to examine the performance of a query in real-time or after completion. This data helps identify potential areas for optimization and diagnose performance issues. You can use query profiling to gain visibility into execution times, memory usage, and the number of vertices and edges accessed during query processing. -== Scope - -=== Query Syntax +== Supported Scope and Limitations This feature applies only to GSQL syntax and is not supported for OpenCypher syntax at this time. -=== Query Mode +=== Supported Query Types Query profiling is supported for the following types of queries: @@ -30,6 +29,18 @@ Query profiling is supported for the following types of queries: For these queries, profiling data will include more detailed information about memory usage and the overall query execution, as explained in the xref:{page-component-version}@gsql-ref:querying:query-optimizer/query-profiling.adoc[Profiling Data Explanation] section below. +=== Limitations + +While query profiling is a powerful tool for diagnosing and optimizing query performance, there are some limitations: + +* It does not support OpenCypher syntax. +* It does not support `INTERPRET` queries. +* It is not available for non-distributed queries unless installed with the `-SINGLE` flag. +* Profiling does not include data for subqueries. +* Memory metrics do not account for edge and global accumulators. +* Topology metrics do not include attribute data. +* Profiling does not track create/update/delete operations in the topology metric. + == Prerequisite To enable query profiling, users must have the READ QUERY or OWNERSHIP privileges for the query being executed. @@ -72,23 +83,24 @@ You can choose the appropriate method from the options below based on whether yo === RESTPP Request -*Option 1*: -To activate profiling for a single query and view the profile information in real-time, add the `PROFILE: BASIC` header to your RESTPP request: +*Option 1: Run the query in the foreground*: + +To run a query and view the profile information in real-time, add the `PROFILE: BASIC` header to your RESTPP request: [source.wrap,bash] ---- -curl -H "PROFILE: BASIC" -X POST 'http://localhost:14240/restpp/query/testGraph/qtest' +curl -H "PROFILE: BASIC" -X POST 'http://localhost:14240/restpp/query/testGraph/{query_name}' ---- -*Option 2*: +*Option 2: Run the query asynchronously*: + To run a query asynchronously with profiling enabled, add both the `GSQL-ASYNC: true` and `PROFILE: BASIC` headers to your request: [source.wrap,bash] ---- -curl -H "GSQL-ASYNC: true" -H "PROFILE: BASIC" -X GET 'http://localhost:14240/restpp/query/testGraph/qtest' +curl -H "GSQL-ASYNC: true" -H "PROFILE: BASIC" -X GET 'http://localhost:14240/restpp/query/testGraph/{query_name}' ---- -*Option 3*: To fetch real-time profiling data for a query running in asynchronous mode, use the `/query_status` endpoint: [source.wrap,bash] @@ -98,31 +110,39 @@ curl -X GET "http://localhost:14240/restpp/query_status?requestid=$reqid" === GSQL -*Option 1*: -In GSQL, you can activate profiling for a single query and view the profile information during execution using the following command: +*Option 1: Run the query in the foreground*: + +To run a query and view the profile information in real-time, using the `-PROFILE` flag followed by a profiling mode (e.g. `BASIC`): [source, gsql] ---- -RUN QUERY -PROFILE BASIC qtest() +RUN QUERY -PROFILE BASIC ---- -*Option 2*: -To run a query asynchronously in GSQL with profiling enabled, use the `-async` flag: +*Option 2: Run the query asynchronously*: + +To run a query asynchronously with profiling enabled, also include the `-async` flag: [source, gsql] ---- -RUN QUERY -async +RUN QUERY -async -PROFILE BASIC +---- + +To fetch real-time profiling data for a query running in asynchronous mode, use the `/query_status` endpoint: + +[source.wrap,bash] +---- +curl -X GET "http://localhost:14240/restpp/query_status?requestid=$reqid" ---- -Make sure to replace `` with the name of the query you are running. +*Option 3: Set profiling for the session*: -*Option 3*: You can set the profiling mode for a session in GSQL. Use the `SET PROFILE` command to enable profiling in your session: [source, gsql] ---- SET PROFILE = "BASIC" -RUN QUERY qtest() +RUN QUERY ---- == Profiling Data Explanation @@ -266,21 +286,15 @@ It may contain the following extra fields: *** `processingTimePercentage`: percentage of `processingTimeMs` to query-level `totalTimeMs`. *** `averageProcessingTimeMs`: average process time of each execution. It only appears when `executionCount > 1`. -== Disable Query Profiling Feature +== Disable Query Profiling -If the Query Profiling feature is causing issues, it can be disabled for all installed queries by adding `DISABLE_PROFILE=true;` to `GSQL.BasicConfig.Env`, then re-install all queries. +If the Query Profiling feature is causing issues, it can be disabled for all installed queries by following this procedure: -== Limitation +1. Add `DISABLE_PROFILE=true;` to the `GSQL.BasicConfig.Env` xref:{page-component-version}@tigergraph-server:reference:configuration-parameters.adoc[configuration parameter]. -While query profiling is a powerful tool for diagnosing and optimizing query performance, there are some limitations: +2. Apply the change: `gadmin config apply` -* It does not support OpenCypher syntax. -* It does not support `INTERPRET` queries. -* It is not available for non-distributed queries unless installed with the `-SINGLE` flag. -* Profiling does not include data for subqueries. -* Memory metrics do not account for edge and global accumulators. -* Topology metrics do not include attribute data. -* Profiling does not track create/update/delete operations in the topology metric. +3. Re-installing all queries. == Profiling Data Example From 26a34cf51c7d78504b622f3f650a5783f1f270b2 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 3 Apr 2025 21:46:39 +0530 Subject: [PATCH 100/194] DOC-2449-xref added within the page --- modules/querying/pages/query-optimizer/query-profiling.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/query-optimizer/query-profiling.adoc b/modules/querying/pages/query-optimizer/query-profiling.adoc index 1f027f4b..cc7d3ce3 100644 --- a/modules/querying/pages/query-optimizer/query-profiling.adoc +++ b/modules/querying/pages/query-optimizer/query-profiling.adoc @@ -27,7 +27,7 @@ Query profiling is supported for the following types of queries: ** `/allpaths` ** `/searchvertex` -For these queries, profiling data will include more detailed information about memory usage and the overall query execution, as explained in the xref:{page-component-version}@gsql-ref:querying:query-optimizer/query-profiling.adoc[Profiling Data Explanation] section below. +For these queries, profiling data will include more detailed information about memory usage and the overall query execution, as explained in the xref:{page-component-version}@gsql-ref:querying:query-optimizer/query-profiling.adoc#_profiling_data_explanation[Profiling Data Explanation] section below. === Limitations From 41e36a24c76aa06b8c79167872027c094e5de6d0 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 3 Apr 2025 22:19:18 +0530 Subject: [PATCH 101/194] DOC-2449-run query option --- modules/querying/pages/query-operations.adoc | 24 +++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index f76ec7eb..4d83c2d4 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -994,8 +994,30 @@ To run queries in Detached Mode via RESTPP endpoint call, use the `GSQL-ASYNC` h $ curl -s -H "GSQL-ASYNC:true" GET "http://localhost:14240/restpp/query//?parameter1= ---- -To check the status and results of the queries executed in Detached Mode, use the xref:tigergraph-server:API:built-in-endpoints.adoc#_check_query_status_detached_mode[*`/query_status`*] and the xref:tigergraph-server:API:built-in-endpoints.adoc#_check_query_results_detached_mode[*`/query_result`*] RESTPP endpoints. +To check the status and results of the queries executed in Detached Mode, use the xref:{page-component-version}@tigergraph-server:API:built-in-endpoints.adoc#_check_query_status_detached_mode[*`/query_status`*] and the xref:{page-component-version}@tigergraph-server:API:built-in-endpoints.adoc#_check_query_results_detached_mode[*`/query_result`*] RESTPP endpoints. +==== Query Profiling -profile Option + +The `-PROFILE` option allows you to activate query profiling when running a query in GSQL. Currently, the only supported value for profiling is `BASIC`, which enables basic query profiling to view and analyze execution details. +By default, this option is empty, and profiling is not activated. + +*Example 1: Run query with profiling activated* + +[source,gsql] +---- +RUN QUERY -PROFILE BASIC +---- + +*Example 2: Run query in async mode with profiling activated* + +[source,gsql] +---- +RUN QUERY -ASYNC -PROFILE BASIC +---- + +You can also use the `-PROFILE` option with the `-async` option to run the query asynchronously and retrieve real-time profiling data. +This is useful for long-running queries where you need to monitor the execution while the query is still running. +Once the query is submitted, you can use the `/query_status` API to get profiling data for that query. == GSQL Query output format From 99948510179a8df1e044fbae22c24c7fd802432e Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 3 Apr 2025 22:34:12 +0530 Subject: [PATCH 102/194] DOC-2449-xref added --- modules/querying/pages/query-operations.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index 4d83c2d4..ef7f31ec 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -998,7 +998,7 @@ To check the status and results of the queries executed in Detached Mode, use th ==== Query Profiling -profile Option -The `-PROFILE` option allows you to activate query profiling when running a query in GSQL. Currently, the only supported value for profiling is `BASIC`, which enables basic query profiling to view and analyze execution details. +The `-PROFILE` option allows you to activate xref:{page-component-version}@gsql-ref:querying:query-optimizer/query-profiling.adoc#_gsql[query profiling] when running a query in GSQL. Currently, the only supported value for profiling is `BASIC`, which enables basic query profiling to view and analyze execution details. By default, this option is empty, and profiling is not activated. *Example 1: Run query with profiling activated* From 6c7644bfea9a7c9ca6bb20063597155163001366 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 3 Apr 2025 14:11:38 -0400 Subject: [PATCH 103/194] Remove FROM (V2) from nav menu --- modules/querying/nav.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/querying/nav.adoc b/modules/querying/nav.adoc index 8de04b7a..2b3b1081 100644 --- a/modules/querying/nav.adoc +++ b/modules/querying/nav.adoc @@ -7,7 +7,6 @@ ** xref:data-types.adoc[] ** xref:accumulators.adoc[] ** xref:select-statement/index.adoc[] -*** xref:select-statement/from-clause-v2.adoc[] *** xref:select-statement/select-statement-v1.adoc[] *** xref:select-statement/sql-like-select-statement.adoc[] ** xref:operators-and-expressions.adoc[] From f60f2ea1890daf8dcc97df7a291cd1e7e976c909 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 3 Apr 2025 15:31:22 -0400 Subject: [PATCH 104/194] fix typo, improve text and code formatting --- modules/querying/pages/select-statement/index.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/querying/pages/select-statement/index.adoc b/modules/querying/pages/select-statement/index.adoc index 20d3c1a6..87a0bc65 100644 --- a/modules/querying/pages/select-statement/index.adoc +++ b/modules/querying/pages/select-statement/index.adoc @@ -87,15 +87,15 @@ For example, if [console] ---- - Maria visited Germany - Ahmed visited Japan + (Maria) -[visited]-> (Germany) + (Ahmed) -[visited]-> (Japan) ---- Aliases enable the subsequent parts of the query to refer to the pattern matches. For example `s` is the set (Maria, Ahmed). Likewise `c` is (Germany, Japan) However, if a clause refers to multiple aliases, it will maintain the row-wise integrity of the table. -For example, if an expression refers to both `s` and `c`, it will yield (Maria, Germany) and (Ahmed, Japan). -It will not yield (Maria, Japan) pr (Ahmed, Germany). +For example, if an expression refers to `(s, c)`, it will yield (Maria, Germany) and (Ahmed, Japan). +It will not yield (Maria, Japan) or (Ahmed, Germany). === Vertex Patterns From fd18f771cb0068a3939721a43863962f7f39f4de Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 3 Apr 2025 23:09:10 -0400 Subject: [PATCH 105/194] Update query-modes.adoc --- modules/querying/pages/query-modes.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/query-modes.adoc b/modules/querying/pages/query-modes.adoc index 63d1e3cd..a979b419 100644 --- a/modules/querying/pages/query-modes.adoc +++ b/modules/querying/pages/query-modes.adoc @@ -98,7 +98,7 @@ Similar to a stored procedura query, except .Example of an Anonymous Query [console] ---- -CREATE QUERY () { +INTERPRET QUERY () { topK = SELECT m FROM (m:Movie) WHERE m.year == 1939 ORDER BY m.boxoffice DESC From ccf61c714efb91ecdcde4483b841f9f5b759eafa Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Fri, 11 Apr 2025 13:45:56 -0400 Subject: [PATCH 106/194] DOC-2321 correct support MAP data types --- modules/querying/pages/data-types.adoc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/querying/pages/data-types.adoc b/modules/querying/pages/data-types.adoc index 9a41d6f1..ac203ba4 100644 --- a/modules/querying/pages/data-types.adoc +++ b/modules/querying/pages/data-types.adoc @@ -627,7 +627,7 @@ A query can have one or more input parameters having any of the following types: * xref:#_base_types[Base types] (except `EDGE` , `JSONARRAY`, or `JSONOBJECT`). * xref:#_file_object[FILE object] * A `SET` or `BAG` of base type elements (except `EDGE` , `JSONARRAY`, or `JSONOBJECT`). -* As of 4.2, `LIST` and `MAP` of base type elements are also supported. +* As of 4.2, `LIST` and `MAP` of base type elements are also supported. The key and value of a `MAP` may be xref:ddl-and-loading:attribute-data-types.adoc#_primitive_types[primitiveType] (numerical, string, or Boolean). Within the query, `SET`, `BAG`, `LIST`, and `MAP` parameters are converted to xref:accumulators.adoc#_setaccum[`SetAccum`], xref:accumulators.adoc#_bagaccum[`BagAccum`], @@ -654,7 +654,8 @@ parameterType := INT | BOOL | VERTEX ["<" vertexType ">"] | DATETIME - | [ SET | BAG | LIST | MAP] "<" baseType ">" + | [ SET | BAG | LIST ] "<" baseType ">" + | MAP "<" primitiveType "," primitiveType ">" | FILE ---- From fc553f8323466599bd8ba3d32916e07093fd735c Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Fri, 11 Apr 2025 14:41:42 -0400 Subject: [PATCH 107/194] redirect away from empty page run-queries.adoc --- modules/querying/pages/query-operations.adoc | 3 ++- modules/querying/pages/run-queries.adoc | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index ef7f31ec..84684c02 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -1,6 +1,7 @@ = Create and Run Queries -:pp: {plus}{plus} :description: Commands in the GSQL query language associated with query operations. +:page-aliases: run-queries.adoc +:pp: {plus}{plus} A GSQL query is a sequence of data retrieval and computation statements executed as a single operation. diff --git a/modules/querying/pages/run-queries.adoc b/modules/querying/pages/run-queries.adoc index 00590d72..76617944 100644 --- a/modules/querying/pages/run-queries.adoc +++ b/modules/querying/pages/run-queries.adoc @@ -1 +1,4 @@ = Run Queries +// Note: This page is currently being redirected to query-operations.adoc. +// If you want this page to be live, then also change :page-aliases: in query-operations.adoc. + From 5fb265633f68d4bd8f9bc3769f1a8b96e1f4821e Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 15 Apr 2025 16:39:58 -0400 Subject: [PATCH 108/194] Delete modules/querying/pages/run-queries.adoc (not yet ready) --- modules/querying/pages/run-queries.adoc | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 modules/querying/pages/run-queries.adoc diff --git a/modules/querying/pages/run-queries.adoc b/modules/querying/pages/run-queries.adoc deleted file mode 100644 index 76617944..00000000 --- a/modules/querying/pages/run-queries.adoc +++ /dev/null @@ -1,4 +0,0 @@ -= Run Queries -// Note: This page is currently being redirected to query-operations.adoc. -// If you want this page to be live, then also change :page-aliases: in query-operations.adoc. - From 25fc8f8428a1f3d2fdf9f246bc552fea6fa31683 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 17 Apr 2025 08:58:12 -0400 Subject: [PATCH 109/194] DOC-2408-aggreg-func-value-when-empty --- .../pages/func/aggregation-functions.adoc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/modules/querying/pages/func/aggregation-functions.adoc b/modules/querying/pages/func/aggregation-functions.adoc index eeb84ea5..7d51ad0f 100644 --- a/modules/querying/pages/func/aggregation-functions.adoc +++ b/modules/querying/pages/func/aggregation-functions.adoc @@ -4,7 +4,14 @@ This page lists the aggregation functions available in the GSQL query language. [NOTE] ==== -The ``DISTINCT`` keyword can be used to include repeated values only once when aggregating. +If the ``DISTINCT`` option is used, then duplicate values are excluded. +By default, duplicate values are included. + +Example: + +``sum([2,2,2]) ``returns 6. + +`sum(DISTINCT [2,2,2])` returns 2. ==== == avg() @@ -18,6 +25,7 @@ The ``DISTINCT`` keyword can be used to include repeated values only once when a === Description Returns the average of all elements in a set or bag. The function can only take set/bag expressions whose members are numeric types. +Returns 0 if the input set is empty. [discrete] === Return type @@ -55,6 +63,7 @@ avg([3, 2, 1]) -> 2 === Description Returns the size of the set or bag. +Returns 0 if the input set is empty. [discrete] === Return type @@ -92,6 +101,7 @@ count([1, 1, 2, 2) => 4 Returns the member with the maximum value in a set or bag. The function can only take set/bag expressions whose members are numeric types. +Returns 0 if the input set is empty. [discrete] === Return type @@ -128,6 +138,7 @@ max([1, 1, 3, 3]) => 3 === Description Returns the member with the minimum value in a set or bag. The function can only take set/bag expressions whose members are numeric types. +Returns 0 if the input set is empty. [discrete] === Return type @@ -164,6 +175,7 @@ min([1, 1, 3, 3]) => 1 === Description Returns the standard deviation of all members in a set or bag, assuming the input is a sample. +Returns 0 if the input set is empty. This function uses `N - 1` as the denominator, and should be used when taking a sample of the population for an unbiased estimate. When the standard variation of the entire population is being calculated, `stdevp` should be used. @@ -205,6 +217,7 @@ stdev([1, 2, 3, 4, 5]) => 1.5811388300842 === Description Returns the standard deviation of all members in a set or bag, assuming the input is the population. +Returns 0 if the input set is empty. This function uses `N` as the denominator, and should be used when calculating the standard deviation for an entire population. When the standard variation of only a sample of the population is being calculated, `stDev` should be used. @@ -246,6 +259,7 @@ stdevp([1, 2, 3, 4, 5]) => 1.4142135623731 === Description Returns the sum of all members in a set or bag. The function can only take set/bag expressions whose members are numeric types. +Returns 0 if the input set is empty. [discrete] === Return type From 5cd1de78521b7e06e4165e8de3a0828f5c6a0e02 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Mon, 21 Apr 2025 07:49:18 -0400 Subject: [PATCH 110/194] DOC-2408-aggreg-func-empty-nuance --- .../pages/func/aggregation-functions.adoc | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/modules/querying/pages/func/aggregation-functions.adoc b/modules/querying/pages/func/aggregation-functions.adoc index 7d51ad0f..0e0283bb 100644 --- a/modules/querying/pages/func/aggregation-functions.adoc +++ b/modules/querying/pages/func/aggregation-functions.adoc @@ -101,7 +101,14 @@ count([1, 1, 2, 2) => 4 Returns the member with the maximum value in a set or bag. The function can only take set/bag expressions whose members are numeric types. -Returns 0 if the input set is empty. + +[NOTE] +==== +If the input set is empty: + +* If the function is used to aggregate the vertex or edge attributes selected by a SELECT or MERGE clause, then the return value is the minimum possible value for that data type (similar to MaxAccum behavior). +* Otherwise, the return value is 0. +==== [discrete] === Return type @@ -140,6 +147,15 @@ max([1, 1, 3, 3]) => 3 Returns the member with the minimum value in a set or bag. The function can only take set/bag expressions whose members are numeric types. Returns 0 if the input set is empty. +[NOTE] +==== +If the input set is empty: + +* If the function is used to aggregate the vertex or edge attributes selected by a SELECT or MERGE clause, then the return value is the maximum possible value for that data type (similar to MinAccum behavior). +* Otherwise, the return value is 0. +==== + + [discrete] === Return type From 7c090303bedc7d76a238dea7bdc733d8d61876b1 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Mon, 21 Apr 2025 07:52:50 -0400 Subject: [PATCH 111/194] DOC-2408-aggreg-func-empty-nuance --- modules/querying/pages/func/aggregation-functions.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/querying/pages/func/aggregation-functions.adoc b/modules/querying/pages/func/aggregation-functions.adoc index 0e0283bb..40eed2c3 100644 --- a/modules/querying/pages/func/aggregation-functions.adoc +++ b/modules/querying/pages/func/aggregation-functions.adoc @@ -145,7 +145,6 @@ max([1, 1, 3, 3]) => 3 === Description Returns the member with the minimum value in a set or bag. The function can only take set/bag expressions whose members are numeric types. -Returns 0 if the input set is empty. [NOTE] ==== From 16c3d8fb74d1b62ab57425ee9de030166a97764f Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Mon, 21 Apr 2025 08:21:44 -0400 Subject: [PATCH 112/194] DOC-2408 proofread - fix typo/omission --- modules/querying/pages/func/aggregation-functions.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/querying/pages/func/aggregation-functions.adoc b/modules/querying/pages/func/aggregation-functions.adoc index 40eed2c3..61e61158 100644 --- a/modules/querying/pages/func/aggregation-functions.adoc +++ b/modules/querying/pages/func/aggregation-functions.adoc @@ -9,7 +9,7 @@ By default, duplicate values are included. Example: -``sum([2,2,2]) ``returns 6. +`sum([2,2,2])` returns 6. `sum(DISTINCT [2,2,2])` returns 2. ==== @@ -145,6 +145,7 @@ max([1, 1, 3, 3]) => 3 === Description Returns the member with the minimum value in a set or bag. The function can only take set/bag expressions whose members are numeric types. +Returns 0 if the input set is empty. [NOTE] ==== From a46cc0ea4c4cdc970f67ed882331be06aab56eac Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Mon, 21 Apr 2025 17:54:11 +0530 Subject: [PATCH 113/194] DOC-2456-replaced "from version 4.2" to "starting with version 4.1.3" --- modules/querying/pages/operators-and-expressions.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/operators-and-expressions.adoc b/modules/querying/pages/operators-and-expressions.adoc index 2b9cf710..d39bfe3a 100644 --- a/modules/querying/pages/operators-and-expressions.adoc +++ b/modules/querying/pages/operators-and-expressions.adoc @@ -204,7 +204,7 @@ condition := expr | expr [NOT] LIKE expr [ESCAPE escape_char] ---- -In GSQL V3, from version 4.2, we support the use of the equality operator `=` and the inequality operator `<>` in addition to the existing `==` and `!=` operators. +In GSQL V3, starting with version 4.1.3, we support the use of the equality operator `=` and the inequality operator `<>` in addition to the existing `==` and `!=` operators. Strings are compared based on standard lexicographical ordering: + (space) < (digit) < (uppercase_letter) < (lowercase_letter). From 33eb1956328fe78ea6d966d6db08874553f39892 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Mon, 28 Apr 2025 06:56:52 -0400 Subject: [PATCH 114/194] DOC-2747-accum-mutator-blocked-in-print --- modules/querying/pages/accumulators.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index 5d9e801a..c7d3e22a 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -870,6 +870,7 @@ Functions that modify the ListAccum (mutator functions) can be used only under t * Mutator functions of global accumulators may only be used at the query-body level. * Mutator functions of vertex-attached accumulators may only be used in a `POST-ACCUM` clause. +* Mutator functions may not be used in a PRINT statement. ==== |=== @@ -1007,6 +1008,7 @@ Functions that modify the SetAccum (mutator functions) can be used only under th * Mutator functions of global accumulators may only be used at the query-body level. * Mutator functions of vertex-attached accumulators may only be used in a `POST-ACCUM` clause. +* Mutator functions may not be used in a PRINT statement. ==== |=== @@ -1126,6 +1128,7 @@ Functions which modify the BagAccum (mutator functions) can be used only under t * Mutator functions of global accumulators may only be used at the query-body level. * Mutator functions of vertex-attached accumulators may only be used in a `POST-ACCUM` clause. +* Mutator functions may not be used in a PRINT statement. ==== |=== @@ -1218,6 +1221,7 @@ Functions that modify the MapAccum (mutator functions) can be used only under th * Mutator functions of global accumulators may only be used at the query-body level. * Mutator functions of vertex-attached accumulators may only be used in a `POST-ACCUM` clause. +* Mutator functions may not be used in a PRINT statement. ==== |=== @@ -1346,6 +1350,7 @@ Functions that modify the ArrayAccum (mutator functions) can be used only under * Mutator functions of global accumulators may only be used at the query-body level. * Mutator functions of vertex-attached accumulators may only be used in a `POST-ACCUM` clause. +* Mutator functions may not be used in a PRINT statement. ==== |=== @@ -1475,6 +1480,7 @@ Functions that modify the `HeapAccum` (mutator functions) can be used only under * Mutator functions of global accumulators may only be used at the query-body level. * Mutator functions of vertex-attached accumulators may only be used in a `POST-ACCUM` clause. +* Mutator functions may not be used in a PRINT statement. ==== |=== @@ -1575,6 +1581,7 @@ Functions that modify the GroupByAccum (mutator functions) can be used only unde * Mutator functions of global accumulators may only be used at the query-body level. * Mutator functions of vertex-attached accumulators may only be used in a `POST-ACCUM` clause. +* Mutator functions may not be used in a PRINT statement. ==== |=== From 5345793ffa0ceb9c8adeb7fc9d40a59979dd2703 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Mon, 28 Apr 2025 07:29:33 -0400 Subject: [PATCH 115/194] DOC-2734-bitwiseaccum-block-mutate-in-print --- modules/querying/pages/accumulators.adoc | 28 ++++++++++++++---------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index c7d3e22a..9b5264ba 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -741,18 +741,24 @@ Bitwise Operations and Negative Integers Most computer systems represent negative integers using "2's complement" format, where the uppermost bit has special significance. Operations that affect the uppermost bit are crossing the boundary between positive and negative numbers, and vice versa. ==== +[discrete] +==== *Functions* +BitwiseAndAccum and BitwiseOrAccum also support the following class functions. -==== Functions -This is a list of object functions of BitwiseAndAccum and BitwiseOrAccum. -If a function returns an `BitwiseAndAccum` or `BitwiseOrAccum`, it returns the same type as the instance that calls the object function. +[WARNING] +==== +Mutator functions (those that modify the accumulator) can be used only under the following conditions: + +* Mutator functions may not be used in a PRINT statement. +==== .Bitwise accumulator functions |=== |Function |Return type |Accessor/Mutator |Description |`.reset()` -|None. +|`VOID` |Mutator |Sets all bits to 0. @@ -770,12 +776,12 @@ a|Returns the 1 or 0 at the provided index. The position of the bit value to return. |`.set( )` -|None. +|`VOID` |Mutator |Sets all bits to 1. |`.set( index, value )` -|None. +|`VOID` |Mutator a|Sets the bit at the provided index to the desire value. @@ -786,31 +792,31 @@ a|Sets the bit at the provided index to the desire value. The value of the bit. |`.flip( index )` -|None. +|`VOID` |Mutator |Flips the bit at the specified index. If the bit is 0, changes it to 1 and vice versa. |`.flip( fromIndex [, toIndex ] )` -|None. +|`VOID` |Mutator |Flips the bits in the specified range. |`.xor ( accum )` -|None. +|`VOID` |Mutator |Compares two bitwise accumulators of the same length. Returns a Bitwise accumulator whose every bit is the exclusive `OR` result between the two bitwise accumulators. |`.and ( accum )` -|None. +|`VOID` |Mutator |Compares two bitwise accumulators of the same length. Returns a bitwise accumulator whose every bit is the `AND` result between the two bitwise accumulators. |`.or ( accum )` -|None. +|`VOID` |Mutator |Compares two bitwise accumulators of the same length. Returns a Bitwise accumulator whose every bit is the `OR` result between the two bitwise accumulators. From 62322313180e6ed97aae67227e669dcfdfb373aa Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Mon, 28 Apr 2025 17:41:24 +0530 Subject: [PATCH 116/194] DOC-2749-Moved `FUNCTION` keyword to Non-Reserved Keywords list --- modules/appendix/pages/keywords-and-reserved-words.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/appendix/pages/keywords-and-reserved-words.adoc b/modules/appendix/pages/keywords-and-reserved-words.adoc index 1126808a..c674975d 100644 --- a/modules/appendix/pages/keywords-and-reserved-words.adoc +++ b/modules/appendix/pages/keywords-and-reserved-words.adoc @@ -89,7 +89,6 @@ The compiler will reject the use of a reserved word as well as any word beginnin * FOR * FOREACH * FROM -* FUNCTION * GLOBAL * GRANTS * GRAPH @@ -237,6 +236,7 @@ These keywords in the language are non-reserved, so users may use them for user- * FILENAME * FLATTEN * FLATTEN_JSON_ARRAY +* FUNCTION * GEN-DATA * GET * GRANT From ff92d4d5bc4efc1b11ec14dd431188557e740375 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Fri, 9 May 2025 11:49:34 -0400 Subject: [PATCH 117/194] DOC-2465-non-procedural-query-proofread --- modules/querying/pages/query-modes.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/querying/pages/query-modes.adoc b/modules/querying/pages/query-modes.adoc index a979b419..865a5675 100644 --- a/modules/querying/pages/query-modes.adoc +++ b/modules/querying/pages/query-modes.adoc @@ -111,10 +111,10 @@ PRINT topK; === Non-Procedural Queries Starting with version 4.2, TigerGraph can run non-procedural queries. -This is very much like how the composition of SQL queries: +This is very much like the composition of SQL queries: * No header. -* Output selection is implicit. +* Output is automatic. * Queries consisting of a single query statement/block do not need to define the body's start and end. * Optionally, can use `BEGIN` and `END` to delimit a multi-line query. From 2beb74965cda48326e6b51741bb1faa1768acce8 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Sun, 11 May 2025 23:34:14 -0400 Subject: [PATCH 118/194] DOC-2477-GSQL.GithubEnabled-wording --- modules/ddl-and-loading/pages/add-token-function.adoc | 2 +- modules/querying/pages/func/query-user-defined-functions.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/pages/add-token-function.adoc b/modules/ddl-and-loading/pages/add-token-function.adoc index 37c0c2cd..bef4b69e 100644 --- a/modules/ddl-and-loading/pages/add-token-function.adoc +++ b/modules/ddl-and-loading/pages/add-token-function.adoc @@ -158,7 +158,7 @@ The `gadmin` configuration parameters for setting up the connection to GitHub ar [NOTE] ==== -If the configuration `GSQL.GithubUserAcessToken` is non-empty, the `GSQL.GithubEnabled` configuration will be set to `true` during upgrading +When upgrading the database from a version where the parameter `GSQL.GithubEnabled` did not exist (pre 4.1.3) to one where it does, the upgrade process will set `GSQL.GithubEnabled` to `true`. ==== Use the xref:tigergraph-server:system-management:management-with-gadmin.adoc#_gadmin_config_set[`gadmin config set`] command to configure the aforementioned parameters to connect GSQL to the GitHub repository hosting your files. diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index 32510643..66d165fc 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -138,7 +138,7 @@ The `gadmin` configuration parameters for setting up the connection to GitHub ar [NOTE] ==== -If the configuration `GSQL.GithubUserAcessToken` is non-empty, the `GSQL.GithubEnabled` configuration will be set to `true` during upgrading +When upgrading the database from a version where the parameter `GSQL.GithubEnabled` did not exist (pre 4.1.3) to one where it does, the upgrade process will set `GSQL.GithubEnabled` to `true`. ==== From d3f2083f617daf347088eba51930a1f52d8cf68f Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Sun, 18 May 2025 16:49:11 -0400 Subject: [PATCH 119/194] DOC-2806-fix-gsql-to-server-xref-4.2 --- modules/basics/pages/running-gsql.adoc | 2 +- modules/ddl-and-loading/pages/add-token-function.adoc | 4 ++-- .../ddl-and-loading/pages/creating-a-loading-job.adoc | 8 ++++---- .../ddl-and-loading/pages/defining-a-graph-schema.adoc | 6 +++--- .../ddl-and-loading/pages/running-a-loading-job.adoc | 2 +- modules/ddl-and-loading/partials/load-statement.adoc | 4 ++-- modules/querying/pages/create-and-install-queries.adoc | 2 +- modules/querying/pages/data-types.adoc | 2 +- modules/querying/pages/func/context-functions.adoc | 6 +++--- .../pages/func/query-user-defined-functions.adoc | 6 +++--- modules/querying/pages/query-operations.adoc | 10 +++++----- .../pages/query-optimizer/query-plan-cache.adoc | 2 +- .../pages/select-statement/select-statement-v1.adoc | 2 +- .../pages/gsql-101/built-in-select-queries.adoc | 2 +- .../tutorials/pages/gsql-101/load-data-gsql-101.adoc | 2 +- .../pages/pattern-matching/prepare-environment.adoc | 2 +- 16 files changed, 31 insertions(+), 31 deletions(-) diff --git a/modules/basics/pages/running-gsql.adoc b/modules/basics/pages/running-gsql.adoc index 1464c259..72ddfabb 100644 --- a/modules/basics/pages/running-gsql.adoc +++ b/modules/basics/pages/running-gsql.adoc @@ -82,7 +82,7 @@ gsql -t *Types of tokens* * *Plain-text Token:* A randomly generated string used for authentication. This is the older token format, still supported if not expired, but will eventually be deprecated. -* **xref:4.1@tigergraph-server:user-access:jwt-token.adoc#_usage_of_gsql_jwt_token[JWT Token]**: A more secure and modern format for authentication. It consists of three parts: header, payload, and signature. JWT tokens are the default format for authentication starting from version 4.1. +* **xref:{page-component-version}@tigergraph-server:user-access:jwt-token.adoc#_usage_of_gsql_jwt_token[JWT Token]**: A more secure and modern format for authentication. It consists of three parts: header, payload, and signature. JWT tokens are the default format for authentication starting from version 4.1. *Token login workflow* diff --git a/modules/ddl-and-loading/pages/add-token-function.adoc b/modules/ddl-and-loading/pages/add-token-function.adoc index bef4b69e..9b70de9e 100644 --- a/modules/ddl-and-loading/pages/add-token-function.adoc +++ b/modules/ddl-and-loading/pages/add-token-function.adoc @@ -161,7 +161,7 @@ The `gadmin` configuration parameters for setting up the connection to GitHub ar When upgrading the database from a version where the parameter `GSQL.GithubEnabled` did not exist (pre 4.1.3) to one where it does, the upgrade process will set `GSQL.GithubEnabled` to `true`. ==== -Use the xref:tigergraph-server:system-management:management-with-gadmin.adoc#_gadmin_config_set[`gadmin config set`] command to configure the aforementioned parameters to connect GSQL to the GitHub repository hosting your files. +Use the xref:{page-component-version}@tigergraph-server:system-management:management-commands.adoc#_gadmin_config_set[`gadmin config set`] command to configure the aforementioned parameters to connect GSQL to the GitHub repository hosting your files. Below is an example configuration. Remember to run `gadmin config apply` after changing the parameters. If GSQL is already running, you will need to run `gadmin restart all` to restart GSQL before the token functions become available. @@ -180,7 +180,7 @@ After the parameters are successfully configured, you can access your user-defin == Store token functions locally All UDF files are scanned by the system to ensure that they comply with the UDF file policy as set by configuration commands in TigerGraph Server. -For more details, see xref:tigergraph-server:security:index.adoc[TigerGraph Server - Security]. +For more details, see xref:{page-component-version}@tigergraph-server:security:index.adoc[TigerGraph Server - Security]. === Step 1: Enable adding a TokenBank with PUT diff --git a/modules/ddl-and-loading/pages/creating-a-loading-job.adoc b/modules/ddl-and-loading/pages/creating-a-loading-job.adoc index de17dc79..adfac8fc 100644 --- a/modules/ddl-and-loading/pages/creating-a-loading-job.adoc +++ b/modules/ddl-and-loading/pages/creating-a-loading-job.adoc @@ -32,7 +32,7 @@ Either pre-process your data files to remove extra spaces, or use GSQL's token p [NOTE] User privileges for running loading jobs are treated as separate from privileges regarding reading and writing data to vertices and edges. A user can create and run loading jobs even without the privileges to modify vertex and edge data. -For more information, see xref:tigergraph-server:user-access:access-control-model.adoc[]. +For more information, see xref:{page-component-version}@tigergraph-server:user-access:access-control-model.adoc[]. == Loading job capabilities @@ -52,7 +52,7 @@ Furthermore, if the TigerGraph graph is distributed (partitioned) across multipl [NOTE] To maximize loading performance in a cluster, use at least two loaders per machine, and assign each loader approximately the same amount of data. -A concurrent-capable loading job can logically be separated into parts according to each file variable. When a concurrent-capable loading job is compiled, a xref:tigergraph-server:API:built-in-endpoints.adoc#_run_a_loading_job[RESTPP endpoint] is generated for the loading job, which you can call to load data into your graph as an alternative to `RUN LOADING JOB`. +A concurrent-capable loading job can logically be separated into parts according to each file variable. When a concurrent-capable loading job is compiled, a xref:{page-component-version}@tigergraph-server:API:built-in-endpoints.adoc#_run_a_loading_job[RESTPP endpoint] is generated for the loading job, which you can call to load data into your graph as an alternative to `RUN LOADING JOB`. [NOTE] ==== @@ -158,7 +158,7 @@ There are four options for `filepath_string`: If it is a folder, then the loader will attempt to load each non-hidden file in the folder. If this path is not valid when `CREATE LOADING JOB` is executed, GSQL will report an error. + -An absolute path may begin with the xref:tigergraph-server:gsql-shell:gsql-sessions.adoc[session parameter] `$sys.data_root`. +An absolute path may begin with the xref:{page-component-version}@tigergraph-server:gsql-shell:gsql-sessions.adoc[session parameter] `$sys.data_root`. * An absolute or relative path for either a file or a folder *on all machines in the cluster*: If the path is prefixed with `all:`, then the loading job will attempt to run on every machine in the cluster which has a RESTPP component, and each machine will look locally for data at _path_. *If the path is invalid on any of the machines, the job will be aborted*. Also, the session parameter `$sys.data_root` may not be used. + .`ALL:path` examples @@ -200,7 +200,7 @@ DEFINE HEADER header_name = " column_name "[," column_name "]*; === `DEFINE INPUT_LINE_FILTER` -NOTE: This statement is not supported in a xref:tigergraph-server:data-loading:kafka-loader/index.adoc[Kafka loading job]. +NOTE: This statement is not supported in a xref:{page-component-version}@tigergraph-server:data-loading:kafka-loader/index.adoc[Kafka loading job]. The `DEFINE INPUT_LINE_FILTER` statement defines a named Boolean expression whose value depends on column attributes from a row of input data. When combined with a `USING reject_line_rule` clause in a `LOAD` statement, the filter determines whether an input line is ignored or not. diff --git a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc index 08d850f5..d9686b85 100644 --- a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc +++ b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc @@ -53,7 +53,7 @@ Once the graph designer has chosen a graph schema, the schema is ready to be for ==== You need the `WRITE_SCHEMA` privilege in the scope you are operating on to run commands that alter the graph schema. -To learn more about permission and privileges, see xref:tigergraph-server:user-access:access-control-model.adoc[]. +To learn more about permission and privileges, see xref:{page-component-version}@tigergraph-server: user-access:access-control-model.adoc[]. ==== == Global and Local Schemas @@ -609,7 +609,7 @@ New requirement for MultiGraph support. Applies even if only one graph exists. Before a user can use a graph, the user must be granted a role on that graph by an admin user of that graph or by a superuser. (Superusers are automatically granted the admin role on every graph). Second, for each GSQL session, the user must set a working graph. The `USE GRAPH` command sets or changes the user's working graph, for the current session. -For more about roles and privileges, see the document xref:tigergraph-server:user-access:index.adoc[Managing User Privileges and Authentication]. +For more about roles and privileges, see the document xref:{page-component-version}@tigergraph-server: user-access:index.adoc[Managing User Privileges and Authentication]. .USE GRAPH syntax [source,gsql] @@ -640,7 +640,7 @@ The `DROP GRAPH` command deletes the logical definition of the named graph. It w The `DROP ALL` command clears the entire graph store (i.e. deletes all data) and removes all data-related definitions from the catalog: vertex types, edge types, graph types, jobs, and queries. It will also erase graph-specific roles. -Unlike xref:tigergraph-server:getting-started:database-definition.adoc#_reset_all[the `gsql --reset` command], `DROP ALL` does not erase user and role information nor system settings. +Unlike xref:{page-component-version}@tigergraph-server: getting-started:database-definition.adoc#_reset_all[the `gsql --reset` command], `DROP ALL` does not erase user and role information nor system settings. [CAUTION] ==== diff --git a/modules/ddl-and-loading/pages/running-a-loading-job.adoc b/modules/ddl-and-loading/pages/running-a-loading-job.adoc index e4e89845..4683ba8e 100644 --- a/modules/ddl-and-loading/pages/running-a-loading-job.adoc +++ b/modules/ddl-and-loading/pages/running-a-loading-job.adoc @@ -41,7 +41,7 @@ There are options to end the job when it reaches a specified level of errors. [NOTE] User privileges for running loading jobs are treated as separate from privileges regarding reading and writing data to vertices and edges. A user can create and run loading jobs even without the privileges to modify vertex and edge data. -For more information, see xref:tigergraph-server:user-access:access-control-model.adoc[]. +For more information, see xref:{page-component-version}@tigergraph-server: user-access:access-control-model.adoc[]. [#_run_loading_job] === RUN LOADING JOB diff --git a/modules/ddl-and-loading/partials/load-statement.adoc b/modules/ddl-and-loading/partials/load-statement.adoc index c1884525..210c232f 100644 --- a/modules/ddl-and-loading/partials/load-statement.adoc +++ b/modules/ddl-and-loading/partials/load-statement.adoc @@ -293,7 +293,7 @@ header has been defined in the loading job, rather than in the data file |`REJECT_LINE_RULE` |If the filter expression evaluates to true, then do not use this input data line. -Not supported in a xref:tigergraph-server:data-loading:index.adoc[ loading job]. +Not supported in a xref:{page-component-version}@tigergraph-server:data-loading:index.adoc[ loading job]. |name of filter from a preceding `DEFINE INPUT_LINE_FILTER` statement @@ -399,7 +399,7 @@ The JSON loader ignores the order and accesses the fields by the nested key name === Loading Parquet data TigerGraph can load data from Parquet files using our loader. -For more details on how to set up a Kafka data streaming connector and loading jobs, see xref:tigergraph-server:data-loading:data-loading-overview.adoc[]. +For more details on how to set up a Kafka data streaming connector and loading jobs, see xref:{page-component-version}@tigergraph-server:data-loading:data-loading-overview.adoc[]. CAUTION: When loading Parquet data, INT96 data types are not supported. If your data source uses INT96 data types, the corresponding attribute in your graph will be left empty. diff --git a/modules/querying/pages/create-and-install-queries.adoc b/modules/querying/pages/create-and-install-queries.adoc index 3e6c6357..bc7a88bf 100644 --- a/modules/querying/pages/create-and-install-queries.adoc +++ b/modules/querying/pages/create-and-install-queries.adoc @@ -265,7 +265,7 @@ If a query is saved as a draft before it reaches valid status, any queries that ==== If a user creates a query, this user becomes the owner of this query automatically. -For a detailed description, please refer to xref:xref:tigergraph-server:user-access:fine-grained-query-privileges.adoc +For a detailed description, please refer to xref:{page-component-version}@tigergraph-server:user-access:fine-grained-query-privileges.adoc ==== [#_statement_types] diff --git a/modules/querying/pages/data-types.adoc b/modules/querying/pages/data-types.adoc index ac203ba4..892ac5bb 100644 --- a/modules/querying/pages/data-types.adoc +++ b/modules/querying/pages/data-types.adoc @@ -672,4 +672,4 @@ For how to declare the parameters in a query, see xref:querying:query-operations For how to run a query, see * xref:querying:query-operations.adoc#_query_parameters[Parameters when running a query in the GSQL CLI]. -* xref:tigergraph-server:API:gsql-endpoints.adoc#_format_for_parameters_of_query_being_run[Parameters when running a query as a REST endpoint]. +* xref:{page-component-version}@tigergraph-server:API:gsql-endpoints.adoc#_format_for_parameters_of_query_being_run[Parameters when running a query as a REST endpoint]. diff --git a/modules/querying/pages/func/context-functions.adoc b/modules/querying/pages/func/context-functions.adoc index 0154c5fb..bf8215dd 100644 --- a/modules/querying/pages/func/context-functions.adoc +++ b/modules/querying/pages/func/context-functions.adoc @@ -3,15 +3,15 @@ Context functions are a set of built-in functions that provide insights into the user's information during their current session. They offer valuable insights into user roles, making it easier to manage access and privileges within TigerGraph. -They work in: `INSTALLED` queries, `INTERPRET` queries, and xref:tigergraph-server:user-access:rbac-row-policy/rbac-row-policy.adoc#_gsql_functions[GSQL Functions]. +They work in: `INSTALLED` queries, `INTERPRET` queries, and xref:{page-component-version}@tigergraph-server:user-access:rbac-row-policy/rbac-row-policy.adoc#_gsql_functions[GSQL Functions]. == Enable Context Functions Before users can use Context Functions, you must enable REST++ authentication. If it's not enabled, users will see an error message. -To learn more about REST++ authentication see xref:tigergraph-server:API:authentication.adoc[REST API Authentication]. +To learn more about REST++ authentication see xref:{page-component-version}@tigergraph-server:API:authentication.adoc[REST API Authentication]. -In order to use the context functions explicitly, ensure that the user holds the `READ_ROLE` privilege on the current graph, unless a xref:tigergraph-server:user-access:rbac-row-policy/setup-row-policy.adoc#_row_policy[Row Policy] already includes the xref:tigergraph-server:user-access:rbac-row-policy/rbac-row-policy.adoc#_context_functions[Context Functions]. +In order to use the context functions explicitly, ensure that the user holds the `READ_ROLE` privilege on the current graph, unless a xref:{page-component-version}@tigergraph-server:user-access:rbac-row-policy/setup-row-policy.adoc#_row_policy[Row Policy] already includes the xref:{page-component-version}@tigergraph-server:user-access:rbac-row-policy/rbac-row-policy.adoc#_context_functions[Context Functions]. == current_roles() diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index 66d165fc..e8079610 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -35,7 +35,7 @@ All UDF files are scanned by the system to ensure that they comply with the UDF * There is a file header allowlist that restricts the possible file headers to a customizable list. * Additional C{plus}{plus} features are disabled for security reasons. -For more details, see xref:tigergraph-server:security:index.adoc#_udf_file_scanning[Security - UDF file scanning]. +For more details, see xref:{page-component-version}@tigergraph-server:security:index.adoc#_udf_file_scanning[Security - UDF file scanning]. [#_define_a_query_udf_in_cpp] == Define a query UDF in C{pp} @@ -142,7 +142,7 @@ When upgrading the database from a version where the parameter `GSQL.GithubEnabl ==== -Use the xref:tigergraph-server:system-management:management-commands.adoc#_gadmin_config_set[`gadmin config set`] command to configure the aforementioned parameters to connect GSQL to the GitHub repository hosting your files. +Use the xref:{page-component-version}@tigergraph-server:system-management:management-commands.adoc#_gadmin_config_set[`gadmin config set`] command to configure the aforementioned parameters to connect GSQL to the GitHub repository hosting your files. The following is an example configuration. Remember to run `gadmin config apply` after changing the parameters. @@ -161,7 +161,7 @@ After the parameters are successfully configured, you can access your UDFs in ne === Upload UDFs with GSQL `PUT` command TigerGraph offers the ability to upload UDFs directly from GSQL using the `PUT` command. -This command is securely managed by xref:tigergraph-server:system-management:management-commands.adoc[ the management tool `gadmin`] and is disabled by default, requiring a Tigergraph Linux user with gadmin access to enable it. +This command is securely managed by xref:{page-component-version}@tigergraph-server:system-management:management-commands.adoc[ the management tool `gadmin`] and is disabled by default, requiring a Tigergraph Linux user with gadmin access to enable it. After making modifications to your UDF files, it is recommended that you disable the ability to upload UDF files using `PUT` until you need to modify the files again ==== Enable uploading UDFs through GSQL diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index 84684c02..e081140b 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -84,7 +84,7 @@ A query can be run in one of three ways: + Alternately, there is also a built-in REST{pp} endpoint to interpret a query string: + `POST /gsqlserver/interpreted_query` + -See the xref:tigergraph-server:API:index.adoc[RESTPP API User Guide] for details. +See the xref:{page-component-version}@tigergraph-server:API:index.adoc[RESTPP API User Guide] for details. . Define a named query and then run it. .. `CREATE QUERY`: define the functionality of the query .. `INTERPRET QUERY`: execute the query with input values @@ -568,7 +568,7 @@ If a query is saved as a draft before it reaches valid status, any queries that ==== If a user creates a query, this user becomes the owner of this query automatically. -For a detailed description, please refer to xref:xref:tigergraph-server:user-access:fine-grained-query-privileges.adoc +For a detailed description, please refer to xref:xref:{page-component-version}@tigergraph-server:user-access:fine-grained-query-privileges.adoc ==== == `INTERPRET QUERY` @@ -652,7 +652,7 @@ installQuery := INSTALL QUERY [installOptions] ( "*" | ALL | queryName ["," quer Required privilege: INSTALL_QUERY -`INSTALL QUERY` installs a query or multiple queries on a graph.Installing a query compiles the procedures described by the query as well as generates a xref:tigergraph-server:API:built-in-endpoints.adoc#_run_an_installed_query_get[REST endpoint] for running the query. +`INSTALL QUERY` installs a query or multiple queries on a graph.Installing a query compiles the procedures described by the query as well as generates a xref:{page-component-version}@tigergraph-server:API:built-in-endpoints.adoc#_run_an_installed_query_get[REST endpoint] for running the query. Installing a query allows the query to be run through the `RUN QUERY` command as well as through its REST endpoint, both offering stronger performance as compared to running the query through the `INTERPRET QUERY` command. The `INSTALL QUERY` command will install the queries specified, with query names separated by a comma. @@ -733,7 +733,7 @@ The `RUN QUERY` command runs an installed query. To run a query with the `RUN QUERY` command, specify the query name, followed by the query parameters enclosed in parentheses. Running a query executes all statements in the query body and produces output as specified by the output statements in the query. -You can also run an installed query through REST requests - see xref:tigergraph-server:API:built-in-endpoints.adoc#_run_an_installed_query_get[Run an installed query]. +You can also run an installed query through REST requests - see xref:{page-component-version}@tigergraph-server:API:built-in-endpoints.adoc#_run_an_installed_query_get[Run an installed query]. === Syntax @@ -968,7 +968,7 @@ Typically, the GSQL `RUN QUERY` command runs in the foreground and does not prod You can run queries in Detached Mode to enable background execution of long-running queries. -Queries executed in Detached mode are still subject to the system timeout limit. The default timeout limit is 16 seconds and can be set using the xref:tigergraph-server:API:index.adoc#_gsql_query_timeout[`GSQL-TIMEOUT`] header. +Queries executed in Detached mode are still subject to the system timeout limit. The default timeout limit is 16 seconds and can be set using the xref:{page-component-version}@tigergraph-server:API:index.adoc#_gsql_query_timeout[`GSQL-TIMEOUT`] header. To run a query in Detached Mode from the command line, use the``-async``option for the``RUN QUERY``command: diff --git a/modules/querying/pages/query-optimizer/query-plan-cache.adoc b/modules/querying/pages/query-optimizer/query-plan-cache.adoc index 2cafbd22..543f6311 100644 --- a/modules/querying/pages/query-optimizer/query-plan-cache.adoc +++ b/modules/querying/pages/query-optimizer/query-plan-cache.adoc @@ -53,7 +53,7 @@ INTERPRET QUERY (INT GSQL_p1, STRING GSQL_p2, STRING GSQL_p3, INT GSQL_p4) { Here, the constants `100`, `"Wang"`, `"1982-02-06 00:00:00"`, and `1200` have been replaced with query parameters (`GSQL_p1`, `GSQL_p2`, `GSQL_p3`, `GSQL_p4`). This allows the query plan to remain valid even if the values of these constants change in future executions. -There are two key xref:tigergraph-server:reference:configuration-parameters.adoc#gsql[configuration parameters] available to customize the query plan cache. +There are two key xref:{page-component-version}@tigergraph-server:reference:configuration-parameters.adoc#gsql[configuration parameters] available to customize the query plan cache. The `GSQL.QueryPlanCache.Enable` parameter enables the query plan cache, with the default value set to `true`. This ensures that query plans are cached to improve performance. Additionally, the `GSQL.QueryPlanCache.Capacity` parameter defines the maximum number of queries that can be stored in the cache, with a default value of `10,000`. This capacity can be adjusted within the range of 1 to 100,000, depending on your system’s requirements. diff --git a/modules/querying/pages/select-statement/select-statement-v1.adoc b/modules/querying/pages/select-statement/select-statement-v1.adoc index bb4b4599..b48499e4 100644 --- a/modules/querying/pages/select-statement/select-statement-v1.adoc +++ b/modules/querying/pages/select-statement/select-statement-v1.adoc @@ -3,7 +3,7 @@ This page describes the GSQL `SELECT` statement in GSQL Syntax V1. The default syntax is syntax v2. -To use syntax v1, you need to declare the syntax at the query level or in a xref:tigergraph-server:gsql-shell:gsql-sessions.adoc#_session_parameters[session parameter]. +To use syntax v1, you need to declare the syntax at the query level or in a xref:{page-component-version}@tigergraph-server:gsql-shell:gsql-sessions.adoc#_session_parameters[session parameter]. The `SELECT` block uses a _step_ _pattern_ to select some of the graph's vertices and edges. There are a number of optional clauses that define and/or refine the selection by constraining the vertex or edge set or the result set. The final output of a query is either a vertex set known as the _result set_ or a table. diff --git a/modules/tutorials/pages/gsql-101/built-in-select-queries.adoc b/modules/tutorials/pages/gsql-101/built-in-select-queries.adoc index ce12d950..536e8fa8 100644 --- a/modules/tutorials/pages/gsql-101/built-in-select-queries.adoc +++ b/modules/tutorials/pages/gsql-101/built-in-select-queries.adoc @@ -183,4 +183,4 @@ curl -X GET "http://localhost:14240/restpp/graph/Social/edges/Person/Tom/Friends } ---- -For more built-in REST endpoints, visit the xref:tigergraph-server:API:built-in-endpoints.adoc[Built-in Endpoints page]. +For more built-in REST endpoints, visit the xref:{page-component-version}@tigergraph-server:API:built-in-endpoints.adoc[Built-in Endpoints page]. diff --git a/modules/tutorials/pages/gsql-101/load-data-gsql-101.adoc b/modules/tutorials/pages/gsql-101/load-data-gsql-101.adoc index 3728c59c..e78e61b8 100644 --- a/modules/tutorials/pages/gsql-101/load-data-gsql-101.adoc +++ b/modules/tutorials/pages/gsql-101/load-data-gsql-101.adoc @@ -13,7 +13,7 @@ If they are elsewhere, then in the loading job script below replace `/home/tiger Enter the following set of commands in the GSQL shell. [NOTE] -In the default Docker installation described in xref:tigergraph-server:getting-started:docker.adoc[], these files are in the folder `/home/tigergraph/tutorial/3.x/gsql101/` +In the default Docker installation described in xref:{page-component-version}@tigergraph-server:getting-started:docker.adoc[], these files are in the folder `/home/tigergraph/tutorial/3.x/gsql101/` .GSQL commands to define a loading job diff --git a/modules/tutorials/pages/pattern-matching/prepare-environment.adoc b/modules/tutorials/pages/pattern-matching/prepare-environment.adoc index 8493c94d..1956265b 100644 --- a/modules/tutorials/pages/pattern-matching/prepare-environment.adoc +++ b/modules/tutorials/pages/pattern-matching/prepare-environment.adoc @@ -25,7 +25,7 @@ For example, Person connects to Tag by the hasInterest edge. Forum connects to P == Prerequisites * A running TigerGraph instance. -See xref:tigergraph-server:getting-started:docker.adoc[] to quickly provision a container running the latest version of TigerGraph. +See xref:{page-component-version}@tigergraph-server:getting-started:docker.adoc[] to quickly provision a container running the latest version of TigerGraph. * You have full privileges to create graphs, load data, and drop graphs. It is recommended that you go through this tutorial with the default user `tigergraph`, which has the `superuser` role with all supported privileges. From 4c6b2af5bd5c79386de76dc207d0916560d02541 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Sun, 18 May 2025 17:03:17 -0400 Subject: [PATCH 120/194] DOC-2806 proofread: remove spaces in paths --- modules/ddl-and-loading/pages/defining-a-graph-schema.adoc | 6 +++--- modules/ddl-and-loading/pages/running-a-loading-job.adoc | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc index d9686b85..3f891746 100644 --- a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc +++ b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc @@ -53,7 +53,7 @@ Once the graph designer has chosen a graph schema, the schema is ready to be for ==== You need the `WRITE_SCHEMA` privilege in the scope you are operating on to run commands that alter the graph schema. -To learn more about permission and privileges, see xref:{page-component-version}@tigergraph-server: user-access:access-control-model.adoc[]. +To learn more about permission and privileges, see xref:{page-component-version}@tigergraph-server:user-access:access-control-model.adoc[]. ==== == Global and Local Schemas @@ -609,7 +609,7 @@ New requirement for MultiGraph support. Applies even if only one graph exists. Before a user can use a graph, the user must be granted a role on that graph by an admin user of that graph or by a superuser. (Superusers are automatically granted the admin role on every graph). Second, for each GSQL session, the user must set a working graph. The `USE GRAPH` command sets or changes the user's working graph, for the current session. -For more about roles and privileges, see the document xref:{page-component-version}@tigergraph-server: user-access:index.adoc[Managing User Privileges and Authentication]. +For more about roles and privileges, see the document xref:{page-component-version}@tigergraph-server:user-access:index.adoc[Managing User Privileges and Authentication]. .USE GRAPH syntax [source,gsql] @@ -640,7 +640,7 @@ The `DROP GRAPH` command deletes the logical definition of the named graph. It w The `DROP ALL` command clears the entire graph store (i.e. deletes all data) and removes all data-related definitions from the catalog: vertex types, edge types, graph types, jobs, and queries. It will also erase graph-specific roles. -Unlike xref:{page-component-version}@tigergraph-server: getting-started:database-definition.adoc#_reset_all[the `gsql --reset` command], `DROP ALL` does not erase user and role information nor system settings. +Unlike xref:{page-component-version}@tigergraph-server:getting-started:database-definition.adoc#_reset_all[the `gsql --reset` command], `DROP ALL` does not erase user and role information nor system settings. [CAUTION] ==== diff --git a/modules/ddl-and-loading/pages/running-a-loading-job.adoc b/modules/ddl-and-loading/pages/running-a-loading-job.adoc index 4683ba8e..f2bb1961 100644 --- a/modules/ddl-and-loading/pages/running-a-loading-job.adoc +++ b/modules/ddl-and-loading/pages/running-a-loading-job.adoc @@ -41,7 +41,7 @@ There are options to end the job when it reaches a specified level of errors. [NOTE] User privileges for running loading jobs are treated as separate from privileges regarding reading and writing data to vertices and edges. A user can create and run loading jobs even without the privileges to modify vertex and edge data. -For more information, see xref:{page-component-version}@tigergraph-server: user-access:access-control-model.adoc[]. +For more information, see xref:{page-component-version}@tigergraph-server:user-access:access-control-model.adoc[]. [#_run_loading_job] === RUN LOADING JOB From 0c14d84224c0616b5cd9486910701a59d69e0275 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Mon, 19 May 2025 22:45:28 -0400 Subject: [PATCH 121/194] DOC-1718-warn-accumulative-deviation --- .../pages/common-errors-and-problems.adoc | 19 +++++++- .../pages/attribute-data-types.adoc | 45 ++++++++++++++----- modules/querying/pages/data-types.adoc | 8 +++- 3 files changed, 57 insertions(+), 15 deletions(-) diff --git a/modules/appendix/pages/common-errors-and-problems.adoc b/modules/appendix/pages/common-errors-and-problems.adoc index b513441a..eaac1c7a 100644 --- a/modules/appendix/pages/common-errors-and-problems.adoc +++ b/modules/appendix/pages/common-errors-and-problems.adoc @@ -7,7 +7,7 @@ No computer can store all floating point numbers (i.e., non-integers) with perfe The `FLOAT` data type offers about 7 decimal digits of precision; the `DOUBLE` data type offers about 15 decimal digits of precision. These are the same precision limits as in C++. - +=== Exact comparison is not appropriate Comparing two float or double values by using operators involving exact equality (`==`, `+<=+`, `>=`, `BETWEEN ... AND ...`) might lead to unexpected behavior. If the GSQL language parser detects that the user is attempting an exact equivalence test with float or double data types, it will display a warning message and suggestion. @@ -21,6 +21,23 @@ comparison with an error margin, e.g. 'abs((v) - (v2)) < epsilon', where epsilon is a very small positive value of your choice, such as 0.0001. ---- +=== Adding floating point values at different scales + +Imagine you have two `FLOAT` variables: + +[console] +---- +A = 1234567. +B = 0.1234567 +---- + +What is `A + B`? +In pure math, the answer is `1234567.1234567`. +But since `FLOAT` offers only about 7 digits of precision, it is impossible to adequately capture B's contribution. +This problem can occur inadvertently when adding a large set of numbers. +The individual numbers may be about the same scale, but the intermediate sums are of a larger sum. + + == Response to Non-existent vertex ID If a query has a vertex parameter (`VERTEX` or `VERTEX`), and if the ID for a nonexistent vertex is given when running the query, an error message is shown, and the query won't run. This is also the response when calling a function to convert a single vertex ID string to a vertex: diff --git a/modules/ddl-and-loading/pages/attribute-data-types.adoc b/modules/ddl-and-loading/pages/attribute-data-types.adoc index fc7264b2..9a5856a5 100644 --- a/modules/ddl-and-loading/pages/attribute-data-types.adoc +++ b/modules/ddl-and-loading/pages/attribute-data-types.adoc @@ -12,38 +12,50 @@ This page describes the different data types that can be stored in vertex and ed Primitive types are the most basic data types available within GSQL. They can also be used to construct other complex data types. - +[%autowidth] |=== | Name | Default value | Valid input format (regex) | Range and precision | Description | `INT` | 0 | [-+]?[0-9]+ -| --2{caret}63 to +2{caret}63 - 1 (-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807) +| -2^63^ to +2^63^ - 1 +(-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807) | 8-byte signed integer | `UINT` | 0 | [0-9]+ -| 0 to 2{caret}64 - 1 (18,446,744,073,709,551,615) +| 0 to 2^64^ - 1 + +(0 to 18,446,744,073,709,551,615) | 8-byte unsigned integer | `FLOAT` | 0.0 -| [ -+ ] ? [ 0 - 9 ] * . ? [ 0 - 9 ] +( [ eE ] [ -+ ] ? [ 0 - 9 ] + ) ? -| +/- 3.4 E +/-38, ~7 decimal digits of precision. -| 4-byte single-precision floating point number Examples: 3.14159, .0065e14, 7E23 See note below. +| [ -+ ]? [ 0 - 9 ]* .? [ 0 - 9 ] + +( [ eE ] [ -+ ]? [ 0 - 9 ]+ )? +| +/- 3.4 E +/-38, + +~7 decimal digits of precision. +a| 4-byte single-precision floating point number Examples: 3.14159, .0065e14, 7E23. *See notes below*. + | `DOUBLE` | 0.0 -| [ -+ ] ? [ 0 - 9 ] * . ? [ 0 - 9 ] +( [ eE ] [ -+ ] ? [ 0 - 9 ] + ) ? -| +/- 1.7 E +/-308, ~16 decimal digits of precision +| [ -+ ]? [ 0 - 9 ]* .? [ 0 - 9 ] + +( [ eE ] [ -+ ]? [ 0 - 9 ] + )? +| +/- 1.7 E +/-308, + +~16 decimal digits of precision | 8-byte double-precision floating point number. -Has the same input and output format as FLOAT, but the range and precision are greater. See note below. +Has the same input and output format as FLOAT, but the range and precision are greater. *See notes below*. | `BOOL` -| false -| true, false (case insensitive), 1, 0 -| true, false +| `false` +| `true`, `false` (case insensitive), 1, 0 +| `true`, `false` | Boolean true and false, represented within GSQL as _true_ and _false_ , and represented in input and output as 1 and 0 | `STRING` @@ -57,6 +69,15 @@ The string value can optionally be enclosed by single quote marks or double quot |=== [NOTE] +.FLOAT and DOUBLE +==== +Remember that FLOAT and DOUBLE have limited precision. +In particular, for large numbers that require precision, `DOUBLE` is the better choice. +==== + + +[NOTE] +.Display format ==== [For v3.9.2+] FLOAT and DOUBLE values are displayed with up to 7 and 16 digits of precision, respectively. ==== diff --git a/modules/querying/pages/data-types.adoc b/modules/querying/pages/data-types.adoc index 892ac5bb..ce381aa5 100644 --- a/modules/querying/pages/data-types.adoc +++ b/modules/querying/pages/data-types.adoc @@ -169,6 +169,7 @@ The default value is the initial value of a base type variable (see Section "Var The first seven types (`INT`, `UINT`, `FLOAT`, `DOUBLE`, `BOOL`, `STRING`, and `DATETIME`) are the same ones mentioned in the "xref:ddl-and-loading:attribute-data-types.adoc#_primitive_types[Attribute Data Types]" section of xref:ddl-and-loading:attribute-data-types.adoc[GSQL Language Reference, Part 1]. +[cols='2,3,5'] |=== | Type | Default value | Literal @@ -182,7 +183,9 @@ The first seven types (`INT`, `UINT`, `FLOAT`, `DOUBLE`, `BOOL`, `STRING`, and ` | `FLOAT` | `0` -| A decimal precise up to about 7 digits: `3.14159` +a| A decimal precise up to about 7 digits: `3.14159` + +*NOTE*: For large numbers, `DOUBLE` is better. | `DOUBLE` | `0` @@ -221,8 +224,9 @@ The `FLOAT` and `DOUBLE` data types have the same precision limits as in C++. See xref:appendix:common-errors-and-problems.adoc[] for more details. [WARNING] +.Support for fixed and exponential notation ==== -`FLOAT` and `DOUBLE` input values must be in fixed point `d.dddd` __**__format, where `d` is a digit. Output values will be printed in either fixed point for exponential notation, whichever is more compact. +`FLOAT` and `DOUBLE` input values must be in fixed point `d.dddd` format, where `d` is a digit. Output values will be printed in either fixed point or exponential notation, whichever is more compact. The GSQL Loader can read FLOAT and DOUBLE values with exponential notation (e.g., 1.25 E-7). ==== From 69a945eaf3da15ff3a6f2f4e28a6a212e58e01ab Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 20 May 2025 00:16:54 -0400 Subject: [PATCH 122/194] DOC-1718-warn-accumulative-deviation polish wording --- .../appendix/pages/common-errors-and-problems.adoc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/appendix/pages/common-errors-and-problems.adoc b/modules/appendix/pages/common-errors-and-problems.adoc index eaac1c7a..15095f6f 100644 --- a/modules/appendix/pages/common-errors-and-problems.adoc +++ b/modules/appendix/pages/common-errors-and-problems.adoc @@ -7,7 +7,8 @@ No computer can store all floating point numbers (i.e., non-integers) with perfe The `FLOAT` data type offers about 7 decimal digits of precision; the `DOUBLE` data type offers about 15 decimal digits of precision. These are the same precision limits as in C++. -=== Exact comparison is not appropriate +=== Exact comparison of floating point numbers is not appropriate + Comparing two float or double values by using operators involving exact equality (`==`, `+<=+`, `>=`, `BETWEEN ... AND ...`) might lead to unexpected behavior. If the GSQL language parser detects that the user is attempting an exact equivalence test with float or double data types, it will display a warning message and suggestion. @@ -21,9 +22,9 @@ comparison with an error margin, e.g. 'abs((v) - (v2)) < epsilon', where epsilon is a very small positive value of your choice, such as 0.0001. ---- -=== Adding floating point values at different scales +=== Adding floating point values at different scales is problematic -Imagine you have two `FLOAT` variables: +When two addends are at different scales, the sum may call for more precision than is available. Imagine you have two `FLOAT` variables: [console] ---- @@ -33,9 +34,9 @@ B = 0.1234567 What is `A + B`? In pure math, the answer is `1234567.1234567`. -But since `FLOAT` offers only about 7 digits of precision, it is impossible to adequately capture B's contribution. +But that requires 14 digits of precision, while `FLOAT` offers only about 7 digits. This problem can occur inadvertently when adding a large set of numbers. -The individual numbers may be about the same scale, but the intermediate sums are of a larger sum. +The individual numbers may be about the same scale, but the intermediate sums are of a larger scale. == Response to Non-existent vertex ID From cb8a0a6f34d9c3c1576e54ff2f4a69f2fede8ec9 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 22 May 2025 01:20:01 -0400 Subject: [PATCH 123/194] DOC-2482 header levels gsql 4.2 --- .../pages/creating-a-loading-job.adoc | 2 +- .../pages/defining-a-graph-schema.adoc | 2 +- .../querying/pages/func/list-functions.adoc | 72 +++++++++---------- .../pages/operators-and-expressions.adoc | 6 +- .../output-statements-and-file-objects.adoc | 2 +- 5 files changed, 43 insertions(+), 41 deletions(-) diff --git a/modules/ddl-and-loading/pages/creating-a-loading-job.adoc b/modules/ddl-and-loading/pages/creating-a-loading-job.adoc index adfac8fc..df94cfcd 100644 --- a/modules/ddl-and-loading/pages/creating-a-loading-job.adoc +++ b/modules/ddl-and-loading/pages/creating-a-loading-job.adoc @@ -618,7 +618,7 @@ Token functions are functions in the DDL language that operate on tokens.Some ma To use a token function, replace the attribute in the destination clause of the `LOAD` statement with the function call.The arguments of the function can be a column from the `FILE` object. [discrete] -==== Example +=== Example: [source,gsql] ---- diff --git a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc index 3f891746..105c5f47 100644 --- a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc +++ b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc @@ -468,7 +468,7 @@ User-defined types at the catalog level can only be used for query return value Once defined, all graphs in the database have access to these user-defined types, and subqueries can be defined to return the user-defined types. [discrete] -==== Example: +=== Example: The example below defines a tuple type `My_Tuple` and a heap accumulator type `My_Heap`, so that the subquery `Sub_Query_1` can return a value of `My_Heap` type to its outer query `Query_1`. diff --git a/modules/querying/pages/func/list-functions.adoc b/modules/querying/pages/func/list-functions.adoc index 3d8aaab6..24afc468 100644 --- a/modules/querying/pages/func/list-functions.adoc +++ b/modules/querying/pages/func/list-functions.adoc @@ -4,21 +4,21 @@ This page lists the list (ListAccum) functions that are available in the GSQL query language. -=== `head()` +== `head()` -==== Syntax +=== Syntax `head(list)` -==== Description +=== Description `head()` returns the first element in a list. It is semantically the same as `list.get(0)` -==== Return type +=== Return type `ELEMENT` -==== Parameters +=== Parameters |=== | Parameter | Description | Data type @@ -27,27 +27,27 @@ This page lists the list (ListAccum) functions that are available in the GSQL qu | `ListAccum` |=== -==== Example +=== Example [source,text] ---- head(["a", "b", "c"]) -> "a" ---- -=== `last()` +== `last()` -==== Syntax +=== Syntax `last(list)` -==== Description +=== Description `last()` returns the last element in a list. It is semantically the same as `list.get(list.size() - 1)` -==== Return type +=== Return type `ELEMENT` -==== Parameters +=== Parameters |=== | Parameter | Description | Data type @@ -56,27 +56,27 @@ head(["a", "b", "c"]) -> "a" | `ListAccum` |=== -==== Example +=== Example [source,text] ---- last(["a", "b", "c"]) -> "c" ---- -=== `range()` +== `range()` -==== Syntax +=== Syntax `range(start, end [, step])` -==== Description +=== Description `range()` returns a `ListAccum` of integer values within a range bounded by a start value `start` and end value `end`, and an optional step size `step`. The range is inclusive, so the arithmetic progression will always contain `start`, and it may contain `end`value, depending on the step size. -==== Return type +=== Return type `ListAccum` -==== Parameters +=== Parameters |=== | Parameter | Description | Data type @@ -95,7 +95,7 @@ The difference between any two consecutive values in the range | `UINT`, `INT` |=== -==== Example +=== Example [source,text] ---- range(0, 5) -> [0, 1, 2, 3, 4, 5] @@ -109,21 +109,21 @@ range(2, 18, 3) -> [2, 5, 8, 11, 14, 17] * For large ranges, the range() function can consume significant memory, as it generates the entire list before iteration. ==== -=== `size()` +== `size()` -==== Syntax +=== Syntax `size(list)` -==== Description +=== Description `size()` returns the number of elements in a `ListAccum` -==== Return type +=== Return type `UINT` -==== Parameters +=== Parameters |=== | Parameter | Description | Data type @@ -132,27 +132,27 @@ range(2, 18, 3) -> [2, 5, 8, 11, 14, 17] | `ListAccum` |=== -==== Example +=== Example [source,text] ---- size(["a", "b", "c"]) -> 3 ---- -=== `split()` +== `split()` -==== Syntax +=== Syntax `split(original, splitDelimiter)` -==== Description +=== Description `split()` returns a list of strings resulting from the splitting of the original string on matches of the given delimiter. -==== Return type +=== Return type `ListAccum` -==== Parameters +=== Parameters |=== | Parameter | Description | Data type @@ -165,28 +165,28 @@ size(["a", "b", "c"]) -> 3 | `STRING` |=== -==== Example +=== Example [source,text] ---- split("one,two", ",") -> ["one", "two"] split("aaabcaabca", "abc") -> ["aa", "a", "a"] ---- -=== `tail()` +== `tail()` -==== Syntax +=== Syntax `tail(list)` -==== Description +=== Description `tail()` returns the copy of the list that includes all but the first element in the parameter list. -==== Return type +=== Return type `ListAccum` -==== Parameters +=== Parameters |=== | Parameter | Description | Data type @@ -195,7 +195,7 @@ split("aaabcaabca", "abc") -> ["aa", "a", "a"] | `ListAccum` |=== -==== Example +=== Example [source,text] ---- tail(["a", "b", "c"]) -> ["b", "c"] diff --git a/modules/querying/pages/operators-and-expressions.adoc b/modules/querying/pages/operators-and-expressions.adoc index d39bfe3a..15097cb9 100644 --- a/modules/querying/pages/operators-and-expressions.adoc +++ b/modules/querying/pages/operators-and-expressions.adoc @@ -619,7 +619,8 @@ caseExpr := END ---- -==== Example +[discrete] +=== Example [source,ebnf] ---- numDays = @@ -648,7 +649,8 @@ caseExprVar := testExpression := expression ---- -==== Example +[discrete] +=== Example [source,ebnf] ---- points = diff --git a/modules/querying/pages/output-statements-and-file-objects.adoc b/modules/querying/pages/output-statements-and-file-objects.adoc index 6217b5ae..c17a3c21 100644 --- a/modules/querying/pages/output-statements-and-file-objects.adoc +++ b/modules/querying/pages/output-statements-and-file-objects.adoc @@ -501,7 +501,7 @@ The data from query-body level `FILE` print statements (either `TO_CSV` or `prin ==== [discrete] -==== Example +=== Example .File object query example From d8e67718354539fd4b83be4ce42b17eee989dc14 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 11 Jun 2025 20:40:34 +0530 Subject: [PATCH 124/194] DOC-2860-PRIMARY_ID example updated --- modules/ddl-and-loading/pages/defining-a-graph-schema.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc index 105c5f47..fd0fce0f 100644 --- a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc +++ b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc @@ -17,7 +17,7 @@ For example, it does not specify whether a User may connect to multiple occupati .A schema for a User-Book-Rating graph image::user-book-rating-schema.png[A schema for a User-Book-Rating graph. The vertex User is connected to Occupation with the user_occupation edge and to Book with the user_book_rating edge. Book is connected to Genre with the book_genre edge.] -An edge connects two vertices: a _source vertex_ and a _target vertex_ . +An edge connects two vertices: a _source vertex_ and a _target vertex_. An edge type can be either _directed_ or _undirected_. A directed edge has a clear semantic direction, from the source vertex to the target vertex. For example, if there is an edge type that represents a plane flight segment, each segment needs to distinguish which airport is the origin (source vertex) and which airport is the destination (target vertex). @@ -177,7 +177,7 @@ Example: [source.wrap,ebnf] ---- -CREATE VERTEX Movie (id UINT PRIMARY KEY, name STRING, year UINT) +CREATE VERTEX Movie (PRIMARY_ID id UINT, name STRING, year UINT) ---- By default, a vertex type which is defined with `PRIMARY_ID` cannot treat the ID as a regular attribute. For example, if the ID's field name is `serial_num`, neither of the following syntaxes are valid: From 0ca8368609fe1670bdca986c5922c200dca7b7dd Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 12 Jun 2025 18:13:08 +0530 Subject: [PATCH 125/194] Create schema-design-guide.adoc --- modules/tutorials/pages/schema-design-guide.adoc | 1 + 1 file changed, 1 insertion(+) create mode 100644 modules/tutorials/pages/schema-design-guide.adoc diff --git a/modules/tutorials/pages/schema-design-guide.adoc b/modules/tutorials/pages/schema-design-guide.adoc new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/modules/tutorials/pages/schema-design-guide.adoc @@ -0,0 +1 @@ + From 7076a55407765d9737157fd277f583eb0e3bb956 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 25 Jun 2025 17:30:12 +0530 Subject: [PATCH 126/194] DOC-2852-added Token Bank Exception --- modules/ddl-and-loading/pages/managing-loading-job.adoc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/pages/managing-loading-job.adoc b/modules/ddl-and-loading/pages/managing-loading-job.adoc index 4d2b3bed..5989740a 100644 --- a/modules/ddl-and-loading/pages/managing-loading-job.adoc +++ b/modules/ddl-and-loading/pages/managing-loading-job.adoc @@ -180,8 +180,11 @@ If an object level error or failed condition occurs, only the corresponding obje | Invalid primary id | The number of invalid objects caused by wrong data format for the PRIMARY_ID type -| incorrect fixed binary length +| Incorrect fixed binary length | The number of invalid objects caused by the mismatch of the length of the data to the type defined in the schema + +| Token Bank Exception +| Exception thrown by functions within the token bank. This is a general error category for failures in user-defined functions and does not provide specific details about the cause. |=== Note that failing a `WHERE` clause is not necessarily a bad result. @@ -293,4 +296,4 @@ Of the 6 valid lines, * Two lines (Lines 4 and 5) do not pass the `WHERE` clause. The errors that appear are the first line with an error in each batch in the loading job. -Up to 100 sample lines showing errors appear in the log. \ No newline at end of file +Up to 100 sample lines showing errors appear in the log. From 84608ec35660dba5dea4f28a91d5553dedbacd2e Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 25 Jun 2025 20:36:50 +0530 Subject: [PATCH 127/194] Update modules/ddl-and-loading/pages/managing-loading-job.adoc Co-authored-by: Victor Lee --- modules/ddl-and-loading/pages/managing-loading-job.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/pages/managing-loading-job.adoc b/modules/ddl-and-loading/pages/managing-loading-job.adoc index 5989740a..69142863 100644 --- a/modules/ddl-and-loading/pages/managing-loading-job.adoc +++ b/modules/ddl-and-loading/pages/managing-loading-job.adoc @@ -184,7 +184,7 @@ If an object level error or failed condition occurs, only the corresponding obje | The number of invalid objects caused by the mismatch of the length of the data to the type defined in the schema | Token Bank Exception -| Exception thrown by functions within the token bank. This is a general error category for failures in user-defined functions and does not provide specific details about the cause. +| The number of exceptions thrown by user-defined token functions. |=== Note that failing a `WHERE` clause is not necessarily a bad result. From 6f5b08ddf484e5acb6f38f1b2d839d2d204b84b8 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 1 Jul 2025 15:46:42 +0530 Subject: [PATCH 128/194] updated display-version to 4.2 (non-Preview) - gsql-docs --- antora.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/antora.yml b/antora.yml index 68d8afb0..b5dae824 100644 --- a/antora.yml +++ b/antora.yml @@ -1,7 +1,7 @@ name: gsql-ref title: GSQL Language Reference version: "4.2" -display_version: "4.2 Pre" +display_version: "4.2" latest: true start_page: intro:index.adoc @@ -12,4 +12,4 @@ nav: - modules/querying/nav.adoc - modules/openCypher-in-gsql/nav.adoc - modules/vector/nav.adoc -- modules/appendix/nav.adoc \ No newline at end of file +- modules/appendix/nav.adoc From 5491bbaad8c2bf74481861ea3a280e4813eca9af Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 1 Jul 2025 17:10:16 -0400 Subject: [PATCH 129/194] DOC-2107-udf-github-caching --- .../ddl-and-loading/pages/add-token-function.adoc | 10 +++++++++- .../pages/func/query-user-defined-functions.adoc | 12 ++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/ddl-and-loading/pages/add-token-function.adoc b/modules/ddl-and-loading/pages/add-token-function.adoc index 9b70de9e..6409f3d3 100644 --- a/modules/ddl-and-loading/pages/add-token-function.adoc +++ b/modules/ddl-and-loading/pages/add-token-function.adoc @@ -134,7 +134,6 @@ If GitHub access is configured, GSQL will retrieve user source code files from G TigerGraph only allows one TokenBank file at a time. Files on GitHub take priority. If GitHub is connected but files are missing, TigerGraph will look for a TokenBank file added via `PUT`. -New additions to the files in the GitHub repository are instantly available in GSQL. You can retrieve the TokenBank from `AppRoot/dev/gdk/gsql/src/TokenBank/TokenBank.cpp` and copy it to a Git repository of your choice. @@ -177,6 +176,15 @@ gadmin config apply After the parameters are successfully configured, you can access your user-defined token functions right away. +=== Updating UDFs sourced from GitHub + +Prior to 4.1, each time GSQL was run, it would check to see if the UDF files on GitHub had changed. +If they had, it would download the new files and install them. + +Beginning in 4.1, GSQL only checks GitHub if more than one hour has elapsed since the last check. + +To force GSQL to install new UDF files from GitHub, run `gadmin restart all` to restart GSQL. + == Store token functions locally All UDF files are scanned by the system to ensure that they comply with the UDF file policy as set by configuration commands in TigerGraph Server. diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index e8079610..73104926 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -116,8 +116,6 @@ This is TigerGraph's recommended approach to managing UDFs. If GitHub access is configured, GSQL retrieves user source code files from GitHub before other sources, so long as the files exist on GitHub. If GitHub is connected but files are missing, TigerGraph looks for a UDF file added locally with the `PUT` command. -New additions to the files in the GitHub repository are instantly available in GSQL. - You can retrieve ExprFunctions.hpp and ExprUtil.hpp from `AppRoot/dev/gdk/gsql/src/QueryUdf/ExprFunctions.hpp` and copy them to a Git repository of your choice. The file names must be `ExprFunctions.hpp` and `ExprUtil.hpp`. @@ -159,6 +157,16 @@ gadmin config apply After the parameters are successfully configured, you can access your UDFs in new queries right away. +=== Updating UDFs sourced from GitHub + +Prior to 4.1, each time GSQL was run, it would check to see if the UDF files on GitHub had changed. +If they had, it would download the new files and install them. + +Beginning in 4.1, GSQL only checks GitHub if more than one hour has elapsed since the last check. + +To force GSQL to install new UDF files from GitHub, run `gadmin restart all` to restart GSQL. + + === Upload UDFs with GSQL `PUT` command TigerGraph offers the ability to upload UDFs directly from GSQL using the `PUT` command. This command is securely managed by xref:{page-component-version}@tigergraph-server:system-management:management-commands.adoc[ the management tool `gadmin`] and is disabled by default, requiring a Tigergraph Linux user with gadmin access to enable it. From e0178d1ae35e6c7df2d2efcf8e2d53ad658c0846 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 1 Jul 2025 17:10:16 -0400 Subject: [PATCH 130/194] DOC-2107-udf-github-caching --- .../ddl-and-loading/pages/add-token-function.adoc | 10 +++++++++- .../pages/func/query-user-defined-functions.adoc | 12 ++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/ddl-and-loading/pages/add-token-function.adoc b/modules/ddl-and-loading/pages/add-token-function.adoc index 9b70de9e..6409f3d3 100644 --- a/modules/ddl-and-loading/pages/add-token-function.adoc +++ b/modules/ddl-and-loading/pages/add-token-function.adoc @@ -134,7 +134,6 @@ If GitHub access is configured, GSQL will retrieve user source code files from G TigerGraph only allows one TokenBank file at a time. Files on GitHub take priority. If GitHub is connected but files are missing, TigerGraph will look for a TokenBank file added via `PUT`. -New additions to the files in the GitHub repository are instantly available in GSQL. You can retrieve the TokenBank from `AppRoot/dev/gdk/gsql/src/TokenBank/TokenBank.cpp` and copy it to a Git repository of your choice. @@ -177,6 +176,15 @@ gadmin config apply After the parameters are successfully configured, you can access your user-defined token functions right away. +=== Updating UDFs sourced from GitHub + +Prior to 4.1, each time GSQL was run, it would check to see if the UDF files on GitHub had changed. +If they had, it would download the new files and install them. + +Beginning in 4.1, GSQL only checks GitHub if more than one hour has elapsed since the last check. + +To force GSQL to install new UDF files from GitHub, run `gadmin restart all` to restart GSQL. + == Store token functions locally All UDF files are scanned by the system to ensure that they comply with the UDF file policy as set by configuration commands in TigerGraph Server. diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index e8079610..73104926 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -116,8 +116,6 @@ This is TigerGraph's recommended approach to managing UDFs. If GitHub access is configured, GSQL retrieves user source code files from GitHub before other sources, so long as the files exist on GitHub. If GitHub is connected but files are missing, TigerGraph looks for a UDF file added locally with the `PUT` command. -New additions to the files in the GitHub repository are instantly available in GSQL. - You can retrieve ExprFunctions.hpp and ExprUtil.hpp from `AppRoot/dev/gdk/gsql/src/QueryUdf/ExprFunctions.hpp` and copy them to a Git repository of your choice. The file names must be `ExprFunctions.hpp` and `ExprUtil.hpp`. @@ -159,6 +157,16 @@ gadmin config apply After the parameters are successfully configured, you can access your UDFs in new queries right away. +=== Updating UDFs sourced from GitHub + +Prior to 4.1, each time GSQL was run, it would check to see if the UDF files on GitHub had changed. +If they had, it would download the new files and install them. + +Beginning in 4.1, GSQL only checks GitHub if more than one hour has elapsed since the last check. + +To force GSQL to install new UDF files from GitHub, run `gadmin restart all` to restart GSQL. + + === Upload UDFs with GSQL `PUT` command TigerGraph offers the ability to upload UDFs directly from GSQL using the `PUT` command. This command is securely managed by xref:{page-component-version}@tigergraph-server:system-management:management-commands.adoc[ the management tool `gadmin`] and is disabled by default, requiring a Tigergraph Linux user with gadmin access to enable it. From 539d3f3d8b748533a8e4b16fd98098b0d3b7d4e9 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 1 Jul 2025 23:02:31 -0400 Subject: [PATCH 131/194] DOC-2107 proofread: heading level, no section nums --- modules/ddl-and-loading/pages/add-token-function.adoc | 2 +- modules/querying/pages/func/query-user-defined-functions.adoc | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/ddl-and-loading/pages/add-token-function.adoc b/modules/ddl-and-loading/pages/add-token-function.adoc index 6409f3d3..86bb9bbf 100644 --- a/modules/ddl-and-loading/pages/add-token-function.adoc +++ b/modules/ddl-and-loading/pages/add-token-function.adoc @@ -176,7 +176,7 @@ gadmin config apply After the parameters are successfully configured, you can access your user-defined token functions right away. -=== Updating UDFs sourced from GitHub +=== Update UDFs sourced from GitHub Prior to 4.1, each time GSQL was run, it would check to see if the UDF files on GitHub had changed. If they had, it would download the new files and install them. diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index 73104926..aa8e76da 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -1,6 +1,5 @@ = Query User-Defined Functions :pp: {plus}{plus} -:sectnums: :description: Instructions to define UDFs in the GSQL Query language. In GSQL, users can supplement the language by defining their own query user-defined functions (query UDFs) in C{pp}. @@ -157,7 +156,7 @@ gadmin config apply After the parameters are successfully configured, you can access your UDFs in new queries right away. -=== Updating UDFs sourced from GitHub +==== Update UDFs sourced from GitHub Prior to 4.1, each time GSQL was run, it would check to see if the UDF files on GitHub had changed. If they had, it would download the new files and install them. From 076df9fefdcc0ca8522a72e5a7b1703c34b8a1a4 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 1 Jul 2025 23:02:31 -0400 Subject: [PATCH 132/194] DOC-2107 proofread: heading level, no section nums --- modules/ddl-and-loading/pages/add-token-function.adoc | 2 +- modules/querying/pages/func/query-user-defined-functions.adoc | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/ddl-and-loading/pages/add-token-function.adoc b/modules/ddl-and-loading/pages/add-token-function.adoc index 6409f3d3..86bb9bbf 100644 --- a/modules/ddl-and-loading/pages/add-token-function.adoc +++ b/modules/ddl-and-loading/pages/add-token-function.adoc @@ -176,7 +176,7 @@ gadmin config apply After the parameters are successfully configured, you can access your user-defined token functions right away. -=== Updating UDFs sourced from GitHub +=== Update UDFs sourced from GitHub Prior to 4.1, each time GSQL was run, it would check to see if the UDF files on GitHub had changed. If they had, it would download the new files and install them. diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index 73104926..aa8e76da 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -1,6 +1,5 @@ = Query User-Defined Functions :pp: {plus}{plus} -:sectnums: :description: Instructions to define UDFs in the GSQL Query language. In GSQL, users can supplement the language by defining their own query user-defined functions (query UDFs) in C{pp}. @@ -157,7 +156,7 @@ gadmin config apply After the parameters are successfully configured, you can access your UDFs in new queries right away. -=== Updating UDFs sourced from GitHub +==== Update UDFs sourced from GitHub Prior to 4.1, each time GSQL was run, it would check to see if the UDF files on GitHub had changed. If they had, it would download the new files and install them. From fc9c90a8c30bcb9670e9fea1a90f3407344004d7 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 8 Jul 2025 20:07:00 -0400 Subject: [PATCH 133/194] DOC-2120-query-udf-disabled-after-chang --- .../func/query-user-defined-functions.adoc | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index aa8e76da..e380cf83 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -12,8 +12,8 @@ Once defined, the new functions are added into GSQL automatically the next time UDFs are written in C{pp} in two files, `ExprFunctions.hpp` and `ExprUtil.hpp`: -* ExprFunctions is used for functions that are called directly in GSQL queries. -* ExprUtil contains structs or helper functions that are used by the functions in ExprFunctions. +* `ExprFunctions` is used for functions that are called directly in GSQL queries. +* `ExprUtil` contains structs or helper functions that are used by the functions in `ExprFunctions`. The functions defined in `ExprUtil.hpp` cannot be used in a GSQL query. == UDF security @@ -73,9 +73,9 @@ inline bool greater_than_three (double x) { | All other C{pp} data types | *No* | *No* | Yes |=== -You can write your functions in the `ExprFunctions` file provided as a sample in TigerGraph Server installations, or create your own `.hpp` files from scratch. +You can place your functions in the `ExprFunctions.hpp` file provided as a sample in TigerGraph Server installations, or create your own file from scratch. -If your function requires a user-defined struct or helper function, that struct or helper function must be defined in a separate `ExprUtil` file. +If your function requires a user-defined struct or helper function, that struct or helper function must be defined in a separate `ExprUtil.hpp` file. [NOTE] C{pp} supports changing the value of a `for` loop variable within a loop. @@ -100,13 +100,24 @@ inline string reverse(string str){ There are two ways to modify the UDF files to add user-defined functions to GSQL. Both are secured by `gadmin` and require administrator-level access: -* Store UDF files in a GitHub repository, and configure GSQL to read from the repository. +* xref:_use_github_to_store_udfs[Store UDF files in a GitHub repository], and configure GSQL to read from the repository. ** This is the recommended approach. It also takes the highest precedence. If GSQL is configured to read from GitHub for UDFs and the configurations are valid, UDFs in other sources are ignored. -* Use the GSQL `PUT` command to upload UDFs. +* xref:#_upload_udfs_with_gsql_put_command[Use the GSQL `PUT` command to upload UDFs]. ** For security reasons, this method is disabled by default, and can only be enabled by the TigerGraph Linux user with access to `gadmin`. +[IMPORTANT] +.Need to reinstall queries using UDFs +==== +If you update the UDF files, then any existing installed queries which use any UDF, whether modified or not, will be disabled as a precaution. +To restalling them: + +. Check each query to see if it needs to be modified or not. Make necessary modifications. +. Run `CREATE OR REPLACE QUERY` for each query. +. Run `INSTALL QUERY`, singly or for a batch of queries. +==== + === Use GitHub to store UDFs You can configure GSQL to read from a GitHub repository for ExprFunctions and ExprUtil. From a21329f199046933cb4866208cd2ebe9473ca51d Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 9 Jul 2025 17:07:02 +0530 Subject: [PATCH 134/194] DOC-2906-added info loading job max error keys options --- modules/ddl-and-loading/pages/running-a-loading-job.adoc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/ddl-and-loading/pages/running-a-loading-job.adoc b/modules/ddl-and-loading/pages/running-a-loading-job.adoc index f2bb1961..4480822a 100644 --- a/modules/ddl-and-loading/pages/running-a-loading-job.adoc +++ b/modules/ddl-and-loading/pages/running-a-loading-job.adoc @@ -107,10 +107,14 @@ There are two possible cases where an input line may be rejected: The percentage number following `-max_percent_error` **is required** if the option is provided. Otherwise, a parsing error will appear. +The xref:{page-component-version}@tigergraph-server:api:gsql-endpoints.adoc#_example_42[`maxPercentError`] key for running a loading job via the REST API has the same meaning as the `-max_percent_error` option in GSQL. + ==== `-max_error me` The `-max_error` option instructs the loader process to abort the loading job if the number of data lines in the input batch that are rejected exceeds `me`, where `me` is an integer between 0 and 2147483647. This option is analogous to the `-max_percent_error` option. +The xref:{page-component-version}@tigergraph-server:api:gsql-endpoints.adoc#_example_42[`maxNumError`] key for running a loading job via the REST API has the same meaning as the `-max_error` option in GSQL. + === Parameters Below are the parameters available for the `RUN QUERY` command introduced by the `USING` clause. From f274023495a60d66474c1c3ee715aa21b8df56f9 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 9 Jul 2025 17:30:05 +0530 Subject: [PATCH 135/194] Update running-a-loading-job.adoc --- modules/ddl-and-loading/pages/running-a-loading-job.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/pages/running-a-loading-job.adoc b/modules/ddl-and-loading/pages/running-a-loading-job.adoc index 4480822a..dcee5cb5 100644 --- a/modules/ddl-and-loading/pages/running-a-loading-job.adoc +++ b/modules/ddl-and-loading/pages/running-a-loading-job.adoc @@ -107,13 +107,13 @@ There are two possible cases where an input line may be rejected: The percentage number following `-max_percent_error` **is required** if the option is provided. Otherwise, a parsing error will appear. -The xref:{page-component-version}@tigergraph-server:api:gsql-endpoints.adoc#_example_42[`maxPercentError`] key for running a loading job via the REST API has the same meaning as the `-max_percent_error` option in GSQL. +The xref:{page-component-version}@tigergraph-server:api:gsql-endpoints.adoc#_run_a_loading_job[`maxPercentError`] key for running a loading job via the REST API has the same meaning as the `-max_percent_error` option in GSQL. ==== `-max_error me` The `-max_error` option instructs the loader process to abort the loading job if the number of data lines in the input batch that are rejected exceeds `me`, where `me` is an integer between 0 and 2147483647. This option is analogous to the `-max_percent_error` option. -The xref:{page-component-version}@tigergraph-server:api:gsql-endpoints.adoc#_example_42[`maxNumError`] key for running a loading job via the REST API has the same meaning as the `-max_error` option in GSQL. +The xref:{page-component-version}@tigergraph-server:api:gsql-endpoints.adoc#_run_a_loading_job[`maxNumError`] key for running a loading job via the REST API has the same meaning as the `-max_error` option in GSQL. === Parameters From 532ad9ef638a175a3917be82b331b77b9705dcfb Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 10 Jul 2025 09:21:49 -0400 Subject: [PATCH 136/194] DOC-2120-proofread-udf-update-disables-queries --- .../pages/func/query-user-defined-functions.adoc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index e380cf83..5433f6ef 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -107,13 +107,14 @@ If GSQL is configured to read from GitHub for UDFs and the configurations are va * xref:#_upload_udfs_with_gsql_put_command[Use the GSQL `PUT` command to upload UDFs]. ** For security reasons, this method is disabled by default, and can only be enabled by the TigerGraph Linux user with access to `gadmin`. +[#udf_update_warning] [IMPORTANT] -.Need to reinstall queries using UDFs +.Query reactivation required if UDFs are modified ==== -If you update the UDF files, then any existing installed queries which use any UDF, whether modified or not, will be disabled as a precaution. -To restalling them: +If the UDF files change, either through GitHub or `PUT`, then any existing installed queries which use any UDF, whether modified or not, will be disabled as a precaution. +To re-enable them: -. Check each query to see if it needs to be modified or not. Make necessary modifications. +. Check each query to see if the UDF change causes a need to revise the query. Make necessary modifications. . Run `CREATE OR REPLACE QUERY` for each query. . Run `INSTALL QUERY`, singly or for a batch of queries. ==== @@ -169,13 +170,13 @@ After the parameters are successfully configured, you can access your UDFs in ne ==== Update UDFs sourced from GitHub -Prior to 4.1, each time GSQL was run, it would check to see if the UDF files on GitHub had changed. -If they had, it would download the new files and install them. +For versions prior to 4.1, each time GSQL is run, it checks to see if the UDF files on GitHub have changed. +If they had, it downloads the new UDF files. Beginning in 4.1, GSQL only checks GitHub if more than one hour has elapsed since the last check. - To force GSQL to install new UDF files from GitHub, run `gadmin restart all` to restart GSQL. +See the note about xref:#udf_update_warning[some queries disabled after UDFs are updated]. === Upload UDFs with GSQL `PUT` command TigerGraph offers the ability to upload UDFs directly from GSQL using the `PUT` command. @@ -229,6 +230,7 @@ PUT ExprUtil successfully. ---- The `PUT` command automatically uploads the files in all nodes in a cluster and updates all existing files. +See the note about xref:#udf_update_warning[some queries disabled after UDFs are updated]. Once the files are stored, you can call the UDFs in a query the next time GSQL is executed. This includes the next time you start the GSQL shell or execute GSQL scripts from a bash shell. From 4d04abcd515032adc31eb9c9373cf8c86dae5f28 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 10 Jul 2025 09:35:47 -0400 Subject: [PATCH 137/194] DOC-2120 proofread - clarify wording --- modules/querying/pages/func/query-user-defined-functions.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index 5433f6ef..ea940dd5 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -114,8 +114,8 @@ If GSQL is configured to read from GitHub for UDFs and the configurations are va If the UDF files change, either through GitHub or `PUT`, then any existing installed queries which use any UDF, whether modified or not, will be disabled as a precaution. To re-enable them: -. Check each query to see if the UDF change causes a need to revise the query. Make necessary modifications. -. Run `CREATE OR REPLACE QUERY` for each query. +. Check each disabled query to see if the UDF change causes a need to revise the query. Make necessary modifications. +. Run `CREATE OR REPLACE QUERY` for each disabled query. . Run `INSTALL QUERY`, singly or for a batch of queries. ==== From 98c41f40d87dab0abbc642b046454f6900249932 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Tue, 8 Jul 2025 20:07:00 -0400 Subject: [PATCH 138/194] DOC-2120-query-udf-disabled-after-chang --- .../func/query-user-defined-functions.adoc | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index aa8e76da..e380cf83 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -12,8 +12,8 @@ Once defined, the new functions are added into GSQL automatically the next time UDFs are written in C{pp} in two files, `ExprFunctions.hpp` and `ExprUtil.hpp`: -* ExprFunctions is used for functions that are called directly in GSQL queries. -* ExprUtil contains structs or helper functions that are used by the functions in ExprFunctions. +* `ExprFunctions` is used for functions that are called directly in GSQL queries. +* `ExprUtil` contains structs or helper functions that are used by the functions in `ExprFunctions`. The functions defined in `ExprUtil.hpp` cannot be used in a GSQL query. == UDF security @@ -73,9 +73,9 @@ inline bool greater_than_three (double x) { | All other C{pp} data types | *No* | *No* | Yes |=== -You can write your functions in the `ExprFunctions` file provided as a sample in TigerGraph Server installations, or create your own `.hpp` files from scratch. +You can place your functions in the `ExprFunctions.hpp` file provided as a sample in TigerGraph Server installations, or create your own file from scratch. -If your function requires a user-defined struct or helper function, that struct or helper function must be defined in a separate `ExprUtil` file. +If your function requires a user-defined struct or helper function, that struct or helper function must be defined in a separate `ExprUtil.hpp` file. [NOTE] C{pp} supports changing the value of a `for` loop variable within a loop. @@ -100,13 +100,24 @@ inline string reverse(string str){ There are two ways to modify the UDF files to add user-defined functions to GSQL. Both are secured by `gadmin` and require administrator-level access: -* Store UDF files in a GitHub repository, and configure GSQL to read from the repository. +* xref:_use_github_to_store_udfs[Store UDF files in a GitHub repository], and configure GSQL to read from the repository. ** This is the recommended approach. It also takes the highest precedence. If GSQL is configured to read from GitHub for UDFs and the configurations are valid, UDFs in other sources are ignored. -* Use the GSQL `PUT` command to upload UDFs. +* xref:#_upload_udfs_with_gsql_put_command[Use the GSQL `PUT` command to upload UDFs]. ** For security reasons, this method is disabled by default, and can only be enabled by the TigerGraph Linux user with access to `gadmin`. +[IMPORTANT] +.Need to reinstall queries using UDFs +==== +If you update the UDF files, then any existing installed queries which use any UDF, whether modified or not, will be disabled as a precaution. +To restalling them: + +. Check each query to see if it needs to be modified or not. Make necessary modifications. +. Run `CREATE OR REPLACE QUERY` for each query. +. Run `INSTALL QUERY`, singly or for a batch of queries. +==== + === Use GitHub to store UDFs You can configure GSQL to read from a GitHub repository for ExprFunctions and ExprUtil. From c1b85e4db46ad17c73294d3f94b98e5718655122 Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 10 Jul 2025 09:21:49 -0400 Subject: [PATCH 139/194] DOC-2120-proofread-udf-update-disables-queries --- .../pages/func/query-user-defined-functions.adoc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index e380cf83..5433f6ef 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -107,13 +107,14 @@ If GSQL is configured to read from GitHub for UDFs and the configurations are va * xref:#_upload_udfs_with_gsql_put_command[Use the GSQL `PUT` command to upload UDFs]. ** For security reasons, this method is disabled by default, and can only be enabled by the TigerGraph Linux user with access to `gadmin`. +[#udf_update_warning] [IMPORTANT] -.Need to reinstall queries using UDFs +.Query reactivation required if UDFs are modified ==== -If you update the UDF files, then any existing installed queries which use any UDF, whether modified or not, will be disabled as a precaution. -To restalling them: +If the UDF files change, either through GitHub or `PUT`, then any existing installed queries which use any UDF, whether modified or not, will be disabled as a precaution. +To re-enable them: -. Check each query to see if it needs to be modified or not. Make necessary modifications. +. Check each query to see if the UDF change causes a need to revise the query. Make necessary modifications. . Run `CREATE OR REPLACE QUERY` for each query. . Run `INSTALL QUERY`, singly or for a batch of queries. ==== @@ -169,13 +170,13 @@ After the parameters are successfully configured, you can access your UDFs in ne ==== Update UDFs sourced from GitHub -Prior to 4.1, each time GSQL was run, it would check to see if the UDF files on GitHub had changed. -If they had, it would download the new files and install them. +For versions prior to 4.1, each time GSQL is run, it checks to see if the UDF files on GitHub have changed. +If they had, it downloads the new UDF files. Beginning in 4.1, GSQL only checks GitHub if more than one hour has elapsed since the last check. - To force GSQL to install new UDF files from GitHub, run `gadmin restart all` to restart GSQL. +See the note about xref:#udf_update_warning[some queries disabled after UDFs are updated]. === Upload UDFs with GSQL `PUT` command TigerGraph offers the ability to upload UDFs directly from GSQL using the `PUT` command. @@ -229,6 +230,7 @@ PUT ExprUtil successfully. ---- The `PUT` command automatically uploads the files in all nodes in a cluster and updates all existing files. +See the note about xref:#udf_update_warning[some queries disabled after UDFs are updated]. Once the files are stored, you can call the UDFs in a query the next time GSQL is executed. This includes the next time you start the GSQL shell or execute GSQL scripts from a bash shell. From b5224aa83ca236c044d395c7379f313cac4d454b Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Thu, 10 Jul 2025 09:35:47 -0400 Subject: [PATCH 140/194] DOC-2120 proofread - clarify wording --- modules/querying/pages/func/query-user-defined-functions.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/querying/pages/func/query-user-defined-functions.adoc b/modules/querying/pages/func/query-user-defined-functions.adoc index 5433f6ef..ea940dd5 100644 --- a/modules/querying/pages/func/query-user-defined-functions.adoc +++ b/modules/querying/pages/func/query-user-defined-functions.adoc @@ -114,8 +114,8 @@ If GSQL is configured to read from GitHub for UDFs and the configurations are va If the UDF files change, either through GitHub or `PUT`, then any existing installed queries which use any UDF, whether modified or not, will be disabled as a precaution. To re-enable them: -. Check each query to see if the UDF change causes a need to revise the query. Make necessary modifications. -. Run `CREATE OR REPLACE QUERY` for each query. +. Check each disabled query to see if the UDF change causes a need to revise the query. Make necessary modifications. +. Run `CREATE OR REPLACE QUERY` for each disabled query. . Run `INSTALL QUERY`, singly or for a batch of queries. ==== From 4487f6439b77b0f944ddd038df270bbace009829 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 16 Jul 2025 17:17:47 +0530 Subject: [PATCH 141/194] DOC-2903-Create gsql_ts_to_epoch_legacy.adoc --- .../pages/functions/token/gsql_ts_to_epoch_legacy.adoc | 1 + 1 file changed, 1 insertion(+) create mode 100644 modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_legacy.adoc diff --git a/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_legacy.adoc b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_legacy.adoc new file mode 100644 index 00000000..8c21a5b0 --- /dev/null +++ b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_legacy.adoc @@ -0,0 +1 @@ += gsql_ts_to_epoch_seconds_legacy() From 495c42d94cf4bb6ed254e11db1d513e2b43bf959 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 16 Jul 2025 17:18:28 +0530 Subject: [PATCH 142/194] DOC-2903-Create gsql_ts_to_epoch_signed.adoc --- .../pages/functions/token/gsql_ts_to_epoch_signed.adoc | 1 + 1 file changed, 1 insertion(+) create mode 100644 modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc diff --git a/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc new file mode 100644 index 00000000..20cb508a --- /dev/null +++ b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc @@ -0,0 +1 @@ += gsql_ts_to_epoch_seconds_signed() From 75a66b4764139eb99c7505f9b342c1977228fd03 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 16 Jul 2025 17:44:21 +0530 Subject: [PATCH 143/194] DOC-2903-Update nav.adoc --- modules/ddl-and-loading/nav.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/nav.adoc b/modules/ddl-and-loading/nav.adoc index 9af5f444..d39e88b7 100644 --- a/modules/ddl-and-loading/nav.adoc +++ b/modules/ddl-and-loading/nav.adoc @@ -31,6 +31,8 @@ ***** xref:functions/token/gsql_to_uint.adoc[] ***** xref:functions/token/gsql_trim.adoc[] ***** xref:functions/token/gsql_ts_to_epoch.adoc[] +***** xref:functions/token/gsql_ts_to_epoch_legacy.adoc[] +***** xref:functions/token/gsql_ts_to_epoch_signed.adoc[] ***** xref:functions/token/gsql_upper.adoc[] ***** xref:functions/token/gsql_uuid_v4.adoc[] ***** xref:functions/token/gsql_year.adoc[] @@ -55,4 +57,4 @@ ***** xref:functions/reducer/or.adoc[] *** xref:add-token-function.adoc[] ** xref:running-a-loading-job.adoc[Run a Loading Job] -** xref:managing-loading-job.adoc[Manage Loading Jobs] \ No newline at end of file +** xref:managing-loading-job.adoc[Manage Loading Jobs] From e3233b1deebbf59336e51783d6887d010f95c648 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 16 Jul 2025 18:37:36 +0530 Subject: [PATCH 144/194] DOC-2903-Update gsql_ts_to_epoch.adoc --- .../functions/token/gsql_ts_to_epoch.adoc | 51 ++++++++++++++++--- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch.adoc b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch.adoc index 53906880..25500a29 100644 --- a/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch.adoc +++ b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch.adoc @@ -1,13 +1,9 @@ = gsql_ts_to_epoch_seconds() -Converts a timestamp in canonical string format to Unix epoch time, which is the number of seconds since Jan 1st, 1970. +Converts a timestamp in canonical string format to Unix epoch time, which is the number of seconds since Jan 1, 1970 00:00. -The timestamp parameter should be in one of the following formats: - -* `"%Y-%m-%d %H:%M:%S"` -* `"%Y/%m/%d %H:%M:%S"` -* `"%Y-%m-%dT%H:%M:%S.000z"` -** Text after the dot `.` is ignored +In 4.2.1, two new timestamp conversion functions are available for loading jobs, offering different behaviors for date handling, especially for dates prior to 1970: +xref:ddl-and-loading:functions/token/gsql_ts_to_epoch_legacy.adoc[gsql_ts_to_epoch_seconds_legacy()] and xref:ddl-and-loading:functions/token/gsql_ts_to_epoch_signed.adoc[gsql_ts_to_epoch_seconds_signed()]. == Syntax `gsql_ts_to_epoch_seconds(timestamp)` @@ -16,12 +12,51 @@ The timestamp parameter should be in one of the following formats: timestamp:: Required. The timestamp to convert to Unix epoch time. +The timestamp parameter should be in one of the following formats: +* `"%Y-%m-%d %H:%M:%S"` +* `"%Y/%m/%d %H:%M:%S"` +* `"%Y-%m-%dT%H:%M:%S.000z"` +** Text after the dot `.` is ignored == Return type `UINT` +* Returns the number of seconds since `1970-01-01 00:00:00` for valid timestamps within the supported range. +* Throws an exception if the timestamp is invalid or before `1970-01-01 00:00:00`. + == Example ---- gsql_ts_to_epoch_seconds("2022-06-30 22-08-28") -> 1656652105 ----- \ No newline at end of file +---- + +:table-caption!: +.Comparison of Timestamp Conversion Functions +[%autowidth] +|=== +|Function |Return type |Supported Time Range |Response to Invalid/Unsupported Datetimes |Description + +|gsql_ts_to_epoch_seconds() +|`UINT` +|`1970-01-01 00:00:00` to `9999-12-31 23:59:59` +|Throws exception +|Converts a timestamp to Unix epoch time (from 1970 onwards). + +|gsql_ts_to_epoch_seconds_legacy() +|`uint64_t` +|`1970-01-01 00:00:00` to `9999-12-31 23:59:59` +|Returns defaultTimestamp +|Similar to `gsql_ts_to_epoch_seconds()`, but returns 0 for pre-1970 timestamps, maintaining backward compatibility. + +|gsql_ts_to_epoch_seconds_signed() +|`int64_t` +|`0001-01-01 00:00:00` to `9999-12-31 23:59:59` +|Returns defaultTimestamp +|Supports a full date range, including pre-1970 timestamps, and returns negative epoch values for those dates. + +|=== + +[TIP] +==== +If you need to avoid exceptions for invalid or pre-1970 dates, or require support for historical dates, consider using xref:ddl-and-loading:functions/token/gsql_ts_to_epoch_legacy.adoc[gsql_ts_to_epoch_seconds_legacy()] or xref:ddl-and-loading:functions/token/gsql_ts_to_epoch_signed.adoc[gsql_ts_to_epoch_seconds_signed()]. +==== From 7fc00b8adb2ea9055753bba0dcbd174891fd5f5a Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 16 Jul 2025 18:40:22 +0530 Subject: [PATCH 145/194] DOC-2903-Update gsql_ts_to_epoch_legacy.adoc --- .../token/gsql_ts_to_epoch_legacy.adoc | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_legacy.adoc b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_legacy.adoc index 8c21a5b0..7c6201a7 100644 --- a/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_legacy.adoc +++ b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_legacy.adoc @@ -1 +1,49 @@ = gsql_ts_to_epoch_seconds_legacy() + +Converts a timestamp in canonical string format to Unix epoch time (seconds since `Jan 1, 1970`). +If the timestamp is invalid or earlier than `1970-01-01 00:00:00`, the function returns a user-specified value (0 by default), ensuring backward compatibility and preventing exceptions. + +We also have another timestamp function, xref:ddl-and-loading:functions/token/gsql_ts_to_epoch.adoc[gsql_ts_to_epoch_seconds()], which converts a timestamp to Unix epoch time (seconds since Jan 1st, 1970) and throws an exception instead of returning a user-specified value, if the input is not valid. For broader date range support, consider xref:ddl-and-loading:functions/token/gsql_ts_to_epoch_signed.adoc[gsql_ts_to_epoch_seconds_signed()]. + +== Syntax +`gsql_ts_to_epoch_seconds_legacy(timestamp, defaultTimestamp = 0)` + +== Parameters +timestamp:: +Required. +The timestamp to convert to Unix epoch time. +The timestamp parameter should be in one of the following formats: +* `"%Y-%m-%d %H:%M:%S"` +* `"%Y/%m/%d %H:%M:%S"` +* `"%Y-%m-%dT%H:%M:%S.000z"` +** Text after the dot `.` is ignored + +defaultTimestamp:: +Optional. +If the timestamp is invalid (e.g., before `Jan 1st, 1970`, or an invalid date format), it returns a user-specified value. The default is `0`. + +== Return type +`uint64_t` + +* Returns the epoch seconds for valid timestamps between `1970-01-01 00:00:00` and `9999-12-31 23:59:59`. +* Returns `defaultTimestamp` for abnormal times (pre-1970 or invalid). + +== Example + +---- +// Example with a valid date after 1970 +gsql_ts_to_epoch_seconds_legacy("2022-06-30 22:08:28") -> 1656652105 + +// Example with a date before 1970 (returns default 0) +gsql_ts_to_epoch_seconds_legacy("1969-12-31 23:59:59") -> 0 + +// Example with a date before 1970 and a custom default timestamp +gsql_ts_to_epoch_seconds_legacy("1969-12-31 23:59:59", 999) -> 999 + +// Example with an invalid date (returns default 0) gsql_ts_to_epoch_seconds_legacy("2022-02-30 00:00:00") -> 0 +---- + +[TIP] +==== +Use this function if you want to maintain legacy behavior (prior to the availability of `gsql_ts_to_epoch_signed`), avoid exceptions for invalid or pre-1970 dates, and ensure unsigned integer output. +==== From 84e27d33a4fdd25ffe99a188203259d4615eb0ff Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 16 Jul 2025 18:41:24 +0530 Subject: [PATCH 146/194] DOC-2903-Update gsql_ts_to_epoch_signed.adoc --- .../token/gsql_ts_to_epoch_signed.adoc | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc index 20cb508a..c23ca77d 100644 --- a/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc +++ b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc @@ -1 +1,54 @@ = gsql_ts_to_epoch_seconds_signed() + +Converts a timestamp in canonical string format to Unix epoch time (seconds before or after `Jan 1, 1970`). +It supports dates from `0001-01-01` to `9999-12-31`, returning negative epoch values for dates prior to 1970. Invalid or out-of-range dates (e.g., `Feb 30th`) return `defaultTimestamp`. + +We also have another timestamp function, xref:ddl-and-loading:functions/token/gsql_ts_to_epoch.adoc[gsql_ts_to_epoch_seconds()], which converts a timestamp to Unix epoch time (seconds since Jan 1st, 1970) and returns an unsigned integer (`UINT`). For backward compatibility behavior (3.10.3 or earlier), consider xref:ddl-and-loading:functions/token/gsql_ts_to_epoch_legacy.adoc[gsql_ts_to_epoch_seconds_legacy()]. + +== Syntax +`gsql_ts_to_epoch_seconds_signed(timestamp, defaultTimestamp = 0)` + +== Parameters +timestamp:: +Required. +The timestamp to convert to Unix epoch time. +The timestamp parameter should be in one of the following formats: +* `"%Y-%m-%d %H:%M:%S"` +* `"%Y/%m/%d %H:%M:%S"` +* `"%Y-%m-%dT%H:%M:%S.000z"` +** Text after the dot `.` is ignored + +defaultTimestamp:: +Optional. +If the timestamp is invalid (e.g., out of range or structurally incorrect), it returns the provided default value. The default is `0`. + +== Return type +`int64_t` + +* Returns the epoch seconds for valid timestamps between `0001-01-01 00:00:00` and `9999-12-31 23:59:59`. +* Returns `defaultTimestamp` for invalid times (impossible dates or out-of-range). + +[NOTE] +==== +Timestamps before 1583 use the Gregorian calendar algorithm, so accuracy cannot be guaranteed. Using dates before 1583 is not recommended. +==== + +== Example + +---- +// Example with a valid date after 1970 +gsql_ts_to_epoch_seconds_signed("2022-06-30 22:08:28") -> 1656652105 + +// Example with a date before 1970 (returns a negative epoch value) +gsql_ts_to_epoch_seconds_signed("1969-12-31 23:59:59") -> -1 + +// Example with a date from year 0001 +gsql_ts_to_epoch_seconds_signed("0001-01-01 00:00:00") -> -62135596800 + +// Example with an invalid date (returns default 0) gsql_ts_to_epoch_seconds_signed("2022-02-30 00:00:00") -> 0 +---- + +[TIP] +==== +Choose this function if you need to support negative epoch values for pre-1970 dates, process a broader range of historical data, or require a signed integer output. +==== From a2343471d3293565975ee5d474510c3c5ef20db7 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 16 Jul 2025 18:46:45 +0530 Subject: [PATCH 147/194] DOC-2903-updated token functions page --- .../ddl-and-loading/pages/functions/token/index.adoc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/pages/functions/token/index.adoc b/modules/ddl-and-loading/pages/functions/token/index.adoc index 88f18711..49dfa9cd 100644 --- a/modules/ddl-and-loading/pages/functions/token/index.adoc +++ b/modules/ddl-and-loading/pages/functions/token/index.adoc @@ -82,8 +82,15 @@ returns that number cast as an integer. |`UINT` |Converts a timestamp in canonical string format to Unix epoch time, which is the int number of -seconds since Jan. 1, 1970. Refer to the timestamp input format note -below. +seconds since Jan. 1, 1970. + +|xref:functions/token/gsql_ts_to_epoch_legacy.adoc[gsql_ts_to_epoch_seconds_legacy(timestamp, defaultTimestamp = 0)] +|`uint64_t` +|Converts a timestamp to Unix epoch time. Returns a default value (`0` or user-specfied) for timestamps before 1970. + +|xref:functions/token/gsql_ts_to_epoch_signed.adoc[gsql_ts_to_epoch_seconds_signed(timestamp, defaultTimestamp = 0)] +|`int64_t` +|Converts a timestamp to Unix epoch time. Supports a wider range of dates, including pre-1970, and returns negative values for those dates. |xref:functions/token/gsql_current_time_epoch.adoc[gsql_current_time_epoch(0)] |`UINT` From 7accfe670e431ef98e7b5e054abaab44fa546eb6 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 18 Jul 2025 16:35:27 +0530 Subject: [PATCH 148/194] DOC-2760-Updated index.adoc --- modules/tutorials/pages/index.adoc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/tutorials/pages/index.adoc b/modules/tutorials/pages/index.adoc index 984f8c4d..7cce369d 100644 --- a/modules/tutorials/pages/index.adoc +++ b/modules/tutorials/pages/index.adoc @@ -1,13 +1,23 @@ -= GSQL Tutorials += Query Languages :description: A list of available GSQL tutorials The GSQL (R) Graph Database Language is more than just a query language. It also serves as a DDL (Database Definition Language). -There tutorials will help you get starting learning and using GSQL. +The following tutorials and guides will help you learn, write, and optimize queries, as well as adopt best practices when designing graph schemas and working with advanced features like vector search. +* xref:intro:set-gsql-apart.adoc[] + * link:https://github.com/tigergraph/ecosys/blob/master/demos/guru_scripts/docker/tutorial/4.x/README.md[GSQL Tutorial using V3 syntax (on GitHub)] * xref:accumulators-tutorial.adoc[] +* xref:schema-design-guide.adoc[] + +* link:https://github.com/tigergraph/ecosys/blob/master/tutorials/Cypher.md[TigerGraph OpenCypher (on GitHub)] + +* link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[Hybrid Vector Search (on GithHub)] + + + From b5f1fafa32e66ca2bc6cc4e4ab89c51e519163fc Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 18 Jul 2025 16:37:34 +0530 Subject: [PATCH 149/194] DOC-2760-Updated nav.adoc page --- modules/tutorials/nav.adoc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/tutorials/nav.adoc b/modules/tutorials/nav.adoc index 0d09b973..24f9e89f 100644 --- a/modules/tutorials/nav.adoc +++ b/modules/tutorials/nav.adoc @@ -1,6 +1,7 @@ * xref:index.adoc[Query Language Tutorials] ** xref:intro:set-gsql-apart.adoc[] ** link:https://github.com/tigergraph/ecosys/blob/master/tutorials/GSQL.md[GSQL V3 Tutorial] (on GitHub) -** xref:accumulators-tutorial.adoc[] ** link:https://github.com/tigergraph/ecosys/blob/master/tutorials/Cypher.md[TigerGraph OpenCypher] (on GitHub) -** link:https://github.com/tigergraph/ecosys/tree/master/tutorials/vector[Hybrid Vector Search] (on GithHub) \ No newline at end of file +** link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[Hybrid Vector Search] (on GithHub) +** xref:accumulators-tutorial.adoc[] +** xref:schema-design-guide.adoc[] From 72053d06ebbbda48e3eba9612acf1c933760f1e8 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Sat, 19 Jul 2025 00:15:58 +0530 Subject: [PATCH 150/194] Add files via upload --- modules/tutorials/images/Components-Edges.png | Bin 0 -> 32775 bytes modules/tutorials/images/Directed Edge.png | Bin 0 -> 19142 bytes .../tutorials/images/Event-Centered Schema.png | Bin 0 -> 79379 bytes .../Granularity - Multiple Edge Types.png | Bin 0 -> 49150 bytes .../images/Granularity - Single Edge Type.png | Bin 0 -> 41726 bytes .../images/Modeling Time Hierarchically.png | Bin 0 -> 75326 bytes ...ltiple relationship between two vertices.png | Bin 0 -> 27232 bytes modules/tutorials/images/Reversed Edge.png | Bin 0 -> 34208 bytes modules/tutorials/images/Undirected edges.png | Bin 0 -> 22459 bytes .../tutorials/images/User-Centered Schema.png | Bin 0 -> 80370 bytes 10 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 modules/tutorials/images/Components-Edges.png create mode 100644 modules/tutorials/images/Directed Edge.png create mode 100644 modules/tutorials/images/Event-Centered Schema.png create mode 100644 modules/tutorials/images/Granularity - Multiple Edge Types.png create mode 100644 modules/tutorials/images/Granularity - Single Edge Type.png create mode 100644 modules/tutorials/images/Modeling Time Hierarchically.png create mode 100644 modules/tutorials/images/Multiple relationship between two vertices.png create mode 100644 modules/tutorials/images/Reversed Edge.png create mode 100644 modules/tutorials/images/Undirected edges.png create mode 100644 modules/tutorials/images/User-Centered Schema.png diff --git a/modules/tutorials/images/Components-Edges.png b/modules/tutorials/images/Components-Edges.png new file mode 100644 index 0000000000000000000000000000000000000000..c6e0bce936f50dbd5c80a8e28207adb4f01baa7a GIT binary patch literal 32775 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 N&HZ8|fW94kbHb?8G)wNs}pq!ix1wZuX?`$ha8) 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

*pOL!dqA2i(8+P4MAT6xPPVs#jXx^|t@}+If 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

I$;PUn68K0ah!f}n7P15JCFn*X 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 literal 0 HcmV?d00001 diff --git a/modules/tutorials/images/Granularity - Multiple Edge Types.png b/modules/tutorials/images/Granularity - Multiple Edge Types.png new file mode 100644 index 0000000000000000000000000000000000000000..bb059f6a13260fafb6f6653b74cfcb5f540f00a1 GIT binary patch literal 49150 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 literal 0 HcmV?d00001 diff --git a/modules/tutorials/images/Granularity - Single Edge Type.png b/modules/tutorials/images/Granularity - Single Edge Type.png new file mode 100644 index 0000000000000000000000000000000000000000..cb709d6cada4d633a6e2f0f4067d60e5c626e3ab GIT binary patch literal 41726 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 JLD4$ue*uTT1_A&8 literal 0 HcmV?d00001 diff --git a/modules/tutorials/images/Reversed Edge.png b/modules/tutorials/images/Reversed Edge.png new file mode 100644 index 0000000000000000000000000000000000000000..47f348a449013098727469ac3deab25ba3e67e38 GIT binary patch literal 34208 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�e2zGuRX#Eydb3)5)=g^$$I(qds}2QDncG9dmn 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 literal 0 HcmV?d00001 diff --git a/modules/tutorials/images/Undirected edges.png b/modules/tutorials/images/Undirected edges.png new file mode 100644 index 0000000000000000000000000000000000000000..666aa1e8504e503cfc3359a8a78c622c066550e6 GIT binary patch literal 22459 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 JwVJk3{{zHjXutpf literal 0 HcmV?d00001 diff --git a/modules/tutorials/images/User-Centered Schema.png b/modules/tutorials/images/User-Centered Schema.png new file mode 100644 index 0000000000000000000000000000000000000000..39c607a9479f20688513a6e0f0a873d5eaba16d9 GIT binary patch literal 80370 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 DGkm(_ literal 0 HcmV?d00001 From d0a6a28462f9144e68dad06ecf7443bc74f1fac6 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Sat, 19 Jul 2025 00:18:53 +0530 Subject: [PATCH 151/194] DOC-2760-Added Title of the Page --- modules/tutorials/pages/schema-design-guide.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tutorials/pages/schema-design-guide.adoc b/modules/tutorials/pages/schema-design-guide.adoc index 8b137891..b1a7bbb9 100644 --- a/modules/tutorials/pages/schema-design-guide.adoc +++ b/modules/tutorials/pages/schema-design-guide.adoc @@ -1 +1 @@ - += Schema Design Guide From 433adb8d99a30545c88143439b7057f1b4718824 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Sat, 19 Jul 2025 01:54:44 +0530 Subject: [PATCH 152/194] DOC-2760-added a new page --- .../tutorials/pages/schema-design-guide.adoc | 266 ++++++++++++++++++ 1 file changed, 266 insertions(+) diff --git a/modules/tutorials/pages/schema-design-guide.adoc b/modules/tutorials/pages/schema-design-guide.adoc index b1a7bbb9..321f07db 100644 --- a/modules/tutorials/pages/schema-design-guide.adoc +++ b/modules/tutorials/pages/schema-design-guide.adoc @@ -1 +1,267 @@ = Schema Design Guide + +Designing an effective graph schema is essential for building a scalable and efficient graph database. +The primary goal is to model relationships between data entities that optimize both data retrieval and system resource usage. +A well-structured schema ensures high performance both now and as data grows and queries become more complex. + +This guide covers the key principles and best practices for schema design, explaining how to model relationships, handle data properties, and optimize queries. +These best practices will help you make informed decisions for better performance and scalability, whether you're working on a new schema or upgrading an existing one. + +== Components of a TigerGraph Schema + +=== Vertices and Edges + +In graph databases, vertices and edges are the building blocks of your schema. They define the structure of your data and how it is queried. + +==== Vertices + +Vertices represent entities or objects within your graph, such as people, products, companies, or locations. +Think of vertices as nouns, things or concepts that are part of your data model. For example, a "Person" or a "Product" would be modeled as vertices. + +The following schema creates a *Person* and a *Product* vertex: +[source.wrap,gsql] +---- +CREATE VERTEX Person (PRIMARY_ID id INT, name STRING, age INT) +CREATE VERTEX Product (PRIMARY_ID id INT, name STRING, price FLOAT) +---- + +==== Edges + +Edges, on the other hand, represent relationships between entities. +These relationships are the links that connect one vertex to another. For instance, an edge could represent that a Person "purchased" a Product, or that a Person "works_for" a Company. +Relationships are often model verbs connecting two nouns (vertices). + +The following schema creates an edge to represent a *purchased* relationship: + +[source.wrap,gsql] +---- +CREATE EDGE Purchased (FROM Person, TO Product, purchase_date DATE) +---- + +The below figure shows how a 'Person' vertex is connected to a 'Product' vertex by a 'purchased' edge, representing a transactional relationship. + +image::Components-Edges.png[] + +[TIP] +==== +* Model things or concepts (like people, products, locations) as vertices. +* Model relationships (like "purchased", "works_for", "friend_of") as edges. +==== + +=== Options for Relationships + +==== Choosing Edge Direction + +When designing your schema, you must decide whether to use *undirected*, *directed*, or *reversed* edges. +Each type of edge serves a specific purpose depending on how you intend to query and traverse the data. + +*Undirected Edges (Friendship Relationship)* + +Use *undirected edges* for *bidirectional relationships*. +In a *friendship relationship*, for example, if *Person A* is friends with *Person B*, then *Person B* is also friends with *Person A*. +This means the relationship works in both directions, and we don’t need to specify a direction for it. + +image::Undirected edges.png[] + +The following schema creates an undirected edge for friendship: + +[source.wrap,gsql] +---- +CREATE EDGE Is_Friend_Of (FROM Person, TO Person) +---- + +*Directed Edge (Work Relationship)* + +*Directed edges* are used for *one-way relationships* where the direction of the relationship matters. +For instance, in a *work relationship*, Person A might work for Company B, but Company B does not work for Person A. +This clearly defines that the relationship flows only from Person A to Company B. + +image::Directed Edge.png[] + +The following schema creates a directed edge for *work relationship*: + +[source.wrap,gsql] +---- +CREATE EDGE Works_For (FROM Person, TO Company) +---- + +*Reversed Edge (Parent-Child Relationship)* + +A *reversed edge* allows you to define both directions of a relationship. +For example, in a *parent-child relationship*, we might define the primary edge as *"parent_of"* (Parent → Child). +However, to easily traverse the relationship in the opposite direction (from Child to Parent), we can use a *reversed edge* with a different name, like "child_of" (Child → Parent). This makes it easy to query in either direction. + +image::Reversed Edge.png[] + +The following schema creates *reversed edges* for a *parent-child* relationship: + +[source.wrap,gsql] +---- +CREATE EDGE Parent_Of (FROM Person, TO Person) +CREATE EDGE Child_Of (FROM Person, TO Person) +---- + +==== Multiple Relationships Between Two Vertices + +For situations where different types of relationships occur between two vertices (e.g., purchases and reviews, or purchases and returns), you can represent each relationship as a discriminated edge. + +The figure below shows a 'Person' vertex connected to a 'Product' vertex by two different edges: 'purchased' and 'returned'. Each edge clearly indicates a different type of interaction. + +image::Multiple relationship between two vertices.png[] + +The following scheme creates discriminated edges to represent different types of *events* (e.g., *purchase and return*): + +[source.wrap,gsql] +---- +CREATE EDGE Purchase_Event (FROM Person, TO Product, purchase_date DATETIME, quantity INT) +CREATE EDGE Return_Event (FROM Person, TO Product, return_date DATETIME, reason STRING) +---- + +=== Indexing - Optimizing Searches + +Efficient querying relies on optimizing how the data is indexed. When you design a graph schema, proper indexing plays a key role in speeding up searches. + +==== Vertex Indexes + +Use vertex indexes for attributes that are queried frequently, like user ID or product ID. + +==== Secondary Indexes + +Use secondary indexes for attributes that require range queries or non-primary attributes. + +== Optimizing for Your Use Case + +=== Attributes - Property or Vertex Type + +When defining the properties of entities, you must decide whether to model them as attributes or vertices. + +=== Attributes +Attributes are properties that are directly associated with vertices or edges (e.g., product color, transaction date). + +=== Vertices +Model properties as vertices when they are frequently queried or need to be linked to multiple other vertices (e.g., color as a vertex for products). + +=== Granularity of Edge Types + +When deciding how detailed your relationships should be, you have two options: *multiple edge types* or a *single edge type with attributes*. + +==== Multiple Edge Types + +If your relationships are highly specific (e.g., "is_friend_of", "is_colleague_of"), use multiple edge types. This is memory-intensive but efficient for specific queries. + +image::Granularity - Multiple Edge Types.png[] + +The following schema creates *multiple edge types* for relationships like friend and colleague: + +[source.wrap,gsql] +---- +CREATE EDGE Is_Friend_Of (FROM Person, TO Person) +CREATE EDGE Is_Colleague_Of (FROM Person, TO Person) +---- + +==== Single Edge Type with Attributes + +Alternatively, you can use one generic edge type (e.g., "is_related_to") and use an attribute to define the relationship (e.g., "friend", "colleague"). + +image::Granularity - Single Edge Type.png[] + +The following schema uses a *single edge type with an attribute* for relationship type: + +[source.wrap,gsql] +---- +CREATE EDGE Is_Related_To (FROM Person, TO Person, relationship_type STRING) +---- + +[TIP] +==== +* Use multiple edge types for high-specificity relationships. +* Use a single edge type with attributes for *simpler schemas* and better *memory efficiency*. +==== + +=== Modeling Time + +Time is often an essential element in graph schemas, particularly for *event-based queries*. + +==== Modeling Time Hierarchically + +Model time as a hierarchy of vertices, like *Year → Month → Day*, for efficient querying of *time-based* data. + +This structure allows for faster time series querying speed by creating hierarchical datetime structures. The levels and partitioning of each level can be customized to best suit your specific use case. + +This organized time model helps us quickly find things, for example, like finding *all products made in the first 15 days of February 2025*. + +image::Modeling Time Hierarchically.png[] + +The following schema creates the necessary time vertices and their relationships: + +[source.wrap,gsql] +---- +// 1. Define Vertex Types: +CREATE VERTEX Year (PRIMARY_ID year_val INT); +CREATE VERTEX Month (PRIMARY_ID month_val INT, month_name STRING); +CREATE VERTEX Day (PRIMARY_ID day_val INT); +CREATE VERTEX Product (PRIMARY_ID product_id STRING); + +// 2. Define Edge Types to establish hierarchy and relationships: +// Connects a Year to its Months +CREATE DIRECTED EDGE HAS_MONTH (FROM Year, TO Month); + +// Connects a Month to its Days +CREATE DIRECTED EDGE HAS_DAY (FROM Month, TO Day); + +// Connects a Product to a specific Day (where an event related to the product occurred) +CREATE DIRECTED EDGE PRODUCED_ON (FROM Product, TO Day); + +---- + +=== Focal Hub + +A *focal hub* is a *central vertex* that connects to many other vertices via multiple edges. It can become a performance bottleneck in your schema. + +==== Managing Hub Nodes + +If you need to use hub nodes, make sure to optimize them using secondary indexes. + +=== Use Case-Based Schema Design + +Graph schema design should always reflect your use case and query requirements. The type of relationships you need to track will guide your choice of schema design. + +==== Event-Centered Schema + +This design focuses on events as the central element of your application. It’s ideal for use cases where you need to analyze event-driven data. +For example, in an e-commerce platform, events like purchases, returns, or reviews could be central to understanding the relationships between customers and products. + +For example, in an e-commerce schema, *purchases* and *product reviews* would be modeled as key events, with relationships showing how customers interact with products. + +image::Event-Centered Schema.png[] + +==== User-Centered Schema + +This design focuses on user behavior and interactions, making it ideal for applications like social networks or user analytics. +In a user-centered schema, you would model users and their relationships with products, services, or other users. + +For example, in a social network schema, you could model *user interactions* (such as *comments, likes, and shares*) and track user behavior over time. + +image::User-Centered Schema.png[] + +[TIP] +==== +* *Choose an event-centered schema* when your primary focus is on analyzing *events* (like *purchases or transactions*). +* *Choose a user-centered schema* when you want to track *user behavior* and *interactions* across your system. +==== + +=== Recommendation + +Here are some key recommendations for schema design: + +* *Edge Types:* Use multiple edge types when specificity is important; for simpler designs, use a single edge type with attributes. + +* *Attributes vs. Vertices:* Model frequently queried properties as vertices and use attributes for less critical data. + +* *Events:* For event-based analytics, model events as vertices; use edge attributes for simpler scenarios. + +* *Schema Design:* Choose an event-centered or user-centered schema based on the primary query focus. + +* *Indexing:* Use secondary indexes for range queries and vertex indexes for high-cardinality attributes. + +Following these best practices ensures your TigerGraph schema delivers fast, efficient queries and scales with your data and application needs. From 2e87eb2b660fced6b6e3c26a0e242351593e71fb Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 22 Jul 2025 22:29:46 +0530 Subject: [PATCH 153/194] Add files via upload --- modules/tutorials/images/Vertex Indexes.png | Bin 0 -> 52666 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modules/tutorials/images/Vertex Indexes.png diff --git a/modules/tutorials/images/Vertex Indexes.png b/modules/tutorials/images/Vertex Indexes.png new file mode 100644 index 0000000000000000000000000000000000000000..c6c9447f49c0e8335fe38056dd50fb8480462fdb GIT binary patch literal 52666 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 Date: Tue, 22 Jul 2025 22:39:45 +0530 Subject: [PATCH 154/194] DOC-2760-Changes Updated --- .../tutorials/pages/schema-design-guide.adoc | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/modules/tutorials/pages/schema-design-guide.adoc b/modules/tutorials/pages/schema-design-guide.adoc index 321f07db..f8df9fd3 100644 --- a/modules/tutorials/pages/schema-design-guide.adoc +++ b/modules/tutorials/pages/schema-design-guide.adoc @@ -29,7 +29,7 @@ CREATE VERTEX Product (PRIMARY_ID id INT, name STRING, price FLOAT) Edges, on the other hand, represent relationships between entities. These relationships are the links that connect one vertex to another. For instance, an edge could represent that a Person "purchased" a Product, or that a Person "works_for" a Company. -Relationships are often model verbs connecting two nouns (vertices). +Edges are often model verbs connecting two nouns (vertices). The following schema creates an edge to represent a *purchased* relationship: @@ -55,7 +55,7 @@ image::Components-Edges.png[] When designing your schema, you must decide whether to use *undirected*, *directed*, or *reversed* edges. Each type of edge serves a specific purpose depending on how you intend to query and traverse the data. -*Undirected Edges (Friendship Relationship)* +*Undirected Edges* Use *undirected edges* for *bidirectional relationships*. In a *friendship relationship*, for example, if *Person A* is friends with *Person B*, then *Person B* is also friends with *Person A*. @@ -63,14 +63,14 @@ This means the relationship works in both directions, and we don’t need to spe image::Undirected edges.png[] -The following schema creates an undirected edge for friendship: +The following GSQL DDL statement creates an xref:gsql-ref:ddl-and-loading:defining-a-graph-schema.adoc#_create_edge[undirected edge] for friendship: [source.wrap,gsql] ---- -CREATE EDGE Is_Friend_Of (FROM Person, TO Person) +CREATE UNDIRECTED EDGE Is_Friend_Of (FROM Person, TO Person) ---- -*Directed Edge (Work Relationship)* +*Directed Edge* *Directed edges* are used for *one-way relationships* where the direction of the relationship matters. For instance, in a *work relationship*, Person A might work for Company B, but Company B does not work for Person A. @@ -78,27 +78,27 @@ This clearly defines that the relationship flows only from Person A to Company B image::Directed Edge.png[] -The following schema creates a directed edge for *work relationship*: +The following schema creates a xref:gsql-ref:ddl-and-loading:defining-a-graph-schema.adoc#_create_edge[directed edge] for *work relationship*: [source.wrap,gsql] ---- -CREATE EDGE Works_For (FROM Person, TO Company) +CREATE DIRECTED EDGE Works_For (FROM Person, TO Company) ---- -*Reversed Edge (Parent-Child Relationship)* +*Reversed Edge* -A *reversed edge* allows you to define both directions of a relationship. +A *reversed edge* allows you to traverse a directed edge in the opposite direction of its semantic flow. For example, in a *parent-child relationship*, we might define the primary edge as *"parent_of"* (Parent → Child). However, to easily traverse the relationship in the opposite direction (from Child to Parent), we can use a *reversed edge* with a different name, like "child_of" (Child → Parent). This makes it easy to query in either direction. image::Reversed Edge.png[] -The following schema creates *reversed edges* for a *parent-child* relationship: +TigerGraph has built-in syntax to define a xref:gsql-ref:ddl-and-loading:defining-a-graph-schema.adoc#_with_reverse_edge[reserved edge] that maintains the same attribute values as its primary edge. +The following schema creates a directed edge plus a reserved edge for a *parent-child* relationship: [source.wrap,gsql] ---- -CREATE EDGE Parent_Of (FROM Person, TO Person) -CREATE EDGE Child_Of (FROM Person, TO Person) +CREATE DIRECTED EDGE Parent_Of (FROM Person, TO Person) WITH REVERSE_EDGE = "Child_Of" ---- ==== Multiple Relationships Between Two Vertices @@ -123,11 +123,16 @@ Efficient querying relies on optimizing how the data is indexed. When you design ==== Vertex Indexes -Use vertex indexes for attributes that are queried frequently, like user ID or product ID. +A vertex index is a design pattern where you model frequently grouped or filtered attributes such as color, brand, or type as their own vertex types instead of simple attributes. +This lets you easily search or filter, for example, all products that are red or from a specific brand. + +In the figure below, "Brand", "Color", and "Type" are vertex types connected to products, making filtering and grouping by these properties efficient and flexible. + +image::Vertex Indexes.png[] ==== Secondary Indexes -Use secondary indexes for attributes that require range queries or non-primary attributes. +Use xref:gsql-ref:ddl-and-loading:defining-a-graph-schema.adoc#_alter_index[secondary indexes] when the search behavior justifies having an index and either range queries are needed or a vertex index is not appropriate. == Optimizing for Your Use Case @@ -147,7 +152,7 @@ When deciding how detailed your relationships should be, you have two options: * ==== Multiple Edge Types -If your relationships are highly specific (e.g., "is_friend_of", "is_colleague_of"), use multiple edge types. This is memory-intensive but efficient for specific queries. +If your relationship types are well-defined and not to numerous (e.g., "is_friend_of", "is_colleague_of"), use multiple edge types. image::Granularity - Multiple Edge Types.png[] @@ -155,8 +160,8 @@ The following schema creates *multiple edge types* for relationships like friend [source.wrap,gsql] ---- -CREATE EDGE Is_Friend_Of (FROM Person, TO Person) -CREATE EDGE Is_Colleague_Of (FROM Person, TO Person) +CREATE UNDIRECTED EDGE Is_Friend_Of (FROM Person, TO Person) +CREATE UNDIRECTED EDGE Is_Colleague_Of (FROM Person, TO Person) ---- ==== Single Edge Type with Attributes @@ -169,7 +174,7 @@ The following schema uses a *single edge type with an attribute* for relationshi [source.wrap,gsql] ---- -CREATE EDGE Is_Related_To (FROM Person, TO Person, relationship_type STRING) +CREATE DIRECTED EDGE Is_Related_To (FROM Person, TO Person, relationship_type STRING) ---- [TIP] @@ -258,7 +263,7 @@ Here are some key recommendations for schema design: * *Attributes vs. Vertices:* Model frequently queried properties as vertices and use attributes for less critical data. -* *Events:* For event-based analytics, model events as vertices; use edge attributes for simpler scenarios. +* *Events:* Model events as vertices when they have properties like timestamps, types, or need to be queried individually. For simple cases, use edge attributes to add event details between two related vertices. * *Schema Design:* Choose an event-centered or user-centered schema based on the primary query focus. From d4cd200e5309730deb42270462816506cf5f2b0c Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 30 Jul 2025 00:11:30 +0530 Subject: [PATCH 155/194] DOC-2814-Added a TIP on finding the current setting of a parameter [4.2] --- modules/ddl-and-loading/pages/add-token-function.adoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/ddl-and-loading/pages/add-token-function.adoc b/modules/ddl-and-loading/pages/add-token-function.adoc index 86bb9bbf..b7e06a0a 100644 --- a/modules/ddl-and-loading/pages/add-token-function.adoc +++ b/modules/ddl-and-loading/pages/add-token-function.adoc @@ -160,6 +160,11 @@ The `gadmin` configuration parameters for setting up the connection to GitHub ar When upgrading the database from a version where the parameter `GSQL.GithubEnabled` did not exist (pre 4.1.3) to one where it does, the upgrade process will set `GSQL.GithubEnabled` to `true`. ==== +[TIP] +==== +Run `gadmin config get ` to find out the current setting of a parameter. +==== + Use the xref:{page-component-version}@tigergraph-server:system-management:management-commands.adoc#_gadmin_config_set[`gadmin config set`] command to configure the aforementioned parameters to connect GSQL to the GitHub repository hosting your files. Below is an example configuration. Remember to run `gadmin config apply` after changing the parameters. From e1eab8f17612d5d0e4f82c0d4abbd5c141674867 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Mon, 11 Aug 2025 20:17:12 +0530 Subject: [PATCH 156/194] DOC-2814 Changes updated [4.2] --- modules/ddl-and-loading/pages/add-token-function.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/pages/add-token-function.adoc b/modules/ddl-and-loading/pages/add-token-function.adoc index b7e06a0a..972e7e1a 100644 --- a/modules/ddl-and-loading/pages/add-token-function.adoc +++ b/modules/ddl-and-loading/pages/add-token-function.adoc @@ -160,13 +160,13 @@ The `gadmin` configuration parameters for setting up the connection to GitHub ar When upgrading the database from a version where the parameter `GSQL.GithubEnabled` did not exist (pre 4.1.3) to one where it does, the upgrade process will set `GSQL.GithubEnabled` to `true`. ==== +Use the xref:{page-component-version}@tigergraph-server:system-management:management-commands.adoc#_gadmin_config_set[`gadmin config set ` command] to configure the aforementioned parameters to connect GSQL to the GitHub repository hosting your files. + [TIP] ==== Run `gadmin config get ` to find out the current setting of a parameter. ==== -Use the xref:{page-component-version}@tigergraph-server:system-management:management-commands.adoc#_gadmin_config_set[`gadmin config set`] command to configure the aforementioned parameters to connect GSQL to the GitHub repository hosting your files. - Below is an example configuration. Remember to run `gadmin config apply` after changing the parameters. If GSQL is already running, you will need to run `gadmin restart all` to restart GSQL before the token functions become available. From a59724a2e5e2e51a4c67ea5ac84489a2464ad275 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 13 Aug 2025 20:58:46 +0530 Subject: [PATCH 157/194] DOC-2946: Documented known limitations and issues --- modules/vector/pages/index.adoc | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/modules/vector/pages/index.adoc b/modules/vector/pages/index.adoc index cd96d611..4412dc1c 100644 --- a/modules/vector/pages/index.adoc +++ b/modules/vector/pages/index.adoc @@ -142,6 +142,8 @@ CREATE GLOBAL SCHEMA_CHANGE JOB add_emb2 { RUN GLOBAL SCHEMA_CHANGE JOB add_emb2 ---- +When modifying vector attributes with a schema change job and using the `-N` option, *all queries become invalid* and must be reinstalled, even if they are unrelated to the change. +This is expected behavior in *4.2.1*. Avoid using `-N` unless you plan to reinstall all queries. [#loading_vectors] == Loading Vectors @@ -177,6 +179,9 @@ CREATE LOADING JOB load_s3_file { The vector itself is subdivided into elements, with `","` as the element separator. Note the use of the split() to parse the vector. +* The LOAD VECTOR statement does not support nested built-in token functions. For example: +`SPLIT(gsql_replace(gsql_replace($3,"[",""),"]",""))` will fail to compile. Apply transformations in separate steps before loading. +* When loading vectors through the RESTPP endpoint, if the specified vector attribute does not exist, TigerGraph will not return an error. Double-check attribute names before loading. == Search Indexing @@ -186,6 +191,17 @@ The search index is used when the `vectorSearch` function is invoked. The index is automatically updated in respond to changes in the vector database. Because similar calculations take some time, the index can lag behind the data updates. +If you have many vertex types, index rebuild time increases proportionally, even if the number of vector records is the same. +During export, TigerGraph does not wait for the vector index rebuild to finish. If you export before rebuild completes, some vectors may be missing. + +To check rebuild status: +[source.wrap,bash] +---- +curl -s -X GET "http://:14240/restpp/vector/status" +---- + +* Rebuild_processing means the index is still rebuilding. +* Ready_for_query means rebuild is complete. [#vectorSearch] == vectorSearch Function @@ -226,6 +242,11 @@ E.g., `{candidate_set: vset1, ef: 20, distance_map: @@distmap}`. The meaning of the optional parameters is best explained by example. See the link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[Vector Search tutorial]. +In version 4.2.1, there are some limitations when using vectorSearch() in GSQL queries: + +* Nested `ListAccum` types inside `vectorSearch()` (e.g., `ListAccum>`) are not supported. +* Using the `+` operator on a `ListAccum` inside `vectorSearch()` causes compilation failure. +* Using vector attributes directly in a `WHERE` clause (e.g., `WHERE P.embAttr1.size() == 0`) causes a Null Pointer Exception. Use `ACCUM` or `POST-ACCUM` clauses instead. [#print_vectors] == Printing Vectors @@ -282,7 +303,7 @@ curl -X POST "http://localhost:14240/restpp/graph/financialGraph" -d ' === Assignment in GSQL -A vertex attribute can be updated like other attributes in the ACCUM or POST-ACCUM clause of a GSQL query. +A vertex attribute can be updated like other attributes in the `ACCUM` or `POST-ACCUM` clause of a GSQL query. This example assigns new vector values in the last clause: From 7f44842db163978678dd8a7ed4a51ec6ef872782 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 14 Aug 2025 18:29:44 +0530 Subject: [PATCH 158/194] Add files via upload --- .../tutorials/images/accumulator-examples.png | Bin 0 -> 406366 bytes .../images/friendship-social-graph.png | Bin 84187 -> 400578 bytes .../global-vertex-accumulators-query.png | Bin 0 -> 131864 bytes .../images/query-output-neighbors.png | Bin 0 -> 175360 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 modules/tutorials/images/accumulator-examples.png create mode 100644 modules/tutorials/images/global-vertex-accumulators-query.png create mode 100644 modules/tutorials/images/query-output-neighbors.png diff --git a/modules/tutorials/images/accumulator-examples.png b/modules/tutorials/images/accumulator-examples.png new file mode 100644 index 0000000000000000000000000000000000000000..38670cdf808a85108409cb4f51784e1ccea03433 GIT binary patch literal 406366 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�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≺)HlJ06vc?2 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

0j;4o$9@0`L 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�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 byOxy_BzhJS1{(g~^QgR3S16Y^5BvWBd4+l7 literal 0 HcmV?d00001 diff --git a/modules/tutorials/images/friendship-social-graph.png b/modules/tutorials/images/friendship-social-graph.png index 00b05d31353217b29d2dcdd2be522c6a3e6a8ba6..fabdd49dbda60dce46492d44e58a40a1654a33b8 100644 GIT binary patch literal 400578 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%0DO%R-ovQZ4XhDYb|*E^Pl2|#5_d*h|w7f1iL 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∨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⁣Ix;@<{h#UsfPV)p@2~9cQOdtZu}kIIPx0{s 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≤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�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 literal 84187 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≺*Cx=Q0q$w` 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 literal 0 HcmV?d00001 diff --git a/modules/tutorials/images/query-output-neighbors.png b/modules/tutorials/images/query-output-neighbors.png new file mode 100644 index 0000000000000000000000000000000000000000..1849726eaad2c2ddc9562c1da9dd8aa065981c16 GIT binary patch literal 175360 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

DcEBMO&l&G1AO+%?#?rmV*JyWm+<#$JP2ps)Szl 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 z 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 aB8zBu>Lr%z9P Date: Thu, 14 Aug 2025 18:40:00 +0530 Subject: [PATCH 159/194] DOC-2947: Moved images to GitHub for the Accumulators Tutorial page [4.2] --- modules/tutorials/pages/accumulators-tutorial.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/tutorials/pages/accumulators-tutorial.adoc b/modules/tutorials/pages/accumulators-tutorial.adoc index 3ff67e44..9b7dbc50 100644 --- a/modules/tutorials/pages/accumulators-tutorial.adoc +++ b/modules/tutorials/pages/accumulators-tutorial.adoc @@ -9,7 +9,7 @@ This short tutorial aims to shorten the learning curve of accumulators. In theor == *What is an Accumulator?* .The left box is a GSQL query with different accumulators being accumulated to. The right box shows the accumulator variables' final results. -image::https://lh3.googleusercontent.com/TZfcbUMlXsHvCYVO_ex9QqjlK823ybyrX7aQhv38j35fghJVpsJEtdFBjcjMj1x2pHfHbNUraTgbySriMRttCuNv359iOwnRHDVcRgPyAj9tQLappYXe6ManjmRS27eunYMc2rjG[Screenshots of the console showing accumulators and their results.] +image::accumulator-examples.png[Screenshots of the console showing accumulators and their results.] An accumulator is a state variable in GSQL. Its state is mutable throughout the life cycle of a query. It has an initial value, and users can keep accumulating (using its "+=" built-in operator) new values into it. Each accumulator variable has a type. The type decides what semantics the declared accumulator will use to interpret the "+=" operation. @@ -34,13 +34,13 @@ They can only be updated when their owning vertex is accessible. To differentiat * *@* is used for declaring local accumulator variables. It must be used with a vertex alias in a query block. E.g. `v.@cnt += 1,` where v is a vertex alias specified in a FROM clause of a SELECT-FROM-WHERE query block. .A Social graph with 7 Person vertices and 7 Friendship edges connecting them. -image::https://lh6.googleusercontent.com/zBXxBe-6iSKX2RJZ9ITyC1wLf-gcbuJbzHlqnGCFV6uwjkYHrTYXtW56HzAn2uA-YYw4TQNt2-MFe-nbGXDnNml0K1sRYVdAKlc3SxMYZ5UsRnlWTb4R-fHIcXJillIGsyffAO2H[] +image::friendship-social-graph.png[] Consider a toy social graph modeled by a person vertex type and a person-to-person friendship edge type shown in Figure 2. Below we write a query, which accepts a person, and does a 1-hop traversal from the input person to its neighbors. We use the @@global_edge_cnt accumulator to accumulate the total number of edges we traverse. And we use @vertex_cnt to write to the input person's each friend vertex an integer 1. -image::https://lh5.googleusercontent.com/6PVg2z_7N7SqnLUeZOP2mdh52KQqB_GCZC-x5A6edcAagOWqBKWRPixykP-wS-tnAAqPYBWZbEBQOTHqV1GghvlsObYEW5tLkZ-Nn0lIc0EsAk8_RZRP_-vZQnsNn2Wy-j4sB-e4[] +image::global-vertex-accumulators-query.png[] -image::https://lh4.googleusercontent.com/P8rs2ukMPxoFJKk1x74FNkEa38PTg-KNcC9uJ_BN4ZRcYh5nhDTcjYD4_ajvgBe047-hLRaUbHfMXdEnn2nLzFQXGkRHRBbVb4lY399yZ_7If25HKtCAO0Hymn35Zm5fxdux_YtV[Figure 3. The top box shows a query that given a person, accumulate the edge count into @@global_edge_cnt. The bottom box shows that for each friend of the input person, we accumulate 1 into its @vertex_cnt. ] +image::query-output-neighbors.png[Figure 3. The top box shows a query that given a person, accumulate the edge count into @@global_edge_cnt. The bottom box shows that for each friend of the input person, we accumulate 1 into its @vertex_cnt. ] As Figure 2 shows, Dan has 4 direct friends -- Tom, Kevin, Jenny, and Nancy, each of which holds a local accumulator @vertex_cnt. And the @@global_edge_cnt has value 4, reflecting the fact that for each edge, we have accumulated 1 into it. From cc21766e3fb90efdd97cc921eae52a2e938e10b4 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 19 Aug 2025 17:26:58 +0530 Subject: [PATCH 160/194] DOC-2946-Changes updated --- modules/vector/pages/index.adoc | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/modules/vector/pages/index.adoc b/modules/vector/pages/index.adoc index 4412dc1c..0b74bdbf 100644 --- a/modules/vector/pages/index.adoc +++ b/modules/vector/pages/index.adoc @@ -142,8 +142,11 @@ CREATE GLOBAL SCHEMA_CHANGE JOB add_emb2 { RUN GLOBAL SCHEMA_CHANGE JOB add_emb2 ---- -When modifying vector attributes with a schema change job and using the `-N` option, *all queries become invalid* and must be reinstalled, even if they are unrelated to the change. -This is expected behavior in *4.2.1*. Avoid using `-N` unless you plan to reinstall all queries. +[NOTE] +==== +When modifying vector attributes with a schema change job, the same rules for query invalidation apply. +See xref:ddl-and-loading:modifying-a-graph-schema.adoc#_n[RUN SCHEMA CHANGE] for details on the `-N` option. +==== [#loading_vectors] == Loading Vectors @@ -191,8 +194,13 @@ The search index is used when the `vectorSearch` function is invoked. The index is automatically updated in respond to changes in the vector database. Because similar calculations take some time, the index can lag behind the data updates. -If you have many vertex types, index rebuild time increases proportionally, even if the number of vector records is the same. -During export, TigerGraph does not wait for the vector index rebuild to finish. If you export before rebuild completes, some vectors may be missing. +If you have many vertex types, index rebuild time increases proportionally, even if the total number of vector records is the same. + +[WARNING] +==== +Vectors which have not yet been indexed will not be included in vector search results. +A database export or backup may not include vectors which have not yet been indexed. +==== To check rebuild status: [source.wrap,bash] @@ -200,8 +208,8 @@ To check rebuild status: curl -s -X GET "http://:14240/restpp/vector/status" ---- -* Rebuild_processing means the index is still rebuilding. -* Ready_for_query means rebuild is complete. +* `Rebuild_processing` means the index is still rebuilding. +* `Ready_for_query` means rebuild is complete. [#vectorSearch] == vectorSearch Function @@ -242,7 +250,7 @@ E.g., `{candidate_set: vset1, ef: 20, distance_map: @@distmap}`. The meaning of the optional parameters is best explained by example. See the link:https://github.com/tigergraph/ecosys/blob/master/tutorials/VectorSearch.md[Vector Search tutorial]. -In version 4.2.1, there are some limitations when using vectorSearch() in GSQL queries: +There are some limitations when using vectorSearch() in GSQL queries: * Nested `ListAccum` types inside `vectorSearch()` (e.g., `ListAccum>`) are not supported. * Using the `+` operator on a `ListAccum` inside `vectorSearch()` causes compilation failure. From 1a917c3f2e67d1f97b421d065fc7d373dbb04899 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 19 Aug 2025 17:48:13 +0530 Subject: [PATCH 161/194] Removed extra ";" from the example of Loading Vectors --- modules/vector/pages/index.adoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/vector/pages/index.adoc b/modules/vector/pages/index.adoc index 0b74bdbf..e6dba640 100644 --- a/modules/vector/pages/index.adoc +++ b/modules/vector/pages/index.adoc @@ -159,7 +159,7 @@ The vector data is presumed to be in some format such as CSV where one separator [source,GSQL] .Vector load clause syntax ---- -LOAD file_object TO VECTOR ATTRIBUTE vec_name ON VERTEX vertex_name \ +LOAD file_object TO VECTOR ATTRIBUTE vec_name ON VERTEX vertex_name VALUES (id_col, SPLIT(vec_col, elem_sep) USING SEPARATOR = field_sep; ---- @@ -171,7 +171,6 @@ CREATE LOADING JOB load_s3_file { DEFINE FILENAME account; DEFINE FILENAME accountEmb; -; LOAD account TO VERTEX Account VALUES ($"name", gsql_to_bool(gsql_trim($"isBlocked"))) USING header="true", separator=","; LOAD accountEmb TO VECTOR ATTRIBUTE em1 ON VERTEX Account VALUES ($0, SPLIT($1, ",")) USING SEPARATOR="|"; From c948e356fd5de97b0bde1aed2f3224f7f1aa54d0 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 19 Aug 2025 17:50:39 +0530 Subject: [PATCH 162/194] Update index.adoc --- modules/vector/pages/index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/vector/pages/index.adoc b/modules/vector/pages/index.adoc index e6dba640..61bd014d 100644 --- a/modules/vector/pages/index.adoc +++ b/modules/vector/pages/index.adoc @@ -198,7 +198,7 @@ If you have many vertex types, index rebuild time increases proportionally, even [WARNING] ==== Vectors which have not yet been indexed will not be included in vector search results. -A database export or backup may not include vectors which have not yet been indexed. +A database export may not include vectors which have not yet been indexed. ==== To check rebuild status: From f7b657537c1236733d38041ed7057222106fdbc1 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 19 Aug 2025 20:57:03 +0530 Subject: [PATCH 163/194] Updated PRINT page for `PRINT vt TO_CSV f` syntax --- .../querying/pages/output-statements-and-file-objects.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/querying/pages/output-statements-and-file-objects.adoc b/modules/querying/pages/output-statements-and-file-objects.adoc index c17a3c21..2456fb1d 100644 --- a/modules/querying/pages/output-statements-and-file-objects.adoc +++ b/modules/querying/pages/output-statements-and-file-objects.adoc @@ -453,9 +453,9 @@ Each execution of the `PRINT` statement appends one line to the `FILE`. If the ` ==== Limitations of `PRINT` > File -* Printing a full Vertex set variable is not supported. -* If a vertex is printed, only its ID value is printed. +* In 4.2.1, printing a full vertex set is supported with `PRINT vt`; and `PRINT vt TO_CSV f`;. Only vertex IDs are printed. * If printing a vertex set's vertex-attached accumulator or a vertex set's variable, the result is a list of values, one for each vertex, separated by newlines. +* Expanded forms like `PRINT A[A.*]`; or `PRINT A.* TO_CSV f`; are not supported. The system will return an error with a hint to use `PRINT A`; or `PRINT A TO_CSV f`; instead. * The syntax for printing a vertex set expression is different when printing to a file than when printing to standard output. Compare: ** `PRINT A[A.gender];` # with brackets ** `PRINT A.gender TO_CSV file1;` # without brackets From cf33871bb3fe625f4d13642ea78a931f77564cbb Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 19 Aug 2025 20:58:56 +0530 Subject: [PATCH 164/194] Update output-statements-and-file-objects.adoc --- modules/querying/pages/output-statements-and-file-objects.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/querying/pages/output-statements-and-file-objects.adoc b/modules/querying/pages/output-statements-and-file-objects.adoc index 2456fb1d..6c3e3a8b 100644 --- a/modules/querying/pages/output-statements-and-file-objects.adoc +++ b/modules/querying/pages/output-statements-and-file-objects.adoc @@ -455,7 +455,6 @@ Limitations of `PRINT` > File * In 4.2.1, printing a full vertex set is supported with `PRINT vt`; and `PRINT vt TO_CSV f`;. Only vertex IDs are printed. * If printing a vertex set's vertex-attached accumulator or a vertex set's variable, the result is a list of values, one for each vertex, separated by newlines. -* Expanded forms like `PRINT A[A.*]`; or `PRINT A.* TO_CSV f`; are not supported. The system will return an error with a hint to use `PRINT A`; or `PRINT A TO_CSV f`; instead. * The syntax for printing a vertex set expression is different when printing to a file than when printing to standard output. Compare: ** `PRINT A[A.gender];` # with brackets ** `PRINT A.gender TO_CSV file1;` # without brackets From 4d2f12e23fe5cbc79ba8488292f5872e9b9ac904 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 21 Aug 2025 00:04:31 +0530 Subject: [PATCH 165/194] DOC-2946-minor wordings fixed --- modules/vector/pages/index.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/vector/pages/index.adoc b/modules/vector/pages/index.adoc index 61bd014d..6717e9b8 100644 --- a/modules/vector/pages/index.adoc +++ b/modules/vector/pages/index.adoc @@ -144,8 +144,8 @@ RUN GLOBAL SCHEMA_CHANGE JOB add_emb2 [NOTE] ==== -When modifying vector attributes with a schema change job, the same rules for query invalidation apply. -See xref:ddl-and-loading:modifying-a-graph-schema.adoc#_n[RUN SCHEMA CHANGE] for details on the `-N` option. +Use the `-N` option when you run a schema change job to modify vector attributes. +For more details, see the xref:ddl-and-loading:modifying-a-graph-schema.adoc#_n[RUN SCHEMA CHANGE] page. ==== [#loading_vectors] @@ -252,8 +252,8 @@ The meaning of the optional parameters is best explained by example. See the li There are some limitations when using vectorSearch() in GSQL queries: * Nested `ListAccum` types inside `vectorSearch()` (e.g., `ListAccum>`) are not supported. -* Using the `+` operator on a `ListAccum` inside `vectorSearch()` causes compilation failure. -* Using vector attributes directly in a `WHERE` clause (e.g., `WHERE P.embAttr1.size() == 0`) causes a Null Pointer Exception. Use `ACCUM` or `POST-ACCUM` clauses instead. +* Using the `+` operator on a `ListAccum` inside `vectorSearch()` is not supported. +* Using vector attributes directly in a `WHERE` clause (e.g., `WHERE P.embAttr1.size() == 0`) is not supported. Use `ACCUM` or `POST-ACCUM` clauses instead. [#print_vectors] == Printing Vectors From fd5d4550d612131875eba3178c141b572ae160c4 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 29 Aug 2025 20:11:41 +0530 Subject: [PATCH 166/194] DOC-2932 Updated FILE object to include file permission parameter --- .../declaration_file_object_query.gsql | 10 +- ..._statements_file_object_query_example.gsql | 9 +- ...declaration-and-assignment-statements.adoc | 91 +++++++++++-------- .../output-statements-and-file-objects.adoc | 20 ++-- 4 files changed, 74 insertions(+), 56 deletions(-) diff --git a/modules/appendix/examples/work_net/declaration_file_object_query.gsql b/modules/appendix/examples/work_net/declaration_file_object_query.gsql index 4eb169d4..e7d6ff29 100644 --- a/modules/appendix/examples/work_net/declaration_file_object_query.gsql +++ b/modules/appendix/examples/work_net/declaration_file_object_query.gsql @@ -1,17 +1,19 @@ CREATE QUERY get_US_worker_interests (STRING file_location) FOR GRAPH Work_Net { - // Declare FILE object f1 - FILE f1 (file_location); + // Declare FILE object f1 with an octal-encoded file permission "764" + FILE f1 (file_location, "764"); + // Initialize a seed set of all person vertices P = {Person.*}; PRINT "header" TO_CSV f1; - // Select workers located in the US and print their interests onto - // the FILE object + // Select workers located in the US and print their interests onto the FILE object US_workers = SELECT v FROM P:v WHERE v.location_id == "us" ACCUM f1.println(v.id, v.interest_list); + PRINT "footer" TO_CSV f1; } + INSTALL QUERY get_US_worker_interests RUN QUERY get_US_worker_interests("/home/tigergraph/fileEx.txt") \ No newline at end of file diff --git a/modules/appendix/examples/work_net/output_statements_file_object_query_example.gsql b/modules/appendix/examples/work_net/output_statements_file_object_query_example.gsql index 9baff167..aa10c1db 100644 --- a/modules/appendix/examples/work_net/output_statements_file_object_query_example.gsql +++ b/modules/appendix/examples/work_net/output_statements_file_object_query_example.gsql @@ -1,11 +1,14 @@ -CREATE QUERY file_ex (STRING file_location) FOR GRAPH Work_Net { +CREATE QUERY get_US_worker_interests (STRING file_location) FOR GRAPH Work_Net { + // Declare FILE object f1 with an octal-encoded file permission "764" + FILE f1 (file_location, "764"); - FILE f1 (file_location); + // Initialize a seed set of all person vertices P = {Person.*}; PRINT "header" TO_CSV f1; - USWorkers = SELECT v FROM P:v + // Select workers located in the US and print their interests + US_workers = SELECT v FROM P:v WHERE v.location_id == "us" ACCUM f1.println(v.id, v.interest_list); diff --git a/modules/querying/pages/declaration-and-assignment-statements.adoc b/modules/querying/pages/declaration-and-assignment-statements.adoc index d6134205..a132b253 100644 --- a/modules/querying/pages/declaration-and-assignment-statements.adoc +++ b/modules/querying/pages/declaration-and-assignment-statements.adoc @@ -9,55 +9,71 @@ This section discusses the different types of declaration and assignment stateme ---- ## Declarations ## accumDeclStmt := - accumType localAccumName ["=" constant] - ["," localASccumName ["=" constant]]* - | accumType globaAccumName ["=" constant] - ["," GlobalAccumName ["=" constant]]* -localAccumName := "@"accumName; -globalAccumName := "@@"accumName; - -baseDeclStmt := baseType name ["=" constant] ["," name ["=" constant]]* -fileDeclStmt := FILE fileVar "(" filePath ")" + accumType localAccumName ["=" constant] + ["," localAccumName ["=" constant]]* + | accumType globalAccumName ["=" constant] + ["," globalAccumName ["=" constant]]* + +localAccumName := "@" accumName; +globalAccumName := "@@" accumName; + +baseDeclStmt := baseType name ["=" constant] + ["," name ["=" constant]]* + +fileDeclStmt := FILE fileVar "(" filePath ["," filePermissionCode] ")" + fileVar := name +filePath := stringLiteral +filePermissionCode := stringLiteral // octal encoded permission as a string literal localVarDeclStmt := baseType varName "=" expr vSetVarDeclStmt := vertexSetName ["(" vertexType ")"] "=" (seedSet | simpleSet | selectBlock) -simpleSet := vertexSetName - | "(" simpleSet ")" - | simpleSet (UNION | INTERSECT | MINUS) simpleSet +simpleSet := + vertexSetName + | "(" simpleSet ")" + | simpleSet (UNION | INTERSECT | MINUS) simpleSet -seedSet := "{" [seed ["," seed ]*] "}" -seed := '_' - | ANY - | vertexSetName - | globalAccumName - | vertexType ".*" - | paramName - | "SelectVertex" selectVertParams - | vertexVarName +seedSet := "{" [seed ["," seed]*] "}" -selectVertParams := "(" filePath "," columnId "," (columnId | name) "," - stringLiteral "," (TRUE | FALSE) ")" ["." FILTER "(" condition ")"] +seed := + '_' + | ANY + | vertexSetName + | globalAccumName + | vertexType ".*" + | paramName + | "SelectVertex" selectVertParams + | vertexVarName + +selectVertParams := + "(" filePath "," columnId "," (columnId | name) "," + stringLiteral "," (TRUE | FALSE) ")" ["." FILTER "(" condition ")"] columnId := "$" (integer | stringLiteral) ## Assignment Statements ## -assignStmt := name "=" expr - | name "." attrName "=" expr +assignStmt := + name "=" expr + | name "." attrName "=" expr -attrAccumStmt := name "." attrName "+=" expr +attrAccumStmt := + name "." attrName "+=" expr -lAccumAssignStmt := vertexAlias "." localAccumName ("+="| "=") expr +lAccumAssignStmt := + vertexAlias "." localAccumName ("+=" | "=") expr -gAccumAssignStmt := globalAccumName ("+=" | "=") expr +gAccumAssignStmt := + globalAccumName ("+=" | "=") expr -loadAccumStmt := globalAccumName "=" "{" LOADACCUM loadAccumParams - ["," LOADACCUM loadAccumParams]* "}" +loadAccumStmt := + globalAccumName "=" "{" LOADACCUM loadAccumParams + ["," LOADACCUM loadAccumParams]* "}" -loadAccumParams := "(" filePath "," columnId ["," columnId]* "," - stringLiteral "," (TRUE | FALSE) ")" ["." FILTER "(" condition ")"] +loadAccumParams := + "(" filePath "," columnId ["," columnId]* "," + stringLiteral "," (TRUE | FALSE) ")" ["." FILTER "(" condition ")"] ## Function Call Statement ## funcCallStmt := name ["<" type ["," type]* ">"] "(" [argList] ")" @@ -404,14 +420,15 @@ A `FILE` object is a sequential text storage object, associated with a text file .EBNF for FILE object declaration [source,ebnf] ---- -fileDeclStmt := FILE fileVar "(" filePath ")" +fileDeclStmt := FILE fileVar "(" filePath ["," filePermissionCode] ")" fileVar := name +filePath := stringLiteral +filePermissionCode := stringLiteral ---- -When a `FILE` object is declared, associated with a particular text file, any existing content in the text file will be erased. -During the execution of the query, content written to or printed to the `FILE` object will be appended to the `FILE` object. -When the query where the `FILE` object is declared finishes running, the content of the `FILE` object is saved to the text file. +Declaring a `FILE` object with a file path erases any existing content in the text file. An optional Linux octal-encoded file permission code (e.g., "764") can be specified to set access permissions. During query execution, content written to the `FILE` object is appended to it. When the query finishes, the content is saved to the text file. +See xref:querying:output-statements-and-file-objects.adoc#_file_println_statement[Output Statements and FILE Objects] for examples of writing to a `FILE` object. ==== Example @@ -421,8 +438,6 @@ When the query where the `FILE` object is declared finishes running, the content include::appendix:example$work_net/declaration_file_object_query.gsql[] ---- - - == Assignment and Accumulate Statements Assignment statements are used to set or update the value of a variable after it has been declared. diff --git a/modules/querying/pages/output-statements-and-file-objects.adoc b/modules/querying/pages/output-statements-and-file-objects.adoc index 6c3e3a8b..fab5ef86 100644 --- a/modules/querying/pages/output-statements-and-file-objects.adoc +++ b/modules/querying/pages/output-statements-and-file-objects.adoc @@ -487,7 +487,6 @@ printlnStmt := fileVar".println" "(" expr ("," expr)* ")" ---- - `println` is a method of a FILE object variable. The `println` statement can be used either at the query-body or DML-sub-statement level, e.g., within the `ACCUM` clause of a `SELECT` block. Each time `println` is called, it adds one new line of values to the `FILE` object, and then to the corresponding file. The `println` function can print any expression that can be printed by a `PRINT` statement with the exception of vertex set variables. Vertex expression sets are also not applicable to the `println` function. @@ -502,25 +501,27 @@ The data from query-body level `FILE` print statements (either `TO_CSV` or `prin [discrete] === Example +As of 4.2.1, users can declare a FILE object with a linux octal-encoded file permission code to specify file permissions. +See xref:querying:declaration-and-assignment-statements.adoc#_file_objects[Declaration and Assignment Statements] page for details. + .File object query example [source,gsql] ---- include::appendix:example$work_net/output_statements_file_object_query_example.gsql[] -INSTALL QUERY file_ex -RUN QUERY file_ex("/home/tigergraph/files") +INSTALL QUERY get_US_worker_interests +RUN QUERY get_US_worker_interests("/home/tigergraph/fileEx.txt") ---- - All of the `PRINT` statements in this example use the `TO_CSV` option, so there is no JSON output to the console. -.Results from Query fileEx +.Results from Query get_US_worker_interests [source,gsql] ---- -GSQL > RUN QUERY file_ex("/home/tigergraph/file_ex.txt") +GSQL > RUN QUERY get_US_worker_interests("/home/tigergraph/fileEx.txt") { "error": false, "message": "", @@ -533,15 +534,13 @@ GSQL > RUN QUERY file_ex("/home/tigergraph/file_ex.txt") } ---- - - All the output in this case goes to the `FILE` object. In the query definition, the line `"header"` is printed first, followed by the `println` statements in the `ACCUM` clause, and `"footer"` is printed last. The output in the file follows this order because the order of query-body level statements is maintained in the output. -.File contents produced by file_ex example +.File contents produced by get_US_worker_interests example [source,gsql] ---- -[tigergraph@localhost]$ more /home/tigergraph/file_ex.txt +[tigergraph@localhost]$ more /home/tigergraph/fileEx.txt header person7,art sport person10,football sport @@ -552,7 +551,6 @@ footer ---- - However, within the `ACCUM` clause itself, the order of the `println` statements is not guaranteed. == Passing a FILE Object as a Parameter From e7df1f88d6b3c56ef48bf59ee89e9800a4edb234 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Mon, 1 Sep 2025 19:59:31 +0530 Subject: [PATCH 167/194] DOC-2932-Updated EBNF --- ...declaration-and-assignment-statements.adoc | 75 +++++++------------ 1 file changed, 28 insertions(+), 47 deletions(-) diff --git a/modules/querying/pages/declaration-and-assignment-statements.adoc b/modules/querying/pages/declaration-and-assignment-statements.adoc index a132b253..5731d270 100644 --- a/modules/querying/pages/declaration-and-assignment-statements.adoc +++ b/modules/querying/pages/declaration-and-assignment-statements.adoc @@ -8,20 +8,17 @@ This section discusses the different types of declaration and assignment stateme [source,ebnf] ---- ## Declarations ## -accumDeclStmt := - accumType localAccumName ["=" constant] - ["," localAccumName ["=" constant]]* - | accumType globalAccumName ["=" constant] - ["," globalAccumName ["=" constant]]* +accumDeclStmt := accumType localAccumName ["=" constant] + ["," localAccumName ["=" constant]]* + | accumType globalAccumName ["=" constant] + ["," globalAccumName ["=" constant]]* localAccumName := "@" accumName; globalAccumName := "@@" accumName; -baseDeclStmt := baseType name ["=" constant] - ["," name ["=" constant]]* +baseDeclStmt := baseType name ["=" constant] ["," name ["=" constant]]* fileDeclStmt := FILE fileVar "(" filePath ["," filePermissionCode] ")" - fileVar := name filePath := stringLiteral filePermissionCode := stringLiteral // octal encoded permission as a string literal @@ -29,57 +26,41 @@ filePermissionCode := stringLiteral // octal encoded permission as a string li localVarDeclStmt := baseType varName "=" expr vSetVarDeclStmt := vertexSetName ["(" vertexType ")"] "=" (seedSet | simpleSet | selectBlock) - -simpleSet := - vertexSetName - | "(" simpleSet ")" - | simpleSet (UNION | INTERSECT | MINUS) simpleSet - +simpleSet := vertexSetName + | "(" simpleSet ")" + | simpleSet (UNION | INTERSECT | MINUS) simpleSet seedSet := "{" [seed ["," seed]*] "}" - -seed := - '_' - | ANY - | vertexSetName - | globalAccumName - | vertexType ".*" - | paramName - | "SelectVertex" selectVertParams - | vertexVarName - -selectVertParams := - "(" filePath "," columnId "," (columnId | name) "," - stringLiteral "," (TRUE | FALSE) ")" ["." FILTER "(" condition ")"] - +seed := '_' + | ANY + | vertexSetName + | globalAccumName + | vertexType ".*" + | paramName + | "SelectVertex" selectVertParams + | vertexVarName +selectVertParams := "(" filePath "," columnId "," (columnId | name) "," + stringLiteral "," (TRUE | FALSE) ")" ["." FILTER "(" condition ")"] columnId := "$" (integer | stringLiteral) ## Assignment Statements ## -assignStmt := - name "=" expr - | name "." attrName "=" expr +assignStmt := name "=" expr + | name "." attrName "=" expr -attrAccumStmt := - name "." attrName "+=" expr - -lAccumAssignStmt := - vertexAlias "." localAccumName ("+=" | "=") expr +attrAccumStmt := name "." attrName "+=" expr -gAccumAssignStmt := - globalAccumName ("+=" | "=") expr +lAccumAssignStmt := vertexAlias "." localAccumName ("+=" | "=") expr -loadAccumStmt := - globalAccumName "=" "{" LOADACCUM loadAccumParams - ["," LOADACCUM loadAccumParams]* "}" +gAccumAssignStmt := globalAccumName ("+=" | "=") expr -loadAccumParams := - "(" filePath "," columnId ["," columnId]* "," - stringLiteral "," (TRUE | FALSE) ")" ["." FILTER "(" condition ")"] +loadAccumStmt := globalAccumName "=" "{" LOADACCUM loadAccumParams + ["," LOADACCUM loadAccumParams]* "}" +loadAccumParams := "(" filePath "," columnId ["," columnId]* "," + stringLiteral "," (TRUE | FALSE) ")" ["." FILTER "(" condition ")"] ## Function Call Statement ## funcCallStmt := name ["<" type ["," type]* ">"] "(" [argList] ")" - | globaAccumName ("." funcName "(" [argList] ")")+ + | globalAccumName ("." funcName "(" [argList] ")")+ | "reset_collection_accum" "(" accumName ")" - argList := expr ["," expr]* ---- From 1a0b93694ec6f976a3339c6b3c033ec17860eaac Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Mon, 1 Sep 2025 20:20:21 +0530 Subject: [PATCH 168/194] DOC-2932-Fixed appendix example --- ...utput_statements_file_object_query_example.gsql | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/appendix/examples/work_net/output_statements_file_object_query_example.gsql b/modules/appendix/examples/work_net/output_statements_file_object_query_example.gsql index aa10c1db..284426c6 100644 --- a/modules/appendix/examples/work_net/output_statements_file_object_query_example.gsql +++ b/modules/appendix/examples/work_net/output_statements_file_object_query_example.gsql @@ -1,16 +1,16 @@ -CREATE QUERY get_US_worker_interests (STRING file_location) FOR GRAPH Work_Net { +CREATE QUERY file_ex (STRING file_location) FOR GRAPH Work_Net { // Declare FILE object f1 with an octal-encoded file permission "764" FILE f1 (file_location, "764"); - + // Initialize a seed set of all person vertices P = {Person.*}; - + PRINT "header" TO_CSV f1; - + // Select workers located in the US and print their interests - US_workers = SELECT v FROM P:v + USWorkers = SELECT v FROM P:v WHERE v.location_id == "us" ACCUM f1.println(v.id, v.interest_list); - + PRINT "footer" TO_CSV f1; -} \ No newline at end of file +} From 9756b27fd598c39faf2fbab5996949cd3615b64f Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 4 Sep 2025 20:30:22 +0530 Subject: [PATCH 169/194] DOC-2974: Vector page fixed --- modules/vector/pages/index.adoc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/vector/pages/index.adoc b/modules/vector/pages/index.adoc index 6717e9b8..ef6c8523 100644 --- a/modules/vector/pages/index.adoc +++ b/modules/vector/pages/index.adoc @@ -28,7 +28,7 @@ For a tutorial and examples. see our link:https://github.com/tigergraph/ecosys/b | FLOAT (32-bit floating point) | Max. dimensions (vector length) -| 4096 +| 4096 (Community Edition); 32768 (Enterprise Edition) | Similarity metrics | cosine, L2 (Euclidean) IP (inner product) @@ -64,7 +64,7 @@ a| In schema change job: a| Clause in loading job: ``` LOAD file_object TO VECTOR ATTRIBUTE vec_name ON VERTEX vertex_name -VALUES (id_col, SPLIT(vec_col, elem_sep) USING SEPARATOR = field_sep; +VALUES (id_col, SPLIT(vec_col, elem_sep)) USING SEPARATOR = field_sep; ``` | xref:#vectorSearch[Search for similar vertices] @@ -160,8 +160,7 @@ The vector data is presumed to be in some format such as CSV where one separator .Vector load clause syntax ---- LOAD file_object TO VECTOR ATTRIBUTE vec_name ON VERTEX vertex_name -VALUES (id_col, SPLIT(vec_col, elem_sep) USING SEPARATOR = field_sep; - +VALUES (id_col, SPLIT(vec_col, elem_sep)) USING SEPARATOR = field_sep; ---- Example: @@ -253,7 +252,7 @@ There are some limitations when using vectorSearch() in GSQL queries: * Nested `ListAccum` types inside `vectorSearch()` (e.g., `ListAccum>`) are not supported. * Using the `+` operator on a `ListAccum` inside `vectorSearch()` is not supported. -* Using vector attributes directly in a `WHERE` clause (e.g., `WHERE P.embAttr1.size() == 0`) is not supported. Use `ACCUM` or `POST-ACCUM` clauses instead. +* Using vector attributes directly in a WHERE clause (e.g., `WHERE P.embAttr1.size() == 0`) is generally not supported. However, users can now install queries using the `-single` method to avoid Null Pointer Exceptions (NPEs) when working around this limitation. For other cases, use `ACCUM` or `POST-ACCUM` clauses. [#print_vectors] == Printing Vectors From 2310ea590b40e20b7fb40ff0854f06c6010079a4 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 19 Sep 2025 20:56:06 +0530 Subject: [PATCH 170/194] DOC-3007: added feature on bitwise accum [4.2.1] --- modules/querying/pages/accumulators.adoc | 76 +++++++++++------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/modules/querying/pages/accumulators.adoc b/modules/querying/pages/accumulators.adoc index 9b5264ba..06017987 100644 --- a/modules/querying/pages/accumulators.adoc +++ b/modules/querying/pages/accumulators.adoc @@ -652,42 +652,45 @@ include::appendix:example$minimal_net/accum_oraccum_results.json[] [#_bitwiseandaccum_bitwiseoraccum] === BitwiseAndAccum / BitwiseOrAccum -The BitwiseAndAccum and BitwiseOrAccum types represent fixed-length bit sequences and calculate the cumulative result of a series of bitwise boolean operations and store the resulting sequences. +The BitwiseAndAccum and BitwiseOrAccum types represent fixed-length or dynamic-length bit sequences. They calculate the cumulative result of bitwise boolean operations and store the resulting sequences. -Fundamental to understanding and using bitwise operations is the knowledge that integers are stored in base-2 representation as a 64-bit sequence of 1s and 0s. -"Bitwise" means that each bit is treated as a separate boolean value, with 1 representing true and 0 representing false. -Hence, an integer is equivalent to a sequence of boolean values. +Integers are stored as sequences of 1s and 0s (bits) in base-2, with each bit acting as a boolean value (1 for true, 0 for false). Computing the Bitwise `AND` of two numbers A and B means computing the bit sequence C where the stem:[j_{th}] bit of C, denoted stem:[C_j], is equal to stem:[A_j] `AND` stem:[B_j]. ==== Declaration -The default length for a bitwise accumulator is 64 bits. -You can specify a different length by appending the desired length in angle brackets``<>`` in the declaration statement: +Declare bitwise accumulators as regular fixed-length (up to 64 bits), long fixed-length (over 64 bits), or dynamic-length (new in version 4.2.1) based on your query’s needs. +* *Regular Fixed-Length (Up to 64 Bits)*: Stored in a single 64-bit integer, ignoring overflow. Declare without a length (defaults to 64 bits) or with a length of 64 or less. ++ [,gsql] ---- -BitwiseOrAccum<100> @@visited; +BitwiseOrAccum @@bw1; // Default 64 bits +BitwiseAndAccum<64> @@bw2; +BitwiseOrAccum<32> @@bw3; ---- -* When a bitwise accumulator length is less than or equal to 64, it's stored using one 64-bit integer. -Overflow on the left is ignored. -* When a bitwise accumulator length is longer than 64, it's stored using an array of multiple integers. -The rightmost (last) integer in the array is for the 64 least significant bits. -Any overflowing bits will be ignored. - -For example, if you are declaring an 80-bit BitwiseAndAccum: - - @@bit80<80> = [123, 456] - -456 represents the 64-bit sequence `0000….000111001000` (zeros omitted), and 123 represents the 64-bit sequence `0000000000…00001111011` (zeros omitted). - -When the two integers are joined together, the 64-bit sequence on the right (456) takes up the 64 bits from the right. -The 64-bit sequence on the left (123) takes up the remaining 16 bits and the overflow on the left is ignored. - -The resulting BitwiseAndAccum is the concatenation of the two bit sequences: +* *Long Fixed-Length (Over 64 Bits)*: Stored in an array of integers, with the rightmost integer holding the 64 least significant bits, ignoring overflow. Use .clear() to free memory during queries. ++ +[,gsql] +---- +BitwiseOrAccum<65> @@bw4; +BitwiseAndAccum<100> @@bw5; +---- - 0000000001111011, followed by 0000000...000111001000 +* *Dynamic-Length*: Set the length at runtime using query parameters or variables (new in version 4.2.1). Use .clear() to free memory. You cannot change the length after declaration (e.g., .resize() is not supported). ++ +[,gsql] +---- +CREATE QUERY test(UINT len) { + INT length = len * 10; + BitwiseOrAccum @@bw6; + BitwiseOrAccum @@bw7; +} +---- +For lengths over 64 bits, the system uses an array. +For example, an 80-bit BitwiseAndAccum like `@@bit80<80> = [123, 456]` concatenates the bit sequences, with 456 covering the 64 least significant bits and 123 the rest, ignoring overflow. ==== Accumulation behavior @@ -712,9 +715,7 @@ AccumA > AccumB // true AccumA < AccumB // false ---- -They also support bitwise Boolean logic operators. -If an operator acts on two accumuators, the accumulators must have the same type and length. -The operation produces a new accumulator with the same type and length. +Bitwise boolean logic operators require accumulators of the same type and length, producing a new accumulator of the same type and length. .Bitwise logic operators [cols="1,2"] @@ -724,7 +725,7 @@ The operation produces a new accumulator with the same type and length. |` & ` |Returns a new bitwise accumulator where each bit is the Boolean `AND` of the corresponding bits in `accum1` and `accum2`. -|` \|\| ` +|` \| ` |Returns a new bitwise accumulator where each bit is the Boolean `OR` of the corresponding bits in `accum1` and `accum2`. |` ^ ` @@ -736,22 +737,13 @@ The operation produces a new accumulator with the same type and length. [CAUTION] ==== -Bitwise Operations and Negative Integers - -Most computer systems represent negative integers using "2's complement" format, where the uppermost bit has special significance. Operations that affect the uppermost bit are crossing the boundary between positive and negative numbers, and vice versa. +Bitwise operations on negative integers use 2’s complement, where the uppermost bit indicates the sign, which may affect results. ==== [discrete] ==== *Functions* -BitwiseAndAccum and BitwiseOrAccum also support the following class functions. - -[WARNING] -==== -Mutator functions (those that modify the accumulator) can be used only under the following conditions: - -* Mutator functions may not be used in a PRINT statement. -==== +BitwiseAndAccum and BitwiseOrAccum support these functions. Mutator functions, which modify the accumulator, cannot be used in PRINT statements. .Bitwise accumulator functions |=== @@ -820,8 +812,12 @@ Returns a bitwise accumulator whose every bit is the `AND` result between the tw |Mutator |Compares two bitwise accumulators of the same length. Returns a Bitwise accumulator whose every bit is the `OR` result between the two bitwise accumulators. -|=== +|`.clear()` +|`VOID` +|Mutator +|Frees memory for long and dynamic-length accumulators. +|=== ==== Example From 1c88d61a0a1c5c7651402eced6c2898f28841c44 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 19 Sep 2025 20:56:33 +0530 Subject: [PATCH 171/194] DOC-3007: updated accum_bitwise.gsql example --- .../examples/minimal_net/accum_bitwise.gsql | 43 ++++++++----------- 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/modules/appendix/examples/minimal_net/accum_bitwise.gsql b/modules/appendix/examples/minimal_net/accum_bitwise.gsql index 16794ff9..3a8d24de 100644 --- a/modules/appendix/examples/minimal_net/accum_bitwise.gsql +++ b/modules/appendix/examples/minimal_net/accum_bitwise.gsql @@ -1,28 +1,23 @@ -CREATE QUERY bitwise_accum_ex() FOR GRAPH Minimal_Net { +CREATE QUERY bitwise_accum_ex(UINT len) FOR GRAPH Minimal_Net { + BitwiseAndAccum @@bw_and; // Regular fixed-length (64 bits) + BitwiseOrAccum<80> @@bw_or_long; // Long fixed-length + BitwiseOrAccum @@bw_or_dyn; // Dynamic-length - BitwiseAndAccum @@bw_and_accum_var; // default value = 64-bits of 1 = -1 (INT) - BitwiseOrAccum @@bw_or_accum_var; // default value = 64-bits of 0 = 0 (INT)) + // Regular fixed-length + @@bw_and += 170; // 11111111 & 10101010 -> 10101010 (decimal 170) + @@bw_and += 85; // 10101010 & 01010101 -> 00000000 (decimal 0) + PRINT @@bw_and; // 0 - // 11110000 = 240 - // 00001111 = 15 - // 10101010 = 170 - // 01010101 = 85 + // Long fixed-length + @@bw_or_long += 170; // 80 bits: ...000 | ...10101010 -> ...10101010 + @@bw_or_long.clear(); // Resets to 0 (default for BitwiseOrAccum) and frees memory + @@bw_or_long += 85; // ...000 | ...01010101 -> ...01010101 (decimal 85) + PRINT @@bw_or_long; // 85 - // BitwiseAndAccum - @@bw_and_accum_var += 170; // 11111111 & 10101010 -> 10101010 - @@bw_and_accum_var += 85; // 10101010 & 01010101 -> 00000000 - PRINT @@bw_and_accum_var; // 0 + // Dynamic-length (e.g., len = 8) + @@bw_or_dyn += 170; // 00000000 | 10101010 -> 10101010 (decimal 170) + @@bw_or_dyn += 85; // 10101010 | 01010101 -> 11111111 (decimal 255) + PRINT @@bw_or_dyn; // 255 - @@bw_and_accum_var = 15; // reset to 00001111 - @@bw_and_accum_var += 85; // 00001111 & 01010101 -> 00000101 - PRINT @@bw_and_accum_var; // 5 - - // BitwiseOrAccum - @@bw_or_accum_var += 170; // 00000000 | 10101010 -> 10101010 - @@bw_or_accum_var += 85; // 10101010 | 01010101 -> 11111111 = 255 - PRINT @@bw_or_accum_var; // 255 - - @@bw_or_accum_var = 15; // reset to 00001111 - @@bw_or_accum_var += 85; // 00001111 | 01010101 -> 01011111 = 95 - PRINT @@bw_or_accum_var; // 95 -} \ No newline at end of file + // @@bw_or_dyn.resize(len + 1); // Not supported +} From f2e102ac755746510f44a36416d1e9efceb47ba1 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 19 Sep 2025 20:56:56 +0530 Subject: [PATCH 172/194] DOC-3007: accum_bitwise_results.json --- .../examples/minimal_net/accum_bitwise_results.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/appendix/examples/minimal_net/accum_bitwise_results.json b/modules/appendix/examples/minimal_net/accum_bitwise_results.json index 12725dfd..40835bfb 100644 --- a/modules/appendix/examples/minimal_net/accum_bitwise_results.json +++ b/modules/appendix/examples/minimal_net/accum_bitwise_results.json @@ -7,9 +7,8 @@ "api": "v2" }, "results": [ - {"@@bw_and_accum_var": "0000000000000000000000000000000000000000000000000000000000000000"}, - {"@@bw_and_accum_var": "0000000000000000000000000000000000000000000000000000000000000101"}, - {"@@bw_or_accum_var": "0000000000000000000000000000000000000000000000000000000011111111"}, - {"@@bw_or_accum_var": "0000000000000000000000000000000000000000000000000000000001011111"} + {"@@bw_and": "0000000000000000000000000000000000000000000000000000000000000000"}, + {"@@bw_or_long": "0000000000000000000000000000000000000000000000000000000001010101"}, + {"@@bw_or_dyn": "11111111"} ] -} \ No newline at end of file +} From 9cc041fa928e8fa40baf53e81f1a5fc28b2262bf Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 1 Oct 2025 01:10:23 +0530 Subject: [PATCH 173/194] Update query-operations.adoc --- modules/querying/pages/query-operations.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index e081140b..f5754200 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -568,7 +568,7 @@ If a query is saved as a draft before it reaches valid status, any queries that ==== If a user creates a query, this user becomes the owner of this query automatically. -For a detailed description, please refer to xref:xref:{page-component-version}@tigergraph-server:user-access:fine-grained-query-privileges.adoc +For a detailed description, please refer to xref:{page-component-version}@tigergraph-server:user-access:fine-grained-query-privileges.adoc ==== == `INTERPRET QUERY` From de3314ed5f439f3a492961ff2c5b793c3656f849 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Wed, 1 Oct 2025 01:27:55 +0530 Subject: [PATCH 174/194] Update query-operations.adoc --- modules/querying/pages/query-operations.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/querying/pages/query-operations.adoc b/modules/querying/pages/query-operations.adoc index f5754200..2219b58d 100644 --- a/modules/querying/pages/query-operations.adoc +++ b/modules/querying/pages/query-operations.adoc @@ -568,7 +568,7 @@ If a query is saved as a draft before it reaches valid status, any queries that ==== If a user creates a query, this user becomes the owner of this query automatically. -For a detailed description, please refer to xref:{page-component-version}@tigergraph-server:user-access:fine-grained-query-privileges.adoc +For a detailed description, please refer to xref:{page-component-version}@tigergraph-server:user-access:fine-grained-query-privileges.adoc[] ==== == `INTERPRET QUERY` From 6bc4fd1adbc5a179369307044e0c0ce65a1e1fa0 Mon Sep 17 00:00:00 2001 From: Deep Khajanchi <45371064+deepkhajanchi@users.noreply.github.com> Date: Wed, 1 Oct 2025 10:32:18 -0700 Subject: [PATCH 175/194] Update modifying-a-graph-schema.adoc Added a correct link for redirection. --- modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc b/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc index 7b6ce40c..2cebf3d8 100644 --- a/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc +++ b/modules/ddl-and-loading/pages/modifying-a-graph-schema.adoc @@ -10,7 +10,7 @@ The schema change workflow is as follows: . [Recommended] If your schema change will drop any elements, prescreen your xref:#_side_effects_of_schema_change[queries and loading jobs for expected side effects]. -. Either stop all database activity or read carefully the section on xref:#_dynamic_schema_change__abilities_and_limitations[dynamic schema change] to see what concurrent activity is reasonable. +. Either stop all database activity or read carefully the section on xref:#_dynamic_schema_change_abilities_and_limitations[dynamic schema change] to see what concurrent activity is reasonable. . xref:#_run_global_schema_change_job[Run the schema change job], which will do the following: ** It attempts the schema change. From 3ef64484ce06bda4b1722cd6f0093089c3e31638 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 23 Oct 2025 01:01:53 +0530 Subject: [PATCH 176/194] DOC-3042: Update note on outdegree() function for clarity [4.2] Clarify the behavior of the outdegree() function regarding performance and transaction semantics. --- modules/querying/pages/func/vertex-methods.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/querying/pages/func/vertex-methods.adoc b/modules/querying/pages/func/vertex-methods.adoc index d34eb004..38364e04 100644 --- a/modules/querying/pages/func/vertex-methods.adoc +++ b/modules/querying/pages/func/vertex-methods.adoc @@ -317,10 +317,10 @@ In this case, outdegree() can be used in a xref:querying:query-operations.adoc#_ |=== [CAUTION] - ==== -*Note on outdegree()*: This function reads a metadata value stored with each vertex, to avoid traversing the graph and thus have a fast response. The snapshot transaction semantics means that outdegree() may sometimes read an old value if there are concurrent write transactions. To guarantee an accurate count, traverse the neighboring edges and count them with a SumAccum, or use a function like neighbors() and then use size() on the set. - +*Note on outdegree()*: The outdegree() function reads a stored metadata value for faster performance instead of traversing the graph. +Because of snapshot transaction semantics, `outdegree()` might show an outdated value if there are *write transactions running or have just finished*. This delay happens because the background rebuild task may not have processed the updates yet. +To get an exact count, traverse the edges manually using a `SumAccum`, or use the `neighbors()` function and apply `size()` on the result. ==== ==== Examples From 4b45297faa06c4ba11761ffadd18c5c80f02ec8b Mon Sep 17 00:00:00 2001 From: Ayesha Firdaus Date: Tue, 25 Nov 2025 01:33:26 +0530 Subject: [PATCH 177/194] DOC-3057-gsql-doc-error --- modules/appendix/pages/legacy-tg-versions.adoc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/appendix/pages/legacy-tg-versions.adoc b/modules/appendix/pages/legacy-tg-versions.adoc index fe5bc250..ba4dcf2e 100644 --- a/modules/appendix/pages/legacy-tg-versions.adoc +++ b/modules/appendix/pages/legacy-tg-versions.adoc @@ -4,10 +4,8 @@ This page lists all LTS (Long-Term Support) and previous versions of GSQL. == LTS Versions - * xref:3.10@gsql-ref:intro:index.adoc[3.10] -* xref:3.9@gsql-ref:intro:index.adoc[3.9] -* xref:3.6@gsql-ref:intro:intro.adoc[3.6] + == Other Versions From cdbdeda3222eeb083d219302610fc6e5ccd16c8e Mon Sep 17 00:00:00 2001 From: Ayesha Firdaus Date: Thu, 27 Nov 2025 23:52:17 +0530 Subject: [PATCH 178/194] 4.2 --- modules/ddl-and-loading/pages/running-a-loading-job.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/pages/running-a-loading-job.adoc b/modules/ddl-and-loading/pages/running-a-loading-job.adoc index dcee5cb5..9d798cb6 100644 --- a/modules/ddl-and-loading/pages/running-a-loading-job.adoc +++ b/modules/ddl-and-loading/pages/running-a-loading-job.adoc @@ -107,13 +107,13 @@ There are two possible cases where an input line may be rejected: The percentage number following `-max_percent_error` **is required** if the option is provided. Otherwise, a parsing error will appear. -The xref:{page-component-version}@tigergraph-server:api:gsql-endpoints.adoc#_run_a_loading_job[`maxPercentError`] key for running a loading job via the REST API has the same meaning as the `-max_percent_error` option in GSQL. +The xref:tigergraph-server:api:gsql-endpoints.adoc#_run_a_loading_job[`maxPercentError`] key for running a loading job via the REST API has the same meaning as the `-max_percent_error` option in GSQL. ==== `-max_error me` The `-max_error` option instructs the loader process to abort the loading job if the number of data lines in the input batch that are rejected exceeds `me`, where `me` is an integer between 0 and 2147483647. This option is analogous to the `-max_percent_error` option. -The xref:{page-component-version}@tigergraph-server:api:gsql-endpoints.adoc#_run_a_loading_job[`maxNumError`] key for running a loading job via the REST API has the same meaning as the `-max_error` option in GSQL. +The xref:tigergraph-server:api:gsql-endpoints.adoc#_run_a_loading_job[`maxNumError`] key for running a loading job via the REST API has the same meaning as the `-max_error` option in GSQL. === Parameters From 932948b71c60debed3cf06359d243458bb0cdd3f Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 9 Dec 2025 22:48:03 +0530 Subject: [PATCH 179/194] DOC-3087: Fix documentation to state that DATETIME is not supported as a primary ID type --- .../pages/defining-a-graph-schema.adoc | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc index fd0fce0f..e5e73526 100644 --- a/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc +++ b/modules/ddl-and-loading/pages/defining-a-graph-schema.adoc @@ -152,8 +152,9 @@ attribute_list := ["," attribute_name type [DEFAULT default_value] ]* ---- -`id_type` may be `STRING`, `INT`, `UINT`, or `DATETIME`. -Once a vertex is inserted, its ID value cannot be modified. Every vertex must have a unique ID value, of course. +`id_type` may be `STRING`, `INT`, or `UINT`. +`DATETIME` is *not supported* as a primary ID type. +Once a vertex is inserted, its ID value cannot be modified. Every vertex must have a unique ID value. [IMPORTANT] An empty string is not a valid value for a vertex primary ID. Beginning with v3.9, GSQL will reject attempts to insert or load a vertex whose ID is an empty string. @@ -168,8 +169,10 @@ The following sections go into detail for each of the primary id/key options, at === PRIMARY_ID This is GSQL's original syntax and semantics. -Its data type may be `STRING`, `INT`, `UINT`, or `DATETIME`. -Its syntax for the `id_and_attribute_list` term is as follows: +Its data type may be `STRING`, `INT`, or `UINT`. +`DATETIME` is *not supported* as a primary ID type. + +The syntax for the `id_and_attribute_list` term is as follows: PRIMARY_ID id_name id_type "," attribute_list @@ -180,7 +183,7 @@ Example: CREATE VERTEX Movie (PRIMARY_ID id UINT, name STRING, year UINT) ---- -By default, a vertex type which is defined with `PRIMARY_ID` cannot treat the ID as a regular attribute. For example, if the ID's field name is `serial_num`, neither of the following syntaxes are valid: +By default, a vertex type defined with `PRIMARY_ID` cannot treat the ID as a regular attribute. For example, if the ID's field name is `serial_num`, neither of the following syntaxes are valid: [source.wrap] ---- @@ -188,11 +191,12 @@ By default, a vertex type which is defined with `PRIMARY_ID` cannot treat the ID v.id // error: id is not a built-in function or field name ---- -If you want to retreive a vertex having a specific ID, you can use the `to_vertex(id, type)` function. +To retrieve a vertex by its ID, use the `to_vertex(id, type)` function. -See the next section to see how to override the default behavior and treat the primary ID as attribute. +See the next section for how to override the default behavior and treat the primary ID as an attribute. === `WITH primary_id_as_attribute` + If the `WITH ... primary_id_as_attribute="true"` option is declared, then the ID can be treated as a readable attribute. Internally, the ID is being stored a second time, once as an ID and once as a write-once attribute. This is exactly the same way that PRIMARY KEY allows the ID to be treated as a vertex. From 2459791b86a8fde823f2b5f01864c3ab0490e658 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 8 Jan 2026 19:11:48 +0530 Subject: [PATCH 180/194] DOC-3095: Rename gsql_is_not_empty to gsql_is_not_empty_string in nav.adoc [4.2] --- modules/ddl-and-loading/nav.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/nav.adoc b/modules/ddl-and-loading/nav.adoc index d39e88b7..fbf56634 100644 --- a/modules/ddl-and-loading/nav.adoc +++ b/modules/ddl-and-loading/nav.adoc @@ -41,7 +41,7 @@ **** xref:functions/token_where/index.adoc[] ***** xref:functions/token_where/concat.adoc[] ***** xref:functions/token_where/gsql_is_false.adoc[] -***** xref:functions/token_where/gsql_is_not_empty.adoc[] +***** xref:functions/token_where/gsql_is_not_empty_string.adoc[] ***** xref:functions/token_where/gsql_is_true.adoc[] ***** xref:functions/token_where/gsql_token_equal.adoc[] ***** xref:functions/token_where/gsql_token_ignore_case_equal.adoc[] From c9b3d4f7ded3fa75954e08e1e1a4fa1b1de512a9 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 8 Jan 2026 19:13:00 +0530 Subject: [PATCH 181/194] DOC-3095: Rename function to gsql_is_not_empty_string [4.2] --- ...gsql_is_not_empty.adoc => gsql_is_not_empty_string.adoc} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename modules/ddl-and-loading/pages/functions/token_where/{gsql_is_not_empty.adoc => gsql_is_not_empty_string.adoc} (83%) diff --git a/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty.adoc b/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc similarity index 83% rename from modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty.adoc rename to modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc index 6baf70bf..74e9ca53 100644 --- a/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty.adoc +++ b/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc @@ -1,4 +1,4 @@ -= gsql_is_not_empty() += gsql_is_not_empty_string() Returns true if a string is empty after removing all white space. Returns false otherwise. @@ -6,7 +6,7 @@ This function does not alter the input the token. == Syntax -`gsql_is_not_empty( token )` +`gsql_is_not_empty_string( token )` == Return value @@ -18,4 +18,4 @@ True if the string is empty after removing all white space from the string. ---- gsql_is_not_empty("h e ll o") - true gsql_is_not_empty(" ") -> false ----- \ No newline at end of file +---- From d9be4b5ba6bb80da3509fdc36e7bf19c9d23c6c8 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 8 Jan 2026 19:48:55 +0530 Subject: [PATCH 182/194] DOC-3095: Add page alias for gsql_is_not_empty_string --- .../pages/functions/token_where/gsql_is_not_empty_string.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc b/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc index 74e9ca53..4db2b4c6 100644 --- a/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc +++ b/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc @@ -1,3 +1,5 @@ +:page-aliases: gsql_is_not_empty.adoc + = gsql_is_not_empty_string() Returns true if a string is empty after removing all white space. From 2a314be1c2fd57db8f40eb2b6d764c0b07b39d4c Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 8 Jan 2026 20:24:24 +0530 Subject: [PATCH 183/194] Fix documentation for gsql_is_not_empty_string function --- .../token_where/gsql_is_not_empty_string.adoc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc b/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc index 4db2b4c6..87513e2a 100644 --- a/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc +++ b/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc @@ -2,22 +2,23 @@ = gsql_is_not_empty_string() -Returns true if a string is empty after removing all white space. +Returns true if a string is not empty after removing all white space. Returns false otherwise. -This function does not alter the input the token. +This function does not alter the input token. == Syntax -`gsql_is_not_empty_string( token )` +`gsql_is_not_empty_string(token)` == Return value -`BOOL`. -True if the string is empty after removing all white space from the string. +`BOOL` +Returns `true` if the string is not empty after removing all white space. +Returns `false` otherwise. == Example ---- -gsql_is_not_empty("h e ll o") - true -gsql_is_not_empty(" ") -> false +gsql_is_not_empty_string("h e ll o") -> true +gsql_is_not_empty_string(" ") -> false ---- From a70fc4ed61a1788c78722db820ba168ef9912a2c Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 8 Jan 2026 20:27:41 +0530 Subject: [PATCH 184/194] Fix formatting of return value in documentation --- .../pages/functions/token_where/gsql_is_not_empty_string.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc b/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc index 87513e2a..36205c18 100644 --- a/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc +++ b/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc @@ -12,7 +12,8 @@ This function does not alter the input token. == Return value -`BOOL` +`BOOL`. + Returns `true` if the string is not empty after removing all white space. Returns `false` otherwise. From 30a8b1960e81a71dd8c97ca9f844f9ab4cbb567a Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 8 Jan 2026 20:28:09 +0530 Subject: [PATCH 185/194] Fix formatting of return value in documentation --- .../pages/functions/token_where/gsql_is_not_empty_string.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc b/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc index 36205c18..b735ebc6 100644 --- a/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc +++ b/modules/ddl-and-loading/pages/functions/token_where/gsql_is_not_empty_string.adoc @@ -12,7 +12,7 @@ This function does not alter the input token. == Return value -`BOOL`. +`BOOL` Returns `true` if the string is not empty after removing all white space. Returns `false` otherwise. From 718beeeb884d7c050a1a04d9996532772ff32414 Mon Sep 17 00:00:00 2001 From: AyeshaFirdausTG Date: Sat, 17 Jan 2026 01:04:48 +0530 Subject: [PATCH 186/194] Update output-statements-and-file-objects.adoc --- .../querying/pages/output-statements-and-file-objects.adoc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/querying/pages/output-statements-and-file-objects.adoc b/modules/querying/pages/output-statements-and-file-objects.adoc index fab5ef86..6937c623 100644 --- a/modules/querying/pages/output-statements-and-file-objects.adoc +++ b/modules/querying/pages/output-statements-and-file-objects.adoc @@ -12,9 +12,8 @@ A `PRINT` statement can appear wherever query-body statements are permitted. A `PRINT` statement does not trigger immediate output. The full set of data from all PRINT statements is delivered at one time, when the query concludes. -A query can print a maximum of 2GB of data. - -If the output is to a `FILE` object, then the size limit does not apply. +If the query response is large, it is recommended to use `PRINT … TO_CSV`. +TigerGraph currently does not support pagination; returning a large query response in a single response via the GSQL terminal or RESTPP may lead to excessive memory usage and make the response difficult to parse efficiently. ==== .EBNF From dd7fd80550ae0eb69a7c00a261cdd2bfb3b7fb5a Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Fri, 27 Mar 2026 21:14:17 +0530 Subject: [PATCH 187/194] DOC-2901: Add example for loading data from nested JSON arrays in GSQL loading jobs --- .../partials/load-statement.adoc | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/modules/ddl-and-loading/partials/load-statement.adoc b/modules/ddl-and-loading/partials/load-statement.adoc index 210c232f..7632e84b 100644 --- a/modules/ddl-and-loading/partials/load-statement.adoc +++ b/modules/ddl-and-loading/partials/load-statement.adoc @@ -396,6 +396,46 @@ The JSON loader ignores the order and accesses the fields by the nested key name | 3 |=== +==== Loading data from a nested JSON array + +You can extract values from arrays of objects in JSON using the same nested key syntax. When a field contains an array, the loader can iterate through each element in the array. + +For example, consider the following JSON object: + +[source,json] +---- +{ + "id": 1234, + "nested_object": { + "id": 2345, + "neighbors": [ + { "id": 1, "name": "foo" }, + { "id": 2, "name": "bar" }, + { "id": 3, "name": "baz" } + ] + } +} +---- + +To load each neighbor as a vertex, you can reference the array elements using the nested path: + +[source,gsql] +---- +CREATE VERTEX Person (PRIMARY_ID id INT, name STRING) +CREATE GRAPH example_graph (*) + +CREATE LOADING JOB load_neighbors FOR GRAPH example_graph { + LOAD "data.jsonl" TO VERTEX Person + VALUES ($"nested_object":"neighbors":"id", + $"nested_object":"neighbors":"name") + USING JSON_FILE="true"; +} +---- + +In this example, the loader can process each object in the `neighbors` array and creates one vertex per element. + +Each neighbor object is treated as an individual record during loading. + === Loading Parquet data TigerGraph can load data from Parquet files using our loader. From fc631aaaa7c983a0072a94c128f4edc47a2f097f Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Tue, 7 Apr 2026 19:23:02 +0530 Subject: [PATCH 188/194] DOC-2901: Clarify loading JSON arrays with flatten_json_array() Updated the explanation of loading data from a nested JSON array to clarify the use of the flatten_json_array() function and its impact on loading vertices. --- .../ddl-and-loading/partials/load-statement.adoc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/ddl-and-loading/partials/load-statement.adoc b/modules/ddl-and-loading/partials/load-statement.adoc index 7632e84b..04cf9d80 100644 --- a/modules/ddl-and-loading/partials/load-statement.adoc +++ b/modules/ddl-and-loading/partials/load-statement.adoc @@ -398,7 +398,7 @@ The JSON loader ignores the order and accesses the fields by the nested key name ==== Loading data from a nested JSON array -You can extract values from arrays of objects in JSON using the same nested key syntax. When a field contains an array, the loader can iterate through each element in the array. +To extract values from arrays of JSON objects, use the `flatten_json_array()` function. For example, consider the following JSON object: @@ -417,7 +417,7 @@ For example, consider the following JSON object: } ---- -To load each neighbor as a vertex, you can reference the array elements using the nested path: +To load each object in the `neighbors` array as a vertex, first flatten the array into a temporary table, then load the data: [source,gsql] ---- @@ -425,16 +425,16 @@ CREATE VERTEX Person (PRIMARY_ID id INT, name STRING) CREATE GRAPH example_graph (*) CREATE LOADING JOB load_neighbors FOR GRAPH example_graph { - LOAD "data.jsonl" TO VERTEX Person - VALUES ($"nested_object":"neighbors":"id", - $"nested_object":"neighbors":"name") + LOAD "data.jsonl" TO TEMP_TABLE t(id, name) + VALUES (flatten_json_array($"nested_object":"neighbors", $"id", $"name")) USING JSON_FILE="true"; + + LOAD TEMP_TABLE t TO VERTEX Person + VALUES ($"id", $"name"); } ---- -In this example, the loader can process each object in the `neighbors` array and creates one vertex per element. - -Each neighbor object is treated as an individual record during loading. +In this example, the `flatten_json_array()` function extracts each object in the `neighbors` array and maps the fields to the temporary table. Each row in the temporary table is then loaded as a vertex. === Loading Parquet data From 3c05d6e4ca1b869f29ee01c0798531375a11bf47 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Mon, 20 Apr 2026 20:02:05 +0530 Subject: [PATCH 189/194] Update gsql_ts_to_epoch_signed.adoc --- .../pages/functions/token/gsql_ts_to_epoch_signed.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc index c23ca77d..3643ad63 100644 --- a/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc +++ b/modules/ddl-and-loading/pages/functions/token/gsql_ts_to_epoch_signed.adoc @@ -3,7 +3,7 @@ Converts a timestamp in canonical string format to Unix epoch time (seconds before or after `Jan 1, 1970`). It supports dates from `0001-01-01` to `9999-12-31`, returning negative epoch values for dates prior to 1970. Invalid or out-of-range dates (e.g., `Feb 30th`) return `defaultTimestamp`. -We also have another timestamp function, xref:ddl-and-loading:functions/token/gsql_ts_to_epoch.adoc[gsql_ts_to_epoch_seconds()], which converts a timestamp to Unix epoch time (seconds since Jan 1st, 1970) and returns an unsigned integer (`UINT`). For backward compatibility behavior (3.10.3 or earlier), consider xref:ddl-and-loading:functions/token/gsql_ts_to_epoch_legacy.adoc[gsql_ts_to_epoch_seconds_legacy()]. +We also have another timestamp function, xref:ddl-and-loading:functions/token/gsql_ts_to_epoch.adoc[gsql_ts_to_epoch_seconds()], which converts a timestamp to Unix epoch time (seconds since Jan 1st, 1970) and returns an unsigned integer (`UINT`). For backward compatibility behavior (4.2 or earlier), consider xref:ddl-and-loading:functions/token/gsql_ts_to_epoch_legacy.adoc[gsql_ts_to_epoch_seconds_legacy()]. == Syntax `gsql_ts_to_epoch_seconds_signed(timestamp, defaultTimestamp = 0)` From 0fdfca05838c3fdeeb47fad522c43a0d7df4b1ea Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Mon, 20 Apr 2026 20:22:54 +0530 Subject: [PATCH 190/194] Update index.adoc --- modules/ddl-and-loading/pages/functions/token/index.adoc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/pages/functions/token/index.adoc b/modules/ddl-and-loading/pages/functions/token/index.adoc index 49dfa9cd..9cfce055 100644 --- a/modules/ddl-and-loading/pages/functions/token/index.adoc +++ b/modules/ddl-and-loading/pages/functions/token/index.adoc @@ -84,11 +84,15 @@ returns that number cast as an integer. canonical string format to Unix epoch time, which is the int number of seconds since Jan. 1, 1970. -|xref:functions/token/gsql_ts_to_epoch_legacy.adoc[gsql_ts_to_epoch_seconds_legacy(timestamp, defaultTimestamp = 0)] +|xref:functions/token/gsql_ts_to_epoch_legacy.adoc[ +pass:[gsql_ts_to_epoch_seconds_legacy(_timestamp_,
_defaultTimestamp = 0_)] +] |`uint64_t` |Converts a timestamp to Unix epoch time. Returns a default value (`0` or user-specfied) for timestamps before 1970. -|xref:functions/token/gsql_ts_to_epoch_signed.adoc[gsql_ts_to_epoch_seconds_signed(timestamp, defaultTimestamp = 0)] +|xref:functions/token/gsql_ts_to_epoch_signed.adoc[ +pass:[gsql_ts_to_epoch_seconds_signed(_timestamp_,
_defaultTimestamp = 0_)] +] |`int64_t` |Converts a timestamp to Unix epoch time. Supports a wider range of dates, including pre-1970, and returns negative values for those dates. From d7281dbb0882e45d19f05e954da39eaf7851e437 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Mon, 20 Apr 2026 20:25:31 +0530 Subject: [PATCH 191/194] Update parameter names in timestamp functions --- modules/ddl-and-loading/pages/functions/token/index.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ddl-and-loading/pages/functions/token/index.adoc b/modules/ddl-and-loading/pages/functions/token/index.adoc index 9cfce055..61a61f02 100644 --- a/modules/ddl-and-loading/pages/functions/token/index.adoc +++ b/modules/ddl-and-loading/pages/functions/token/index.adoc @@ -85,13 +85,13 @@ canonical string format to Unix epoch time, which is the int number of seconds since Jan. 1, 1970. |xref:functions/token/gsql_ts_to_epoch_legacy.adoc[ -pass:[gsql_ts_to_epoch_seconds_legacy(_timestamp_,
_defaultTimestamp = 0_)] +pass:[gsql_ts_to_epoch_seconds_legacy(timestamp,
defaultTimestamp = 0)] ] |`uint64_t` |Converts a timestamp to Unix epoch time. Returns a default value (`0` or user-specfied) for timestamps before 1970. |xref:functions/token/gsql_ts_to_epoch_signed.adoc[ -pass:[gsql_ts_to_epoch_seconds_signed(_timestamp_,
_defaultTimestamp = 0_)] +pass:[gsql_ts_to_epoch_seconds_signed(timestamp,
defaultTimestamp = 0)] ] |`int64_t` |Converts a timestamp to Unix epoch time. Supports a wider range of dates, including pre-1970, and returns negative values for those dates. From 829bf0c6280ecb4233daf0da9e6f3e1fd6944d00 Mon Sep 17 00:00:00 2001 From: Tushar-TG-14 Date: Thu, 21 May 2026 20:12:09 +0530 Subject: [PATCH 192/194] Update write-output-to-cloud.adoc --- .../querying/pages/write-output-to-cloud.adoc | 105 ++++++++++++++---- 1 file changed, 85 insertions(+), 20 deletions(-) diff --git a/modules/querying/pages/write-output-to-cloud.adoc b/modules/querying/pages/write-output-to-cloud.adoc index 771278ea..9beba4da 100644 --- a/modules/querying/pages/write-output-to-cloud.adoc +++ b/modules/querying/pages/write-output-to-cloud.adoc @@ -1,40 +1,100 @@ = Writing Output to Cloud Storage -:description: How to set up the ability to write query output to cloud storage +:description: How to configure TigerGraph to write query results to AWS S3 or S3-compatible storage like Ceph, MinIO, or Wasabi :page-aliases: write-query-data-to-cloud.adoc -Before you can write query results to an S3 bucket, you need to set up the connection to the S3 service. This requires credentials like an AWS Access Key ID and Secret Access Key. Make sure the necessary read/write permissions are granted for the S3 bucket. -There are two methods to configure these credentials: +This guide shows you how to configure TigerGraph to write query results to AWS S3 or S3-compatible storage systems, such as Ceph, MinIO, or Wasabi. -== Using gadmin config +To write to an S3 bucket, you need: -This method configures the S3 connection for the entire TigerGraph cluster. Once you set the credentials, they apply to all users in the cluster. Here's how to do it: +* Access Key ID +* Secret Access Key +* Endpoint URL for S3-compatible systems -[source,GSQL] +*Configure the S3 Connection* + +You can configure S3 access in three ways: + +* Cluster-wide using gadmin +* Per-session using GSQL parameters +* Via RESTPP headers + +Choose the method based on whether you want settings to apply to all users or just your session. + +== Use gadmin Config (Cluster-Wide) + +Set S3 credentials for the entire TigerGraph cluster. + +. Open your terminal. +. Run these commands: ++ +[source,bash] ---- -gadmin config set GPE.QueryOutputS3AWSAccessKeyID -gadmin config set GPE.QueryOutputS3AWSSecretAccessKey +gadmin config set GPE.QueryOutputS3AWSAccessKeyID +gadmin config set GPE.QueryOutputS3AWSSecretAccessKey gadmin config apply -y gadmin restart gpe -y ---- -* Replace and with your actual AWS credentials +. Replace `` and `` with your S3 credentials. + +[NOTE] +==== +gadmin supports only Access Key ID and Secret Access Key. -== Using GSQL Session Parameters +For S3-compatible systems like Ceph, set the endpoint URL using GSQL session parameters or RESTPP headers, as gadmin doesn’t support it. +==== -This method configures the credentials only for the current session and user. +== Use GSQL Session Parameters -[source,GSQL] +Set credentials and the endpoint URL for your current GSQL session. This method suits users working with their own buckets or testing different S3-compatible systems. + +. Open the GSQL shell. +. Run these commands: ++ +[source,gsql] ---- -SET s3_aws_access_key_id = -SET s3_aws_secret_access_key = +SET s3_aws_access_key_id = "" +SET s3_aws_secret_access_key = "" +SET s3_endpoint = "http://" ---- -* These parameters are set per session, so each user will need to provide their own credentials if they’re working with S3. -* All queries run during this session will use these credentials to write to S3. - -[NOTE]:If both methods (using gadmin config and GSQL session parameters) are applied simultaneously, the GSQL session parameters take precedence. +. Replace the placeholders: +* ``: Your S3 access key. +* ``: Your S3 secret key. +* ``: Your S3-compatible server URL, including `http://` or `https://` (for example, `http://192.168.99.1:8080` for Ceph). + +[NOTE] +==== +* These settings apply only to your session. +* Session parameters override gadmin settings. +* For S3-compatible systems, you must set `s3_endpoint` [v4.2.1]. +==== + +== Use RESTPP Headers (API Calls) + +Set S3 parameters in HTTP headers for queries run via RESTPP, such as with curl. This method does not require setting parameters in a GSQL session and is ideal for API integrations or one-off queries. + +. Open your terminal. +. Run a curl command: ++ +[source,bash] +---- +curl -X GET \ + -H "GSQL-S3AWSAccessKeyId: " \ + -H "GSQL-S3AWSSecretAccessKey: " \ + -H "GSQL-S3Endpoint: http://" \ + 'http://:14240/restpp/query//?param=' +---- +. Replace the placeholders: +* ``: Your S3 access key. +* ``: Your S3 secret key. +* ``: Your S3-compatible server URL, including `http://` or `https://`. +* ``: Your TigerGraph server address (for example, `10.244.106.233`). +* ``: Your graph name. +* ``: Your query name. +* ``: The S3 path. == Unique File Paths to Avoid Conflicts -Since S3 is a shared storage system, multiple nodes in a cluster can upload to the same S3 bucket.To avoid naming conflicts (multiple nodes trying to write to the same file),the S3 path will include a prefix based on the instance name : +Since S3 is a shared storage system, multiple nodes in a cluster can upload to the same S3 bucket. To avoid naming conflicts (multiple nodes trying to write to the same file), the S3 path will include a prefix based on the instance name: * Instance Name: A prefix like GPE_{PartitionId}_{ReplicaId} ensures uniqueness by identifying the instance that generated the output. * Role: For distributed queries, additional suffixes will be used to differentiate between the manager and worker roles on the same GPE: @@ -46,7 +106,7 @@ So, your S3 file paths might look like: * GPE_{PartitionId}_{ReplicaId}.coordinator * GPE_{PartitionId}_{ReplicaId}.worker -== Example: +== Example Consider a scenario where a 3 x 2 cluster is executing a distributed query, and the results are being saved to a file called queryResults. @@ -58,3 +118,8 @@ GPE_0_0.worker.queryResults.csv – This file represents the output from the wor GPE_0_1.coordinator.queryResults.csv – This file represents the output from the coordinator node in partition 0, replica 1. These unique file names help ensure that no conflicts occur when multiple nodes are writing query outputs at the same time. + +== Troubleshoot Common Issues + +* *“Cannot determine target” error*: You didn’t set `s3_endpoint` for an S3-compatible system. Add it in session parameters or RESTPP headers. +* *Connection fails on Ceph, MinIO, or Wasabi*: Verify the endpoint URL includes `http://` or `https://`. Check your bucket permissions and credentials. From 285fa1d46e8b5504ec62a54530c7c7c4f9172f96 Mon Sep 17 00:00:00 2001 From: priyankagunaki-cloud Date: Fri, 29 May 2026 17:15:18 +0530 Subject: [PATCH 193/194] Update creating-a-loading-job.adoc --- modules/ddl-and-loading/pages/creating-a-loading-job.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ddl-and-loading/pages/creating-a-loading-job.adoc b/modules/ddl-and-loading/pages/creating-a-loading-job.adoc index df94cfcd..db549ef0 100644 --- a/modules/ddl-and-loading/pages/creating-a-loading-job.adoc +++ b/modules/ddl-and-loading/pages/creating-a-loading-job.adoc @@ -338,7 +338,7 @@ The loader accepts any of the following string formats: * `%Y-%m-%dT%H:%M:%S.000z` (e.g., 2011-02-03T01:02:03.123z, 123 will be ignored) * `%Y-%m-%d` (only date, no time, e.g., 2011-02-03) * `%Y/%m/%d` (only date, no time, e.g., 2011/02/03) -* Any integer value (Unix Epoch time, where Jan 1, 1970 at 00:00:00 is integer 0) +* Any string value (Unix Epoch time, where Jan 1, 1970 at 00:00:00 is 0) Format notation: From 8f6d75d17a1aa2de5b37b6c545468856e7eec05e Mon Sep 17 00:00:00 2001 From: priyankagunaki-cloud Date: Tue, 2 Jun 2026 12:01:40 +0530 Subject: [PATCH 194/194] Update creating-a-loading-job.adoc --- modules/ddl-and-loading/pages/creating-a-loading-job.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/ddl-and-loading/pages/creating-a-loading-job.adoc b/modules/ddl-and-loading/pages/creating-a-loading-job.adoc index db549ef0..df3cce38 100644 --- a/modules/ddl-and-loading/pages/creating-a-loading-job.adoc +++ b/modules/ddl-and-loading/pages/creating-a-loading-job.adoc @@ -330,7 +330,7 @@ In both cases, the leading sign ("+" or "-") is optional. The exponent, using "e === Loading a `DATETIME` attribute -When loading data into a `DATETIME` attribute, the GSQL loader automatically reads a string representation of DateTime information and convert it to internal DateTime representation. +When loading data into a `DATETIME` attribute, the GSQL loader automatically reads a string representation of DateTime information and converts it to an internal DateTime representation. The loader accepts any of the following string formats: * `%Y-%m-%d %H:%M:%S` (e.g., 2011-02-03 01:02:03) @@ -338,13 +338,13 @@ The loader accepts any of the following string formats: * `%Y-%m-%dT%H:%M:%S.000z` (e.g., 2011-02-03T01:02:03.123z, 123 will be ignored) * `%Y-%m-%d` (only date, no time, e.g., 2011-02-03) * `%Y/%m/%d` (only date, no time, e.g., 2011/02/03) -* Any string value (Unix Epoch time, where Jan 1, 1970 at 00:00:00 is 0) +* A Unix Epoch timestamp represented as a string (e.g., `"0"` represents Jan 1, 1970 at 00:00:00 UTC) Format notation: %Y is a 4-digit year. A 2-digit year is not a valid value. -%m and %s are a month (1 to 12) and a day (1 to 31), respectively. Leading zeroes are optional. +%m and %d are a month (1 to 12) and a day (1 to 31), respectively. Leading zeroes are optional. %H, %M, %S are hours (0 to 23), minutes (0 to 59) and seconds (0 to 59), respectively. Leading zeroes are optional.