You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Implement the rewrite from the Map literal to Map function #11434
Is your feature request related to a problem or challenge?
Based on the discussion in #11268 (comment), we will support the MAP literal to create a map value. Referring to the DuckDB syntax, we can use syntax like:
SELECT MAP {'key1': 10, 'key2': 20, 'key3': 30};
Describe the solution you'd like
After #11361, we now have two functions: map and make_map. We can use UserDefinedSQLPlanner to implement the proposed syntax and rewrite it to the map function. As @jayzhan211 mentioned in #11361 (comment), we can also use ExprPlanner to handle the make_map function. Since make_map is less efficient than the map function, we should retain only the faster map scalar function implementation. For more details, see the previous discussions and benchmark results in #11361.
I found the MAP literal isn't supported by the sqlparser-rs. I think we need to implement this syntax on the sqlparser-rs side first. However, I think I can have a PR for moving make_map to ExprPlanner first.
What do you think? @jayzhan211
Activity
goldmedal commentedon Jul 12, 2024
take
goldmedal commentedon Jul 13, 2024
I found the
MAPliteral isn't supported by thesqlparser-rs. I think we need to implement this syntax on thesqlparser-rsside first. However, I think I can have a PR for movingmake_mapto ExprPlanner first.What do you think? @jayzhan211
goldmedal commentedon Jul 19, 2024
The part of moving
MAKE_MAPhas been solved by #11452. I'll start to implement the MAP literal after apache/datafusion-sqlparser-rs#1344