jrgemignani opened a new pull request, #2278:
URL: https://github.com/apache/age/pull/2278
An AI coding tool was used to make these changes. A human has reviewed and
double checked the work and regression tests along the way.
Note: This is building the ground work for enabling multiple labels.
Some of the columns introduced will likely change. The label oids
are likely to change as we need to eliminate the dependence on the
specific label tables. Right now those tables are stubs for maintaining
the same ids - this is so the regression tests won't have too many
differences.
Replaced per-label vertex tables with a single _ag_label_vertex table
containing columns: id (graphid), properties (agtype), labels (oid).
Key changes:
* Fixed vertex operations (CREATE, MATCH, SET, DELETE, VLE) to use unified
_ag_label_vertex table instead of label-specific tables
* Fixed vertex label display: Added _label_name_from_table_oid() function to
extract label names from the labels column OID rather than parsing graphid
values (which is table-per-label specific)
* Fixed graphid generation: Updated transform_cypher_node() in
cypher_clause.c to use label_relation instead of default_vertex_relation when
building id expressions, ensuring labeled vertices receive label-specific
sequence values in their id.
* Fixed startNode/endNode to use F_INT8EQ for graphid comparison
* Updated create_entity_result_rel_info() for DELETE operations
Fixed regression tests.
Differences with regression tests are due to -
* Non-ordered output being reordered due to the new unified table.
* Different query plans with explain due to the new unified table.
* Displaying specific vertex label tables instead of the unified table.
modified: regress/expected/age_global_graph.out
modified: regress/expected/age_load.out
modified: regress/expected/cypher_create.out
modified: regress/expected/cypher_delete.out
modified: regress/expected/cypher_match.out
modified: regress/expected/cypher_merge.out
modified: regress/expected/cypher_remove.out
modified: regress/expected/cypher_set.out
modified: regress/expected/cypher_subquery.out
modified: regress/expected/cypher_vle.out
modified: regress/expected/expr.out
modified: regress/expected/graph_generation.out
modified: regress/expected/index.out
modified: regress/expected/list_comprehension.out
modified: regress/sql/age_global_graph.sql
modified: regress/sql/age_load.sql
modified: regress/sql/cypher_create.sql
modified: regress/sql/cypher_set.sql
modified: regress/sql/graph_generation.sql
modified: regress/sql/index.sql
modified: sql/age_main.sql
modified: src/backend/catalog/ag_label.c
modified: src/backend/commands/label_commands.c
modified: src/backend/executor/cypher_create.c
modified: src/backend/executor/cypher_merge.c
modified: src/backend/executor/cypher_set.c
modified: src/backend/executor/cypher_utils.c
modified: src/backend/nodes/cypher_copyfuncs.c
modified: src/backend/nodes/cypher_outfuncs.c
modified: src/backend/nodes/cypher_readfuncs.c
modified: src/backend/parser/cypher_clause.c
modified: src/backend/utils/adt/age_global_graph.c
modified: src/backend/utils/adt/age_vle.c
modified: src/backend/utils/adt/agtype.c
modified: src/backend/utils/load/ag_load_labels.c
modified: src/backend/utils/load/age_load.c
modified: src/include/catalog/ag_label.h
modified: src/include/commands/label_commands.h
modified: src/include/nodes/cypher_nodes.h
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]