Now is a good time to open a Jira case. If this needs to be optional functionality (e.g. because of conflicts with the BigQuery JSON support), you should describe the configuration parameter(s) that would enable/disable it.
> On Mar 20, 2026, at 5:48 AM, Tamas M. <[email protected]> wrote: > > Hi devs, > > I’m looking into adding Snowflake-style VARIANT access syntax (e.g. > variant_col:field1.field2) to Calcite and wanted to check whether there has > been any prior work or discussion around this. > > Several systems (e.g. Snowflake [3][4], Databricks [1][2]) support this > kind of access, and with recent VARIANT support in Parquet it seems > increasingly relevant for interoperability. > > From what I can tell: > - VARIANT type support (CALCITE-4918) is available > - JSON -> VARIANT parsing (CALCITE-4919) is still open; while focused on > parsing, it references a broader design that includes ':'-based path access > [5] > - The ':' operator itself does not appear to be implemented > > I did a quick exploration of the parser, and it looks like introducing ':' > may collide with existing syntax (e.g. JSON_OBJECT). > > I’m considering contributing this, likely as parser-level sugar, but wanted > to check: > - Has anyone already explored or prototyped the ':' operator? > - Are there known concerns or prior discussions around parser ambiguities? > > If there is no ongoing work, I’m happy to take a first pass and open a JIRA > / draft PR. Also happy to collaborate if others are interested. > > Thanks, > Tamas > > References: > [1] > https://docs.databricks.com/en/sql/language-manual/functions/coloncolon.html > [2] https://docs.databricks.com/en/sql/language-manual/functions/colon.html > [3] https://docs.snowflake.com/en/sql-reference/functions/cast > [4] https://docs.snowflake.com/en/user-guide/querying-semistructured > [5] https://issues.apache.org/jira/browse/CALCITE-4919 > [6] https://issues.apache.org/jira/browse/CALCITE-6255
