I've only tried that for built-in functions and PostgreSQL fails to parse it. I'll try custom functions when I have access to the DB again.
Thanks, Gelbana On Thu, Aug 3, 2017 at 8:51 PM, Julian Hyde <[email protected]> wrote: > Quoting functions seems to be the safest thing to do, so that the function > name can contain meta-characters and so that the case of the function name > matches the actual name of the function. Most databases can handle quoted > functions, even if they are built-ins. > > Apparently PostgreSQL cannot. Is this for all functions, or just for > built-ins? > > If this is a problem, log a bug against the jdbc-adapter. > > Julian > > > On Aug 3, 2017, at 6:08 AM, Muhammad Gelbana <[email protected]> > wrote: > > > > While working on a Drill plugin, Calcite unparsed a JdbcRel node and > > produced the following PostgreSQL query > > > > SELECT "TEMP( Test)( 535799381)( 0)" > > FROM (SELECT *"STRPOS"*("str1", 'BI') = 1 AS "TEMP( Test)( 535799381)( > 0)" > > FROM "TestV1"."Calcs") AS "t" > > GROUP BY "TEMP( Test)( 535799381)( 0)" > > > > The query fails due to a parsing exception, the reason is that the > *STRPOS* > > function name is quoted using double quotes as shown in bold. I tried the > > method manually without quoting the function name and it executed > > successfully. > > > > I debugged through Calcite and found that the this method > > <https://github.com/apache/calcite/blob/master/core/src/ > main/java/org/apache/calcite/sql/SqlUtil.java#L262> > > unparses > > the function name as a plain identifier which leads to the quoting of the > > function name > > <https://github.com/apache/calcite/blob/master/core/src/ > main/java/org/apache/calcite/sql/SqlIdentifier.java?deDup474625=1#L287> > > if the dialect supports it. > > > > Drill uses Calcite v1.4 but as I compared it with the master branch, I > > found them identical. > > > > So is this a bug ? Has it possible been affecting Calcite through all > these > > releases or did I miss anything ? > > > > Thanks, > > Gelbana > >
