Skip to content
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

Cascades throws Verify exception if a KeyExpression's key is not primitive #2935

Open
hatyo opened this issue Oct 4, 2024 · 0 comments
Open
Labels
planner Related to the query planner

Comments

@hatyo
Copy link
Contributor

hatyo commented Oct 4, 2024

It is possible to have a KeyExpression whose key is referencing a complex type. For example:

[Field { 'A' None}/Field { 'B' None}, Field { 'A' None}/Field { 'C' None}]

It is possible that C is a non-primitive (and non-enum) type. This is valid as long as there is a special code path that understands how to ser/de this field via a special Tuple encoding.

However, this is not something that Cascades expects, and throws an exception when it encounters such key when attempting to create a create a plan from the corresponding MatchCandidate:

Instead, Cascades should have an extra logic to handle this, and more importantly, ignore any KeyExpression it can not handle instead of throwing an exception safeguarding against potential evolution in KeyExpression semantics that it can not immediately deal with.

@hatyo hatyo added the planner Related to the query planner label Oct 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
planner Related to the query planner
Projects
None yet
Development

No branches or pull requests

1 participant