Repository navigation
Commit c871adc
committed
Narrow only the write relation for column updates and address review comments
Rework column-level UPDATE narrowing so that RewriteUpdateTable keeps master's
read relation and plan builders and narrows only the write relation to
requiredDataAttributes(). The rewrite orders the write query so the columns
the write reads come first, and the ColumnPruning case for RowLevelWrite
prunes only the columns after the last one the write reads.
- Rename DataWriter.writeUpdate to writeColumnUpdate and
LogicalWriteInfo.updateSchema to columnUpdateSchema, and the related error
to DATA_SOURCE_WRITE_COLUMN_UPDATE_NOT_IMPLEMENTED.
- Reject a write whose distribution or ordering references a column the
column update does not read (COLUMN_UPDATE_UNDECLARED_WRITE_REQUIREMENT_COLUMNS),
and a declared column that does not exist
(COLUMN_UPDATE_UNKNOWN_REQUIRED_DATA_ATTRIBUTE).
- Plan copy-on-write scans from the columns the write query reads for writes
that deliver narrow rows; other writes read every column as before.
- Build the runtime group filter attribute map from the original table.
- Mark the new APIs @SInCE 4.4.0 and move the MiMa exclude to 4.4.
- Fix Javadoc and error messages, and add tests for the rows and metadata the
connector receives, cross-column assignments, case-sensitive analysis and
MERGE updatedColumns().1 parent 5b2369f commit c871adc
32 files changed
Lines changed: 2110 additions & 1179 deletions
File tree
- common/utils/src/main/resources/error
- project
- sql
- catalyst/src
- main
- java/org/apache/spark/sql/connector/write
- scala/org/apache/spark/sql
- catalyst
- analysis
- optimizer
- plans/logical
- util
- connector/write
- errors
- test/scala/org/apache/spark/sql
- catalyst
- optimizer
- plans/logical
- connector/catalog
- core/src
- main/scala/org/apache/spark/sql/execution
- datasources/v2
- dynamicpruning
- test/scala/org/apache/spark/sql/connector
Lines changed: 22 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1260 | 1260 | | |
1261 | 1261 | | |
1262 | 1262 | | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
1263 | 1269 | | |
1264 | 1270 | | |
1265 | 1271 | | |
| |||
1274 | 1280 | | |
1275 | 1281 | | |
1276 | 1282 | | |
1277 | | - | |
| 1283 | + | |
1278 | 1284 | | |
1279 | 1285 | | |
1280 | 1286 | | |
1281 | 1287 | | |
1282 | 1288 | | |
1283 | | - | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
1284 | 1296 | | |
1285 | 1297 | | |
1286 | 1298 | | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
1287 | 1305 | | |
1288 | 1306 | | |
1289 | 1307 | | |
| |||
2433 | 2451 | | |
2434 | 2452 | | |
2435 | 2453 | | |
2436 | | - | |
| 2454 | + | |
2437 | 2455 | | |
2438 | | - | |
| 2456 | + | |
2439 | 2457 | | |
2440 | 2458 | | |
2441 | 2459 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
50 | 53 | | |
51 | 54 | | |
52 | 55 | | |
| |||
73 | 76 | | |
74 | 77 | | |
75 | 78 | | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
| 79 | + | |
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| |||
Lines changed: 30 additions & 24 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
88 | | - | |
| 88 | + | |
89 | 89 | | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
97 | 100 | | |
98 | 101 | | |
99 | 102 | | |
100 | 103 | | |
101 | 104 | | |
102 | | - | |
103 | | - | |
| 105 | + | |
| 106 | + | |
104 | 107 | | |
105 | | - | |
| 108 | + | |
106 | 109 | | |
107 | | - | |
108 | | - | |
| 110 | + | |
| 111 | + | |
109 | 112 | | |
110 | 113 | | |
111 | 114 | | |
112 | | - | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
113 | 122 | | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
119 | 126 | | |
120 | 127 | | |
121 | 128 | | |
122 | 129 | | |
123 | 130 | | |
124 | | - | |
125 | | - | |
| 131 | + | |
126 | 132 | | |
127 | | - | |
| 133 | + | |
128 | 134 | | |
129 | | - | |
| 135 | + | |
130 | 136 | | |
131 | | - | |
| 137 | + | |
132 | 138 | | |
133 | 139 | | |
134 | 140 | | |
| |||
Lines changed: 4 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
| 44 | + | |
| 45 | + | |
48 | 46 | | |
49 | 47 | | |
50 | 48 | | |
| |||
58 | 56 | | |
59 | 57 | | |
60 | 58 | | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
| 59 | + | |
| 60 | + | |
65 | 61 | | |
66 | 62 | | |
67 | 63 | | |
| |||
Lines changed: 12 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
50 | 54 | | |
51 | 55 | | |
52 | 56 | | |
| |||
67 | 71 | | |
68 | 72 | | |
69 | 73 | | |
70 | | - | |
71 | | - | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
72 | 80 | | |
73 | | - | |
| 81 | + | |
74 | 82 | | |
75 | | - | |
| 83 | + | |
76 | 84 | | |
77 | 85 | | |
78 | 86 | | |
Lines changed: 6 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | | - | |
| 43 | + | |
| 44 | + | |
45 | 45 | | |
46 | | - | |
47 | | - | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
48 | 49 | | |
49 | | - | |
| 50 | + | |
50 | 51 | | |
51 | 52 | | |
52 | 53 | | |
0 commit comments