[ 
https://issues.apache.org/jira/browse/CALCITE-4087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17144187#comment-17144187
 ] 

Julian Hyde commented on CALCITE-4087:
--------------------------------------

{quote}I think a good inclusion to the documentation of _Hoist_ would be to 
draw parallels to prepared statements.
{quote}
I agree.
{quote}Furthermore some pre-canned Functions might make good inclusions.
{quote}
I agree about the need for pre-canned functions. The easiest way to provide 
these is as public static methods. People can then use {{::}} syntax, e.g. 
{{Hoist::toOrdinal}}.

And yes, we need an easy way to retain the original text. I'll add an 
example/test.

> Hoist, a utility to replace literals in a SQL string with placeholders
> ----------------------------------------------------------------------
>
>                 Key: CALCITE-4087
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4087
>             Project: Calcite
>          Issue Type: New Feature
>          Components: babel
>    Affects Versions: 1.23.0
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>            Priority: Major
>
> Add "Hoist", a utility to replace literals in a SQL string with placeholders.
> By default it uses Calcite's parser, but you can configure to use different 
> quoting, casing, and also to use a different parser such as Babel for other 
> dialects of SQL.
> It generates a data structure, {{Hoisted}}, that contains a map of where the 
> literals occur within the SQL string. The Hoisted.substitute method generates 
> an alternative SQL string, replacing the literals with a custom string.
> It does not call {{SqlNode.unparse}}, and therefore does not lose any of the 
> original formatting.
> For more examples, see tests added to {{SqlParserTest}} and 
> {{BabelParserTest}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to