It throws “Encountered "LATERAL TABLE" at line 1, column 38.” exception. 
According to the document[1], only query can follow behind LATERAL. 

[1] https://calcite.apache.org/docs/reference.html 
<https://calcite.apache.org/docs/reference.html>


> 在 2016年7月7日,上午5:44,Julian Hyde <[email protected]> 写道:
> 
> I think it’s just a mater of a missing “LATERAL”. Try
> 
>  SELECT MyTable.*, t.s  FROM MyTable, LATERAL TABLE(split(MyTable.a)) AS t(s)
> 
> (LATERAL allows an item in the FROM clause to “see” earlier items in the FROM 
> clause.)
> 
>> On Jul 6, 2016, at 7:40 AM, Jark Wu <[email protected]> wrote:
>> 
>> Hi ,
>> 
>> I want to use calcite to parse UDTF(user-defined table function) but have 
>> some problems. Suppose we have registered a UDTF named “split” with a string 
>> parameters. Calcite support this : “SELECT * FROM TABLE(split(‘hello 
>> world’)) AS t(s)” .  
>> 
>> However, I want the UDTF accept the other table’s columns such as:  “SELECT 
>> MyTable.*, t.s  FROM MyTable, TABLE(split(MyTable.a)) AS t(s)”, but calcite 
>> throws can not find “MyTable” exception.
>> 
>> Actually I want to implement something like HIVE UDTF, such as “SELECT 
>> posexplode(myCol) AS (pos, myNewCol) FROM myTable”  Or  
>> “select pos, myNewCol From myTable lateral view posexplode(myCol) as (pos, 
>> myNewCol)”. 
>> 
>> Is there any way to do this in calcite ? 
>> 
>> - Jark Wu 
>> 

Reply via email to