You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Jiajun Xie (Jira)" <ji...@apache.org> on 2022/10/29 08:58:00 UTC

[jira] [Updated] (CALCITE-4455) Babel parser support Spark INSERT OVERWRITE TABLE/DIRECTORY statement

     [ https://issues.apache.org/jira/browse/CALCITE-4455?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jiajun Xie updated CALCITE-4455:
--------------------------------
    Summary: Babel parser support Spark INSERT OVERWRITE TABLE/DIRECTORY statement  (was: Calcite SQLParser: Provide support for INSERT OVERWRITE)

> Babel parser support Spark INSERT OVERWRITE TABLE/DIRECTORY statement
> ---------------------------------------------------------------------
>
>                 Key: CALCITE-4455
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4455
>             Project: Calcite
>          Issue Type: Sub-task
>          Components: spark
>            Reporter: shradha
>            Assignee: Jiajun Xie
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Spark has [INSERT OVERWRITE TABLE statement|https://spark.apache.org/docs/3.1.2/sql-ref-syntax-dml-insert-overwrite-table.html] and [INSERT OVERWRITE DIRECTORY statement|https://spark.apache.org/docs/3.1.2/sql-ref-syntax-dml-insert-overwrite-directory.html].
>  
> We can support part of their grammar, here is syntax that babel parser used:
>  - INSERT OVERWRITE TABLE
>  -- Syntax
> {code:java}
> INSERT OVERWRITE TABLE table_identifier [ partition_spec [ IF NOT EXISTS ] ] [ ( column_list ) ]
> { VALUES ( { value | NULL } [ , ... ] ) [ , ( ... ) ] | query }  {code}
> -- Example
> {code:java}
> -- Insert Using a SELECT Statement
> INSERT OVERWRITE TABLE students PARTITION (student_id = 222222)
> SELECT name, address FROM persons WHERE name = "Dora Williams";
> -- Insert Using a SELECT Statement with column list and omit partition
> INSERT OVERWRITE TABLE target (c1) SELECT * FROM source 
> -- Insert Using a VALUES Clause
> INSERT OVERWRITE TABLE students
> VALUES ('Ashua Hill', '456 Erica Ct, Cupertino', 111111),
>        ('Brian Reed', '723 Kern Ave, Palo Alto', 222222);  {code}
>  - INSERT OVERWRITE DIRECTORY
>  -- Syntax
> {code:java}
> INSERT OVERWRITE [ LOCAL ] DIRECTORY directory_path
> USING file_format [ OPTIONS ( key = val [ , ... ] ) ]
> { VALUES ( { value | NULL } [ , ... ] ) [ , ( ... ) ] | query }{code}
> -- Example
> {code:java}
> INSERT OVERWRITE DIRECTORY '/tmp/destination'
> USING parquet
> OPTIONS (col1=1, col2=2, col3='test')
> SELECT * FROM test_table;
> -- omit options
> INSERT OVERWRITE DIRECTORY '/tmp/destination' 
> USING parquet 
> SELECT * FROM test_table;{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)