Commit 3f2cec7
committed
Fix jsonb replace and delete on scalars and empty structures
These operations now error out if attempted on scalars, and simply
return the input if attempted on empty arrays or objects. Along the way
we remove the unnecessary cloning of the input when it's known to be
unchanged. Regression tests covering these cases are added.1 parent ae61571 commit 3f2cec7
File tree
4 files changed
+165
-53
lines changed- src
- backend/utils/adt
- test/regress
- expected
- sql
4 files changed
+165
-53
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3332 | 3332 | | |
3333 | 3333 | | |
3334 | 3334 | | |
3335 | | - | |
| 3335 | + | |
3336 | 3336 | | |
3337 | 3337 | | |
3338 | 3338 | | |
| |||
3349 | 3349 | | |
3350 | 3350 | | |
3351 | 3351 | | |
3352 | | - | |
3353 | 3352 | | |
3354 | 3353 | | |
3355 | 3354 | | |
3356 | 3355 | | |
3357 | 3356 | | |
3358 | 3357 | | |
3359 | 3358 | | |
3360 | | - | |
| 3359 | + | |
| 3360 | + | |
| 3361 | + | |
| 3362 | + | |
3361 | 3363 | | |
3362 | 3364 | | |
3363 | | - | |
| 3365 | + | |
3364 | 3366 | | |
3365 | 3367 | | |
3366 | 3368 | | |
| |||
3382 | 3384 | | |
3383 | 3385 | | |
3384 | 3386 | | |
3385 | | - | |
3386 | | - | |
3387 | | - | |
3388 | | - | |
3389 | | - | |
| 3387 | + | |
3390 | 3388 | | |
3391 | | - | |
| 3389 | + | |
3392 | 3390 | | |
3393 | 3391 | | |
3394 | 3392 | | |
| |||
3403 | 3401 | | |
3404 | 3402 | | |
3405 | 3403 | | |
3406 | | - | |
3407 | 3404 | | |
3408 | 3405 | | |
3409 | 3406 | | |
| |||
3412 | 3409 | | |
3413 | 3410 | | |
3414 | 3411 | | |
| 3412 | + | |
| 3413 | + | |
| 3414 | + | |
| 3415 | + | |
| 3416 | + | |
3415 | 3417 | | |
3416 | | - | |
3417 | | - | |
3418 | | - | |
3419 | | - | |
| 3418 | + | |
3420 | 3419 | | |
3421 | 3420 | | |
3422 | 3421 | | |
| |||
3435 | 3434 | | |
3436 | 3435 | | |
3437 | 3436 | | |
3438 | | - | |
3439 | | - | |
3440 | | - | |
3441 | | - | |
| 3437 | + | |
3442 | 3438 | | |
3443 | 3439 | | |
3444 | 3440 | | |
| |||
3457 | 3453 | | |
3458 | 3454 | | |
3459 | 3455 | | |
3460 | | - | |
3461 | | - | |
3462 | | - | |
3463 | | - | |
3464 | | - | |
| 3456 | + | |
3465 | 3457 | | |
3466 | | - | |
| 3458 | + | |
3467 | 3459 | | |
3468 | 3460 | | |
3469 | 3461 | | |
| |||
3475 | 3467 | | |
3476 | 3468 | | |
3477 | 3469 | | |
3478 | | - | |
3479 | 3470 | | |
3480 | 3471 | | |
3481 | 3472 | | |
| |||
3488 | 3479 | | |
3489 | 3480 | | |
3490 | 3481 | | |
| 3482 | + | |
| 3483 | + | |
| 3484 | + | |
| 3485 | + | |
| 3486 | + | |
3491 | 3487 | | |
3492 | | - | |
3493 | | - | |
3494 | | - | |
3495 | | - | |
| 3488 | + | |
3496 | 3489 | | |
3497 | 3490 | | |
3498 | 3491 | | |
3499 | 3492 | | |
3500 | 3493 | | |
3501 | | - | |
3502 | | - | |
3503 | | - | |
3504 | | - | |
| 3494 | + | |
3505 | 3495 | | |
3506 | 3496 | | |
3507 | 3497 | | |
3508 | 3498 | | |
3509 | 3499 | | |
3510 | | - | |
3511 | | - | |
3512 | | - | |
3513 | | - | |
| 3500 | + | |
3514 | 3501 | | |
3515 | | - | |
| 3502 | + | |
3516 | 3503 | | |
3517 | 3504 | | |
3518 | 3505 | | |
| |||
3524 | 3511 | | |
3525 | 3512 | | |
3526 | 3513 | | |
3527 | | - | |
3528 | 3514 | | |
3529 | 3515 | | |
3530 | 3516 | | |
| |||
3537 | 3523 | | |
3538 | 3524 | | |
3539 | 3525 | | |
| 3526 | + | |
| 3527 | + | |
| 3528 | + | |
| 3529 | + | |
| 3530 | + | |
3540 | 3531 | | |
3541 | | - | |
3542 | | - | |
3543 | | - | |
3544 | | - | |
| 3532 | + | |
3545 | 3533 | | |
3546 | 3534 | | |
3547 | 3535 | | |
3548 | 3536 | | |
3549 | 3537 | | |
3550 | | - | |
3551 | | - | |
3552 | | - | |
3553 | | - | |
| 3538 | + | |
3554 | 3539 | | |
3555 | 3540 | | |
3556 | 3541 | | |
3557 | 3542 | | |
3558 | 3543 | | |
3559 | | - | |
3560 | | - | |
3561 | | - | |
3562 | | - | |
| 3544 | + | |
3563 | 3545 | | |
3564 | | - | |
| 3546 | + | |
3565 | 3547 | | |
3566 | 3548 | | |
3567 | 3549 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3175 | 3175 | | |
3176 | 3176 | | |
3177 | 3177 | | |
| 3178 | + | |
| 3179 | + | |
| 3180 | + | |
| 3181 | + | |
| 3182 | + | |
| 3183 | + | |
| 3184 | + | |
| 3185 | + | |
| 3186 | + | |
| 3187 | + | |
| 3188 | + | |
| 3189 | + | |
| 3190 | + | |
| 3191 | + | |
| 3192 | + | |
| 3193 | + | |
| 3194 | + | |
| 3195 | + | |
| 3196 | + | |
| 3197 | + | |
| 3198 | + | |
| 3199 | + | |
| 3200 | + | |
| 3201 | + | |
| 3202 | + | |
| 3203 | + | |
| 3204 | + | |
| 3205 | + | |
| 3206 | + | |
| 3207 | + | |
| 3208 | + | |
| 3209 | + | |
| 3210 | + | |
| 3211 | + | |
| 3212 | + | |
| 3213 | + | |
| 3214 | + | |
| 3215 | + | |
| 3216 | + | |
| 3217 | + | |
| 3218 | + | |
| 3219 | + | |
| 3220 | + | |
| 3221 | + | |
| 3222 | + | |
| 3223 | + | |
| 3224 | + | |
| 3225 | + | |
| 3226 | + | |
| 3227 | + | |
| 3228 | + | |
| 3229 | + | |
| 3230 | + | |
| 3231 | + | |
| 3232 | + | |
| 3233 | + | |
| 3234 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3175 | 3175 | | |
3176 | 3176 | | |
3177 | 3177 | | |
| 3178 | + | |
| 3179 | + | |
| 3180 | + | |
| 3181 | + | |
| 3182 | + | |
| 3183 | + | |
| 3184 | + | |
| 3185 | + | |
| 3186 | + | |
| 3187 | + | |
| 3188 | + | |
| 3189 | + | |
| 3190 | + | |
| 3191 | + | |
| 3192 | + | |
| 3193 | + | |
| 3194 | + | |
| 3195 | + | |
| 3196 | + | |
| 3197 | + | |
| 3198 | + | |
| 3199 | + | |
| 3200 | + | |
| 3201 | + | |
| 3202 | + | |
| 3203 | + | |
| 3204 | + | |
| 3205 | + | |
| 3206 | + | |
| 3207 | + | |
| 3208 | + | |
| 3209 | + | |
| 3210 | + | |
| 3211 | + | |
| 3212 | + | |
| 3213 | + | |
| 3214 | + | |
| 3215 | + | |
| 3216 | + | |
| 3217 | + | |
| 3218 | + | |
| 3219 | + | |
| 3220 | + | |
| 3221 | + | |
| 3222 | + | |
| 3223 | + | |
| 3224 | + | |
| 3225 | + | |
| 3226 | + | |
| 3227 | + | |
| 3228 | + | |
| 3229 | + | |
| 3230 | + | |
| 3231 | + | |
| 3232 | + | |
| 3233 | + | |
| 3234 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
767 | 767 | | |
768 | 768 | | |
769 | 769 | | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
0 commit comments