All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
17.18.3 (2026-04-07)
- strip quotes and uppercase EXTRACT field name in deparser (8726ce6), closes constructive-io/constructive-db#748
17.18.2 (2026-03-15)
17.18.1 (2026-03-15)
- ci: add back pg-proto-parser to test matrix, include merge artifacts from main (7ddf9d9)
- deparser: emit EXCLUDE clause in window frame specifications (fc7911a)
- deparser: fix 5 bugs causing 30 test failures (9136a4a)
17.18.0 (2026-03-04)
- revert deparser keywords.ts to original default path (d9804c7)
- create @pgsql/quotes package for PostgreSQL identifier quoting and keyword classification (3c263dd)
17.17.2 (2026-01-07)
Note: Version bump only for package pgsql-deparser
17.17.1 (2026-01-05)
- deparser: quote schema name in CreateSchemaStmt (c427d0f)
17.17.0 (2026-01-01)
- remove pg_catalog prefix for unknown types in deparser (0b45483), closes constructive-io/constructive-planning#477
- pgsql-deparser: add pretty-printing for INSERT VALUES and ON CONFLICT SET (6428b87)
17.16.0 (2025-12-31)
- deparser: add pretty printing for CREATE FUNCTION params and RETURNS TABLE (9dda8d1)
17.15.2 (2025-12-27)
Note: Version bump only for package pgsql-deparser
17.15.1 (2025-12-27)
Note: Version bump only for package pgsql-deparser
17.15.0 (2025-12-25)
- deparser: add type-name quoting policy for minimal quoting in type positions (9104bf3)
17.14.0 (2025-12-25)
- add pretty fixtures for quoting and formatting behaviors (aba85ef)
- add relaxed quoting for qualified name tails (ef51c09)
- implement quoteDottedName for relaxed quoting after dots (4c81523)
17.13.0 (2025-12-24)
- don't quote type names - they are not identifiers (b85dacf)
- update keywords.ts generator to include Set type annotations (fb6d159)
- add quoteIdentifier and quoteQualifiedIdentifier from PostgreSQL ruleutils.c (b30c359), closes /github.com/postgres/postgres/blob/fab5cd3dd1323f9e66efeb676c4bb212ff340204/src/backend/utils/adt/ruleutils.c#L13055-L13137 /github.com/postgres/postgres/blob/fab5cd3dd1323f9e66efeb676c4bb212ff340204/src/backend/utils/adt/ruleutils.c#L13139-L13156
17.12.2 (2025-12-11)
Note: Version bump only for package pgsql-deparser
17.12.1 (2025-11-23)
Note: Version bump only for package pgsql-deparser
17.12.0 (2025-11-23)
Note: Version bump only for package pgsql-deparser
17.11.1 (2025-08-08)
Note: Version bump only for package pgsql-deparser
17.10.0 (2025-07-23)
- make pretty print the default option (71eba83)
17.9.1 (2025-07-17)
Note: Version bump only for package pgsql-deparser
17.9.0 (2025-07-01)
- add COLLATE clause support to ALTER TABLE ADD COLUMN (b778ed0)
- correct ALTER TABLE ADD IDENTITY column generation (590e82f)
- add multi-line pretty formatting for ALTER TABLE statements (cb2ba9f)
- implement pretty printing for ALTER TABLE ADD COLUMN statements (65a0002)
17.8.5 (2025-07-01)
Note: Version bump only for package pgsql-deparser
17.8.4 (2025-07-01)
Note: Version bump only for package pgsql-deparser
17.8.3 (2025-06-27)
- improve CREATE TABLE constraint indentation using proper context indentLevel (22d5915)
- update formatWindowFrame and deparseOperatorName to accept context parameters (18236c0)
- update RenameStmt to pass objtype when spawning AlterTypeStmt context (14326c3)
- improve indentation for boolean expressions and SELECT clauses (6cc2f4e)
- make SqlFormatter private and add context-aware indentation (2a76b3d)
17.8.2 (2025-06-26)
- Revert "Fix CHECK constraint closing parenthesis alignment" (e247c55)
17.8.1 (2025-06-23)
Note: Version bump only for package pgsql-deparser
17.8.0 (2025-06-23)
Note: Version bump only for package pgsql-deparser
17.7.2 (2025-06-23)
Note: Version bump only for package pgsql-deparser
17.7.1 (2025-06-23)
Note: Version bump only for package pgsql-deparser
17.7.0 (2025-06-23)
Note: Version bump only for package pgsql-deparser
17.6.2 (2025-06-22)
Note: Version bump only for package pgsql-deparser
17.6.1 (2025-06-22)
Note: Version bump only for package pgsql-deparser
17.6.0 (2025-06-22)
Note: Version bump only for package pgsql-deparser
17.5.0 (2025-06-22)
Note: Version bump only for package pgsql-deparser
17.4.2 (2025-06-22)
- add test back (d44ab3f)
- async forEach bug in test framework preventing error catching (01b01d8)
- quotes (fac64e9)
- implement automatic E-prefix detection for escaped string literals (e029f29)
17.4.1 (2025-06-21)
Note: Version bump only for package pgsql-deparser
17.4.0 (2025-06-21)
- deparser: improve entry point handling with proper type guards (a240d13)
- deparser: add ParseResult support, array handling, and configurable function delimiters (1815fff)
- deparser: Removed unused stmt() and version() methods. Use deparse() with appropriate node types instead.
The deparser now properly handles:
- ParseResult from libpg-query (bare or wrapped)
- Wrapped RawStmt nodes
- Arrays of Nodes
- Single Node statements
Note: ParseResult.stmts contains RawStmt objects directly (not wrapped as nodes)
17.2.0 (2025-06-21)
- deparser: improve entry point handling with proper type guards (a240d13)
- deparser: add ParseResult support, array handling, and configurable function delimiters (1815fff)
- deparser: Removed unused stmt() and version() methods. Use deparse() with appropriate node types instead.
The deparser now properly handles:
- ParseResult from libpg-query (bare or wrapped)
- Wrapped RawStmt nodes
- Arrays of Nodes
- Single Node statements
Note: ParseResult.stmts contains RawStmt objects directly (not wrapped as nodes)
17.1.0 (2025-06-21)
- achieve 97.4% pass rate by resolving CreateFunctionStmt DefElem List handling (23725bb)
- add A_Expr_Kind and DropBehavior type annotations to resolve remaining TypeScript compilation errors (5a0e97e)
- add accessMethod support to CreateStmt for USING clauses in CREATE TABLE statements (712069b)
- add ALTER CONVERSION schema handling (378e8a7)
- add ALTER OPERATOR FAMILY schema handling (80c118f)
- add ALTER OPERATOR schema handling (7127f83)
- add ALTER TEXT SEARCH CONFIGURATION schema handling (c9ce6f9)
- add ALTER TEXT SEARCH DICTIONARY schema handling (62934bf)
- add ALTER TEXT SEARCH PARSER schema handling (4638cbd)
- add ALTER TEXT SEARCH TEMPLATE schema handling (838e145)
- add ALTER TYPE schema handling (8b9322b)
- add AlterDomainStmt subtypes O, N, T for SET/DROP NOT NULL and SET/DROP DEFAULT operations (c7b6a87)
- add AlterFunctionStmt support to DefElem for proper function option handling (63fb427)
- add AS keyword to Alias method for proper table alias formatting - resolves INSERT AS alias issues (c0e4463)
- add AT TIME ZONE infix syntax preservation for pg_catalog.timezone function calls (ed94b0c)
- add bpchar support to TypeCast :: syntax - improves char type handling (35e6882)
- add CASCADE boolean flag handling and prevent alias double-quoting (9431f36)
- add CASCADE/RESTRICT behavior handling to AT_AddColumn (8624053)
- add CASCADE/RESTRICT behavior handling to AT_AlterColumnType (6aae957)
- add CASCADE/RESTRICT behavior handling to RenameStmt (debca4c)
- add COERCE_SQL_SYNTAX support for is_normalized, normalize, and system_user functions (55cab49)
- add COLLATE clause support to ColumnDef and fix CollateClause quoting (d9351ff)
- add CollateClause parentheses and DefineStmt OBJECT_COLLATION support - maintained 69 failed test suites with no regressions (601197b)
- add column number support in AT_SetStatistics case (1401e66)
- add COMMENT ON TRIGGER syntax support (8f6326e)
- add comprehensive ALTER OWNER support for text search objects and operator family/class items (fa39543)
- add comprehensive type alias mappings for PostgreSQL internal types (ce5df2f)
- add CONSTR_EXCLUSION support for EXCLUDE USING constraints (3802040)
- add CREATE AGGREGATE ORDER BY pattern handling (a9ddd22)
- add CREATE OPERATOR parameter quoting and CREATE INDEX opclassopts support (11b5fdc)
- add CTE materialization clause support in CommonTableExpr method (62993aa)
- add DATABASE object type support to GrantStmt method - resolves missing DATABASE keyword in grant statements (c778b99)
- add DefElem connectionlimit support for CREATE ROLE statements (af6259f)
- add direct ObjectWithArgs handling for COMMENT ON OPERATOR statements (42102ca)
- add empty parentheses support for CompositeTypeStmt (697b27c)
- add IF EXISTS clause support to AlterObjectSchemaStmt (f6cd8fb)
- add IF EXISTS support to ALTER TABLE DROP operations (6da4895)
- add INCLUDING ALL special case handling for TableLikeClause (0961f10)
- add Integer node handling for SET TRANSACTION boolean options (bd4ae81)
- add JOIN alias support with parentheses wrapping (79cd1ca)
- add join_using_alias support in JoinExpr method (819a5ce)
- add LANGUAGE and FUNCTION object type support to GrantStmt (2b79fc3)
- add List handling for ALTER OPERATOR DefElem arguments - resolves commutator operator name parsing to achieve 96.9% pass rate (639a043)
- add minus operator to pure operator regex for ALTER OPERATOR statements (e93e5d5)
- add missing AlterTypeStmt method to deparser (7178604)
- add missing CONSTR_IDENTITY and partbound handling in deparser (6151157)
- add missing CONSTR_IDENTITY constraint type support for GENERATED ALWAYS AS IDENTITY columns (f4a9ba3)
- add missing ON COMMIT clause handling to CreateTableAsStmt - resolves temp test failure (c2ad00b)
- add missing PartitionCmd node type handler for ALTER TABLE partition operations (c045307)
- add missing SET option support to GrantRoleStmt method (81d928d)
- add missing StatsElem method for CREATE STATISTICS statements (1945eab)
- add NATURAL JOIN support to JoinExpr method (c3b3bf2)
- add necessary enum type annotations to resolve TypeScript compilation errors (4461136)
- add NO INHERIT support to CHECK constraints in Constraint method (eec4c0e)
- add null safety checks to DeleteStmt for WITH RECURSIVE handling (d83e6f9)
- add NULLS NOT DISTINCT clause support to IndexStmt method (9e7f1c7)
- add OBJECT_ATTRIBUTE support to RenameStmt (6f7ef9d)
- add OBJECT_DOMAIN support to AlterOwnerStmt for ALTER DOMAIN OWNER TO statements (e1a1acd)
- add OBJECT_FDW support to CommentStmt for FOREIGN DATA WRAPPER syntax (d16f187)
- add OBJECT_PROCEDURE support in AlterFunctionStmt (455bbb0)
- add OBJECT_PROCEDURE support in GrantStmt (f63ae55)
- add OBJECT_STATISTIC_EXT case to CommentStmt for COMMENT ON STATISTICS (77a6478)
- add OBJECT_TABCONSTRAINT support to RenameStmt method (fe5a34a)
- add OBJECT_TYPE support to AlterOwnerStmt for ALTER TYPE ... OWNER TO statements (5342396)
- add OBJECT_TYPE support to AlterTableStmt (3b63d98)
- add OBJECT_VIEW support in RenameStmt OBJECT_COLUMN case (a4bf45d)
- add ON CONFLICT WHERE clause and MultiAssignRef support (886b560)
- add optional trim character support to TRIM function SQL syntax (e45214e)
- add OR REPLACE support for CREATE AGGREGATE statements in DefineStmt (2858fbf)
- add ORDER BY syntax support for ordered-set aggregates in CREATE AGGREGATE (ea3f4cd)
- add OVERLAPS operator infix syntax support in FuncCall method (031c1f7)
- add partition specification support to CREATE TABLE statements (bd8e83b)
- add proper identity column options formatting in CONSTR_IDENTITY case (d24d0be)
- add proper quoting for column names in IndexElem method (d861ec0)
- add proper quoting for FDW option names containing spaces or special characters in DefElem method (03610fd)
- add proper single quote handling for enum values in CreateEnumStmt (d9115ba)
- add REFERENCING clause support to CreateTrigStmt deparser (d1bed92)
- add RENAME ATTRIBUTE clause for OBJECT_ATTRIBUTE (f37925f)
- add reserved word 'all' to SET statement value quoting (51a2644)
- add SET TRANSACTION ISOLATION LEVEL support (d6dba1e)
- add SUBSTRING, POSITION, and OVERLAY special SQL syntax handling in FuncCall method (1d0b11d)
- add TEMPORARY keyword support in CreateTableAsStmt method (8c28a9e)
- add TEMPORARY keyword support to CreateSeqStmt method (a5e2a55)
- add timestamp type aliases and CREATE TABLE WITH options support (1ee5d40)
- add timestamptz precision modifier placement - precision goes before 'with time zone' (23572d3)
- add TYPE and DOMAIN object type support to GrantStmt (8dc8f1e)
- add undefined node filtering to CreateSeqStmt options processing (7efaa81)
- add USING clause support to ALTER COLUMN TYPE statements (cdeb99a)
- add USING clause support to CreateTableAsStmt for materialized views (9efc683)
- add USING clause support to JoinExpr method (c1085b2)
- add USING INDEX clause support for UNIQUE constraints (21cdc6d)
- add VARIADIC parameter duplication for ordered-set aggregates (0588fe0)
- add WHERE clause support to ON CONFLICT statements (a424e69)
- add wildcard (*) support for COMMENT ON AGGREGATE statements (e43181d)
- add wildcard (*) support for CREATE AGGREGATE statements (ae80299)
- add WITH ADMIN FALSE support to GrantRoleStmt (d39b4c5)
- add WITHIN GROUP clause support for aggregate functions (41cd750)
- AlterTSConfigurationStmt dictionary mapping syntax - improve pass rate to 93.3% (11 failed, 152 passed) (ddeb4d6)
- attempt to preserve char syntax in TypeCast context (a3104d4)
- call WithClause method directly in SelectStmt to resolve missing WITH keyword issue (aff80b9)
- change SET statement syntax from = to TO and improve quote handling (0bab0e3)
- consolidate duplicate CONSTR_IDENTITY cases in Constraint method (291e563)
- continue CREATE OPERATOR DefElem improvements - work in progress (c03e3c8)
- correct canlogin role option to use LOGIN instead of CANLOGIN (a77a4c1)
- correct CommentStmt object name handling to use dot-separated identifiers (53cf219)
- correct DeclareCursorStmt cursor options bitmask decoding (45c8a13)
- correct DeclareCursorStmt SCROLL option bit flag mapping (0e95175)
- correct DeclareCursorStmt WITH HOLD bitmask from 16 to 32 - improves pass rate to 94.5% (9 failed, 154 passed) (1cd3230)
- correct DROP POLICY syntax handling and improve WindowDef parentheses logic (e74ad29)
- correct FetchStmt direction and ALL handling logic (1198c3b)
- correct GrantStmt objtype handling for regular GRANT/REVOKE statements (b3809dc)
- correct interval type field specification formatting (675745b)
- correct interval type modifier mapping - resolve 2048 -> minute instead of hour to second (0dc8629)
- correct LockStmt lock mode array indexing - PostgreSQL uses 1-based mode values (1-8) not 0-based (0-7) (621a681)
- correct LockStmt lock mode mapping - revert to original PostgreSQL order (58d6009)
- correct LockStmt lock mode mapping - swap SHARE and SHARE UPDATE EXCLUSIVE positions (05322c1)
- correct REPLICATION role option handling in DefElem method (1c72d8b)
- correct TableLikeClause bitfield mapping for INCLUDING options (6621876)
- correct timetz type modifier placement - precision goes before 'with time zone' (9f6ec6d)
- CREATE OPERATOR DefElem case preservation and update TESTS.md with accurate full test suite status (29 failed, 323 passed, 91.8% pass rate) (fa60814)
- CREATE TABLE WITH options DefElem context handling (064eb06)
- CreateForeignTableStmt context - pass proper parentNodeTypes when visiting relation (dc75030)
- enhance Constraint method with domain context handling and CONSTR_GENERATED support (634fb4b)
- enhance DeleteStmt and deparseReturningList with comprehensive error handling (d6eadbf)
- enhance JOIN alias handling for nested cases (5aa8768)
- enhance RangeFunction with comprehensive null safety and nested List handling (d270416)
- enhance RangeFunction with undefined node filtering and error handling (21c79e7)
- expand needsQuotes logic to handle all-uppercase identifiers (df6c0f1)
- extend DEFERRABLE constraint support to PRIMARY KEY and UNIQUE constraints (b24a7eb)
- handle ALTER TYPE syntax correctly (4b5aacd)
- handle empty object structures in A_Const to resolve INSERT statement [object Object] issues (6dd0b38)
- handle FETCH RELATIVE with undefined howMany - defaults to 0 for proper syntax preservation (051bc90)
- handle List nodes properly in AT_SetOptions and AT_ResetOptions (fe919e3)
- handle nested ival structure in SET TRANSACTION boolean options (8707e0b)
- implement case sensitivity preservation in String method and QuoteUtils (e786823)
- implement context-aware string handling for GrantStmt and DefElem (db5ed0b)
- implement direct OVER clause formatting in FuncCall method to resolve window function parentheses issue (14f3cbf)
- implement GrantStmt object type handling and remove inappropriate behavior clauses (16fccf9)
- implement proper context passing for ALTER TYPE operations (a1ce6e0)
- implement proper DROP POLICY syntax and add parentheses to WindowDef OVER clauses (43e4d53)
- implement proper MultiAssignRef detection for multi-column assignments (818ef09)
- implement proper object type handling in GrantStmt for ACL_TARGET_ALL_IN_SCHEMA (a94da24)
- implement REVOKE INHERIT OPTION FOR syntax in GrantRoleStmt and update TESTS.md with verified full test suite status (30 failed, 322 passed, 91.5% pass rate) (56ec13f)
- implement standard SQL CAST() syntax in TypeCast method - major improvement from 84β70 failed test suites (9162d29)
- improve A_Const method with better null handling and object structure edge cases (52e0a93)
- improve alias column name quoting to prevent double-quote issues (6795135)
- improve AST mismatch handling in deparser (6fdda56)
- improve COMMENT ON CONSTRAINT handling for table constraints (0ef047b)
- improve CommentStmt object type mapping and AlterEnumStmt string escaping (16dbfc3)
- improve CommentStmt string escaping for single quotes in multi-line comments (f2ff00e)
- improve CREATE TYPE DefElem context handling for Integer and TypeName nodes (e671e8d)
- improve GrantRoleStmt admin option handling (277fd25)
- improve GrantRoleStmt admin option handling and AlterRoleStmt GROUP/ROLE detection (b9543c9)
- improve interval field mapping with single modifier handling - address SELECT '999'::interval second parsing (2e65aee)
- improve interval type modifier mapping and precision handling (033e2b9)
- improve plpgsql compatibility with orderedarray type casting and quoted parameter names (dbac0c5)
- improve SET TRANSACTION statement formatting (cc52244)
- improve type modifier filtering in formatTypeMods method (faaf617)
- improve TypeCast and TypeName for built-in types (66068e2)
- improve undefined node filtering in AlterSeqStmt method (8311757)
- improve varchar and interval type handling in TypeName method (6770195)
- include OBJECT_MATVIEW in AlterObjectSchemaStmt relation handling - resolves missing table name in ALTER MATERIALIZED VIEW SET SCHEMA statements (c3e66de)
- include USING clause for all access methods in IndexStmt (12f7e30)
- inline RangeVar and RoleSpec wrapped nodes to resolve TypeScript compilation errors (78a8600)
- make file operations Windows-compatible (6edf87f)
- only output CASCADE for ADD operations, not RESTRICT (6c785a6)
- only output CASCADE for ALTER COLUMN TYPE, not RESTRICT (5b49db4)
- only output CASCADE for RENAME operations, not RESTRICT (94e1521)
- preserve :: syntax for char types in TypeCast method (00b3151)
- preserve identifier quoting for PostgreSQL keywords in TypeName method (03ab203)
- preserve namespace prefixes in DefElem for ALTER TABLE SET options (19f0c48)
- preserve parentheses around SELECT statements in UNION ALL operations (5396b08)
- preserve quoted case for CREATE OPERATOR boolean flags (Hashes, Merges) (7d1df28)
- preserve quoted CREATE TYPE attribute names like "Passedbyvalue" (6ad41c0)
- preserve quoted identifiers in ALTER SEQUENCE OWNED BY clause (e05874a)
- preserve quoted identifiers in CREATE AGGREGATE DefineStmt (dc907bc)
- preserve single quotes for String literals in CREATE AGGREGATE DefineStmt (6e26233)
- preserve traditional char 'value' syntax for pg_catalog.bpchar typecasts - resolves char test suite (78d6ca9)
- prevent ONLY keyword for ALTER TYPE operations in RenameStmt (84d55a2)
- prevent quoting of operator symbols in CREATE OPERATOR statements (09fd5aa)
- prevent quoting of operator symbols in ObjectWithArgs (4a2185e)
- remove extra spaces around parentheses in CREATE TYPE DefineStmt (a6e61c0)
- remove extra spaces in ObjectWithArgs parentheses formatting (2a23998)
- remove ObjectWithArgs exception from String method and RESTRICT keyword from DropStmt to resolve schema name quoting and DROP FUNCTION test failures (9485ee1)
- remove RangeVar wrappers and inline node properties across all test files (41a98bf)
- remove RoleSpec wrappers and inline node properties across test files (b9f7151)
- remove unnecessary enum type casting from test files (bcb4fc0)
- remove unnecessary quotes from pg_catalog.char type name (51320c7)
- resolve A_Indirection and ResTarget field access handling - improved from 70β69 failed test suites (70cad69)
- resolve AccessPriv column name quoting in GRANT statements - improved from 62β61 failed test suites (1a9a785)
- resolve ALTER DOMAIN schema.domain name formatting (dd335e7)
- resolve ALTER FOREIGN DATA WRAPPER OPTIONS clause formatting with proper string quoting and spacing (19b93e6)
- resolve ALTER OPERATOR CLASS schema handling (49453a5)
- resolve ALTER OPERATOR SET clause function name quoting (5a42a93)
- resolve ALTER TABLE SET SCHEMA relation handling (108539b)
- resolve ALTER VIEW RENAME COLUMN issue - add relationType check for OBJECT_VIEW in RenameStmt OBJECT_COLUMN case (f90a66c)
- resolve AlterRoleSetStmt kind node type error by calling VariableSetStmt directly (d88d070)
- resolve AlterRoleSetStmt role name handling and TO syntax for ALTER ROLE SET statements (8ded126)
- resolve AlterTableCmd ADD COLUMN generated column issue (767bfbf)
- resolve AlterTableStmt visitor pattern issue by calling methods directly (68d811e)
- resolve bit test AST mismatches by preserving pg_catalog prefixes and removing unnecessary TypeCast parentheses (9923498)
- resolve BitString hex formatting, RenameStmt role handling, and LockStmt mode mapping (04ba6fc)
- resolve BitString literal formatting in A_Const method (ad23037)
- resolve COLLATION FOR function SQL syntax preservation (0550375)
- resolve column name quoting in GrantStmt and update TESTS.md with accurate full test suite status (29 failed, 323 passed, 91.8% pass rate) (543141b)
- resolve CompositeTypeStmt generated column issue (3129c1d)
- resolve CREATE AGGREGATE DefineStmt case sensitivity and quoting issues (3155196)
- resolve CREATE FUNCTION parameter formatting and DefElem SET clause duplication (00b0e9e)
- resolve CREATE OPERATOR COMMUTATOR/NEGATOR quoting - operators now unquoted correctly (6476d44)
- resolve CREATE PROCEDURE parsing issues (4044199)
- resolve CREATE ROLE DefElem options - add password, validUntil, and adminmembers keyword format support (00bf9a6)
- resolve CREATE ROLE isreplication DefElem handling - improved from 63β62 failed test suites (32c74db)
- resolve CREATE USER MAPPING server name quoting (397e078)
- resolve create_index test suite failures (423c4fe)
- resolve CreateAmStmt amtype mapping from single characters to full words (i->INDEX, t->TABLE) (5dfe617)
- resolve CreateCastStmt function parameter handling (f315b0e)
- resolve CreateEventTrigStmt PROCEDURE keyword and RenameStmt quoting issues (be857c4)
- resolve CreateFunctionStmt multiple body string handling for latest-postgres-create_function_sql test (45668b8)
- resolve CreateUserMappingStmt DefElem OPTIONS equals format - removed from space format conditional to allow proper key=value formatting (2f28fb1)
- resolve CreateUserMappingStmt DefElem OPTIONS format - use space separator instead of equals for PostgreSQL compliance (8150bf9)
- resolve DeclareCursorStmt SCROLL option regression - restore 92% pass rate (1cb9314)
- resolve DISTINCT clause handling in FuncCall and Aggref methods (01687ee)
- resolve domain constraint handling for ADD/DROP CONSTRAINT operations (cb1cf1d)
- resolve DoStmt argument ordering issue (ed93955)
- resolve DoStmt LANGUAGE clause ordering for arrays test (b77bf04)
- resolve DoStmt nested dollar quoting conflicts with unique tag generation (637eb1b)
- resolve DROP AGGREGATE wildcard handling and remove automatic RESTRICT behavior (b0d612a)
- resolve DROP OPERATOR CLASS USING clause ordering for 3-item AST structure (abcfd0b)
- resolve DROP TABLE schema-qualified name AST structure issue (c75130a)
- resolve EXCLUDE constraint operator quoting issue - operators like = and && no longer incorrectly quoted (5282d2e)
- resolve FetchStmt ALL sentinel value handling for FETCH ALL statements (7970aac)
- resolve foreign key constraint handling with DEFERRABLE attributes, SET CONSTRAINTS statements, and ALTER CONSTRAINT operations (fc24dc9)
- resolve foreign table partition syntax by removing empty parentheses for partitioned foreign tables (e14dd84)
- resolve function spacing, GRANT privileges, and pg_catalog type AST mismatches (84ac16f)
- resolve GrantRoleStmt admin option regression - improved from 74β72 failed tests (484a593)
- resolve GrantStmt schema handling and RoleSpec roletype support (67df951)
- resolve ImportForeignSchemaStmt OPTIONS formatting and CreateForeignTableStmt INHERITS clause handling (73d2617)
- resolve JOIN expression parentheses handling - avoid double parentheses when nested JOINs have aliases (860a0a5)
- resolve JOIN vs INNER JOIN formatting issue in create_view test (2fb257b)
- resolve JoinExpr NATURAL/CROSS JOIN handling and ViewStmt numeric options (cc6bbf2)
- resolve LockStmt lock mode mapping and add missing TABLE keyword - correct mode 3 to ROW EXCLUSIVE instead of SHARE UPDATE EXCLUSIVE (32692ed)
- resolve LockStmt lock mode mapping and CreateUserMappingStmt server name quoting (7d563b2)
- resolve LockStmt PostgreSQL compatibility - add TABLE keyword and correct 1-based lock mode mapping (db94ee5)
- resolve missing table name in RuleStmt deparser (52bf7ec)
- resolve multi-dimensional array handling and char type conversion (1d8f921)
- resolve multiple deparser issues (bb22845)
- resolve NamedArgExpr and DropStmt issues (95ca63c)
- resolve NO MINVALUE/NO MAXVALUE sequence option handling in DefElem method (605ead5)
- resolve numeric value quoting in CREATE TABLE WITH options (0726ceb)
- resolve OBJECT_RULE quoting in RenameStmt - use QuoteUtils.quote() to preserve case-sensitive identifiers like "_RETURN" (591f7a1)
- resolve PASSWORD NULL DefElem control flow issue and update TESTS.md with accurate full test suite status (30 failed, 322 passed, 91.5% pass rate) (2deb462)
- resolve RangeFunction double AS issue for function calls with column definitions (9e2e36c)
- resolve RenameStmt OBJECT_POLICY handling to include policy name and ON keyword (29d01de)
- resolve RenameStmt OBJECT_SCHEMA handling - include schema name from subname field (546e6b2)
- resolve RenameStmt regression - improved from 81β66 failed test suites (96ad6c8)
- resolve ReplicaIdentityStmt duplicate REPLICA IDENTITY output (8dd723b)
- resolve stack overflow in CreateForeignTableStmt and CreateTransformStmt deparser methods (3b3b09b)
- resolve TransactionStmt boolean value parsing for READ WRITE/DEFERRABLE (424d361)
- resolve TransactionStmt isolation level property access issue (0593689)
- resolve union AST mismatch by adding parentheses around set operation operands with ORDER BY/LIMIT clauses (72f4d1f)
- resolve VariableSetStmt empty string handling for SET statements (935c36d)
- resolve VARIADIC function call placement - apply VARIADIC to last argument instead of first (05e27b6)
- resolve window frame specification issue in FuncCall method (1f79854)
- resolve WITH clause handling in UpdateStmt (878cb30)
- resolve WITH clause nested parentheses and TypeCast CAST syntax preservation (7230717)
- restore context-aware interval TypeCast formatting - resolves SELECT '999'::interval second parsing to achieve 93.9% pass rate (67173c1)
- restore ObjectWithArgs exception and update TESTS.md with accurate full test suite status (29 failed, 323 passed, 91.8% pass rate) (9314886)
- restructure XmlExpr method with early XMLPI handling (a7d2e3a)
- revert duck typing in getNodeType() and update TESTS.md with accurate status (5224b8e)
- schema name quoting - use pure operator regex to prevent hyphen conflicts in identifiers (562d278)
- simplify getNodeType() and getNodeData() to resolve stack overflow issues (ad2ab20)
- standardize AST typing and remove unnecessary enum type casting in deparser tests (83e7b1e)
- standardize String node format and add A_Expr_Kind import in deparser.test.ts (167c531)
- update getNodeType() for wrapped/unwrapped nodes and update TESTS.md with accurate status (30 failed, 322 passed) (6c1c4dd)
- use ALTER ATTRIBUTE for ALTER TYPE operations (c8833b3)
- use direct ObjectWithArgs call in AlterFunctionStmt to preserve function arguments (741dd8c)
- use DROP ATTRIBUTE for ALTER TYPE operations (d4ee379)
- use DROP ATTRIBUTE IF EXISTS for ALTER TYPE operations (ef78bd1)
- achieve 100% test pass rate (352/352) - complete PostgreSQL 13-17 deparser compatibility (59e38ee)
- add comprehensive progress documentation and improve A_Expr parentheses handling (bb2a5af)
- add DefineStmt OBJECT_TSCONFIGURATION support and update progress (e713786)
- add GENERATED column support to ColumnDef method (c48155f)
- add missing_ok support to AlterTableCmd ADD COLUMN operation (60df636)
- add piecewise deparser testing and improve RangeFunction error handling (d11122f)
- add VAR_SET_MULTI support and TransactionStmt options handling (af47a34)
- fix A_Indirection parentheses and update progress documentation (eb60481)
- implement 23 additional AlterTableCmd subtypes for comprehensive PostgreSQL 17 support (af06bd6)
- implement comprehensive AlterTableCmd subtypes - expand from 7 to 30+ supported ALTER TABLE operations (9f32dcf)
- implement comprehensive deparser improvements (b268c41)
- implement comprehensive object type support in DropStmt and RenameStmt (f1285c1)
- implement context array propagation in visit method - enables proper parent node tracking for nested contexts (ab57d0a)
- implement missing AlterDomainStmt subtypes and RenameStmt object types (75181ac)
- migrate to required parentNodeTypes array context system (06fea43)
- migrate to robust array-based context system (8407d85)
- rebuild PostgreSQL deparser with visitor-based architecture (e6ecf04)