- Notifications
You must be signed in to change notification settings - Fork5
Commit68ef051
committed
Refactor broken CREATE TABLE IF NOT EXISTS support.
Per bug #5988, reported by Marko Tiikkaja, and further analyzed by TomLane, the previous coding was broken in several respects: even if thetarget table already existed, a subsequent CREATE TABLE IF NOT EXISTSmight try to add additional constraints or sequences-for-serialspecified in the new CREATE TABLE statement.In passing, this also fixes a minor information leak: it's no longerpossible to figure out whether a schema to which you don't have CREATEaccess contains a sequence named like "x_y_seq" by attempting to create atable in that schema called "x" with a serial column called "y".Some more refactoring of this code in the future might be warranted,but that will need to wait for a later major release.1 parentbe90032 commit68ef051
File tree
11 files changed
+73
-79
lines changed- src
- backend
- bootstrap
- catalog
- commands
- executor
- parser
- tcop
- include/catalog
11 files changed
+73
-79
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
247 | 247 | | |
248 | 248 | | |
249 | 249 | | |
250 | | - | |
251 | | - | |
| 250 | + | |
252 | 251 | | |
253 | 252 | | |
254 | 253 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
973 | 973 | | |
974 | 974 | | |
975 | 975 | | |
976 | | - | |
977 | | - | |
| 976 | + | |
978 | 977 | | |
979 | 978 | | |
980 | 979 | | |
| |||
994 | 993 | | |
995 | 994 | | |
996 | 995 | | |
997 | | - | |
998 | | - | |
999 | | - | |
| 996 | + | |
| 997 | + | |
1000 | 998 | | |
1001 | 999 | | |
1002 | 1000 | | |
1003 | | - | |
1004 | | - | |
1005 | | - | |
1006 | | - | |
1007 | | - | |
1008 | | - | |
1009 | | - | |
1010 | | - | |
1011 | | - | |
1012 | | - | |
1013 | 1001 | | |
1014 | 1002 | | |
1015 | 1003 | | |
1016 | | - | |
1017 | 1004 | | |
1018 | 1005 | | |
1019 | 1006 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
360 | 360 | | |
361 | 361 | | |
362 | 362 | | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
363 | 392 | | |
364 | 393 | | |
365 | 394 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
227 | 227 | | |
228 | 228 | | |
229 | 229 | | |
230 | | - | |
231 | | - | |
| 230 | + | |
232 | 231 | | |
233 | 232 | | |
234 | 233 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
646 | 646 | | |
647 | 647 | | |
648 | 648 | | |
649 | | - | |
650 | | - | |
| 649 | + | |
651 | 650 | | |
652 | 651 | | |
653 | 652 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
439 | 439 | | |
440 | 440 | | |
441 | 441 | | |
442 | | - | |
443 | | - | |
444 | | - | |
| 442 | + | |
| 443 | + | |
445 | 444 | | |
446 | | - | |
447 | | - | |
448 | | - | |
449 | | - | |
450 | | - | |
451 | | - | |
452 | | - | |
453 | | - | |
454 | | - | |
455 | | - | |
456 | | - | |
457 | | - | |
| 445 | + | |
458 | 446 | | |
459 | 447 | | |
460 | 448 | | |
| |||
602 | 590 | | |
603 | 591 | | |
604 | 592 | | |
605 | | - | |
606 | | - | |
607 | | - | |
608 | | - | |
609 | | - | |
610 | | - | |
611 | | - | |
612 | | - | |
613 | | - | |
614 | | - | |
| 593 | + | |
615 | 594 | | |
616 | 595 | | |
617 | 596 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2341 | 2341 | | |
2342 | 2342 | | |
2343 | 2343 | | |
2344 | | - | |
2345 | 2344 | | |
2346 | 2345 | | |
2347 | 2346 | | |
| |||
2378 | 2377 | | |
2379 | 2378 | | |
2380 | 2379 | | |
2381 | | - | |
2382 | | - | |
2383 | | - | |
2384 | | - | |
2385 | | - | |
2386 | | - | |
2387 | | - | |
| 2380 | + | |
2388 | 2381 | | |
2389 | 2382 | | |
2390 | 2383 | | |
| |||
2444 | 2437 | | |
2445 | 2438 | | |
2446 | 2439 | | |
2447 | | - | |
2448 | | - | |
| 2440 | + | |
2449 | 2441 | | |
2450 | 2442 | | |
2451 | 2443 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| 151 | + | |
151 | 152 | | |
152 | 153 | | |
153 | 154 | | |
154 | 155 | | |
155 | 156 | | |
156 | 157 | | |
157 | 158 | | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
158 | 186 | | |
159 | 187 | | |
160 | 188 | | |
| |||
164 | 192 | | |
165 | 193 | | |
166 | 194 | | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | 195 | | |
171 | | - | |
172 | 196 | | |
173 | 197 | | |
174 | 198 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
529 | 529 | | |
530 | 530 | | |
531 | 531 | | |
532 | | - | |
533 | | - | |
534 | | - | |
535 | | - | |
536 | | - | |
537 | | - | |
538 | | - | |
539 | 532 | | |
540 | 533 | | |
541 | 534 | | |
| |||
559 | 552 | | |
560 | 553 | | |
561 | 554 | | |
562 | | - | |
563 | | - | |
564 | | - | |
565 | | - | |
566 | | - | |
567 | | - | |
568 | | - | |
569 | | - | |
570 | | - | |
| 555 | + | |
| 556 | + | |
571 | 557 | | |
572 | 558 | | |
573 | 559 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
67 | | - | |
| 66 | + | |
68 | 67 | | |
69 | 68 | | |
70 | 69 | | |
| |||
0 commit comments
Comments
(0)