Description
Describe the bug
with SQLParser 0.53, this works:
SELECT *
FROM
(meta_asset_featurization AS asset_meta
INNER JOIN meta_asset_summary_metrics AS asset_metrics ON (
asset_meta.struct_field['substruct']['substruct'] = asset_metrics.struct_field['substruct']['substruct']
))
with SQLParser 0.54, this no longer works, the newly added sql_compound_field_access_to_expr
interprets the root
(in this case for example asset_meta
) as a column name instead of a table.
The solution (workaround) for SQLParser 0.54 is to do
SELECT *
FROM
(meta_asset_featurization AS asset_meta
INNER JOIN meta_asset_summary_metrics AS asset_metrics ON (
asset_meta.struct_field.substruct.substruct = asset_metrics.struct_field.substruct.substruct
))
Is this intended ? I have tried to see the history, but unsure which behavior is correct. Since we do interpret the []
index access in the case of NOT having to specify the table correctly (so, if I have a single table and I specify directly the column col['substruct']['substruct']
it works), why wouldn't this case work ?
To Reproduce
No response
Expected behavior
Structure field access with either dot acess .subfield
or subscript access['subfield']
should work in the same way and yield the same result in all conditions
Additional context
No response