I was hinting that there might be a syntax issue caused by a missing part
of the query. I would not have assumed "SELECT foobar" is a valid query
both in syntax and semantics.
--
Michael Mior
mm...@apache.org


Le mer. 23 mars 2022 à 14:12, Julian Hyde <jhyde.apa...@gmail.com> a écrit :

> If there’s nowhere for LANGUAGE to come from that would make it
> semantically invalid but wouldn’t affect the syntactic validity. (In other
> words, you’d get an error from SqlValidator but not from SqlParser.)
>
> In this case, the problem is that LANGUAGE is a reserved keyword in both
> standard SQL and Calcite.
>
> Julian
>
>
> > On Mar 23, 2022, at 11:05 AM, Michael Mior <mm...@apache.org> wrote:
> >
> > What would you expect this query to return? You haven't specified a FROM
> > clause, so there's no indication where "language" should come from.
> >
> > --
> > Michael Mior
> > mm...@apache.org
> >
> >
> > Le mer. 23 mars 2022 à 14:02, Adolfo Ochagavía <ado...@ochagavia.nl> a
> > écrit :
> >
> >> Hi there,
> >>
> >> I am trying to find my way using Calcite to parse SQL queries, and was
> >> surprised to find out that parsing the query "SELECT language" fails
> with
> >> an exception.
> >>
> >> This is the code:
> >>> var config = SqlParser.Config.DEFAULT.withLex(Lex.MYSQL);
> >>> var parser = SqlParser.create("SELECT language", config);
> >>> var parsed = parser.parseQuery();
> >>
> >> This is the exception:
> >>> org.apache.calcite.sql.parser.SqlParseException: Encountered ".
> >> language" at line 1, column 18.
> >>> Was expecting one of:
> >>>    <EOF>
> >>>    "AS" ...
> >>>    [the rest is omitted for brevity, but about 60 more lines follow]
> >>
> >> Am I missing something or is this a bug? Note that the query is a
> >> simplified excerpt of an autoconfiguration query issued by MySQL's JDBC
> >> driver and seems to be handled well by MySQL servers. Below I am pasting
> >> the full query, in case someone would like to see the original:
> >>> /* mysql-connector-java-8.0.19 (Revision:
> >> a0ca826f5cdf51a98356fdfb1bf251eb042f80bf) */SELECT
> >> @@session.auto_increment_increment AS auto_increment_increment,
> >> @@character_set_client AS character_set_client,
> >> @@character_set_connection AS character_set_connection,
> >> @@character_set_results AS character_set_results,
> >> @@character_set_server AS character_set_server, @@collation_server AS
> >> collation_server, @@collation_connection AS collation_connection,
> >> @@init_connect AS init_connect, @@interactive_timeout AS
> >> interactive_timeout, @@language AS language, @@license AS license,
> >> @@lower_case_table_names AS lower_case_table_names,
> >> @@max_allowed_packet AS max_allowed_packet, @@net_write_timeout AS
> >> net_write_timeout, @@performance_schema AS performance_schema,
> >> @@query_cache_size AS query_cache_size, @@query_cache_type AS
> >> query_cache_type, @@sql_mode AS sql_mode, @@system_time_zone AS
> >> system_time_zone, @@time_zone AS time_zone, @@tx_isolation AS
> >> transaction_isolation, @@wait_timeout AS wait_timeout
> >>
> >> Thanks for helping out ;)
> >> Adolfo
>
>

Reply via email to