Your replies are very much appreciated. I'll see what I can do.

@Julian, I believe '=' acts as a boolean operator here because the query
returns boolean results for that part of the selection.

Thanks,
Gelbana


On Mon, Feb 11, 2019 at 8:38 PM Julian Hyde <[email protected]> wrote:

> There are a few Postgres-isms in that SQL:
> The “::” (as a shorthand for cast) in 'typinput='array_in'::regproc
> The ‘=‘ (as a shorthand for alias) in 'typinput='array_in'::regproc’
> Use of a table function without the ’TABLE’ keyword, in 'from
> generate_series(1, array_upper(current_schemas(false), 1))’
>
> Babel does not handle any of those right now, but it could. Contributions
> welcome.
>
> Julian
>
>
> > On Feb 11, 2019, at 6:14 AM, Stamatis Zampetakis <[email protected]>
> wrote:
> >
> > Hi Gelbana,
> >
> > In order to use the Babel parser you need to also set an appropriate
> > factory to your parser configuration since
> > setting only the conformance is not enough.
> >
> > Try adding the following:
> > ...
> > configBuilder().setParserFactory(SqlBabelParserImpl.FACTORY);
> >
> > Having said that I am not sure if Babel can handle the syntax you
> provided.
> >
> > Best,
> > Stamatis
> >
> >
> >
> > Στις Σάβ, 9 Φεβ 2019 στις 10:46 μ.μ., ο/η Muhammad Gelbana <
> > [email protected]> έγραψε:
> >
> >> I'm trying to parse a PostgreSQL metadata query but a parsing exception
> is
> >> thrown.
> >>
> >> Here is my code:
> >>
> >> Config parserConfig =
> >> configBuilder().setConformance(SqlConformanceEnum.BABEL).build();
> >> FrameworkConfig frameworkConfig =
> >> Frameworks.newConfigBuilder().parserConfig(parserConfig).build();
> >> Planner planner = Frameworks.getPlanner(frameworkConfig);
> >> planner.parse("SELECT typinput='array_in'::regproc, typtype FROM
> >> pg_catalog.pg_type LEFT JOIN (select ns.oid as nspoid, ns.nspname, r.r
> from
> >> pg_namespace as ns join ( select s.r, (current_schemas(false))[s.r] as
> >> nspname from generate_series(1, array_upper(current_schemas(false), 1))
> as
> >> s(r) ) as r using ( nspname )) as sp ON sp.nspoid = typnamespace WHERE
> >> typname = $1 ORDER BY sp.r, pg_type.oid DESC LIMIT 1");
> >>
> >> *The exception title is* "Exception in thread "main"
> >> org.apache.calcite.sql.parser.SqlParseException: Encountered ":" at
> line 1,
> >> column 27."
> >>
> >> Am I doing something wrong or is the parser still not ready for such
> syntax
> >> ?
> >>
> >> Thanks,
> >> Gelbana
> >>
>
>

Reply via email to