@pgsql/transform-ast 18.4.12 → 18.4.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +21 -20
  2. package/package.json +3 -3
package/README.md CHANGED
@@ -18,17 +18,17 @@
18
18
 
19
19
  The transform package enables you to:
20
20
 
21
- - **Transform legacy ASTs**: Convert ASTs from PostgreSQL versions 13-16 to version 17
21
+ - **Transform legacy ASTs**: Convert ASTs from PostgreSQL versions 13-17 to version 18 (or 13-16 to 17)
22
22
  - **Build unified deparsers**: Create a single deparser pipeline that works with multiple PostgreSQL versions
23
23
  - **Maintain backward compatibility**: Support legacy codebases while leveraging the latest PostgreSQL features
24
24
 
25
25
  ## Key Limitation
26
26
 
27
- This package only supports ASTs derived from SQL that is parseable by PostgreSQL 17. This means:
27
+ This package only supports ASTs derived from SQL that is parseable by the target version's parser (PostgreSQL 18 for the latest). This means:
28
28
 
29
- - ✅ **Supported**: SQL from PG13-16 that remains valid in PG17
29
+ - ✅ **Supported**: SQL from PG13-17 that remains valid in PG18
30
30
  - ❌ **Not supported**: Deprecated syntax from older versions that was removed
31
- - ❌ **Not supported**: SQL that cannot be parsed by the PG17 parser
31
+ - ❌ **Not supported**: SQL that cannot be parsed by the PG18 parser
32
32
 
33
33
  This design ensures all transformed ASTs can be reliably deparsed using the latest PostgreSQL grammar.
34
34
 
@@ -47,14 +47,14 @@ import { ASTTransformer } from '@pgsql/transform-ast';
47
47
 
48
48
  const transformer = new ASTTransformer();
49
49
 
50
- // Transform any version to PG17
51
- const pg17Ast = transformer.transformToLatest(pg13Ast, 13);
50
+ // Transform any version to the latest (PG18)
51
+ const pg18Ast = transformer.transformToLatest(pg13Ast, 13);
52
52
 
53
53
  // Transform between specific versions
54
54
  const pg15Ast = transformer.transform(pg13Ast, 13, 15);
55
55
 
56
56
  // Convenience methods
57
- const result = transformer.transform13To17(pg13Ast);
57
+ const result = transformer.transform13To18(pg13Ast);
58
58
  ```
59
59
 
60
60
  ### Direct Transformers
@@ -62,10 +62,10 @@ const result = transformer.transform13To17(pg13Ast);
62
62
  For better performance when you know source and target versions:
63
63
 
64
64
  ```typescript
65
- import { PG13ToPG17Transformer } from '@pgsql/transform-ast';
65
+ import { PG13ToPG18Transformer } from '@pgsql/transform-ast';
66
66
 
67
- const transformer = new PG13ToPG17Transformer();
68
- const pg17Ast = transformer.transform(pg13Ast);
67
+ const transformer = new PG13ToPG18Transformer();
68
+ const pg18Ast = transformer.transform(pg13Ast);
69
69
  ```
70
70
 
71
71
  ### Integration Example
@@ -73,26 +73,26 @@ const pg17Ast = transformer.transform(pg13Ast);
73
73
  ```typescript
74
74
  import { parse } from '@pgsql/parser';
75
75
  import { deparse } from 'pgsql-deparser';
76
- import { PG13ToPG17Transformer } from '@pgsql/transform-ast';
76
+ import { PG13ToPG18Transformer } from '@pgsql/transform-ast';
77
77
 
78
78
  // Parse with older version
79
79
  const pg13Ast = await parse('SELECT * FROM users', { version: 13 });
80
80
 
81
81
  // Transform to latest
82
- const transformer = new PG13ToPG17Transformer();
83
- const pg17Ast = transformer.transform(pg13Ast);
82
+ const transformer = new PG13ToPG18Transformer();
83
+ const pg18Ast = transformer.transform(pg13Ast);
84
84
 
85
85
  // Deparse with latest grammar
86
- const sql = await deparse(pg17Ast);
86
+ const sql = await deparse(pg18Ast);
87
87
  ```
88
88
 
89
89
  ## 🔄 Transformation Chain
90
90
 
91
- **Incremental**: PG13 → PG14 → PG15 → PG16 → PG17
91
+ **Incremental**: PG13 → PG14 → PG15 → PG16 → PG17 → PG18
92
92
  - Step-by-step version upgrades
93
93
  - Useful for debugging transformation issues
94
94
 
95
- **Direct**: PG13 → PG17, PG14 → PG17, etc.
95
+ **Direct**: PG13 → PG18, PG14 → PG18, etc. (PG17 targets also available)
96
96
  - Single-step transformations
97
97
  - Optimized for performance
98
98
 
@@ -100,10 +100,11 @@ const sql = await deparse(pg17Ast);
100
100
 
101
101
  | From | To | Transformer |
102
102
  |------|----|-----------|
103
- | PG13 | PG14, PG15, PG16, PG17 | `V13ToV14Transformer`, `PG13ToPG17Transformer` |
104
- | PG14 | PG15, PG16, PG17 | `V14ToV15Transformer`, `PG14ToPG17Transformer` |
105
- | PG15 | PG16, PG17 | `V15ToV16Transformer`, `PG15ToPG17Transformer` |
106
- | PG16 | PG17 | `V16ToV17Transformer`, `PG16ToPG17Transformer` |
103
+ | PG13 | PG14, PG15, PG16, PG17, PG18 | `V13ToV14Transformer`, `PG13ToPG17Transformer`, `PG13ToPG18Transformer` |
104
+ | PG14 | PG15, PG16, PG17, PG18 | `V14ToV15Transformer`, `PG14ToPG17Transformer`, `PG14ToPG18Transformer` |
105
+ | PG15 | PG16, PG17, PG18 | `V15ToV16Transformer`, `PG15ToPG17Transformer`, `PG15ToPG18Transformer` |
106
+ | PG16 | PG17, PG18 | `V16ToV17Transformer`, `PG16ToPG17Transformer`, `PG16ToPG18Transformer` |
107
+ | PG17 | PG18 | `V17ToV18Transformer`, `PG17ToPG18Transformer` |
107
108
 
108
109
  ## 🏗️ Architecture
109
110
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pgsql/transform-ast",
3
- "version": "18.4.12",
3
+ "version": "18.4.14",
4
4
  "author": "Constructive <developers@constructive.io>",
5
5
  "description": "Transform PostgreSQL AST types for pgsql-parser",
6
6
  "main": "index.js",
@@ -38,8 +38,8 @@
38
38
  "libpg-query": "18.1.5",
39
39
  "makage": "^0.5.1",
40
40
  "pg-proto-parser": "1.32.5",
41
- "pgsql-deparser": "18.3.10"
41
+ "pgsql-deparser": "18.3.12"
42
42
  },
43
43
  "keywords": [],
44
- "gitHead": "24882cc67810aaa1af8dd241594634cf54105126"
44
+ "gitHead": "b4605c200dd1ee25af88965997217a312d4afa27"
45
45
  }