rawsql-ts 0.1.3-beta → 0.3.0-beta

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 (200) hide show
  1. package/README.md +251 -8
  2. package/dist/esm/index.js +1 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/models/Clause.js +2 -2
  5. package/dist/esm/models/Clause.js.map +1 -1
  6. package/dist/esm/models/CreateTableQuery.js +62 -0
  7. package/dist/esm/models/CreateTableQuery.js.map +1 -0
  8. package/dist/esm/models/InsertQuery.js +24 -0
  9. package/dist/esm/models/InsertQuery.js.map +1 -0
  10. package/dist/esm/models/Lexeme.js +15 -14
  11. package/dist/esm/models/Lexeme.js.map +1 -1
  12. package/dist/esm/models/SelectQuery.js +2 -1
  13. package/dist/esm/models/SelectQuery.js.map +1 -1
  14. package/dist/esm/models/SimpleSelectQuery.js +82 -16
  15. package/dist/esm/models/SimpleSelectQuery.js.map +1 -1
  16. package/dist/esm/parsers/CommandExpressionParser.js +4 -4
  17. package/dist/esm/parsers/CommandExpressionParser.js.map +1 -1
  18. package/dist/esm/parsers/FunctionExpressionParser.js +10 -10
  19. package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -1
  20. package/dist/esm/parsers/GroupByParser.js +1 -1
  21. package/dist/esm/parsers/GroupByParser.js.map +1 -1
  22. package/dist/esm/parsers/IdentifierParser.js +5 -4
  23. package/dist/esm/parsers/IdentifierParser.js.map +1 -1
  24. package/dist/esm/parsers/InsertQueryParser.js +104 -0
  25. package/dist/esm/parsers/InsertQueryParser.js.map +1 -0
  26. package/dist/esm/parsers/JoinClauseParser.js +1 -1
  27. package/dist/esm/parsers/JoinClauseParser.js.map +1 -1
  28. package/dist/esm/parsers/OrderByClauseParser.js +1 -1
  29. package/dist/esm/parsers/OrderByClauseParser.js.map +1 -1
  30. package/dist/esm/parsers/OverExpressionParser.js +2 -2
  31. package/dist/esm/parsers/OverExpressionParser.js.map +1 -1
  32. package/dist/esm/parsers/ParameterExpressionParser.js +11 -2
  33. package/dist/esm/parsers/ParameterExpressionParser.js.map +1 -1
  34. package/dist/esm/parsers/ParenExpressionParser.js +1 -1
  35. package/dist/esm/parsers/ParenExpressionParser.js.map +1 -1
  36. package/dist/esm/parsers/PartitionByParser.js +1 -1
  37. package/dist/esm/parsers/PartitionByParser.js.map +1 -1
  38. package/dist/esm/parsers/SelectClauseParser.js +11 -5
  39. package/dist/esm/parsers/SelectClauseParser.js.map +1 -1
  40. package/dist/esm/parsers/SelectQueryParser.js +22 -1
  41. package/dist/esm/parsers/SelectQueryParser.js.map +1 -1
  42. package/dist/esm/parsers/SourceAliasExpressionParser.js +5 -5
  43. package/dist/esm/parsers/SourceAliasExpressionParser.js.map +1 -1
  44. package/dist/esm/parsers/SourceExpressionParser.js +1 -1
  45. package/dist/esm/parsers/SourceExpressionParser.js.map +1 -1
  46. package/dist/esm/parsers/SourceParser.js +10 -28
  47. package/dist/esm/parsers/SourceParser.js.map +1 -1
  48. package/dist/esm/parsers/SqlTokenizer.js +1 -1
  49. package/dist/esm/parsers/SqlTokenizer.js.map +1 -1
  50. package/dist/esm/parsers/UnaryExpressionParser.js +1 -1
  51. package/dist/esm/parsers/UnaryExpressionParser.js.map +1 -1
  52. package/dist/esm/parsers/ValueParser.js +42 -13
  53. package/dist/esm/parsers/ValueParser.js.map +1 -1
  54. package/dist/esm/parsers/ValuesQueryParser.js +3 -3
  55. package/dist/esm/parsers/ValuesQueryParser.js.map +1 -1
  56. package/dist/esm/parsers/WindowExpressionParser.js +3 -3
  57. package/dist/esm/parsers/WindowExpressionParser.js.map +1 -1
  58. package/dist/esm/parsers/WithClauseParser.js +1 -1
  59. package/dist/esm/parsers/WithClauseParser.js.map +1 -1
  60. package/dist/esm/tokenReaders/BaseTokenReader.js +1 -3
  61. package/dist/esm/tokenReaders/BaseTokenReader.js.map +1 -1
  62. package/dist/esm/tokenReaders/OperatorTokenReader.js +36 -9
  63. package/dist/esm/tokenReaders/OperatorTokenReader.js.map +1 -1
  64. package/dist/esm/tokenReaders/ParameterTokenReader.js +21 -1
  65. package/dist/esm/tokenReaders/ParameterTokenReader.js.map +1 -1
  66. package/dist/esm/tokenReaders/TypeTokenReader.js +3 -3
  67. package/dist/esm/tokenReaders/TypeTokenReader.js.map +1 -1
  68. package/dist/esm/transformers/CTEDisabler.js +2 -1
  69. package/dist/esm/transformers/CTEDisabler.js.map +1 -1
  70. package/dist/esm/transformers/Formatter.js +79 -8
  71. package/dist/esm/transformers/Formatter.js.map +1 -1
  72. package/dist/esm/transformers/QueryConverter.js +67 -12
  73. package/dist/esm/transformers/QueryConverter.js.map +1 -1
  74. package/dist/esm/transformers/SelectValueCollector.js +11 -16
  75. package/dist/esm/transformers/SelectValueCollector.js.map +1 -1
  76. package/dist/esm/transformers/SelectableColumnCollector.js +7 -10
  77. package/dist/esm/transformers/SelectableColumnCollector.js.map +1 -1
  78. package/dist/esm/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  79. package/dist/esm/types/index.d.ts +1 -0
  80. package/dist/esm/types/models/Clause.d.ts +4 -5
  81. package/dist/esm/types/models/CreateTableQuery.d.ts +27 -0
  82. package/dist/esm/types/models/InsertQuery.d.ts +21 -0
  83. package/dist/esm/types/models/Lexeme.d.ts +16 -16
  84. package/dist/esm/types/models/SelectQuery.d.ts +3 -2
  85. package/dist/esm/types/models/SimpleSelectQuery.d.ts +31 -6
  86. package/dist/esm/types/parsers/InsertQueryParser.d.ts +17 -0
  87. package/dist/esm/types/parsers/SelectQueryParser.d.ts +7 -0
  88. package/dist/esm/types/tokenReaders/BaseTokenReader.d.ts +1 -1
  89. package/dist/esm/types/tokenReaders/ParameterTokenReader.d.ts +2 -1
  90. package/dist/esm/types/transformers/Formatter.d.ts +20 -3
  91. package/dist/esm/types/transformers/QueryConverter.d.ts +22 -2
  92. package/dist/esm/types/transformers/SelectValueCollector.d.ts +2 -4
  93. package/dist/esm/types/transformers/SelectableColumnCollector.d.ts +3 -3
  94. package/dist/esm/types/transformers/UpstreamSelectQueryFinder.d.ts +2 -2
  95. package/dist/esm/types/utils/extractNamespacesAndName.d.ts +5 -0
  96. package/dist/esm/types/utils/parseEscapedOrDotSeparatedIdentifiers.d.ts +9 -0
  97. package/dist/esm/utils/extractNamespacesAndName.js +16 -0
  98. package/dist/esm/utils/extractNamespacesAndName.js.map +1 -0
  99. package/dist/esm/utils/parseEscapedOrDotSeparatedIdentifiers.js +39 -0
  100. package/dist/esm/utils/parseEscapedOrDotSeparatedIdentifiers.js.map +1 -0
  101. package/dist/index.d.ts +1 -0
  102. package/dist/index.js +1 -0
  103. package/dist/index.js.map +1 -1
  104. package/dist/models/Clause.d.ts +4 -5
  105. package/dist/models/Clause.js +2 -2
  106. package/dist/models/Clause.js.map +1 -1
  107. package/dist/models/CreateTableQuery.d.ts +27 -0
  108. package/dist/models/CreateTableQuery.js +66 -0
  109. package/dist/models/CreateTableQuery.js.map +1 -0
  110. package/dist/models/InsertQuery.d.ts +21 -0
  111. package/dist/models/InsertQuery.js +28 -0
  112. package/dist/models/InsertQuery.js.map +1 -0
  113. package/dist/models/Lexeme.d.ts +16 -16
  114. package/dist/models/Lexeme.js +15 -14
  115. package/dist/models/Lexeme.js.map +1 -1
  116. package/dist/models/SelectQuery.d.ts +3 -2
  117. package/dist/models/SelectQuery.js +3 -1
  118. package/dist/models/SelectQuery.js.map +1 -1
  119. package/dist/models/SimpleSelectQuery.d.ts +31 -6
  120. package/dist/models/SimpleSelectQuery.js +82 -16
  121. package/dist/models/SimpleSelectQuery.js.map +1 -1
  122. package/dist/parsers/CommandExpressionParser.js +4 -4
  123. package/dist/parsers/CommandExpressionParser.js.map +1 -1
  124. package/dist/parsers/FunctionExpressionParser.js +10 -10
  125. package/dist/parsers/FunctionExpressionParser.js.map +1 -1
  126. package/dist/parsers/GroupByParser.js +1 -1
  127. package/dist/parsers/GroupByParser.js.map +1 -1
  128. package/dist/parsers/IdentifierParser.js +5 -4
  129. package/dist/parsers/IdentifierParser.js.map +1 -1
  130. package/dist/parsers/InsertQueryParser.d.ts +17 -0
  131. package/dist/parsers/InsertQueryParser.js +108 -0
  132. package/dist/parsers/InsertQueryParser.js.map +1 -0
  133. package/dist/parsers/JoinClauseParser.js +1 -1
  134. package/dist/parsers/JoinClauseParser.js.map +1 -1
  135. package/dist/parsers/OrderByClauseParser.js +1 -1
  136. package/dist/parsers/OrderByClauseParser.js.map +1 -1
  137. package/dist/parsers/OverExpressionParser.js +2 -2
  138. package/dist/parsers/OverExpressionParser.js.map +1 -1
  139. package/dist/parsers/ParameterExpressionParser.js +11 -2
  140. package/dist/parsers/ParameterExpressionParser.js.map +1 -1
  141. package/dist/parsers/ParenExpressionParser.js +1 -1
  142. package/dist/parsers/ParenExpressionParser.js.map +1 -1
  143. package/dist/parsers/PartitionByParser.js +1 -1
  144. package/dist/parsers/PartitionByParser.js.map +1 -1
  145. package/dist/parsers/SelectClauseParser.js +11 -5
  146. package/dist/parsers/SelectClauseParser.js.map +1 -1
  147. package/dist/parsers/SelectQueryParser.d.ts +7 -0
  148. package/dist/parsers/SelectQueryParser.js +22 -1
  149. package/dist/parsers/SelectQueryParser.js.map +1 -1
  150. package/dist/parsers/SourceAliasExpressionParser.js +5 -5
  151. package/dist/parsers/SourceAliasExpressionParser.js.map +1 -1
  152. package/dist/parsers/SourceExpressionParser.js +1 -1
  153. package/dist/parsers/SourceExpressionParser.js.map +1 -1
  154. package/dist/parsers/SourceParser.js +10 -28
  155. package/dist/parsers/SourceParser.js.map +1 -1
  156. package/dist/parsers/SqlTokenizer.js +1 -1
  157. package/dist/parsers/SqlTokenizer.js.map +1 -1
  158. package/dist/parsers/UnaryExpressionParser.js +1 -1
  159. package/dist/parsers/UnaryExpressionParser.js.map +1 -1
  160. package/dist/parsers/ValueParser.js +41 -12
  161. package/dist/parsers/ValueParser.js.map +1 -1
  162. package/dist/parsers/ValuesQueryParser.js +3 -3
  163. package/dist/parsers/ValuesQueryParser.js.map +1 -1
  164. package/dist/parsers/WindowExpressionParser.js +3 -3
  165. package/dist/parsers/WindowExpressionParser.js.map +1 -1
  166. package/dist/parsers/WithClauseParser.js +1 -1
  167. package/dist/parsers/WithClauseParser.js.map +1 -1
  168. package/dist/tokenReaders/BaseTokenReader.d.ts +1 -1
  169. package/dist/tokenReaders/BaseTokenReader.js +1 -3
  170. package/dist/tokenReaders/BaseTokenReader.js.map +1 -1
  171. package/dist/tokenReaders/OperatorTokenReader.js +36 -9
  172. package/dist/tokenReaders/OperatorTokenReader.js.map +1 -1
  173. package/dist/tokenReaders/ParameterTokenReader.d.ts +2 -1
  174. package/dist/tokenReaders/ParameterTokenReader.js +21 -1
  175. package/dist/tokenReaders/ParameterTokenReader.js.map +1 -1
  176. package/dist/tokenReaders/TypeTokenReader.js +3 -3
  177. package/dist/tokenReaders/TypeTokenReader.js.map +1 -1
  178. package/dist/transformers/CTEDisabler.js +2 -1
  179. package/dist/transformers/CTEDisabler.js.map +1 -1
  180. package/dist/transformers/Formatter.d.ts +20 -3
  181. package/dist/transformers/Formatter.js +79 -8
  182. package/dist/transformers/Formatter.js.map +1 -1
  183. package/dist/transformers/QueryConverter.d.ts +22 -2
  184. package/dist/transformers/QueryConverter.js +67 -12
  185. package/dist/transformers/QueryConverter.js.map +1 -1
  186. package/dist/transformers/SelectValueCollector.d.ts +2 -4
  187. package/dist/transformers/SelectValueCollector.js +10 -15
  188. package/dist/transformers/SelectValueCollector.js.map +1 -1
  189. package/dist/transformers/SelectableColumnCollector.d.ts +3 -3
  190. package/dist/transformers/SelectableColumnCollector.js +6 -9
  191. package/dist/transformers/SelectableColumnCollector.js.map +1 -1
  192. package/dist/transformers/UpstreamSelectQueryFinder.d.ts +2 -2
  193. package/dist/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  194. package/dist/utils/extractNamespacesAndName.d.ts +5 -0
  195. package/dist/utils/extractNamespacesAndName.js +18 -0
  196. package/dist/utils/extractNamespacesAndName.js.map +1 -0
  197. package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.d.ts +9 -0
  198. package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.js +42 -0
  199. package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.js.map +1 -0
  200. package/package.json +1 -1
@@ -3,6 +3,7 @@ import { ForClause, FromClause, GroupByClause, HavingClause, LimitClause, OrderB
3
3
  import { ValueComponent } from "./ValueComponent";
4
4
  import { BinarySelectQuery } from "./BinarySelectQuery";
5
5
  import type { SelectQuery } from "./SelectQuery";
6
+ import { TableColumnResolver } from "../transformers/TableColumnResolver";
6
7
  /**
7
8
  * Represents a simple SELECT query in SQL.
8
9
  */
@@ -110,39 +111,39 @@ export declare class SimpleSelectQuery extends SqlComponent {
110
111
  * @param alias The alias for the joined table
111
112
  * @param columns The columns to use for the join condition (e.g. ["user_id"] or "user_id")
112
113
  */
113
- innerJoinRaw(joinSourceRawText: string, alias: string, columns: string | string[]): void;
114
+ innerJoinRaw(joinSourceRawText: string, alias: string, columns: string | string[], resolver?: TableColumnResolver | null): void;
114
115
  /**
115
116
  * Appends a LEFT JOIN clause to the query.
116
117
  * @param joinSourceRawText The table source text to join
117
118
  * @param alias The alias for the joined table
118
119
  * @param columns The columns to use for the join condition
119
120
  */
120
- leftJoinRaw(joinSourceRawText: string, alias: string, columns: string | string[]): void;
121
+ leftJoinRaw(joinSourceRawText: string, alias: string, columns: string | string[], resolver?: TableColumnResolver | null): void;
121
122
  /**
122
123
  * Appends a RIGHT JOIN clause to the query.
123
124
  * @param joinSourceRawText The table source text to join
124
125
  * @param alias The alias for the joined table
125
126
  * @param columns The columns to use for the join condition
126
127
  */
127
- rightJoinRaw(joinSourceRawText: string, alias: string, columns: string | string[]): void;
128
+ rightJoinRaw(joinSourceRawText: string, alias: string, columns: string | string[], resolver?: TableColumnResolver | null): void;
128
129
  /**
129
130
  * Appends an INNER JOIN clause to the query using a SourceExpression.
130
131
  * @param sourceExpr The source expression to join
131
132
  * @param columns The columns to use for the join condition
132
133
  */
133
- innerJoin(sourceExpr: SourceExpression, columns: string | string[]): void;
134
+ innerJoin(sourceExpr: SourceExpression, columns: string | string[], resolver?: TableColumnResolver | null): void;
134
135
  /**
135
136
  * Appends a LEFT JOIN clause to the query using a SourceExpression.
136
137
  * @param sourceExpr The source expression to join
137
138
  * @param columns The columns to use for the join condition
138
139
  */
139
- leftJoin(sourceExpr: SourceExpression, columns: string | string[]): void;
140
+ leftJoin(sourceExpr: SourceExpression, columns: string | string[], resolver?: TableColumnResolver | null): void;
140
141
  /**
141
142
  * Appends a RIGHT JOIN clause to the query using a SourceExpression.
142
143
  * @param sourceExpr The source expression to join
143
144
  * @param columns The columns to use for the join condition
144
145
  */
145
- rightJoin(sourceExpr: SourceExpression, columns: string | string[]): void;
146
+ rightJoin(sourceExpr: SourceExpression, columns: string | string[], resolver?: TableColumnResolver | null): void;
146
147
  /**
147
148
  * Internal helper to append a JOIN clause.
148
149
  * Parses the table source, finds the corresponding columns in the existing query context,
@@ -170,4 +171,28 @@ export declare class SimpleSelectQuery extends SqlComponent {
170
171
  * @param alias Optional alias for the CTE (e.g. 'cte_name')
171
172
  */
172
173
  appendWithRaw(rawText: string, alias: string): void;
174
+ /**
175
+ * Overrides a select item using a template literal function.
176
+ * The callback receives the SQL string of the original expression and must return a new SQL string.
177
+ * The result is parsed and set as the new select item value.
178
+ *
179
+ * Example usage:
180
+ * query.overrideSelectItemRaw("journal_date", expr => `greatest(${expr}, DATE '2025-01-01')`)
181
+ *
182
+ * @param columnName The name of the column to override
183
+ * @param fn Callback that receives the SQL string of the original expression and returns a new SQL string
184
+ */
185
+ overrideSelectItemExpr(columnName: string, fn: (expr: string) => string): void;
186
+ /**
187
+ * Appends a WHERE clause using the expression for the specified column.
188
+ * If `options.upstream` is true, applies to all upstream queries containing the column.
189
+ * If false or omitted, applies only to the current query.
190
+ *
191
+ * @param columnName The name of the column to target.
192
+ * @param exprBuilder Function that receives the column expression as a string and returns the WHERE condition string.
193
+ * @param options Optional settings. If `upstream` is true, applies to upstream queries.
194
+ */
195
+ appendWhereExpr(columnName: string, exprBuilder: (expr: string) => string, options?: {
196
+ upstream?: boolean;
197
+ }): void;
173
198
  }
@@ -0,0 +1,17 @@
1
+ import { InsertQuery } from "../models/InsertQuery";
2
+ import { Lexeme } from "../models/Lexeme";
3
+ export declare class InsertQueryParser {
4
+ /**
5
+ * Parse SQL string to InsertQuery AST.
6
+ * @param query SQL string
7
+ */
8
+ static parse(query: string): InsertQuery;
9
+ /**
10
+ * Parse from lexeme array (for internal use and tests)
11
+ */
12
+ static parseFromLexeme(lexemes: Lexeme[], index: number): {
13
+ value: InsertQuery;
14
+ newIndex: number;
15
+ };
16
+ private static parseFullQualifiedName;
17
+ }
@@ -2,6 +2,13 @@ import { Lexeme } from "../models/Lexeme";
2
2
  import { SelectQuery } from "../models/SelectQuery";
3
3
  export declare class SelectQueryParser {
4
4
  static parse(query: string): SelectQuery;
5
+ /**
6
+ * Asynchronously parse SQL string to AST.
7
+ * This method wraps the synchronous parse logic in a Promise for future extensibility.
8
+ * @param query SQL string to parse
9
+ * @returns Promise<SelectQuery>
10
+ */
11
+ static parseAsync(query: string): Promise<SelectQuery>;
5
12
  private static unionCommandSet;
6
13
  private static selectCommandSet;
7
14
  static parseFromLexeme(lexemes: Lexeme[], index: number): {
@@ -29,7 +29,7 @@ export declare abstract class BaseTokenReader {
29
29
  /**
30
30
  * Create a lexeme with the specified type and value
31
31
  */
32
- protected createLexeme(type: TokenType, value: string, maybeType?: boolean | null, comments?: string[] | null): Lexeme;
32
+ protected createLexeme(type: TokenType, value: string, comments?: string[] | null): Lexeme;
33
33
  /**
34
34
  * Get debug info for error reporting
35
35
  */
@@ -1,9 +1,10 @@
1
1
  import { BaseTokenReader } from './BaseTokenReader';
2
2
  import { Lexeme } from '../models/Lexeme';
3
3
  /**
4
- * Reads SQL parameter tokens (@param, :param, $param, ?)
4
+ * Reads SQL parameter tokens (@param, :param, $param, ?, ${param})
5
5
  */
6
6
  export declare class ParameterTokenReader extends BaseTokenReader {
7
+ constructor(input: string);
7
8
  /**
8
9
  * Try to read a parameter token
9
10
  */
@@ -1,12 +1,24 @@
1
1
  import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
2
2
  interface FormatterConfig {
3
- identifierEscape: {
3
+ identifierEscape?: {
4
4
  start: string;
5
5
  end: string;
6
6
  };
7
- parameterSymbol: string;
7
+ parameterSymbol?: string | {
8
+ start: string;
9
+ end: string;
10
+ };
11
+ /**
12
+ * If false, named parameters are not supported (e.g. MySQL: use only '?').
13
+ * If true (default), named parameters are output (e.g. :userId, @userId).
14
+ */
15
+ supportNamedParameter?: boolean;
8
16
  }
9
17
  export declare class Formatter implements SqlComponentVisitor<string> {
18
+ /**
19
+ * Preset configs for common DB dialects.
20
+ */
21
+ static readonly PRESETS: Record<string, FormatterConfig>;
10
22
  private handlers;
11
23
  private config;
12
24
  constructor();
@@ -57,7 +69,7 @@ export declare class Formatter implements SqlComponentVisitor<string> {
57
69
  private visitBinaryExpression;
58
70
  private visitLiteralExpression;
59
71
  private visitParameterExpression;
60
- private visitSelectExpression;
72
+ private visitSelectItemExpression;
61
73
  private visitSelectClause;
62
74
  private visitSelectQuery;
63
75
  private visitArrayExpression;
@@ -78,5 +90,10 @@ export declare class Formatter implements SqlComponentVisitor<string> {
78
90
  private visitIdentifierString;
79
91
  private visitValuesQuery;
80
92
  private visitTupleExpression;
93
+ /**
94
+ * Formats a CreateTableQuery into SQL string.
95
+ */
96
+ private visitCreateTableQuery;
97
+ private visitInsertQuery;
81
98
  }
82
99
  export {};
@@ -1,4 +1,6 @@
1
1
  import { SelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
2
+ import { CreateTableQuery } from "../models/CreateTableQuery";
3
+ import { InsertQuery } from "../models/InsertQuery";
2
4
  /**
3
5
  * Converts various SELECT query types to a standard SimpleSelectQuery format.
4
6
  * - SimpleSelectQuery is returned as-is
@@ -14,9 +16,10 @@ export declare class QueryConverter {
14
16
  * Converts a SELECT query to a standard SimpleSelectQuery form.
15
17
  *
16
18
  * @param query The query to convert
19
+ * @param columns Optional: column names for VALUES query
17
20
  * @returns A SimpleSelectQuery
18
21
  */
19
- static toSimple(query: SelectQuery): SimpleSelectQuery;
22
+ static toSimple(query: SelectQuery, columns?: string[]): SimpleSelectQuery;
20
23
  /**
21
24
  * Converts a BinarySelectQuery (UNION, EXCEPT, etc.) to a SimpleSelectQuery
22
25
  * by wrapping it in SELECT * FROM (original) AS bq
@@ -26,9 +29,10 @@ export declare class QueryConverter {
26
29
  */
27
30
  private static toSimpleBinaryQuery;
28
31
  /**
29
- * Converts a ValuesQuery to a SimpleSelectQuery with sequentially numbered columns
32
+ * Converts a ValuesQuery to a SimpleSelectQuery with sequentially numbered columns or user-specified columns
30
33
  *
31
34
  * @param query The VALUES query to convert
35
+ * @param columns Optional: column names
32
36
  * @returns A SimpleSelectQuery
33
37
  */
34
38
  private static toSimpleValuesQuery;
@@ -38,4 +42,20 @@ export declare class QueryConverter {
38
42
  * @returns A SELECT clause with *
39
43
  */
40
44
  private static createSelectAllClause;
45
+ /**
46
+ * Converts a SELECT query to a CREATE TABLE query (CREATE [TEMPORARY] TABLE ... AS SELECT ...)
47
+ * @param query The SELECT query to use as the source
48
+ * @param tableName The name of the table to create
49
+ * @param isTemporary If true, creates a temporary table
50
+ * @returns A CreateTableQuery instance
51
+ */
52
+ static toCreateTableQuery(query: SelectQuery, tableName: string, isTemporary?: boolean): CreateTableQuery;
53
+ /**
54
+ * Converts a SELECT query to an INSERT query (INSERT INTO ... SELECT ...)
55
+ * @param selectQuery The SELECT query to use as the source
56
+ * @param tableName The name of the table to insert into
57
+ * @param columns Optional: array of column names. If omitted, columns are inferred from the selectQuery
58
+ * @returns An InsertQuery instance
59
+ */
60
+ static toInsertQuery(selectQuery: SimpleSelectQuery, tableName: string): InsertQuery;
41
61
  }
@@ -12,11 +12,11 @@ export declare class SelectValueCollector implements SqlComponentVisitor<void> {
12
12
  private selectValues;
13
13
  private visitedNodes;
14
14
  private isRootVisit;
15
- private tableColumnResolver?;
15
+ private tableColumnResolver;
16
16
  private commonTableCollector;
17
17
  private commonTables;
18
18
  initialCommonTables: CommonTable[] | null;
19
- constructor(tableColumnResolver?: TableColumnResolver, initialCommonTables?: CommonTable[] | null);
19
+ constructor(tableColumnResolver?: TableColumnResolver | null, initialCommonTables?: CommonTable[] | null);
20
20
  /**
21
21
  * Get all collected SelectItems as an array of objects with name and value properties
22
22
  * @returns An array of objects with name (string) and value (ValueComponent) properties
@@ -52,9 +52,7 @@ export declare class SelectValueCollector implements SqlComponentVisitor<void> {
52
52
  private processSourceExpression;
53
53
  private visitSelectClause;
54
54
  private processSelectItem;
55
- private processValueComponent;
56
55
  private visitSourceExpression;
57
56
  private visitFromClause;
58
57
  private addSelectValueAsUnique;
59
58
  }
60
- export { TableColumnResolver };
@@ -1,6 +1,6 @@
1
1
  import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
2
2
  import { ValueComponent } from "../models/ValueComponent";
3
- import { TableColumnResolver } from "./SelectValueCollector";
3
+ import { TableColumnResolver } from "./TableColumnResolver";
4
4
  /**
5
5
  * A visitor that collects all ColumnReference instances from a SQL query structure.
6
6
  * This visitor scans through all clauses and collects all unique ColumnReference objects.
@@ -15,11 +15,11 @@ export declare class SelectableColumnCollector implements SqlComponentVisitor<vo
15
15
  private visitedNodes;
16
16
  private formatter;
17
17
  private isRootVisit;
18
- private tableColumnResolver?;
18
+ private tableColumnResolver;
19
19
  private commonTableCollector;
20
20
  private selectValueCollector;
21
21
  private commonTables;
22
- constructor(tableColumnResolver?: TableColumnResolver);
22
+ constructor(tableColumnResolver?: TableColumnResolver | null);
23
23
  getValues(): {
24
24
  name: string;
25
25
  value: ValueComponent;
@@ -1,4 +1,4 @@
1
- import { SelectQuery } from "../models/SelectQuery";
1
+ import { SelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
2
2
  /**
3
3
  * UpstreamSelectQueryFinder searches upstream queries for the specified columns.
4
4
  * If a query (including its upstream CTEs or subqueries) contains all columns,
@@ -15,7 +15,7 @@ export declare class UpstreamSelectQueryFinder {
15
15
  * @param columnNames Array of column names to check for.
16
16
  * @returns An array of SelectQuery objects, or an empty array if not found.
17
17
  */
18
- find(query: SelectQuery, columnNames: string[]): SelectQuery[];
18
+ find(query: SelectQuery, columnNames: string[]): SimpleSelectQuery[];
19
19
  private handleTableSource;
20
20
  private handleSubQuerySource;
21
21
  /**
@@ -0,0 +1,5 @@
1
+ declare function extractNamespacesAndName(identifiers: string[]): {
2
+ namespaces: string[] | null;
3
+ name: string;
4
+ };
5
+ export { extractNamespacesAndName };
@@ -0,0 +1,9 @@
1
+ import { Lexeme } from "../models/Lexeme";
2
+ /**
3
+ * Parses SQL Server-style escaped identifiers ([table]) and dot-separated identifiers.
4
+ * Returns the list of identifiers and the new index after parsing.
5
+ */
6
+ export declare function parseEscapedOrDotSeparatedIdentifiers(lexemes: Lexeme[], index: number): {
7
+ identifiers: string[];
8
+ newIndex: number;
9
+ };
@@ -0,0 +1,16 @@
1
+ // Utility to extract namespaces and the final name from an array of identifiers
2
+ // Example: ["db", "schema", "users"] => { namespaces: ["db", "schema"], name: "users" }
3
+ function extractNamespacesAndName(identifiers) {
4
+ if (!identifiers || identifiers.length === 0) {
5
+ throw new Error("Identifier list is empty");
6
+ }
7
+ if (identifiers.length === 1) {
8
+ return { namespaces: null, name: identifiers[0] };
9
+ }
10
+ return {
11
+ namespaces: identifiers.slice(0, -1),
12
+ name: identifiers[identifiers.length - 1]
13
+ };
14
+ }
15
+ export { extractNamespacesAndName };
16
+ //# sourceMappingURL=extractNamespacesAndName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractNamespacesAndName.js","sourceRoot":"","sources":["../../../src/utils/extractNamespacesAndName.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,wFAAwF;AACxF,SAAS,wBAAwB,CAAC,WAAqB;IACnD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,OAAO;QACH,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;KAC5C,CAAC;AACN,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { TokenType } from "../models/Lexeme";
2
+ /**
3
+ * Parses SQL Server-style escaped identifiers ([table]) and dot-separated identifiers.
4
+ * Returns the list of identifiers and the new index after parsing.
5
+ */
6
+ export function parseEscapedOrDotSeparatedIdentifiers(lexemes, index) {
7
+ let idx = index;
8
+ const identifiers = [];
9
+ while (idx < lexemes.length) {
10
+ if (lexemes[idx].type & TokenType.OpenBracket) {
11
+ idx++; // skip [
12
+ if (idx >= lexemes.length || !(lexemes[idx].type & TokenType.Identifier)) {
13
+ throw new Error(`Expected identifier after '[' at position ${idx}`);
14
+ }
15
+ identifiers.push(lexemes[idx].value);
16
+ idx++;
17
+ if (idx >= lexemes.length || lexemes[idx].value !== "]") {
18
+ throw new Error(`Expected closing ']' after identifier at position ${idx}`);
19
+ }
20
+ idx++; // skip ]
21
+ }
22
+ else if (lexemes[idx].type & TokenType.Identifier) {
23
+ identifiers.push(lexemes[idx].value);
24
+ idx++;
25
+ }
26
+ else {
27
+ break;
28
+ }
29
+ // Handle dot for schema.table or db.schema.table
30
+ if (idx < lexemes.length && (lexemes[idx].type & TokenType.Dot)) {
31
+ idx++; // skip dot
32
+ }
33
+ else {
34
+ break;
35
+ }
36
+ }
37
+ return { identifiers, newIndex: idx };
38
+ }
39
+ //# sourceMappingURL=parseEscapedOrDotSeparatedIdentifiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseEscapedOrDotSeparatedIdentifiers.js","sourceRoot":"","sources":["../../../src/utils/parseEscapedOrDotSeparatedIdentifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,qCAAqC,CAAC,OAAiB,EAAE,KAAa;IAClF,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAC5C,GAAG,EAAE,CAAC,CAAC,SAAS;YAChB,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvE,MAAM,IAAI,KAAK,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACrC,GAAG,EAAE,CAAC;YACN,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,qDAAqD,GAAG,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,GAAG,EAAE,CAAC,CAAC,SAAS;QACpB,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;YAClD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACrC,GAAG,EAAE,CAAC;QACV,CAAC;aAAM,CAAC;YACJ,MAAM;QACV,CAAC;QACD,iDAAiD;QACjD,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,GAAG,EAAE,CAAC,CAAC,WAAW;QACtB,CAAC;aAAM,CAAC;YACJ,MAAM;QACV,CAAC;IACL,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC1C,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './parsers/SelectQueryParser';
2
+ export * from './parsers/InsertQueryParser';
2
3
  export * from './models/BinarySelectQuery';
3
4
  export * from './models/SelectQuery';
4
5
  export * from './models/ValueComponent';
package/dist/index.js CHANGED
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  // Entry point for rawsql-ts package
18
18
  __exportStar(require("./parsers/SelectQueryParser"), exports);
19
+ __exportStar(require("./parsers/InsertQueryParser"), exports);
19
20
  __exportStar(require("./models/BinarySelectQuery"), exports);
20
21
  __exportStar(require("./models/SelectQuery"), exports);
21
22
  __exportStar(require("./models/ValueComponent"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AAErC,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,gEAA8C;AAC9C,sEAAoD;AACpD,2EAAyD;AACzD,qEAAmD;AACnD,sEAAoD;AACpD,2EAAyD;AACzD,oEAAoE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAC5C,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AAErC,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,gEAA8C;AAC9C,sEAAoD;AACpD,2EAAyD;AACzD,qEAAmD;AACnD,sEAAoD;AACpD,2EAAyD;AACzD,oEAAoE"}
@@ -1,18 +1,17 @@
1
1
  import { SelectQuery } from "./SelectQuery";
2
2
  import { SqlComponent } from "./SqlComponent";
3
3
  import { IdentifierString, RawString, ValueComponent, WindowFrameExpression } from "./ValueComponent";
4
- export type SelectComponent = SelectItem | ValueComponent;
5
4
  export declare class SelectItem extends SqlComponent {
6
5
  static kind: symbol;
7
6
  value: ValueComponent;
8
- identifier: IdentifierString;
9
- constructor(value: ValueComponent, name: string);
7
+ identifier: IdentifierString | null;
8
+ constructor(value: ValueComponent, name?: string | null);
10
9
  }
11
10
  export declare class SelectClause extends SqlComponent {
12
11
  static kind: symbol;
13
- items: SelectComponent[];
12
+ items: SelectItem[];
14
13
  distinct: DistinctComponent | null;
15
- constructor(items: SelectComponent[], distinct?: DistinctComponent | null);
14
+ constructor(items: SelectItem[], distinct?: DistinctComponent | null);
16
15
  }
17
16
  export type DistinctComponent = Distinct | DistinctOn;
18
17
  export declare class Distinct extends SqlComponent {
@@ -4,10 +4,10 @@ exports.SourceAliasExpression = exports.ForClause = exports.LockMode = exports.F
4
4
  const SqlComponent_1 = require("./SqlComponent");
5
5
  const ValueComponent_1 = require("./ValueComponent");
6
6
  class SelectItem extends SqlComponent_1.SqlComponent {
7
- constructor(value, name) {
7
+ constructor(value, name = null) {
8
8
  super();
9
9
  this.value = value;
10
- this.identifier = new ValueComponent_1.IdentifierString(name);
10
+ this.identifier = name ? new ValueComponent_1.IdentifierString(name) : null;
11
11
  }
12
12
  }
13
13
  exports.SelectItem = SelectItem;
@@ -1 +1 @@
1
- {"version":3,"file":"Clause.js","sourceRoot":"","sources":["../../src/models/Clause.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Clause.js","sourceRoot":"","sources":["../../src/models/Clause.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { SqlComponent } from "./SqlComponent";
2
+ import type { SelectQuery } from "./SelectQuery";
3
+ import { IdentifierString } from "./ValueComponent";
4
+ import { SimpleSelectQuery } from "./SimpleSelectQuery";
5
+ export declare class CreateTableQuery extends SqlComponent {
6
+ /** SqlComponent kind symbol for visitor pattern */
7
+ static kind: symbol;
8
+ /** Table name (with optional schema) */
9
+ tableName: IdentifierString;
10
+ /** If true, this is a temporary table */
11
+ isTemporary: boolean;
12
+ /** Optional: SELECT query for AS SELECT ... */
13
+ asSelectQuery?: SelectQuery;
14
+ constructor(params: {
15
+ tableName: string;
16
+ isTemporary?: boolean;
17
+ asSelectQuery?: SelectQuery;
18
+ });
19
+ /**
20
+ * Returns a SelectQuery that selects all columns from this table.
21
+ */
22
+ getSelectQuery(): SimpleSelectQuery;
23
+ /**
24
+ * Returns a SelectQuery that counts all rows in this table.
25
+ */
26
+ getCountQuery(): SimpleSelectQuery;
27
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateTableQuery = void 0;
4
+ const SqlComponent_1 = require("./SqlComponent");
5
+ const ValueComponent_1 = require("./ValueComponent");
6
+ const SimpleSelectQuery_1 = require("./SimpleSelectQuery");
7
+ const Clause_1 = require("./Clause");
8
+ const SelectValueCollector_1 = require("../transformers/SelectValueCollector");
9
+ // Represents a CREATE TABLE query model
10
+ // Supports temporary tables and AS SELECT ...
11
+ class CreateTableQuery extends SqlComponent_1.SqlComponent {
12
+ constructor(params) {
13
+ var _a;
14
+ super();
15
+ this.tableName = new ValueComponent_1.IdentifierString(params.tableName);
16
+ this.isTemporary = (_a = params.isTemporary) !== null && _a !== void 0 ? _a : false;
17
+ this.asSelectQuery = params.asSelectQuery;
18
+ }
19
+ /**
20
+ * Returns a SelectQuery that selects all columns from this table.
21
+ */
22
+ getSelectQuery() {
23
+ let selectItems;
24
+ if (this.asSelectQuery) {
25
+ // Use SelectValueCollector to get columns from asSelectQuery
26
+ const collector = new SelectValueCollector_1.SelectValueCollector();
27
+ const values = collector.collect(this.asSelectQuery);
28
+ selectItems = values.map(val => new Clause_1.SelectItem(val.value, val.name));
29
+ }
30
+ else {
31
+ // fallback: wildcard
32
+ selectItems = [new Clause_1.SelectItem(new ValueComponent_1.RawString("*"))];
33
+ }
34
+ return new SimpleSelectQuery_1.SimpleSelectQuery(null, // withClause
35
+ new Clause_1.SelectClause(selectItems), new Clause_1.FromClause(new Clause_1.SourceExpression(new Clause_1.TableSource(null, this.tableName.name), null), null // joins
36
+ ), null, // whereClause
37
+ null, // groupByClause
38
+ null, // havingClause
39
+ null, // orderByClause
40
+ null, // windowFrameClause
41
+ null, // rowLimitClause
42
+ null // forClause
43
+ );
44
+ }
45
+ /**
46
+ * Returns a SelectQuery that counts all rows in this table.
47
+ */
48
+ getCountQuery() {
49
+ return new SimpleSelectQuery_1.SimpleSelectQuery(null, // withClause
50
+ new Clause_1.SelectClause([
51
+ new Clause_1.SelectItem(new ValueComponent_1.FunctionCall("count", new ValueComponent_1.ColumnReference(null, "*"), null))
52
+ ]), new Clause_1.FromClause(new Clause_1.SourceExpression(new Clause_1.TableSource(null, this.tableName.name), null), null // joins
53
+ ), null, // whereClause
54
+ null, // groupByClause
55
+ null, // havingClause
56
+ null, // orderByClause
57
+ null, // windowFrameClause
58
+ null, // rowLimitClause
59
+ null // forClause
60
+ );
61
+ }
62
+ }
63
+ exports.CreateTableQuery = CreateTableQuery;
64
+ /** SqlComponent kind symbol for visitor pattern */
65
+ CreateTableQuery.kind = Symbol("CreateTableQuery");
66
+ //# sourceMappingURL=CreateTableQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateTableQuery.js","sourceRoot":"","sources":["../../src/models/CreateTableQuery.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C,qDAA8F;AAC9F,2DAAwD;AACxD,qCAA+F;AAC/F,+EAA4E;AAE5E,wCAAwC;AACxC,8CAA8C;AAC9C,MAAa,gBAAiB,SAAQ,2BAAY;IAU9C,YAAY,MAIX;;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,iCAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,KAAK,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,cAAc;QACV,IAAI,WAAyB,CAAC;QAC9B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,6DAA6D;YAC7D,MAAM,SAAS,GAAG,IAAI,2CAAoB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrD,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,mBAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACJ,qBAAqB;YACrB,WAAW,GAAG,CAAC,IAAI,mBAAU,CAAC,IAAI,0BAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,qCAAiB,CACxB,IAAI,EAAE,aAAa;QACnB,IAAI,qBAAY,CAAC,WAAW,CAAC,EAC7B,IAAI,mBAAU,CACV,IAAI,yBAAgB,CAChB,IAAI,oBAAW,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAC1C,IAAI,CACP,EACD,IAAI,CAAC,QAAQ;SAChB,EACD,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,iBAAiB;QACvB,IAAI,CAAE,YAAY;SACrB,CAAC;IACN,CAAC;IAED;;OAEG;IACH,aAAa;QACT,OAAO,IAAI,qCAAiB,CACxB,IAAI,EAAE,aAAa;QACnB,IAAI,qBAAY,CAAC;YACb,IAAI,mBAAU,CAAC,IAAI,6BAAY,CAAC,OAAO,EAAE,IAAI,gCAAe,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;SAClF,CAAC,EACF,IAAI,mBAAU,CACV,IAAI,yBAAgB,CAChB,IAAI,oBAAW,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAC1C,IAAI,CACP,EACD,IAAI,CAAC,QAAQ;SAChB,EACD,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,iBAAiB;QACvB,IAAI,CAAE,YAAY;SACrB,CAAC;IACN,CAAC;;AA/EL,4CAgFC;AA/EG,mDAAmD;AAC5C,qBAAI,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { SqlComponent } from "./SqlComponent";
2
+ import { IdentifierString } from "./ValueComponent";
3
+ import { SelectQuery } from "./SelectQuery";
4
+ export declare class InsertQuery extends SqlComponent {
5
+ static kind: symbol;
6
+ namespaces: IdentifierString[] | null;
7
+ table: IdentifierString;
8
+ columns: IdentifierString[];
9
+ selectQuery: SelectQuery | null;
10
+ /**
11
+ * @param params.table Table name (string or IdentifierString)
12
+ * @param params.columns Array of column names (string[] or IdentifierString[])
13
+ * @param params.selectQuery SELECT/VALUES query (required)
14
+ */
15
+ constructor(params: {
16
+ namespaces: (string | IdentifierString)[] | null;
17
+ table: string | IdentifierString;
18
+ columns: (string | IdentifierString)[];
19
+ selectQuery?: SelectQuery | null;
20
+ });
21
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InsertQuery = void 0;
4
+ // filepath: src/models/InsertQuery.ts
5
+ // Represents an INSERT query in SQL.
6
+ // Supports single/multi-row VALUES and INSERT ... SELECT.
7
+ const SqlComponent_1 = require("./SqlComponent");
8
+ const ValueComponent_1 = require("./ValueComponent");
9
+ class InsertQuery extends SqlComponent_1.SqlComponent {
10
+ /**
11
+ * @param params.table Table name (string or IdentifierString)
12
+ * @param params.columns Array of column names (string[] or IdentifierString[])
13
+ * @param params.selectQuery SELECT/VALUES query (required)
14
+ */
15
+ constructor(params) {
16
+ var _a;
17
+ super();
18
+ this.namespaces = params.namespaces
19
+ ? params.namespaces.map(ns => typeof ns === "string" ? new ValueComponent_1.IdentifierString(ns) : ns)
20
+ : null;
21
+ this.table = typeof params.table === "string" ? new ValueComponent_1.IdentifierString(params.table) : params.table;
22
+ this.columns = params.columns.map(c => typeof c === "string" ? new ValueComponent_1.IdentifierString(c) : c);
23
+ this.selectQuery = (_a = params.selectQuery) !== null && _a !== void 0 ? _a : null;
24
+ }
25
+ }
26
+ exports.InsertQuery = InsertQuery;
27
+ InsertQuery.kind = Symbol("InsertQuery");
28
+ //# sourceMappingURL=InsertQuery.js.map