For the younger folks… it came from a crazy time in the mid 90s when “object-oriented database” was the holy grail, and someone had the bright idea of making SQL syntax look like C++. Stonebraker and co. added object-oriented features to Ingres, called it Illustra, sold Illustra to Informix, and Informix choked digesting too large a meal, and IBM picked up the pieces. So, I consider it a vestige, and the only advantage of supporting it is for users who have existing SQL.
I think we should do it, as long as it is enabled using a conformance setting (disabled by default), and if we can do it without making other parts of the code more complex to maintain. I’d also like to see an analysis of the scope of the task before we start. Is it just cosmetic sugar for CAST, or are there semantic differences? For example are there some types that can only be converted to using :: or CAST? Does :: fit neatly into the existing parser? Jacques, Is double-colon supported on all variants of DB2? From what I can tell, it an alternative to CAST only on some variants of DB2 (presumably those derived from Informix/Illustra). Jordan, Would you consider contributing back? It will make your life easier as we maintain code, and you know it’s the right thing to do. :) Julian > On Sep 27, 2016, at 11:46 AM, [email protected] wrote: > > We added the double-colon syntax to our own fork of the Calcite grammar to > placate our analysts and their addiction to Redshift. TBH it was not easy, > and our implementation still doesn't support things like casting from a > scalar subquery. Essentially, you can cast identifiers and function results. > But I'm sure the folks around here could figure it out. > >> On Sep 27, 2016, at 11:11 AM, Jacques Nadeau <[email protected]> wrote: >> >> Hey Everybody, >> >> I'd like to propose adding the double colon cast syntax to Calcite (e.g. >> '1'::INTEGER instead of CAST('1' as INTEGER). It's something that Postgres, >> DB2, Vertica (PG deriv), RedShift (PG deriv) and a number of other systems >> support. Has anybody explored this or previously opened a jira (I searched >> and didn't find any)? Any thoughts on lexical ambiguities? >> >> thanks, >> Jacques
