Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- **GFQL policy / Cypher compiler hooks (#1454)**: Added experimental exact-key `precompile` and `postcompile` policy hooks for local Cypher string-query compilation. `postcompile` reports success or failure using the existing policy `success`, `error`, and `error_type` fields plus a stable `CompileSummary` with scalar compiler metadata.

### Changed
- **GFQL temporal text helper split (#1498)**: Split temporal constructor parsing, value parsing, duration parsing/folding, truncation folding, and AST rewrite helpers into `graphistry.compute.gfql.temporal` modules while keeping `graphistry.compute.gfql.temporal_text` as a small compatibility shim. No temporal semantics changed.
- **GFQL / Cypher path-alias carry multiple MATCH native planning (#1495)**: shortestPath queries that carry an unused named path alias into a follow-on `MATCH` now compile with a logical plan and dispatch through the physical same-path route instead of the final `multiple_match_stages` residual chain fallback. Path-value references such as `length(path)` after a follow-on `MATCH` now fail fast rather than relying on unsupported residual-chain path materialization.
- **GFQL / Cypher modularization audit cleanup (#1058)**: Removed an unused private aggregate-alias helper from Cypher lowering after auditing the large GFQL engine files for narrow safe deletion opportunities.
- **GFQL / Cypher shortestPath endpoint-binding multiple MATCH native planning (#1489)**: shortestPath queries whose earlier `MATCH` clauses only bind endpoint nodes now receive a logical plan and enter native physical dispatch instead of the residual `multiple_match_stages` chain fallback. Path-alias-carrying follow-on `MATCH` shapes remain explicitly classified under `multiple_match_stages`.
Expand Down
4 changes: 2 additions & 2 deletions graphistry/compute/gfql/cypher/lowering.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,9 @@
reject_shortest_path_alias_references_after_follow_on_match,
)
from graphistry.compute.gfql.string_literals import render_cypher_string_literal
from graphistry.compute.gfql.temporal_text import (
from graphistry.compute.gfql.temporal.durations import resolve_duration_text_property
from graphistry.compute.gfql.temporal.folding import (
fold_temporal_constructor_ast,
resolve_duration_text_property,
rewrite_temporal_constructors_in_expr,
)
from graphistry.compute.gfql.same_path_types import NODE_IDENTITY_COLUMN, WhereComparison, col, compare, where_to_row_expr
Expand Down
2 changes: 1 addition & 1 deletion graphistry/compute/gfql/cypher/result_postprocess.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from graphistry.compute.typing import DataFrameT, SeriesT

from .lowering import ResultProjectionColumn, ResultProjectionPlan
from graphistry.compute.gfql.temporal_text import (
from graphistry.compute.gfql.temporal.constructors import (
DATETIME_CALL_TEXT_RE,
DATE_CALL_TEXT_RE,
LOCALDATETIME_CALL_TEXT_RE,
Expand Down
2 changes: 1 addition & 1 deletion graphistry/compute/gfql/row/entity_props.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from graphistry.compute.dataframe_utils import df_cons as template_df_cons
from graphistry.compute.gfql.series_str_compat import series_str_contains, series_str_extract, series_str_match
from graphistry.compute.gfql.temporal_text import (
from graphistry.compute.gfql.temporal.constructors import (
DATETIME_CALL_TEXT_RE,
DATE_CALL_TEXT_RE,
LOCALDATETIME_CALL_TEXT_RE,
Expand Down
2 changes: 1 addition & 1 deletion graphistry/compute/gfql/row/ordering.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
series_str_fullmatch,
series_str_match,
)
from graphistry.compute.gfql.temporal_text import (
from graphistry.compute.gfql.temporal.constructors import (
DATETIME_CALL_TEXT_RE,
DATE_CALL_TEXT_RE,
LOCALDATETIME_CALL_TEXT_RE,
Expand Down
6 changes: 4 additions & 2 deletions graphistry/compute/gfql/row/pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,13 +69,15 @@
parse_stringified_list_series,
validate_order_series_vector_safe,
)
from graphistry.compute.gfql.temporal_text import parse_temporal_sort_duration_components
from graphistry.compute.gfql.temporal_text import (
from graphistry.compute.gfql.temporal.constructors import (
DATETIME_CALL_TEXT_RE,
DATE_CALL_TEXT_RE,
LOCALDATETIME_CALL_TEXT_RE,
LOCALTIME_CALL_TEXT_RE,
TIME_CALL_TEXT_RE,
)
from graphistry.compute.gfql.temporal.durations import (
parse_temporal_sort_duration_components,
resolve_duration_text_property,
)

Expand Down
1 change: 1 addition & 0 deletions graphistry/compute/gfql/temporal/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Temporal text parsing and folding helpers for GFQL."""
Loading
Loading