Commit df3f813
committed
test: add 21 plpgsql deparser edge case fixtures for END; bug regression
Add comprehensive test coverage for nested block compositions, blocks inside
control structures, deep nesting patterns, untested statement types, and
real-world patterns that exercise the END; bug class.
Group 1 - Nested Block Compositions (CRITICAL):
- Nested block followed by RETURN, IF, RAISE, PERFORM, assignment
- Labeled nested block
Group 2 - Blocks Inside Control Structures (HIGH):
- Block inside IF THEN branch with exception handler
- Block inside LOOP body with exception handler
- Block inside CASE WHEN
Group 3 - Deep Nesting & Sequential Blocks:
- Two sequential nested blocks
- Triple-nested blocks
- Block inside exception handler action
Group 4 - Untested Statement Types:
- FOR integer loop, FOR query loop, labeled FOR loop
- RETURN NEXT with OUT parameters, RETURN QUERY
- ASSERT statement, CALL statement
Group 5 - Real-World Patterns:
- Permission bitnum trigger pattern (the original bug-exposing function)
- Multi-step sign-in pattern with nested IF chains
Also adds pre-existing plpgsql_schema_rename failures to KNOWN_FAILING_FIXTURES
allowlist (7 fixtures with whitespace mismatch in query expressions).1 parent 0266000 commit df3f813
5 files changed
Lines changed: 1066 additions & 6 deletions
File tree
- __fixtures__
- plpgsql-generated
- plpgsql
- packages/plpgsql-deparser/__tests__
- __snapshots__
0 commit comments