Skip to content

Commit 82efdb1

Browse files
Zouxxyydanzhewuju
authored andcommitted
[doc] Add more examples of insert overwrite partition (apache#5366)
1 parent cb8d7e9 commit 82efdb1

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

docs/content/spark/sql-write.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ INSERT INTO my_table VALUES (1, 'p1'), (2, 'p2');
8585

8686
-- Static overwrite (Overwrite the whole table)
8787
INSERT OVERWRITE my_table VALUES (3, 'p1');
88+
-- or
89+
INSERT OVERWRITE my_table PARTITION (pt) VALUES (3, 'p1');
8890

8991
SELECT * FROM my_table;
9092
/*
@@ -95,6 +97,19 @@ SELECT * FROM my_table;
9597
+---+---+
9698
*/
9799

100+
-- Static overwrite with specified partitions (Only overwrite pt='p1')
101+
INSERT OVERWRITE my_table PARTITION (pt='p1') VALUES (3);
102+
103+
SELECT * FROM my_table;
104+
/*
105+
+---+---+
106+
| id| pt|
107+
+---+---+
108+
| 2| p2|
109+
| 3| p1|
110+
+---+---+
111+
*/
112+
98113
-- Dynamic overwrite (Only overwrite pt='p1')
99114
SET spark.sql.sources.partitionOverwriteMode=dynamic;
100115
INSERT OVERWRITE my_table VALUES (3, 'p1');

paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/InsertOverwriteTableTestBase.scala

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,4 +575,37 @@ abstract class InsertOverwriteTableTestBase extends PaimonSparkTestBase {
575575
}
576576
}
577577
}
578+
579+
test("Paimon Insert: dynamic insert overwrite partition") {
580+
withTable("my_table") {
581+
sql("CREATE TABLE my_table (id INT, pt STRING) PARTITIONED BY (pt)")
582+
583+
for (mode <- Seq("static", "dynamic")) {
584+
withSparkSQLConf("spark.sql.sources.partitionOverwriteMode" -> mode) {
585+
sql("INSERT OVERWRITE my_table VALUES (1, 'p1'), (2, 'p2')")
586+
// INSERT OVERWRITE table
587+
sql("INSERT OVERWRITE my_table VALUES (3, 'p1')")
588+
if (mode == "dynamic") {
589+
checkAnswer(sql("SELECT * FROM my_table ORDER BY id"), Seq(Row(2, "p2"), Row(3, "p1")))
590+
} else {
591+
checkAnswer(sql("SELECT * FROM my_table ORDER BY id"), Row(3, "p1"))
592+
}
593+
594+
sql("INSERT OVERWRITE my_table VALUES (1, 'p1'), (2, 'p2')")
595+
// INSERT OVERWRITE table PARTITION (pt)
596+
sql("INSERT OVERWRITE my_table PARTITION (pt) VALUES (3, 'p1')")
597+
if (mode == "dynamic") {
598+
checkAnswer(sql("SELECT * FROM my_table ORDER BY id"), Seq(Row(2, "p2"), Row(3, "p1")))
599+
} else {
600+
checkAnswer(sql("SELECT * FROM my_table ORDER BY id"), Row(3, "p1"))
601+
}
602+
603+
sql("INSERT OVERWRITE my_table VALUES (1, 'p1'), (2, 'p2')")
604+
// INSERT OVERWRITE table PARTITION (pt='p1')
605+
sql("INSERT OVERWRITE my_table PARTITION (pt='p1') VALUES (3)")
606+
checkAnswer(sql("SELECT * FROM my_table ORDER BY id"), Seq(Row(2, "p2"), Row(3, "p1")))
607+
}
608+
}
609+
}
610+
}
578611
}

0 commit comments

Comments
 (0)