Repository navigation
Commit c93fa8a
committed
fix: reject illegal MERGE WHEN NOT MATCHED clause pairings (#2480)
WHEN NOT MATCHED accepted any clause regardless of the BY qualifier,
and the AST collapsed the illegal pairings into the opposite semantics
on deparse: WHEN NOT MATCHED [BY TARGET] THEN UPDATE/DELETE printed as
WHEN MATCHED, WHEN NOT MATCHED BY SOURCE THEN INSERT printed as WHEN
NOT MATCHED. SQL Server and BigQuery reject these pairings at parse
time. Validate the pairing via MergeSide.validatePairing, mirroring
the existing MergeSide.fromImage validation.
Signed-off-by: 付典 <fudianchn@gmail.com>1 parent f41c0b8 commit c93fa8a
3 files changed
Lines changed: 57 additions & 1 deletion
File tree
- src
- main
- java/net/sf/jsqlparser/statement/merge
- jjtree/net/sf/jsqlparser/parser
- test/java/net/sf/jsqlparser/statement/merge
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
32 | 55 | | |
33 | 56 | | |
34 | 57 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4489 | 4489 | | |
4490 | 4490 | | |
4491 | 4491 | | |
4492 | | - | |
| 4492 | + | |
4493 | 4493 | | |
4494 | 4494 | | |
4495 | 4495 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
363 | 364 | | |
364 | 365 | | |
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 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
366 | 399 | | |
0 commit comments