Add SET n:Label and REMOVE n:Label #2281
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
NOTE: This PR was built with AI tools and verified by a human.
Implements Cypher SET and REMOVE operations for vertex labels in the unified vertex table architecture. This allows dynamic label management on vertices.
SET n:Label
Only works on vertices with no label.
Auto-creates the label if it doesn't exist.
Errors with hint if vertex already has a label: "Multiple labels are not supported. Use REMOVE to clear the label first."
REMOVE n:Label
Removes a vertex's specified label.
Properties are preserved
No-op if vertex already has no label
Added regression tests.
modified: regress/expected/cypher_remove.out
modified: regress/expected/unified_vertex_table.out
modified: regress/sql/unified_vertex_table.sql
modified: src/backend/executor/cypher_set.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/parser/cypher_gram.y
modified: src/include/nodes/cypher_nodes.h