Skip to content

Simplifies logical model of the path expression #1306

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Dec 15, 2023
Merged

Conversation

johnedquinn
Copy link
Member

Relevant Issues

Description

  • As part of the effort to model our logical plan as closely to the underlying data flow as possible, this PR models path expressions in a more representative manner. Specifically, a Path, in this PR, is a single step on some root. Therefore, we can directly compile logical plan nodes into physical plan nodes that represent the underlying operation (i.e. index lookup, sensitive lookup, insensitive lookup).
  • To do this, upon transforming the AST to a Logical Plan (Unresolved), we take the ExprPath and attempt to grab the first steps to make a qualified identifier (Var Unresolved). This subtle change gives us the ability to attempt to resolve the qualified identifier in the planner without needing to maintain the syntactic metadata in the logical unresolved plan. See Modifies how we model paths in the plan #1271
  • While resolving a qualified identifier, it may actually be that a subset of the identifier is a Global/Local. In that case, we use the remaining steps to construct a path. And, once we have a path, it's quite easy to type, since we model each path step as its own expression operator.
  • Tests are unchanged (except when necessary for API changes).

Other Information

  • Updated Unreleased Section in CHANGELOG: NO
  • Any backward-incompatible changes? NO -- 0.14.0 hasn't been released yet
  • Any new external dependencies? NO
  • Do your changes comply with the Contributing Guidelines
    and Code Style Guidelines? YES

License Information

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Copy link

github-actions bot commented Dec 14, 2023

Conformance comparison report

Base (c7c7972) 50f5fed +/-
% Passing 92.54% 92.54% 0.00%
✅ Passing 5384 5384 0
❌ Failing 434 434 0
🔶 Ignored 0 0 0
Total Tests 5818 5818 0

Number passing in both: 5384

Number failing in both: 434

Number passing in Base (c7c7972) but now fail: 0

Number failing in Base (c7c7972) but now pass: 0

@codecov-commenter
Copy link

codecov-commenter commented Dec 14, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (c489057) 72.16% compared to head (fee1474) 72.16%.
Report is 9 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##               main    #1306   +/-   ##
=========================================
  Coverage     72.16%   72.16%           
  Complexity     2097     2097           
=========================================
  Files           221      221           
  Lines         15974    15974           
  Branches       2892     2892           
=========================================
  Hits          11528    11528           
  Misses         3640     3640           
  Partials        806      806           
Flag Coverage Δ
CLI 11.86% <ø> (ø)
EXAMPLES 80.28% <ø> (ø)
LANG 80.80% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

rchowell
rchowell previously approved these changes Dec 15, 2023
@rchowell rchowell merged commit 7dcdaac into main Dec 15, 2023
@rchowell rchowell deleted the logical-path-model branch December 15, 2023 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants