← Back to team overview

maria-developers team mailing list archive

Optimizer call followup: for the parser, JSON_TABLE is not a "table function"

 

Hello,

A followup to the optimizer call discussion:

Here is the production from the SQL Standard describing JSON_TABLE:

section 7.6 <table reference>:

<table primary> ::=
<table or query name>
[ <query system time period specification> ]
[ <correlation or recognition> ]
| <derived table> <correlation or recognition>
| <lateral derived table> <correlation or recognition>
| <collection derived table> <correlation or recognition>
| <table function derived table> <correlation or recognition>
| <only spec> [ <correlation or recognition> ]
| <data change delta table> [ <correlation or recognition> ]
| <JSON table> <correlation or recognition>
| <JSON table primitive> <correlation name>
| <parenthesized joined table>

<table function derived table> ::=
TABLE <left paren> <collection value expression> <right parent>

Section 7.11 <JSON table>:
<JSON table> ::=
  JSON_TABLE <left paren> ....... <right parent>

That is, JSON_TABLE and TABLE (...) are two different productions that have
nothing in common. So, as far as syntax is concerned, JSON_TABLE is not a
"table function".

BR
-- Sergei P.