[
https://issues.apache.org/jira/browse/SPARK-58330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anurag Mantripragada updated SPARK-58330:
-----------------------------------------
Description:
Spark supports a per-statement `WITH (key = value)` dynamic table options
clause on DMLs. When a single statement references the same table more than
once with different options, only the first-resolved reference's options are
honored; the other reference's options are silently dropped.
Examples (each drops one side's options):
{{INSERT INTO t WITH (`write.split-size` = 10) SELECT * FROM t}}
{{MERGE INTO t WITH (`write.split-size` = 10)}}
{{USING t WITH (`split-size` = 5) s}}
{{ON t.id = s.id}}
{{WHEN MATCHED THEN UPDATE SET ...}}
{{UPDATE t WITH (`write.split-size` = 10) SET ...}}
{{WHERE id IN (SELECT id FROM t WITH (`split-size` = 5))}}
was:
Spark supports a per-statement `WITH (key = value)` dynamic table options
clause on DMLs. When a single statement references the same table more than
once with different options, only the first-resolved reference's options are
honored; the other reference's options are silently dropped.
Examples (each drops one side's options):
```sql
– INSERT self-select: the target's write options are dropped
INSERT INTO t WITH (`write.split-size` = 10) SELECT * FROM t
– MERGE self-merge: the source's read options are dropped
MERGE INTO t WITH (`write.split-size` = 10)
USING t WITH (`split-size` = 5) s
ON t.id = s.id
WHEN MATCHED THEN UPDATE SET ...
– UPDATE self-reference in a subquery/CTE: the subquery's options are dropped
UPDATE t WITH (`write.split-size` = 10) SET ...
WHERE id IN (SELECT id FROM t WITH (`split-size` = 5))
```
> Prevent silent dropping of dynamic options on same table references in DML
> --------------------------------------------------------------------------
>
> Key: SPARK-58330
> URL: https://issues.apache.org/jira/browse/SPARK-58330
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 4.2.0
> Reporter: Anurag Mantripragada
> Priority: Major
>
> Spark supports a per-statement `WITH (key = value)` dynamic table options
> clause on DMLs. When a single statement references the same table more than
> once with different options, only the first-resolved reference's options are
> honored; the other reference's options are silently dropped.
> Examples (each drops one side's options):
> {{INSERT INTO t WITH (`write.split-size` = 10) SELECT * FROM t}}
> {{MERGE INTO t WITH (`write.split-size` = 10)}}
> {{USING t WITH (`split-size` = 5) s}}
> {{ON t.id = s.id}}
> {{WHEN MATCHED THEN UPDATE SET ...}}
> {{UPDATE t WITH (`write.split-size` = 10) SET ...}}
> {{WHERE id IN (SELECT id FROM t WITH (`split-size` = 5))}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]