rawsql-ts 0.12.1 → 0.13.0
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.
- package/LICENSE +21 -0
- package/dist/esm/index.js +91 -95
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +8 -8
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/src/formatters/OriginalFormatRestorer.js.map +1 -0
- package/dist/esm/src/index.d.ts +116 -0
- package/dist/esm/src/index.js +111 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/models/BinarySelectQuery.js.map +1 -0
- package/dist/esm/src/models/CTEError.js.map +1 -0
- package/dist/esm/src/models/Clause.js.map +1 -0
- package/dist/esm/src/models/CreateTableQuery.js.map +1 -0
- package/dist/esm/src/models/DDLStatements.js.map +1 -0
- package/dist/esm/src/models/DeleteQuery.js.map +1 -0
- package/dist/esm/src/models/FormattingLexeme.js.map +1 -0
- package/dist/esm/src/models/HintClause.js.map +1 -0
- package/dist/esm/src/models/InsertQuery.js.map +1 -0
- package/dist/esm/src/models/KeywordTrie.js.map +1 -0
- package/dist/esm/src/models/Lexeme.js.map +1 -0
- package/dist/esm/src/models/MergeQuery.js.map +1 -0
- package/dist/esm/src/models/SelectQuery.js.map +1 -0
- package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -0
- package/dist/esm/src/models/SqlComponent.js.map +1 -0
- package/dist/esm/src/models/SqlPrintToken.js.map +1 -0
- package/dist/esm/src/models/TableDefinitionModel.js.map +1 -0
- package/dist/esm/src/models/UpdateQuery.js.map +1 -0
- package/dist/esm/src/models/ValueComponent.d.ts +224 -0
- package/dist/esm/src/models/ValueComponent.js +348 -0
- package/dist/esm/src/models/ValueComponent.js.map +1 -0
- package/dist/esm/src/models/ValuesQuery.js.map +1 -0
- package/dist/esm/src/parsers/AlterTableParser.js +428 -0
- package/dist/esm/src/parsers/AlterTableParser.js.map +1 -0
- package/dist/esm/src/parsers/AnalyzeStatementParser.js.map +1 -0
- package/dist/esm/src/parsers/CommandExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/CommonTableParser.js.map +1 -0
- package/dist/esm/src/parsers/CreateIndexParser.js.map +1 -0
- package/dist/esm/src/parsers/CreateTableParser.js.map +1 -0
- package/dist/esm/src/parsers/DeleteClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/DeleteQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/DropConstraintParser.js.map +1 -0
- package/dist/esm/src/parsers/DropIndexParser.js.map +1 -0
- package/dist/esm/src/parsers/DropTableParser.js.map +1 -0
- package/dist/esm/src/parsers/ExplainStatementParser.js.map +1 -0
- package/dist/esm/src/parsers/FetchClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/ForClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/FromClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/FullNameParser.js.map +1 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.d.ts +64 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.js +487 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/GroupByParser.js.map +1 -0
- package/dist/esm/src/parsers/HavingParser.js.map +1 -0
- package/dist/esm/src/parsers/IdentifierDecorator.js.map +1 -0
- package/dist/esm/src/parsers/IdentifierParser.js.map +1 -0
- package/dist/esm/src/parsers/InsertQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/JoinClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/JoinOnClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/JoinUsingClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/KeywordParser.js.map +1 -0
- package/dist/esm/src/parsers/LimitClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/LiteralParser.js.map +1 -0
- package/dist/esm/src/parsers/MergeQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/OffsetClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/OrderByClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/OverExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/ParameterDecorator.js.map +1 -0
- package/dist/esm/src/parsers/ParameterExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/ParseError.js.map +1 -0
- package/dist/esm/src/parsers/PartitionByParser.js.map +1 -0
- package/dist/esm/src/parsers/ReturningClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/SetClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/SourceAliasExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/SourceExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/SourceParser.js.map +1 -0
- package/dist/esm/src/parsers/SqlParser.js.map +1 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +312 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +3076 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -0
- package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -0
- package/dist/esm/src/parsers/StringSpecifierExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/UnaryExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/UpdateClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/UpdateQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/UsingClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/ValueParser.js +531 -0
- package/dist/esm/src/parsers/ValueParser.js.map +1 -0
- package/dist/esm/src/parsers/ValuesQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/WhereClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/WindowClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/WindowExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/WithClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
- package/dist/esm/src/reporting/models/DataFlowEdge.js.map +1 -0
- package/dist/esm/src/reporting/models/DataFlowGraph.js.map +1 -0
- package/dist/esm/src/reporting/models/DataFlowNode.js.map +1 -0
- package/dist/esm/src/reporting/services/CTEHandler.js.map +1 -0
- package/dist/esm/src/reporting/services/DataSourceHandler.js.map +1 -0
- package/dist/esm/src/reporting/services/JoinHandler.js.map +1 -0
- package/dist/esm/src/reporting/services/ProcessHandler.js.map +1 -0
- package/dist/esm/src/tokenReaders/BaseTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/FunctionTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/IdentifierTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/LiteralTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/OperatorTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/ParameterTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/StringSpecifierTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/SymbolTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/TokenReaderManager.js.map +1 -0
- package/dist/esm/src/tokenReaders/TypeTokenReader.js.map +1 -0
- package/dist/esm/src/transformers/AliasRenamer.js.map +1 -0
- package/dist/esm/src/transformers/CTEBuilder.js.map +1 -0
- package/dist/esm/src/transformers/CTECollector.js.map +1 -0
- package/dist/esm/src/transformers/CTEComposer.js.map +1 -0
- package/dist/esm/src/transformers/CTEDependencyAnalyzer.js.map +1 -0
- package/dist/esm/src/transformers/CTEDependencyTracer.js.map +1 -0
- package/dist/esm/src/transformers/CTEDisabler.js.map +1 -0
- package/dist/esm/src/transformers/CTEInjector.js.map +1 -0
- package/dist/esm/src/transformers/CTENormalizer.js.map +1 -0
- package/dist/esm/src/transformers/CTEQueryDecomposer.js.map +1 -0
- package/dist/esm/src/transformers/CTERenamer.js.map +1 -0
- package/dist/esm/src/transformers/CTETableReferenceCollector.js.map +1 -0
- package/dist/esm/src/transformers/ColumnReferenceCollector.js +464 -0
- package/dist/esm/src/transformers/ColumnReferenceCollector.js.map +1 -0
- package/dist/esm/src/transformers/DDLDiffGenerator.d.ts +14 -0
- package/dist/esm/src/transformers/DDLDiffGenerator.js +197 -0
- package/dist/esm/src/transformers/DDLDiffGenerator.js.map +1 -0
- package/dist/esm/src/transformers/DDLGeneralizer.js.map +1 -0
- package/dist/esm/src/transformers/DDLToFixtureConverter.js.map +1 -0
- package/dist/esm/src/transformers/DeleteResultSelectConverter.js +394 -0
- package/dist/esm/src/transformers/DeleteResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -0
- package/dist/esm/src/transformers/EnhancedJsonMapping.js.map +1 -0
- package/dist/esm/src/transformers/FilterableItemCollector.js.map +1 -0
- package/dist/esm/src/transformers/FixtureCteBuilder.js.map +1 -0
- package/dist/esm/src/transformers/FormatOptionResolver.js.map +1 -0
- package/dist/esm/src/transformers/Formatter.js.map +1 -0
- package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
- package/dist/esm/src/transformers/InsertResultSelectConverter.d.ts +64 -0
- package/dist/esm/src/transformers/InsertResultSelectConverter.js +495 -0
- package/dist/esm/src/transformers/InsertResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/JoinAggregationDecomposer.js.map +1 -0
- package/dist/esm/src/transformers/JsonMappingConverter.js.map +1 -0
- package/dist/esm/src/transformers/JsonMappingUnifier.js.map +1 -0
- package/dist/esm/src/transformers/LinePrinter.js.map +1 -0
- package/dist/esm/src/transformers/MergeResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/ModelDrivenJsonMapping.js.map +1 -0
- package/dist/esm/src/transformers/OnelineFormattingHelper.js.map +1 -0
- package/dist/esm/src/transformers/ParameterCollector.js.map +1 -0
- package/dist/esm/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -0
- package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js.map +1 -0
- package/dist/esm/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -0
- package/dist/esm/src/transformers/QueryBuilder.js.map +1 -0
- package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js.map +1 -0
- package/dist/esm/src/transformers/SchemaCollector.js.map +1 -0
- package/dist/esm/src/transformers/SelectResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/SelectValueCollector.js.map +1 -0
- package/dist/esm/src/transformers/SelectableColumnCollector.js.map +1 -0
- package/dist/esm/src/transformers/SimulatedSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/SmartRenamer.js.map +1 -0
- package/dist/esm/src/transformers/SqlFormatter.js.map +1 -0
- package/dist/esm/src/transformers/SqlIdentifierRenamer.js.map +1 -0
- package/dist/esm/src/transformers/SqlOutputToken.js.map +1 -0
- package/dist/esm/src/transformers/SqlPaginationInjector.js.map +1 -0
- package/dist/esm/src/transformers/SqlParamInjector.js.map +1 -0
- package/dist/esm/src/transformers/SqlParameterBinder.js.map +1 -0
- package/dist/esm/src/transformers/SqlPrinter.js +1473 -0
- package/dist/esm/src/transformers/SqlPrinter.js.map +1 -0
- package/dist/esm/src/transformers/SqlSortInjector.js.map +1 -0
- package/dist/esm/src/transformers/TableColumnResolver.js.map +1 -0
- package/dist/esm/src/transformers/TableSourceCollector.js +431 -0
- package/dist/esm/src/transformers/TableSourceCollector.js.map +1 -0
- package/dist/esm/src/transformers/TypeTransformationPostProcessor.js.map +1 -0
- package/dist/esm/src/transformers/UpdateResultSelectConverter.js +340 -0
- package/dist/esm/src/transformers/UpdateResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js.map +1 -0
- package/dist/esm/src/types/Formatting.js.map +1 -0
- package/dist/esm/src/utils/CTERegionDetector.js.map +1 -0
- package/dist/esm/src/utils/CommentEditor.js.map +1 -0
- package/dist/esm/src/utils/CommentUtils.js.map +1 -0
- package/dist/esm/src/utils/CursorContextAnalyzer.js.map +1 -0
- package/dist/esm/src/utils/IntelliSenseApi.js.map +1 -0
- package/dist/esm/src/utils/JsonSchemaValidator.js.map +1 -0
- package/dist/esm/src/utils/KeywordCache.js.map +1 -0
- package/dist/esm/src/utils/LexemeCursor.js.map +1 -0
- package/dist/esm/src/utils/MultiQuerySplitter.js.map +1 -0
- package/dist/esm/src/utils/OperatorPrecedence.js.map +1 -0
- package/dist/esm/src/utils/ParameterDetector.js.map +1 -0
- package/dist/esm/src/utils/ParameterHelper.js.map +1 -0
- package/dist/esm/src/utils/ParameterRemover.js +777 -0
- package/dist/esm/src/utils/ParameterRemover.js.map +1 -0
- package/dist/esm/src/utils/ParserStringUtils.js.map +1 -0
- package/dist/esm/src/utils/PositionAwareParser.js.map +1 -0
- package/dist/esm/src/utils/SchemaManager.js.map +1 -0
- package/dist/esm/src/utils/ScopeResolver.js.map +1 -0
- package/dist/esm/src/utils/SelectQueryWithClauseHelper.js.map +1 -0
- package/dist/esm/src/utils/SqlSchemaValidator.js.map +1 -0
- package/dist/esm/src/utils/TextPositionUtils.js.map +1 -0
- package/dist/esm/src/utils/ValueComponentRewriter.js +180 -0
- package/dist/esm/src/utils/ValueComponentRewriter.js.map +1 -0
- package/dist/esm/src/utils/charLookupTable.js.map +1 -0
- package/dist/esm/src/utils/stringUtils.js.map +1 -0
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -0
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +8 -8
- package/dist/index.min.js.map +4 -4
- package/dist/models/DDLStatements.js +47 -1
- package/dist/models/DDLStatements.js.map +1 -1
- package/dist/models/SqlPrintToken.js +5 -0
- package/dist/models/SqlPrintToken.js.map +1 -1
- package/dist/models/TableDefinitionModel.js +2 -1
- package/dist/models/TableDefinitionModel.js.map +1 -1
- package/dist/parsers/AlterTableParser.js +58 -21
- package/dist/parsers/AlterTableParser.js.map +1 -1
- package/dist/parsers/SequenceParser.js +245 -0
- package/dist/parsers/SequenceParser.js.map +1 -0
- package/dist/parsers/SqlParser.js +41 -0
- package/dist/parsers/SqlParser.js.map +1 -1
- package/dist/parsers/SqlPrintTokenParser.js +146 -0
- package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/parsers/SqlTokenizer.js +33 -0
- package/dist/parsers/SqlTokenizer.js.map +1 -1
- package/dist/src/formatters/OriginalFormatRestorer.js +139 -0
- package/dist/src/formatters/OriginalFormatRestorer.js.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +138 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/models/BinarySelectQuery.js +198 -0
- package/dist/src/models/BinarySelectQuery.js.map +1 -0
- package/dist/src/models/CTEError.js +37 -0
- package/dist/src/models/CTEError.js.map +1 -0
- package/dist/src/models/Clause.js +535 -0
- package/dist/src/models/Clause.js.map +1 -0
- package/dist/src/models/CreateTableQuery.js +135 -0
- package/dist/src/models/CreateTableQuery.js.map +1 -0
- package/dist/src/models/DDLStatements.d.ts +84 -1
- package/dist/src/models/DDLStatements.js +229 -0
- package/dist/src/models/DDLStatements.js.map +1 -0
- package/dist/src/models/DeleteQuery.js +20 -0
- package/dist/src/models/DeleteQuery.js.map +1 -0
- package/dist/src/models/FormattingLexeme.js +3 -0
- package/dist/src/models/HintClause.js +41 -0
- package/dist/src/models/HintClause.js.map +1 -0
- package/dist/src/models/InsertQuery.js +23 -0
- package/dist/src/models/InsertQuery.js.map +1 -0
- package/dist/src/models/KeywordTrie.js +54 -0
- package/dist/src/models/KeywordTrie.js.map +1 -0
- package/dist/src/models/Lexeme.js +22 -0
- package/dist/src/models/Lexeme.js.map +1 -0
- package/dist/src/models/MergeQuery.js +104 -0
- package/dist/src/models/MergeQuery.js.map +1 -0
- package/dist/src/models/SelectQuery.js +22 -0
- package/dist/src/models/SelectQuery.js.map +1 -0
- package/dist/src/models/SimpleSelectQuery.js +648 -0
- package/dist/src/models/SimpleSelectQuery.js.map +1 -0
- package/dist/src/models/SqlComponent.js +73 -0
- package/dist/src/models/SqlComponent.js.map +1 -0
- package/dist/src/models/SqlPrintToken.d.ts +5 -0
- package/dist/src/models/SqlPrintToken.js +138 -0
- package/dist/src/models/SqlPrintToken.js.map +1 -0
- package/dist/src/models/TableDefinitionModel.d.ts +2 -0
- package/dist/src/models/TableDefinitionModel.js +85 -0
- package/dist/src/models/TableDefinitionModel.js.map +1 -0
- package/dist/src/models/UpdateQuery.js +29 -0
- package/dist/src/models/UpdateQuery.js.map +1 -0
- package/dist/src/models/ValueComponent.js +379 -0
- package/dist/src/models/ValueComponent.js.map +1 -0
- package/dist/src/models/ValuesQuery.js +62 -0
- package/dist/src/models/ValuesQuery.js.map +1 -0
- package/dist/src/parsers/AlterTableParser.d.ts +1 -0
- package/dist/src/parsers/AlterTableParser.js +453 -0
- package/dist/src/parsers/AlterTableParser.js.map +1 -0
- package/dist/src/parsers/AnalyzeStatementParser.js +94 -0
- package/dist/src/parsers/AnalyzeStatementParser.js.map +1 -0
- package/dist/src/parsers/CommandExpressionParser.js +213 -0
- package/dist/src/parsers/CommandExpressionParser.js.map +1 -0
- package/dist/src/parsers/CommonTableParser.js +177 -0
- package/dist/src/parsers/CommonTableParser.js.map +1 -0
- package/dist/src/parsers/CreateIndexParser.js +241 -0
- package/dist/src/parsers/CreateIndexParser.js.map +1 -0
- package/dist/src/parsers/CreateTableParser.js +738 -0
- package/dist/src/parsers/CreateTableParser.js.map +1 -0
- package/dist/src/parsers/DeleteClauseParser.js +37 -0
- package/dist/src/parsers/DeleteClauseParser.js.map +1 -0
- package/dist/src/parsers/DeleteQueryParser.js +77 -0
- package/dist/src/parsers/DeleteQueryParser.js.map +1 -0
- package/dist/src/parsers/DropConstraintParser.js +51 -0
- package/dist/src/parsers/DropConstraintParser.js.map +1 -0
- package/dist/src/parsers/DropIndexParser.js +73 -0
- package/dist/src/parsers/DropIndexParser.js.map +1 -0
- package/dist/src/parsers/DropTableParser.js +63 -0
- package/dist/src/parsers/DropTableParser.js.map +1 -0
- package/dist/src/parsers/ExplainStatementParser.js +189 -0
- package/dist/src/parsers/ExplainStatementParser.js.map +1 -0
- package/dist/src/parsers/FetchClauseParser.js +89 -0
- package/dist/src/parsers/FetchClauseParser.js.map +1 -0
- package/dist/src/parsers/ForClauseParser.js +58 -0
- package/dist/src/parsers/ForClauseParser.js.map +1 -0
- package/dist/src/parsers/FromClauseParser.js +54 -0
- package/dist/src/parsers/FromClauseParser.js.map +1 -0
- package/dist/src/parsers/FullNameParser.js +110 -0
- package/dist/src/parsers/FullNameParser.js.map +1 -0
- package/dist/src/parsers/FunctionExpressionParser.js +491 -0
- package/dist/src/parsers/FunctionExpressionParser.js.map +1 -0
- package/dist/src/parsers/GroupByParser.js +58 -0
- package/dist/src/parsers/GroupByParser.js.map +1 -0
- package/dist/src/parsers/HavingParser.js +36 -0
- package/dist/src/parsers/HavingParser.js.map +1 -0
- package/dist/src/parsers/IdentifierDecorator.js +17 -0
- package/dist/src/parsers/IdentifierDecorator.js.map +1 -0
- package/dist/src/parsers/IdentifierParser.js +15 -0
- package/dist/src/parsers/IdentifierParser.js.map +1 -0
- package/dist/src/parsers/InsertQueryParser.js +162 -0
- package/dist/src/parsers/InsertQueryParser.js.map +1 -0
- package/dist/src/parsers/JoinClauseParser.js +117 -0
- package/dist/src/parsers/JoinClauseParser.js.map +1 -0
- package/dist/src/parsers/JoinOnClauseParser.js +21 -0
- package/dist/src/parsers/JoinOnClauseParser.js.map +1 -0
- package/dist/src/parsers/JoinUsingClauseParser.js +23 -0
- package/dist/src/parsers/JoinUsingClauseParser.js.map +1 -0
- package/dist/src/parsers/KeywordParser.js +99 -0
- package/dist/src/parsers/KeywordParser.js.map +1 -0
- package/dist/src/parsers/LimitClauseParser.js +38 -0
- package/dist/src/parsers/LimitClauseParser.js.map +1 -0
- package/dist/src/parsers/LiteralParser.js +48 -0
- package/dist/src/parsers/LiteralParser.js.map +1 -0
- package/dist/src/parsers/MergeQueryParser.js +483 -0
- package/dist/src/parsers/MergeQueryParser.js.map +1 -0
- package/dist/src/parsers/OffsetClauseParser.js +42 -0
- package/dist/src/parsers/OffsetClauseParser.js.map +1 -0
- package/dist/src/parsers/OrderByClauseParser.js +108 -0
- package/dist/src/parsers/OrderByClauseParser.js.map +1 -0
- package/dist/src/parsers/OverExpressionParser.js +44 -0
- package/dist/src/parsers/OverExpressionParser.js.map +1 -0
- package/dist/src/parsers/ParameterDecorator.js +40 -0
- package/dist/src/parsers/ParameterDecorator.js.map +1 -0
- package/dist/src/parsers/ParameterExpressionParser.js +24 -0
- package/dist/src/parsers/ParameterExpressionParser.js.map +1 -0
- package/dist/src/parsers/ParenExpressionParser.js +109 -0
- package/dist/src/parsers/ParenExpressionParser.js.map +1 -0
- package/dist/src/parsers/ParseError.js +25 -0
- package/dist/src/parsers/ParseError.js.map +1 -0
- package/dist/src/parsers/PartitionByParser.js +53 -0
- package/dist/src/parsers/PartitionByParser.js.map +1 -0
- package/dist/src/parsers/ReturningClauseParser.js +64 -0
- package/dist/src/parsers/ReturningClauseParser.js.map +1 -0
- package/dist/src/parsers/SelectClauseParser.js +244 -0
- package/dist/src/parsers/SelectClauseParser.js.map +1 -0
- package/dist/src/parsers/SelectQueryParser.js +564 -0
- package/dist/src/parsers/SelectQueryParser.js.map +1 -0
- package/dist/src/parsers/SequenceParser.d.ts +16 -0
- package/dist/src/parsers/SetClauseParser.js +125 -0
- package/dist/src/parsers/SetClauseParser.js.map +1 -0
- package/dist/src/parsers/SourceAliasExpressionParser.js +60 -0
- package/dist/src/parsers/SourceAliasExpressionParser.js.map +1 -0
- package/dist/src/parsers/SourceExpressionParser.js +69 -0
- package/dist/src/parsers/SourceExpressionParser.js.map +1 -0
- package/dist/src/parsers/SourceParser.js +144 -0
- package/dist/src/parsers/SourceParser.js.map +1 -0
- package/dist/src/parsers/SqlParser.d.ts +4 -2
- package/dist/src/parsers/SqlParser.js +390 -0
- package/dist/src/parsers/SqlParser.js.map +1 -0
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +5 -0
- package/dist/src/parsers/SqlPrintTokenParser.js +3080 -0
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -0
- package/dist/src/parsers/SqlTokenizer.d.ts +1 -0
- package/dist/src/parsers/SqlTokenizer.js +520 -0
- package/dist/src/parsers/SqlTokenizer.js.map +1 -0
- package/dist/src/parsers/StringSpecifierExpressionParser.js +22 -0
- package/dist/src/parsers/StringSpecifierExpressionParser.js.map +1 -0
- package/dist/src/parsers/UnaryExpressionParser.js +39 -0
- package/dist/src/parsers/UnaryExpressionParser.js.map +1 -0
- package/dist/src/parsers/UpdateClauseParser.js +21 -0
- package/dist/src/parsers/UpdateClauseParser.js.map +1 -0
- package/dist/src/parsers/UpdateQueryParser.js +98 -0
- package/dist/src/parsers/UpdateQueryParser.js.map +1 -0
- package/dist/src/parsers/UsingClauseParser.js +33 -0
- package/dist/src/parsers/UsingClauseParser.js.map +1 -0
- package/dist/src/parsers/ValueParser.js +535 -0
- package/dist/src/parsers/ValueParser.js.map +1 -0
- package/dist/src/parsers/ValuesQueryParser.js +112 -0
- package/dist/src/parsers/ValuesQueryParser.js.map +1 -0
- package/dist/src/parsers/WhereClauseParser.js +51 -0
- package/dist/src/parsers/WhereClauseParser.js.map +1 -0
- package/dist/src/parsers/WindowClauseParser.js +57 -0
- package/dist/src/parsers/WindowClauseParser.js.map +1 -0
- package/dist/src/parsers/WindowExpressionParser.js +163 -0
- package/dist/src/parsers/WindowExpressionParser.js.map +1 -0
- package/dist/src/parsers/WithClauseParser.js +165 -0
- package/dist/src/parsers/WithClauseParser.js.map +1 -0
- package/dist/src/parsers/utils/LexemeCommentUtils.js +29 -0
- package/dist/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
- package/dist/src/reporting/models/DataFlowEdge.js +58 -0
- package/dist/src/reporting/models/DataFlowEdge.js.map +1 -0
- package/dist/src/reporting/models/DataFlowGraph.js +138 -0
- package/dist/src/reporting/models/DataFlowGraph.js.map +1 -0
- package/dist/src/reporting/models/DataFlowNode.js +148 -0
- package/dist/src/reporting/models/DataFlowNode.js.map +1 -0
- package/dist/src/reporting/services/CTEHandler.js +58 -0
- package/dist/src/reporting/services/CTEHandler.js.map +1 -0
- package/dist/src/reporting/services/DataSourceHandler.js +95 -0
- package/dist/src/reporting/services/DataSourceHandler.js.map +1 -0
- package/dist/src/reporting/services/JoinHandler.js +84 -0
- package/dist/src/reporting/services/JoinHandler.js.map +1 -0
- package/dist/src/reporting/services/ProcessHandler.js +26 -0
- package/dist/src/reporting/services/ProcessHandler.js.map +1 -0
- package/dist/src/tokenReaders/BaseTokenReader.js +86 -0
- package/dist/src/tokenReaders/BaseTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/CommandTokenReader.js +216 -0
- package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/EscapedIdentifierTokenReader.js +99 -0
- package/dist/src/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/FunctionTokenReader.js +47 -0
- package/dist/src/tokenReaders/FunctionTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/IdentifierTokenReader.js +34 -0
- package/dist/src/tokenReaders/IdentifierTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/LiteralTokenReader.js +329 -0
- package/dist/src/tokenReaders/LiteralTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/OperatorTokenReader.js +152 -0
- package/dist/src/tokenReaders/OperatorTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/ParameterTokenReader.js +190 -0
- package/dist/src/tokenReaders/ParameterTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/StringSpecifierTokenReader.js +31 -0
- package/dist/src/tokenReaders/StringSpecifierTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/SymbolTokenReader.js +35 -0
- package/dist/src/tokenReaders/SymbolTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/TokenReaderManager.js +110 -0
- package/dist/src/tokenReaders/TokenReaderManager.js.map +1 -0
- package/dist/src/tokenReaders/TypeTokenReader.js +69 -0
- package/dist/src/tokenReaders/TypeTokenReader.js.map +1 -0
- package/dist/src/transformers/AliasRenamer.js +600 -0
- package/dist/src/transformers/AliasRenamer.js.map +1 -0
- package/dist/src/transformers/CTEBuilder.js +188 -0
- package/dist/src/transformers/CTEBuilder.js.map +1 -0
- package/dist/src/transformers/CTECollector.js +409 -0
- package/dist/src/transformers/CTECollector.js.map +1 -0
- package/dist/src/transformers/CTEComposer.js +302 -0
- package/dist/src/transformers/CTEComposer.js.map +1 -0
- package/dist/src/transformers/CTEDependencyAnalyzer.js +285 -0
- package/dist/src/transformers/CTEDependencyAnalyzer.js.map +1 -0
- package/dist/src/transformers/CTEDependencyTracer.js +253 -0
- package/dist/src/transformers/CTEDependencyTracer.js.map +1 -0
- package/dist/src/transformers/CTEDisabler.js +355 -0
- package/dist/src/transformers/CTEDisabler.js.map +1 -0
- package/dist/src/transformers/CTEInjector.js +83 -0
- package/dist/src/transformers/CTEInjector.js.map +1 -0
- package/dist/src/transformers/CTENormalizer.js +46 -0
- package/dist/src/transformers/CTENormalizer.js.map +1 -0
- package/dist/src/transformers/CTEQueryDecomposer.js +589 -0
- package/dist/src/transformers/CTEQueryDecomposer.js.map +1 -0
- package/dist/src/transformers/CTERenamer.js +486 -0
- package/dist/src/transformers/CTERenamer.js.map +1 -0
- package/dist/src/transformers/CTETableReferenceCollector.js +358 -0
- package/dist/src/transformers/CTETableReferenceCollector.js.map +1 -0
- package/dist/src/transformers/ColumnReferenceCollector.js +468 -0
- package/dist/src/transformers/ColumnReferenceCollector.js.map +1 -0
- package/dist/src/transformers/DDLDiffGenerator.js +313 -0
- package/dist/src/transformers/DDLDiffGenerator.js.map +1 -0
- package/dist/src/transformers/DDLGeneralizer.js +119 -0
- package/dist/src/transformers/DDLGeneralizer.js.map +1 -0
- package/dist/src/transformers/DDLToFixtureConverter.js +206 -0
- package/dist/src/transformers/DDLToFixtureConverter.js.map +1 -0
- package/dist/src/transformers/DeleteResultSelectConverter.js +398 -0
- package/dist/src/transformers/DeleteResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/DynamicQueryBuilder.js +164 -0
- package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -0
- package/dist/src/transformers/EnhancedJsonMapping.js +223 -0
- package/dist/src/transformers/EnhancedJsonMapping.js.map +1 -0
- package/dist/src/transformers/FilterableItemCollector.js +259 -0
- package/dist/src/transformers/FilterableItemCollector.js.map +1 -0
- package/dist/src/transformers/FixtureCteBuilder.js +151 -0
- package/dist/src/transformers/FixtureCteBuilder.js.map +1 -0
- package/dist/src/transformers/FormatOptionResolver.js +67 -0
- package/dist/src/transformers/FormatOptionResolver.js.map +1 -0
- package/dist/src/transformers/Formatter.js +38 -0
- package/dist/src/transformers/Formatter.js.map +1 -0
- package/dist/src/transformers/InsertQuerySelectValuesConverter.js +125 -0
- package/dist/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
- package/dist/src/transformers/InsertResultSelectConverter.js +499 -0
- package/dist/src/transformers/InsertResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/JoinAggregationDecomposer.js +497 -0
- package/dist/src/transformers/JoinAggregationDecomposer.js.map +1 -0
- package/dist/src/transformers/JsonMappingConverter.js +392 -0
- package/dist/src/transformers/JsonMappingConverter.js.map +1 -0
- package/dist/src/transformers/JsonMappingUnifier.js +216 -0
- package/dist/src/transformers/JsonMappingUnifier.js.map +1 -0
- package/dist/src/transformers/LinePrinter.js +148 -0
- package/dist/src/transformers/LinePrinter.js.map +1 -0
- package/dist/src/transformers/MergeResultSelectConverter.js +310 -0
- package/dist/src/transformers/MergeResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/ModelDrivenJsonMapping.js +122 -0
- package/dist/src/transformers/ModelDrivenJsonMapping.js.map +1 -0
- package/dist/src/transformers/OnelineFormattingHelper.js +99 -0
- package/dist/src/transformers/OnelineFormattingHelper.js.map +1 -0
- package/dist/src/transformers/ParameterCollector.js +37 -0
- package/dist/src/transformers/ParameterCollector.js.map +1 -0
- package/dist/src/transformers/PostgresArrayEntityCteBuilder.js +458 -0
- package/dist/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -0
- package/dist/src/transformers/PostgresJsonQueryBuilder.js +245 -0
- package/dist/src/transformers/PostgresJsonQueryBuilder.js.map +1 -0
- package/dist/src/transformers/PostgresObjectEntityCteBuilder.js +347 -0
- package/dist/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -0
- package/dist/src/transformers/QueryBuilder.js +649 -0
- package/dist/src/transformers/QueryBuilder.js.map +1 -0
- package/dist/src/transformers/QueryFlowDiagramGenerator.js +157 -0
- package/dist/src/transformers/QueryFlowDiagramGenerator.js.map +1 -0
- package/dist/src/transformers/SchemaCollector.js +523 -0
- package/dist/src/transformers/SchemaCollector.js.map +1 -0
- package/dist/src/transformers/SelectResultSelectConverter.js +36 -0
- package/dist/src/transformers/SelectResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/SelectValueCollector.js +244 -0
- package/dist/src/transformers/SelectValueCollector.js.map +1 -0
- package/dist/src/transformers/SelectableColumnCollector.js +674 -0
- package/dist/src/transformers/SelectableColumnCollector.js.map +1 -0
- package/dist/src/transformers/SimulatedSelectConverter.js +65 -0
- package/dist/src/transformers/SimulatedSelectConverter.js.map +1 -0
- package/dist/src/transformers/SmartRenamer.js +422 -0
- package/dist/src/transformers/SmartRenamer.js.map +1 -0
- package/dist/src/transformers/SqlFormatter.js +77 -0
- package/dist/src/transformers/SqlFormatter.js.map +1 -0
- package/dist/src/transformers/SqlIdentifierRenamer.js +504 -0
- package/dist/src/transformers/SqlIdentifierRenamer.js.map +1 -0
- package/dist/src/transformers/SqlOutputToken.js +13 -0
- package/dist/src/transformers/SqlOutputToken.js.map +1 -0
- package/dist/src/transformers/SqlPaginationInjector.js +108 -0
- package/dist/src/transformers/SqlPaginationInjector.js.map +1 -0
- package/dist/src/transformers/SqlParamInjector.js +802 -0
- package/dist/src/transformers/SqlParamInjector.js.map +1 -0
- package/dist/src/transformers/SqlParameterBinder.js +70 -0
- package/dist/src/transformers/SqlParameterBinder.js.map +1 -0
- package/dist/src/transformers/SqlPrinter.js +1477 -0
- package/dist/src/transformers/SqlPrinter.js.map +1 -0
- package/dist/src/transformers/SqlSortInjector.js +153 -0
- package/dist/src/transformers/SqlSortInjector.js.map +1 -0
- package/dist/src/transformers/TableColumnResolver.js +3 -0
- package/dist/src/transformers/TableSourceCollector.js +435 -0
- package/dist/src/transformers/TableSourceCollector.js.map +1 -0
- package/dist/src/transformers/TypeTransformationPostProcessor.js +363 -0
- package/dist/src/transformers/TypeTransformationPostProcessor.js.map +1 -0
- package/dist/src/transformers/UpdateResultSelectConverter.js +344 -0
- package/dist/src/transformers/UpdateResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/UpstreamSelectQueryFinder.js +184 -0
- package/dist/src/transformers/UpstreamSelectQueryFinder.js.map +1 -0
- package/dist/src/types/Formatting.js +3 -0
- package/dist/src/utils/CTERegionDetector.js +464 -0
- package/dist/src/utils/CTERegionDetector.js.map +1 -0
- package/dist/src/utils/CommentEditor.js +345 -0
- package/dist/src/utils/CommentEditor.js.map +1 -0
- package/dist/src/utils/CommentUtils.js +69 -0
- package/dist/src/utils/CommentUtils.js.map +1 -0
- package/dist/src/utils/CursorContextAnalyzer.js +338 -0
- package/dist/src/utils/CursorContextAnalyzer.js.map +1 -0
- package/dist/src/utils/IntelliSenseApi.js +292 -0
- package/dist/src/utils/IntelliSenseApi.js.map +1 -0
- package/dist/src/utils/JsonSchemaValidator.js +215 -0
- package/dist/src/utils/JsonSchemaValidator.js.map +1 -0
- package/dist/src/utils/KeywordCache.js +206 -0
- package/dist/src/utils/KeywordCache.js.map +1 -0
- package/dist/src/utils/LexemeCursor.js +314 -0
- package/dist/src/utils/LexemeCursor.js.map +1 -0
- package/dist/src/utils/MultiQuerySplitter.js +292 -0
- package/dist/src/utils/MultiQuerySplitter.js.map +1 -0
- package/dist/src/utils/OperatorPrecedence.js +107 -0
- package/dist/src/utils/OperatorPrecedence.js.map +1 -0
- package/dist/src/utils/ParameterDetector.js +53 -0
- package/dist/src/utils/ParameterDetector.js.map +1 -0
- package/dist/src/utils/ParameterHelper.js +31 -0
- package/dist/src/utils/ParameterHelper.js.map +1 -0
- package/dist/src/utils/ParameterRemover.js +781 -0
- package/dist/src/utils/ParameterRemover.js.map +1 -0
- package/dist/src/utils/ParserStringUtils.js +31 -0
- package/dist/src/utils/ParserStringUtils.js.map +1 -0
- package/dist/src/utils/PositionAwareParser.js +363 -0
- package/dist/src/utils/PositionAwareParser.js.map +1 -0
- package/dist/src/utils/SchemaManager.js +217 -0
- package/dist/src/utils/SchemaManager.js.map +1 -0
- package/dist/src/utils/ScopeResolver.js +272 -0
- package/dist/src/utils/ScopeResolver.js.map +1 -0
- package/dist/src/utils/SelectQueryWithClauseHelper.js +47 -0
- package/dist/src/utils/SelectQueryWithClauseHelper.js.map +1 -0
- package/dist/src/utils/SqlSchemaValidator.js +55 -0
- package/dist/src/utils/SqlSchemaValidator.js.map +1 -0
- package/dist/src/utils/TextPositionUtils.js +128 -0
- package/dist/src/utils/TextPositionUtils.js.map +1 -0
- package/dist/src/utils/ValueComponentRewriter.js +183 -0
- package/dist/src/utils/ValueComponentRewriter.js.map +1 -0
- package/dist/src/utils/charLookupTable.js +73 -0
- package/dist/src/utils/charLookupTable.js.map +1 -0
- package/dist/src/utils/stringUtils.js +230 -0
- package/dist/src/utils/stringUtils.js.map +1 -0
- package/dist/tokenReaders/CommandTokenReader.js +5 -0
- package/dist/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +62 -61
- package/dist/esm/formatters/OriginalFormatRestorer.js.map +0 -1
- package/dist/esm/index.d.ts +0 -119
- package/dist/esm/models/BinarySelectQuery.js.map +0 -1
- package/dist/esm/models/CTEError.js.map +0 -1
- package/dist/esm/models/Clause.js.map +0 -1
- package/dist/esm/models/CreateTableQuery.js.map +0 -1
- package/dist/esm/models/DDLStatements.js.map +0 -1
- package/dist/esm/models/DeleteQuery.js.map +0 -1
- package/dist/esm/models/HintClause.js.map +0 -1
- package/dist/esm/models/InsertQuery.js.map +0 -1
- package/dist/esm/models/KeywordTrie.js.map +0 -1
- package/dist/esm/models/Lexeme.js.map +0 -1
- package/dist/esm/models/MergeQuery.js.map +0 -1
- package/dist/esm/models/SelectQuery.js.map +0 -1
- package/dist/esm/models/SimpleSelectQuery.js.map +0 -1
- package/dist/esm/models/SqlComponent.js.map +0 -1
- package/dist/esm/models/SqlPrintToken.js.map +0 -1
- package/dist/esm/models/TableDefinitionModel.js.map +0 -1
- package/dist/esm/models/UpdateQuery.js.map +0 -1
- package/dist/esm/models/ValueComponent.d.ts +0 -225
- package/dist/esm/models/ValueComponent.js +0 -349
- package/dist/esm/models/ValueComponent.js.map +0 -1
- package/dist/esm/models/ValuesQuery.js.map +0 -1
- package/dist/esm/parsers/AlterTableParser.js +0 -449
- package/dist/esm/parsers/AlterTableParser.js.map +0 -1
- package/dist/esm/parsers/AnalyzeStatementParser.js.map +0 -1
- package/dist/esm/parsers/CommandExpressionParser.js.map +0 -1
- package/dist/esm/parsers/CommonTableParser.js.map +0 -1
- package/dist/esm/parsers/CreateIndexParser.js.map +0 -1
- package/dist/esm/parsers/CreateTableParser.js.map +0 -1
- package/dist/esm/parsers/DeleteClauseParser.js.map +0 -1
- package/dist/esm/parsers/DeleteQueryParser.js.map +0 -1
- package/dist/esm/parsers/DropConstraintParser.js.map +0 -1
- package/dist/esm/parsers/DropIndexParser.js.map +0 -1
- package/dist/esm/parsers/DropTableParser.js.map +0 -1
- package/dist/esm/parsers/ExplainStatementParser.js.map +0 -1
- package/dist/esm/parsers/FetchClauseParser.js.map +0 -1
- package/dist/esm/parsers/ForClauseParser.js.map +0 -1
- package/dist/esm/parsers/FromClauseParser.js.map +0 -1
- package/dist/esm/parsers/FullNameParser.js.map +0 -1
- package/dist/esm/parsers/FunctionExpressionParser.d.ts +0 -65
- package/dist/esm/parsers/FunctionExpressionParser.js +0 -520
- package/dist/esm/parsers/FunctionExpressionParser.js.map +0 -1
- package/dist/esm/parsers/GroupByParser.js.map +0 -1
- package/dist/esm/parsers/HavingParser.js.map +0 -1
- package/dist/esm/parsers/IdentifierDecorator.js.map +0 -1
- package/dist/esm/parsers/IdentifierParser.js.map +0 -1
- package/dist/esm/parsers/InsertQueryParser.js.map +0 -1
- package/dist/esm/parsers/JoinClauseParser.js.map +0 -1
- package/dist/esm/parsers/JoinOnClauseParser.js.map +0 -1
- package/dist/esm/parsers/JoinUsingClauseParser.js.map +0 -1
- package/dist/esm/parsers/KeywordParser.js.map +0 -1
- package/dist/esm/parsers/LimitClauseParser.js.map +0 -1
- package/dist/esm/parsers/LiteralParser.js.map +0 -1
- package/dist/esm/parsers/MergeQueryParser.js.map +0 -1
- package/dist/esm/parsers/OffsetClauseParser.js.map +0 -1
- package/dist/esm/parsers/OrderByClauseParser.js.map +0 -1
- package/dist/esm/parsers/OverExpressionParser.js.map +0 -1
- package/dist/esm/parsers/ParameterDecorator.js.map +0 -1
- package/dist/esm/parsers/ParameterExpressionParser.js.map +0 -1
- package/dist/esm/parsers/ParenExpressionParser.js.map +0 -1
- package/dist/esm/parsers/ParseError.js.map +0 -1
- package/dist/esm/parsers/PartitionByParser.js.map +0 -1
- package/dist/esm/parsers/ReturningClauseParser.js.map +0 -1
- package/dist/esm/parsers/SelectClauseParser.js.map +0 -1
- package/dist/esm/parsers/SelectQueryParser.js.map +0 -1
- package/dist/esm/parsers/SetClauseParser.js.map +0 -1
- package/dist/esm/parsers/SourceAliasExpressionParser.js.map +0 -1
- package/dist/esm/parsers/SourceExpressionParser.js.map +0 -1
- package/dist/esm/parsers/SourceParser.js.map +0 -1
- package/dist/esm/parsers/SqlParser.js.map +0 -1
- package/dist/esm/parsers/SqlPrintTokenParser.d.ts +0 -315
- package/dist/esm/parsers/SqlPrintTokenParser.js +0 -3139
- package/dist/esm/parsers/SqlPrintTokenParser.js.map +0 -1
- package/dist/esm/parsers/SqlTokenizer.js.map +0 -1
- package/dist/esm/parsers/StringSpecifierExpressionParser.js.map +0 -1
- package/dist/esm/parsers/UnaryExpressionParser.js.map +0 -1
- package/dist/esm/parsers/UpdateClauseParser.js.map +0 -1
- package/dist/esm/parsers/UpdateQueryParser.js.map +0 -1
- package/dist/esm/parsers/UsingClauseParser.js.map +0 -1
- package/dist/esm/parsers/ValueParser.js +0 -558
- package/dist/esm/parsers/ValueParser.js.map +0 -1
- package/dist/esm/parsers/ValuesQueryParser.js.map +0 -1
- package/dist/esm/parsers/WhereClauseParser.js.map +0 -1
- package/dist/esm/parsers/WindowClauseParser.js.map +0 -1
- package/dist/esm/parsers/WindowExpressionParser.js.map +0 -1
- package/dist/esm/parsers/WithClauseParser.js.map +0 -1
- package/dist/esm/parsers/utils/LexemeCommentUtils.js.map +0 -1
- package/dist/esm/reporting/models/DataFlowEdge.js.map +0 -1
- package/dist/esm/reporting/models/DataFlowGraph.js.map +0 -1
- package/dist/esm/reporting/models/DataFlowNode.js.map +0 -1
- package/dist/esm/reporting/services/CTEHandler.js.map +0 -1
- package/dist/esm/reporting/services/DataSourceHandler.js.map +0 -1
- package/dist/esm/reporting/services/JoinHandler.js.map +0 -1
- package/dist/esm/reporting/services/ProcessHandler.js.map +0 -1
- package/dist/esm/tokenReaders/BaseTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/CommandTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/EscapedIdentifierTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/FunctionTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/IdentifierTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/LiteralTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/OperatorTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/ParameterTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/StringSpecifierTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/SymbolTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/TokenReaderManager.js.map +0 -1
- package/dist/esm/tokenReaders/TypeTokenReader.js.map +0 -1
- package/dist/esm/transformers/AliasRenamer.js.map +0 -1
- package/dist/esm/transformers/CTEBuilder.js.map +0 -1
- package/dist/esm/transformers/CTECollector.js.map +0 -1
- package/dist/esm/transformers/CTEComposer.js.map +0 -1
- package/dist/esm/transformers/CTEDependencyAnalyzer.js.map +0 -1
- package/dist/esm/transformers/CTEDependencyTracer.js.map +0 -1
- package/dist/esm/transformers/CTEDisabler.js.map +0 -1
- package/dist/esm/transformers/CTEInjector.js.map +0 -1
- package/dist/esm/transformers/CTENormalizer.js.map +0 -1
- package/dist/esm/transformers/CTEQueryDecomposer.js.map +0 -1
- package/dist/esm/transformers/CTERenamer.js.map +0 -1
- package/dist/esm/transformers/CTETableReferenceCollector.js.map +0 -1
- package/dist/esm/transformers/ColumnReferenceCollector.js +0 -474
- package/dist/esm/transformers/ColumnReferenceCollector.js.map +0 -1
- package/dist/esm/transformers/DDLDiffGenerator.d.ts +0 -18
- package/dist/esm/transformers/DDLDiffGenerator.js +0 -309
- package/dist/esm/transformers/DDLDiffGenerator.js.map +0 -1
- package/dist/esm/transformers/DDLGeneralizer.js.map +0 -1
- package/dist/esm/transformers/DDLToFixtureConverter.js.map +0 -1
- package/dist/esm/transformers/DeleteResultSelectConverter.js +0 -410
- package/dist/esm/transformers/DeleteResultSelectConverter.js.map +0 -1
- package/dist/esm/transformers/DynamicQueryBuilder.js.map +0 -1
- package/dist/esm/transformers/EnhancedJsonMapping.js.map +0 -1
- package/dist/esm/transformers/FilterableItemCollector.js.map +0 -1
- package/dist/esm/transformers/FixtureCteBuilder.js.map +0 -1
- package/dist/esm/transformers/FormatOptionResolver.js.map +0 -1
- package/dist/esm/transformers/Formatter.js.map +0 -1
- package/dist/esm/transformers/InsertQuerySelectValuesConverter.js.map +0 -1
- package/dist/esm/transformers/InsertResultSelectConverter.d.ts +0 -67
- package/dist/esm/transformers/InsertResultSelectConverter.js +0 -585
- package/dist/esm/transformers/InsertResultSelectConverter.js.map +0 -1
- package/dist/esm/transformers/JoinAggregationDecomposer.js.map +0 -1
- package/dist/esm/transformers/JsonMappingConverter.js.map +0 -1
- package/dist/esm/transformers/JsonMappingUnifier.js.map +0 -1
- package/dist/esm/transformers/LinePrinter.js.map +0 -1
- package/dist/esm/transformers/MergeResultSelectConverter.js.map +0 -1
- package/dist/esm/transformers/ModelDrivenJsonMapping.js.map +0 -1
- package/dist/esm/transformers/OnelineFormattingHelper.js.map +0 -1
- package/dist/esm/transformers/ParameterCollector.js.map +0 -1
- package/dist/esm/transformers/PostgresArrayEntityCteBuilder.js.map +0 -1
- package/dist/esm/transformers/PostgresJsonQueryBuilder.js.map +0 -1
- package/dist/esm/transformers/PostgresObjectEntityCteBuilder.js.map +0 -1
- package/dist/esm/transformers/QueryBuilder.js.map +0 -1
- package/dist/esm/transformers/QueryFlowDiagramGenerator.js.map +0 -1
- package/dist/esm/transformers/SchemaCollector.js.map +0 -1
- package/dist/esm/transformers/SelectResultSelectConverter.js.map +0 -1
- package/dist/esm/transformers/SelectValueCollector.js.map +0 -1
- package/dist/esm/transformers/SelectableColumnCollector.js.map +0 -1
- package/dist/esm/transformers/SimulatedSelectConverter.js.map +0 -1
- package/dist/esm/transformers/SmartRenamer.js.map +0 -1
- package/dist/esm/transformers/SqlFormatter.js.map +0 -1
- package/dist/esm/transformers/SqlIdentifierRenamer.js.map +0 -1
- package/dist/esm/transformers/SqlOutputToken.js.map +0 -1
- package/dist/esm/transformers/SqlPaginationInjector.js.map +0 -1
- package/dist/esm/transformers/SqlParamInjector.js.map +0 -1
- package/dist/esm/transformers/SqlParameterBinder.js.map +0 -1
- package/dist/esm/transformers/SqlPrinter.js +0 -1474
- package/dist/esm/transformers/SqlPrinter.js.map +0 -1
- package/dist/esm/transformers/SqlSortInjector.js.map +0 -1
- package/dist/esm/transformers/TableSourceCollector.js +0 -435
- package/dist/esm/transformers/TableSourceCollector.js.map +0 -1
- package/dist/esm/transformers/TypeTransformationPostProcessor.js.map +0 -1
- package/dist/esm/transformers/UpdateResultSelectConverter.js +0 -355
- package/dist/esm/transformers/UpdateResultSelectConverter.js.map +0 -1
- package/dist/esm/transformers/UpstreamSelectQueryFinder.js.map +0 -1
- package/dist/esm/types/GenericFixture.d.ts +0 -17
- package/dist/esm/types/GenericFixture.js +0 -2
- package/dist/esm/types/GenericFixture.js.map +0 -1
- package/dist/esm/utils/CTERegionDetector.js.map +0 -1
- package/dist/esm/utils/CommentEditor.js.map +0 -1
- package/dist/esm/utils/CommentUtils.js.map +0 -1
- package/dist/esm/utils/CursorContextAnalyzer.js.map +0 -1
- package/dist/esm/utils/IntelliSenseApi.js.map +0 -1
- package/dist/esm/utils/JsonSchemaValidator.js.map +0 -1
- package/dist/esm/utils/KeywordCache.js.map +0 -1
- package/dist/esm/utils/LexemeCursor.js.map +0 -1
- package/dist/esm/utils/MultiQuerySplitter.js.map +0 -1
- package/dist/esm/utils/OperatorPrecedence.js.map +0 -1
- package/dist/esm/utils/ParameterDetector.js.map +0 -1
- package/dist/esm/utils/ParameterHelper.js.map +0 -1
- package/dist/esm/utils/ParameterRemover.js +0 -779
- package/dist/esm/utils/ParameterRemover.js.map +0 -1
- package/dist/esm/utils/ParserStringUtils.js.map +0 -1
- package/dist/esm/utils/PositionAwareParser.js.map +0 -1
- package/dist/esm/utils/SchemaManager.js.map +0 -1
- package/dist/esm/utils/ScopeResolver.js.map +0 -1
- package/dist/esm/utils/SelectQueryWithClauseHelper.js.map +0 -1
- package/dist/esm/utils/SqlSchemaValidator.js.map +0 -1
- package/dist/esm/utils/TableNameUtils.d.ts +0 -10
- package/dist/esm/utils/TableNameUtils.js +0 -30
- package/dist/esm/utils/TableNameUtils.js.map +0 -1
- package/dist/esm/utils/TextPositionUtils.js.map +0 -1
- package/dist/esm/utils/ValueComponentRewriter.js +0 -184
- package/dist/esm/utils/ValueComponentRewriter.js.map +0 -1
- package/dist/esm/utils/charLookupTable.js.map +0 -1
- package/dist/esm/utils/stringUtils.js.map +0 -1
- package/dist/tsconfig.browser.tsbuildinfo +0 -1
- /package/dist/esm/{formatters → src/formatters}/OriginalFormatRestorer.d.ts +0 -0
- /package/dist/esm/{formatters → src/formatters}/OriginalFormatRestorer.js +0 -0
- /package/dist/esm/{models → src/models}/BinarySelectQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/BinarySelectQuery.js +0 -0
- /package/dist/esm/{models → src/models}/CTEError.d.ts +0 -0
- /package/dist/esm/{models → src/models}/CTEError.js +0 -0
- /package/dist/esm/{models → src/models}/Clause.d.ts +0 -0
- /package/dist/esm/{models → src/models}/Clause.js +0 -0
- /package/dist/esm/{models → src/models}/CreateTableQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/CreateTableQuery.js +0 -0
- /package/dist/esm/{models → src/models}/DDLStatements.d.ts +0 -0
- /package/dist/esm/{models → src/models}/DDLStatements.js +0 -0
- /package/dist/esm/{models → src/models}/DeleteQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/DeleteQuery.js +0 -0
- /package/dist/esm/{models → src/models}/FormattingLexeme.d.ts +0 -0
- /package/dist/esm/{models → src/models}/FormattingLexeme.js +0 -0
- /package/dist/esm/{models → src/models}/HintClause.d.ts +0 -0
- /package/dist/esm/{models → src/models}/HintClause.js +0 -0
- /package/dist/esm/{models → src/models}/InsertQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/InsertQuery.js +0 -0
- /package/dist/esm/{models → src/models}/KeywordTrie.d.ts +0 -0
- /package/dist/esm/{models → src/models}/KeywordTrie.js +0 -0
- /package/dist/esm/{models → src/models}/Lexeme.d.ts +0 -0
- /package/dist/esm/{models → src/models}/Lexeme.js +0 -0
- /package/dist/esm/{models → src/models}/MergeQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/MergeQuery.js +0 -0
- /package/dist/esm/{models → src/models}/SelectQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/SelectQuery.js +0 -0
- /package/dist/esm/{models → src/models}/SimpleSelectQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/SimpleSelectQuery.js +0 -0
- /package/dist/esm/{models → src/models}/SqlComponent.d.ts +0 -0
- /package/dist/esm/{models → src/models}/SqlComponent.js +0 -0
- /package/dist/esm/{models → src/models}/SqlPrintToken.d.ts +0 -0
- /package/dist/esm/{models → src/models}/SqlPrintToken.js +0 -0
- /package/dist/esm/{models → src/models}/TableDefinitionModel.d.ts +0 -0
- /package/dist/esm/{models → src/models}/TableDefinitionModel.js +0 -0
- /package/dist/esm/{models → src/models}/UpdateQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/UpdateQuery.js +0 -0
- /package/dist/esm/{models → src/models}/ValuesQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/ValuesQuery.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/AlterTableParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/AnalyzeStatementParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/AnalyzeStatementParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/CommandExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/CommandExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/CommonTableParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/CommonTableParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/CreateIndexParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/CreateIndexParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/CreateTableParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/CreateTableParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/DeleteClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/DeleteClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/DeleteQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/DeleteQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropConstraintParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropConstraintParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropIndexParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropIndexParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropTableParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropTableParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ExplainStatementParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ExplainStatementParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/FetchClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/FetchClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ForClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ForClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/FromClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/FromClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/FullNameParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/FullNameParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/GroupByParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/GroupByParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/HavingParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/HavingParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/IdentifierDecorator.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/IdentifierDecorator.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/IdentifierParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/IdentifierParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/InsertQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/InsertQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinOnClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinOnClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinUsingClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinUsingClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/KeywordParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/KeywordParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/LimitClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/LimitClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/LiteralParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/LiteralParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/MergeQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/MergeQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/OffsetClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/OffsetClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/OrderByClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/OrderByClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/OverExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/OverExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParameterDecorator.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParameterDecorator.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParameterExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParameterExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParenExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParenExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParseError.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParseError.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/PartitionByParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/PartitionByParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ReturningClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ReturningClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SelectClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SelectClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SelectQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SelectQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SetClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SetClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceAliasExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceAliasExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SqlParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SqlParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SqlTokenizer.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SqlTokenizer.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/StringSpecifierExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/StringSpecifierExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/UnaryExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/UnaryExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/UpdateClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/UpdateClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/UpdateQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/UpdateQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/UsingClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/UsingClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ValueParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ValuesQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ValuesQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/WhereClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/WhereClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/WindowClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/WindowClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/WindowExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/WindowExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/WithClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/WithClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/utils/LexemeCommentUtils.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/utils/LexemeCommentUtils.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowEdge.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowEdge.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowGraph.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowGraph.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowNode.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowNode.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/CTEHandler.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/CTEHandler.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/DataSourceHandler.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/DataSourceHandler.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/JoinHandler.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/JoinHandler.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/ProcessHandler.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/ProcessHandler.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/BaseTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/BaseTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/CommandTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/CommandTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/EscapedIdentifierTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/EscapedIdentifierTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/FunctionTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/FunctionTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/IdentifierTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/IdentifierTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/LiteralTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/LiteralTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/OperatorTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/OperatorTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/ParameterTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/ParameterTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/StringSpecifierTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/StringSpecifierTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/SymbolTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/SymbolTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/TokenReaderManager.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/TokenReaderManager.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/TypeTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/TypeTokenReader.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/AliasRenamer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/AliasRenamer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTECollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTECollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEComposer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEComposer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDependencyAnalyzer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDependencyAnalyzer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDependencyTracer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDependencyTracer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDisabler.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDisabler.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEInjector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEInjector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTENormalizer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTENormalizer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEQueryDecomposer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEQueryDecomposer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTERenamer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTERenamer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTETableReferenceCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTETableReferenceCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/ColumnReferenceCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/DDLGeneralizer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/DDLGeneralizer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/DDLToFixtureConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/DDLToFixtureConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/DeleteResultSelectConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/DynamicQueryBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/DynamicQueryBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/EnhancedJsonMapping.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/EnhancedJsonMapping.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/FilterableItemCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/FilterableItemCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/FixtureCteBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/FixtureCteBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/FormatOptionResolver.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/FormatOptionResolver.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/Formatter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/Formatter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/InsertQuerySelectValuesConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/InsertQuerySelectValuesConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/JoinAggregationDecomposer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/JoinAggregationDecomposer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/JsonMappingConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/JsonMappingConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/JsonMappingUnifier.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/JsonMappingUnifier.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/LinePrinter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/LinePrinter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/MergeResultSelectConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/MergeResultSelectConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/ModelDrivenJsonMapping.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/ModelDrivenJsonMapping.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/OnelineFormattingHelper.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/OnelineFormattingHelper.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/ParameterCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/ParameterCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresArrayEntityCteBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresArrayEntityCteBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresJsonQueryBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresJsonQueryBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresObjectEntityCteBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresObjectEntityCteBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/QueryBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/QueryBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/QueryFlowDiagramGenerator.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/QueryFlowDiagramGenerator.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SchemaCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SchemaCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectResultSelectConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectResultSelectConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectValueCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectValueCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectableColumnCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectableColumnCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SimulatedSelectConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SimulatedSelectConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SmartRenamer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SmartRenamer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlFormatter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlFormatter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlIdentifierRenamer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlIdentifierRenamer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlOutputToken.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlOutputToken.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlPaginationInjector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlPaginationInjector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlParamInjector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlParamInjector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlParameterBinder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlParameterBinder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlPrinter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlSortInjector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlSortInjector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/TableColumnResolver.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/TableColumnResolver.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/TableSourceCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/TypeTransformationPostProcessor.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/TypeTransformationPostProcessor.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/UpdateResultSelectConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/UpstreamSelectQueryFinder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/UpstreamSelectQueryFinder.js +0 -0
- /package/dist/esm/{types → src/types}/Formatting.d.ts +0 -0
- /package/dist/esm/{types → src/types}/Formatting.js +0 -0
- /package/dist/esm/{utils → src/utils}/CTERegionDetector.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/CTERegionDetector.js +0 -0
- /package/dist/esm/{utils → src/utils}/CommentEditor.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/CommentEditor.js +0 -0
- /package/dist/esm/{utils → src/utils}/CommentUtils.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/CommentUtils.js +0 -0
- /package/dist/esm/{utils → src/utils}/CursorContextAnalyzer.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/CursorContextAnalyzer.js +0 -0
- /package/dist/esm/{utils → src/utils}/IntelliSenseApi.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/IntelliSenseApi.js +0 -0
- /package/dist/esm/{utils → src/utils}/JsonSchemaValidator.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/JsonSchemaValidator.js +0 -0
- /package/dist/esm/{utils → src/utils}/KeywordCache.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/KeywordCache.js +0 -0
- /package/dist/esm/{utils → src/utils}/LexemeCursor.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/LexemeCursor.js +0 -0
- /package/dist/esm/{utils → src/utils}/MultiQuerySplitter.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/MultiQuerySplitter.js +0 -0
- /package/dist/esm/{utils → src/utils}/OperatorPrecedence.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/OperatorPrecedence.js +0 -0
- /package/dist/esm/{utils → src/utils}/ParameterDetector.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/ParameterDetector.js +0 -0
- /package/dist/esm/{utils → src/utils}/ParameterHelper.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/ParameterHelper.js +0 -0
- /package/dist/esm/{utils → src/utils}/ParameterRemover.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/ParserStringUtils.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/ParserStringUtils.js +0 -0
- /package/dist/esm/{utils → src/utils}/PositionAwareParser.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/PositionAwareParser.js +0 -0
- /package/dist/esm/{utils → src/utils}/SchemaManager.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/SchemaManager.js +0 -0
- /package/dist/esm/{utils → src/utils}/ScopeResolver.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/ScopeResolver.js +0 -0
- /package/dist/esm/{utils → src/utils}/SelectQueryWithClauseHelper.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/SelectQueryWithClauseHelper.js +0 -0
- /package/dist/esm/{utils → src/utils}/SqlSchemaValidator.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/SqlSchemaValidator.js +0 -0
- /package/dist/esm/{utils → src/utils}/TextPositionUtils.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/TextPositionUtils.js +0 -0
- /package/dist/esm/{utils → src/utils}/ValueComponentRewriter.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/charLookupTable.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/charLookupTable.js +0 -0
- /package/dist/esm/{utils → src/utils}/stringUtils.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/stringUtils.js +0 -0
- /package/dist/{esm → src}/models/FormattingLexeme.js.map +0 -0
- /package/dist/{esm → src}/transformers/TableColumnResolver.js.map +0 -0
- /package/dist/{esm → src}/types/Formatting.js.map +0 -0
|
@@ -0,0 +1,497 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JoinAggregationDecomposer = exports.DecompositionError = void 0;
|
|
4
|
+
exports.analyzeJoinAggregation = analyzeJoinAggregation;
|
|
5
|
+
exports.decomposeJoinAggregation = decomposeJoinAggregation;
|
|
6
|
+
const SimpleSelectQuery_1 = require("../models/SimpleSelectQuery");
|
|
7
|
+
const Clause_1 = require("../models/Clause");
|
|
8
|
+
const ValueComponent_1 = require("../models/ValueComponent");
|
|
9
|
+
const SqlFormatter_1 = require("./SqlFormatter");
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when query decomposition fails
|
|
12
|
+
*/
|
|
13
|
+
class DecompositionError extends Error {
|
|
14
|
+
constructor(message, originalQuery, cause) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.originalQuery = originalQuery;
|
|
17
|
+
this.cause = cause;
|
|
18
|
+
this.name = 'DecompositionError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.DecompositionError = DecompositionError;
|
|
22
|
+
/**
|
|
23
|
+
* Decomposes queries that combine table joins with aggregations into separate detail and aggregation queries using CTEs
|
|
24
|
+
*
|
|
25
|
+
* This transformer separates JOIN operations from aggregation operations to make queries easier to debug:
|
|
26
|
+
* - Detail query: Contains JOINs and column selection
|
|
27
|
+
* - Aggregation query: Contains GROUP BY and aggregation functions, referencing the CTE
|
|
28
|
+
*
|
|
29
|
+
* Provides two patterns following existing codebase conventions:
|
|
30
|
+
* - analyze(): Safe analysis (Result pattern like SelectQueryParser.analyze)
|
|
31
|
+
* - decompose(): Direct decomposition with exceptions (Exception pattern like SelectQueryParser.parse)
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const decomposer = new JoinAggregationDecomposer();
|
|
36
|
+
*
|
|
37
|
+
* // Safe analysis (Result pattern)
|
|
38
|
+
* const analysis = decomposer.analyze(query);
|
|
39
|
+
* if (analysis.success) {
|
|
40
|
+
* console.log('Can decompose with', analysis.metadata.joinCount, 'joins');
|
|
41
|
+
* if (analysis.limitations) {
|
|
42
|
+
* console.log('Known limitations:', analysis.limitations);
|
|
43
|
+
* }
|
|
44
|
+
* } else {
|
|
45
|
+
* console.log('Cannot decompose:', analysis.error);
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* // Direct decomposition (Exception pattern)
|
|
49
|
+
* try {
|
|
50
|
+
* const decomposed = decomposer.decompose(query);
|
|
51
|
+
* // Success: decomposed query ready to use
|
|
52
|
+
* } catch (error) {
|
|
53
|
+
* if (error instanceof DecompositionError) {
|
|
54
|
+
* console.log('Decomposition failed:', error.message);
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
class JoinAggregationDecomposer {
|
|
60
|
+
constructor(options = {}) {
|
|
61
|
+
this.options = {
|
|
62
|
+
detailCTEName: options.detailCTEName || "detail_data"
|
|
63
|
+
};
|
|
64
|
+
this.formatter = new SqlFormatter_1.SqlFormatter({ identifierEscape: { start: "", end: "" } });
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Analyzes a query for decomposition without throwing errors (safe analysis)
|
|
68
|
+
* Follows the same pattern as SelectQueryParser.analyze()
|
|
69
|
+
*
|
|
70
|
+
* @param query The query to analyze
|
|
71
|
+
* @returns Analysis result with success status, error information, and metadata
|
|
72
|
+
*/
|
|
73
|
+
analyze(query) {
|
|
74
|
+
const metadata = this.extractMetadata(query);
|
|
75
|
+
try {
|
|
76
|
+
// Phase 1: Validate query structure
|
|
77
|
+
const validationError = this.getValidationError(query, metadata);
|
|
78
|
+
if (validationError) {
|
|
79
|
+
return {
|
|
80
|
+
success: false,
|
|
81
|
+
error: validationError,
|
|
82
|
+
metadata
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
// Phase 2: Attempt decomposition
|
|
86
|
+
const decomposed = this.performDecomposition(query);
|
|
87
|
+
// Phase 3: Check for formatting issues (critical validation)
|
|
88
|
+
try {
|
|
89
|
+
this.formatter.format(decomposed);
|
|
90
|
+
}
|
|
91
|
+
catch (formatError) {
|
|
92
|
+
return {
|
|
93
|
+
success: false,
|
|
94
|
+
error: `Decomposed query cannot be formatted: ${formatError instanceof Error ? formatError.message : String(formatError)}. This usually indicates complex expressions in aggregations that are not supported.`,
|
|
95
|
+
metadata
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
// Check for known limitations
|
|
99
|
+
const limitations = this.detectLimitations(metadata);
|
|
100
|
+
return {
|
|
101
|
+
success: true,
|
|
102
|
+
decomposedQuery: decomposed,
|
|
103
|
+
limitations: limitations.length > 0 ? limitations : undefined,
|
|
104
|
+
metadata
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
return {
|
|
109
|
+
success: false,
|
|
110
|
+
error: `Analysis failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
111
|
+
metadata
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Decomposes a JOIN + aggregation query into separate detail and aggregation queries
|
|
117
|
+
* Follows the same pattern as SelectQueryParser.parse() - throws on error
|
|
118
|
+
*
|
|
119
|
+
* @param query The query to decompose
|
|
120
|
+
* @returns The decomposed query with CTE structure
|
|
121
|
+
* @throws DecompositionError if the query cannot be decomposed or formatted
|
|
122
|
+
*/
|
|
123
|
+
decompose(query) {
|
|
124
|
+
try {
|
|
125
|
+
// Phase 1: Validate query structure
|
|
126
|
+
const metadata = this.extractMetadata(query);
|
|
127
|
+
const validationError = this.getValidationError(query, metadata);
|
|
128
|
+
if (validationError) {
|
|
129
|
+
throw new DecompositionError(validationError, query);
|
|
130
|
+
}
|
|
131
|
+
// Phase 2: Perform decomposition
|
|
132
|
+
const decomposed = this.performDecomposition(query);
|
|
133
|
+
// Phase 3: Critical validation - ensure the result can be formatted
|
|
134
|
+
try {
|
|
135
|
+
this.formatter.format(decomposed);
|
|
136
|
+
}
|
|
137
|
+
catch (formatError) {
|
|
138
|
+
throw new DecompositionError(`Decomposed query cannot be formatted: ${formatError instanceof Error ? formatError.message : String(formatError)}. ` +
|
|
139
|
+
`This usually indicates complex expressions in aggregations that are not supported.`, query, formatError instanceof Error ? formatError : undefined);
|
|
140
|
+
}
|
|
141
|
+
return decomposed;
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
if (error instanceof DecompositionError) {
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
throw new DecompositionError(`Decomposition failed: ${error instanceof Error ? error.message : String(error)}`, query, error instanceof Error ? error : undefined);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Gets validation error message without throwing (for analyze method)
|
|
152
|
+
*/
|
|
153
|
+
getValidationError(query, metadata) {
|
|
154
|
+
if (!query.fromClause) {
|
|
155
|
+
return "Query does not contain FROM clause";
|
|
156
|
+
}
|
|
157
|
+
if (metadata.joinCount === 0) {
|
|
158
|
+
return "Query does not contain JOINs";
|
|
159
|
+
}
|
|
160
|
+
if (metadata.aggregationCount === 0 && !query.groupByClause) {
|
|
161
|
+
return "Query does not contain GROUP BY or aggregation functions";
|
|
162
|
+
}
|
|
163
|
+
if (metadata.hasWindowFunctions) {
|
|
164
|
+
return "Window functions are not fully supported - column references in window functions are not converted to CTE references";
|
|
165
|
+
}
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Performs the actual decomposition
|
|
170
|
+
*/
|
|
171
|
+
performDecomposition(query) {
|
|
172
|
+
// Extract columns needed for detail CTE
|
|
173
|
+
const detailColumns = this.extractDetailColumns(query);
|
|
174
|
+
// Build detail query (CTE)
|
|
175
|
+
const detailQuery = this.buildDetailQuery(query, detailColumns);
|
|
176
|
+
// Build aggregation query
|
|
177
|
+
const aggregationQuery = this.buildAggregationQuery(query);
|
|
178
|
+
// Create WITH clause
|
|
179
|
+
const withClause = new Clause_1.WithClause(false, // not recursive
|
|
180
|
+
[
|
|
181
|
+
new Clause_1.CommonTable(detailQuery, this.options.detailCTEName, null // not materialized
|
|
182
|
+
)
|
|
183
|
+
]);
|
|
184
|
+
// Combine into final query
|
|
185
|
+
aggregationQuery.withClause = withClause;
|
|
186
|
+
return aggregationQuery;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Extracts metadata about the query
|
|
190
|
+
*/
|
|
191
|
+
extractMetadata(query) {
|
|
192
|
+
const joinCount = this.countJoins(query);
|
|
193
|
+
const aggregationCount = this.countAggregationFunctions(query);
|
|
194
|
+
const hasHaving = !!query.havingClause;
|
|
195
|
+
const hasOrderBy = !!query.orderByClause;
|
|
196
|
+
const hasWindowFunctions = this.hasWindowFunctions(query);
|
|
197
|
+
const detailColumns = this.extractDetailColumnNames(query);
|
|
198
|
+
return {
|
|
199
|
+
joinCount,
|
|
200
|
+
aggregationCount,
|
|
201
|
+
detailColumns,
|
|
202
|
+
hasHaving,
|
|
203
|
+
hasOrderBy,
|
|
204
|
+
hasWindowFunctions
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Detects known limitations based on metadata
|
|
209
|
+
*/
|
|
210
|
+
detectLimitations(metadata) {
|
|
211
|
+
const limitations = [];
|
|
212
|
+
if (metadata.hasWindowFunctions && metadata.aggregationCount > 0) {
|
|
213
|
+
limitations.push("Window functions may reference original table columns instead of CTE columns");
|
|
214
|
+
}
|
|
215
|
+
if (metadata.hasHaving) {
|
|
216
|
+
limitations.push("HAVING clause column references are not converted to CTE references");
|
|
217
|
+
}
|
|
218
|
+
if (metadata.hasOrderBy) {
|
|
219
|
+
limitations.push("ORDER BY clause column references are not converted to CTE references");
|
|
220
|
+
}
|
|
221
|
+
return limitations;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Counts the number of JOINs in the query
|
|
225
|
+
*/
|
|
226
|
+
countJoins(query) {
|
|
227
|
+
var _a, _b;
|
|
228
|
+
return ((_b = (_a = query.fromClause) === null || _a === void 0 ? void 0 : _a.joins) === null || _b === void 0 ? void 0 : _b.length) || 0;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Counts aggregation functions in the query
|
|
232
|
+
*/
|
|
233
|
+
countAggregationFunctions(query) {
|
|
234
|
+
var _a;
|
|
235
|
+
let count = 0;
|
|
236
|
+
if ((_a = query.selectClause) === null || _a === void 0 ? void 0 : _a.items) {
|
|
237
|
+
for (const item of query.selectClause.items) {
|
|
238
|
+
if (this.containsAggregationFunction(item.value)) {
|
|
239
|
+
count++;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return count;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Checks if query contains window functions
|
|
247
|
+
*/
|
|
248
|
+
hasWindowFunctions(query) {
|
|
249
|
+
var _a;
|
|
250
|
+
if ((_a = query.selectClause) === null || _a === void 0 ? void 0 : _a.items) {
|
|
251
|
+
for (const item of query.selectClause.items) {
|
|
252
|
+
if (this.containsWindowFunction(item.value)) {
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Checks if an expression contains aggregation functions
|
|
261
|
+
*/
|
|
262
|
+
containsAggregationFunction(expression) {
|
|
263
|
+
if (expression instanceof ValueComponent_1.FunctionCall) {
|
|
264
|
+
const funcName = this.getFunctionName(expression).toLowerCase();
|
|
265
|
+
return ['count', 'sum', 'avg', 'min', 'max'].includes(funcName);
|
|
266
|
+
}
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Checks if an expression contains window functions
|
|
271
|
+
*/
|
|
272
|
+
containsWindowFunction(expression) {
|
|
273
|
+
if (expression instanceof ValueComponent_1.FunctionCall && expression.over) {
|
|
274
|
+
return true;
|
|
275
|
+
}
|
|
276
|
+
// Fallback: check for common window function names
|
|
277
|
+
if (expression instanceof ValueComponent_1.FunctionCall) {
|
|
278
|
+
const funcName = this.getFunctionName(expression).toLowerCase();
|
|
279
|
+
return ['row_number', 'rank', 'dense_rank', 'lead', 'lag'].includes(funcName);
|
|
280
|
+
}
|
|
281
|
+
return false;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Gets function name from FunctionCall
|
|
285
|
+
*/
|
|
286
|
+
getFunctionName(func) {
|
|
287
|
+
const name = func.qualifiedName.name;
|
|
288
|
+
if (name instanceof ValueComponent_1.IdentifierString) {
|
|
289
|
+
return name.name;
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
return name.value;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Extracts detail column names for metadata
|
|
297
|
+
*/
|
|
298
|
+
extractDetailColumnNames(query) {
|
|
299
|
+
var _a, _b;
|
|
300
|
+
const columns = [];
|
|
301
|
+
// Add GROUP BY columns
|
|
302
|
+
if ((_a = query.groupByClause) === null || _a === void 0 ? void 0 : _a.grouping) {
|
|
303
|
+
for (const expr of query.groupByClause.grouping) {
|
|
304
|
+
columns.push(expr.toString());
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
// Add columns from aggregation functions
|
|
308
|
+
if ((_b = query.selectClause) === null || _b === void 0 ? void 0 : _b.items) {
|
|
309
|
+
for (const item of query.selectClause.items) {
|
|
310
|
+
if (this.containsAggregationFunction(item.value) && item.value instanceof ValueComponent_1.FunctionCall) {
|
|
311
|
+
if (item.value.argument) {
|
|
312
|
+
columns.push(item.value.argument.toString());
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
return [...new Set(columns)]; // Remove duplicates
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Extracts columns needed for the detail CTE
|
|
321
|
+
*/
|
|
322
|
+
extractDetailColumns(query) {
|
|
323
|
+
var _a, _b;
|
|
324
|
+
const columns = [];
|
|
325
|
+
const columnSet = new Set();
|
|
326
|
+
// Add GROUP BY columns
|
|
327
|
+
if ((_a = query.groupByClause) === null || _a === void 0 ? void 0 : _a.grouping) {
|
|
328
|
+
for (const expr of query.groupByClause.grouping) {
|
|
329
|
+
if (expr instanceof ValueComponent_1.ColumnReference) {
|
|
330
|
+
const key = this.getColumnKey(expr);
|
|
331
|
+
if (!columnSet.has(key)) {
|
|
332
|
+
columns.push(expr);
|
|
333
|
+
columnSet.add(key);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
// Add columns from aggregation function arguments
|
|
339
|
+
if ((_b = query.selectClause) === null || _b === void 0 ? void 0 : _b.items) {
|
|
340
|
+
for (const item of query.selectClause.items) {
|
|
341
|
+
this.extractColumnsFromExpression(item.value, columns, columnSet);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
return columns;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Extracts column references from an expression
|
|
348
|
+
*/
|
|
349
|
+
extractColumnsFromExpression(expression, columns, columnSet) {
|
|
350
|
+
if (expression instanceof ValueComponent_1.FunctionCall) {
|
|
351
|
+
if (expression.argument) {
|
|
352
|
+
if (expression.argument instanceof ValueComponent_1.ColumnReference) {
|
|
353
|
+
const key = this.getColumnKey(expression.argument);
|
|
354
|
+
if (!columnSet.has(key)) {
|
|
355
|
+
columns.push(expression.argument);
|
|
356
|
+
columnSet.add(key);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
else if (expression.argument.toString() === '*') {
|
|
360
|
+
// Handle COUNT(*) by adding special marker
|
|
361
|
+
const starColumn = new ValueComponent_1.ColumnReference(null, '*');
|
|
362
|
+
const key = this.getColumnKey(starColumn);
|
|
363
|
+
if (!columnSet.has(key)) {
|
|
364
|
+
columns.push(starColumn);
|
|
365
|
+
columnSet.add(key);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
else if (expression instanceof ValueComponent_1.ColumnReference) {
|
|
371
|
+
const key = this.getColumnKey(expression);
|
|
372
|
+
if (!columnSet.has(key)) {
|
|
373
|
+
columns.push(expression);
|
|
374
|
+
columnSet.add(key);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Gets a unique key for a column reference
|
|
380
|
+
*/
|
|
381
|
+
getColumnKey(column) {
|
|
382
|
+
var _a;
|
|
383
|
+
const namespace = ((_a = column.namespaces) === null || _a === void 0 ? void 0 : _a.map(ns => ns.name).join('.')) || '';
|
|
384
|
+
const columnName = column.column.name;
|
|
385
|
+
return namespace ? `${namespace}.${columnName}` : columnName;
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Builds the detail query (CTE content)
|
|
389
|
+
*/
|
|
390
|
+
buildDetailQuery(originalQuery, detailColumns) {
|
|
391
|
+
const selectItems = detailColumns.map(col => new Clause_1.SelectItem(col));
|
|
392
|
+
return new SimpleSelectQuery_1.SimpleSelectQuery({
|
|
393
|
+
selectClause: new Clause_1.SelectClause(selectItems),
|
|
394
|
+
fromClause: originalQuery.fromClause,
|
|
395
|
+
whereClause: originalQuery.whereClause
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Builds the aggregation query that references the CTE
|
|
400
|
+
*/
|
|
401
|
+
buildAggregationQuery(originalQuery) {
|
|
402
|
+
var _a, _b, _c, _d;
|
|
403
|
+
// Transform SELECT items to reference CTE columns
|
|
404
|
+
const transformedSelectItems = ((_b = (_a = originalQuery.selectClause) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.map(item => {
|
|
405
|
+
var _a;
|
|
406
|
+
const transformedExpression = this.transformExpressionForCTE(item.value);
|
|
407
|
+
return new Clause_1.SelectItem(transformedExpression, ((_a = item.identifier) === null || _a === void 0 ? void 0 : _a.name) || null);
|
|
408
|
+
})) || [];
|
|
409
|
+
// Transform GROUP BY to reference CTE columns
|
|
410
|
+
const transformedGroupBy = (_d = (_c = originalQuery.groupByClause) === null || _c === void 0 ? void 0 : _c.grouping) === null || _d === void 0 ? void 0 : _d.map(expr => {
|
|
411
|
+
return this.transformExpressionForCTE(expr);
|
|
412
|
+
});
|
|
413
|
+
// Create FROM clause that references the CTE
|
|
414
|
+
const cteFromClause = new Clause_1.FromClause(new Clause_1.SourceExpression(new Clause_1.TableSource(null, new ValueComponent_1.IdentifierString(this.options.detailCTEName)), null), null);
|
|
415
|
+
return new SimpleSelectQuery_1.SimpleSelectQuery({
|
|
416
|
+
selectClause: new Clause_1.SelectClause(transformedSelectItems),
|
|
417
|
+
fromClause: cteFromClause,
|
|
418
|
+
groupByClause: transformedGroupBy ? new Clause_1.GroupByClause(transformedGroupBy) : undefined,
|
|
419
|
+
havingClause: originalQuery.havingClause, // TODO: Transform references if needed
|
|
420
|
+
orderByClause: originalQuery.orderByClause // TODO: Transform references if needed
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Transforms an expression to reference CTE columns instead of original table columns
|
|
425
|
+
*/
|
|
426
|
+
transformExpressionForCTE(expression) {
|
|
427
|
+
if (expression instanceof ValueComponent_1.FunctionCall) {
|
|
428
|
+
// Transform aggregation function arguments
|
|
429
|
+
const transformedArg = expression.argument ?
|
|
430
|
+
(expression.argument instanceof ValueComponent_1.ColumnReference ?
|
|
431
|
+
// Convert table.column to just column for CTE reference
|
|
432
|
+
new ValueComponent_1.ColumnReference(null, expression.argument.column.name) :
|
|
433
|
+
expression.argument) : null;
|
|
434
|
+
return new ValueComponent_1.FunctionCall(expression.qualifiedName.namespaces, expression.qualifiedName.name, transformedArg, expression.over, expression.withinGroup);
|
|
435
|
+
}
|
|
436
|
+
else if (expression instanceof ValueComponent_1.ColumnReference) {
|
|
437
|
+
// Convert table.column to just column for CTE reference
|
|
438
|
+
return new ValueComponent_1.ColumnReference(null, expression.column.name);
|
|
439
|
+
}
|
|
440
|
+
return expression;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
exports.JoinAggregationDecomposer = JoinAggregationDecomposer;
|
|
444
|
+
/**
|
|
445
|
+
* Utility function to analyze a JOIN + aggregation query from SQL string (safe, no exceptions)
|
|
446
|
+
*
|
|
447
|
+
* @param sql The SQL string to parse and analyze
|
|
448
|
+
* @param options Decomposer options
|
|
449
|
+
* @returns Analysis result with success status, error information, and metadata
|
|
450
|
+
*/
|
|
451
|
+
function analyzeJoinAggregation(sql, options) {
|
|
452
|
+
try {
|
|
453
|
+
// Import using ES module syntax to avoid require issues
|
|
454
|
+
const { SelectQueryParser } = eval('require("../parsers/SelectQueryParser")');
|
|
455
|
+
const query = SelectQueryParser.parse(sql);
|
|
456
|
+
const decomposer = new JoinAggregationDecomposer(options);
|
|
457
|
+
return decomposer.analyze(query);
|
|
458
|
+
}
|
|
459
|
+
catch (error) {
|
|
460
|
+
return {
|
|
461
|
+
success: false,
|
|
462
|
+
error: `Failed to parse SQL: ${error instanceof Error ? error.message : String(error)}`,
|
|
463
|
+
metadata: {
|
|
464
|
+
joinCount: 0,
|
|
465
|
+
aggregationCount: 0,
|
|
466
|
+
detailColumns: [],
|
|
467
|
+
hasHaving: false,
|
|
468
|
+
hasOrderBy: false,
|
|
469
|
+
hasWindowFunctions: false
|
|
470
|
+
}
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Utility function to decompose a JOIN + aggregation query from SQL string
|
|
476
|
+
*
|
|
477
|
+
* @param sql The SQL string to parse and decompose
|
|
478
|
+
* @param options Decomposer options
|
|
479
|
+
* @returns The decomposed query
|
|
480
|
+
* @throws DecompositionError if parsing or decomposition fails
|
|
481
|
+
*/
|
|
482
|
+
function decomposeJoinAggregation(sql, options) {
|
|
483
|
+
try {
|
|
484
|
+
// Import using ES module syntax to avoid require issues
|
|
485
|
+
const { SelectQueryParser } = eval('require("../parsers/SelectQueryParser")');
|
|
486
|
+
const query = SelectQueryParser.parse(sql);
|
|
487
|
+
const decomposer = new JoinAggregationDecomposer(options);
|
|
488
|
+
return decomposer.decompose(query);
|
|
489
|
+
}
|
|
490
|
+
catch (error) {
|
|
491
|
+
if (error instanceof DecompositionError) {
|
|
492
|
+
throw error;
|
|
493
|
+
}
|
|
494
|
+
throw new DecompositionError(`Failed to parse SQL: ${error instanceof Error ? error.message : String(error)}`, new SimpleSelectQuery_1.SimpleSelectQuery({ selectClause: new Clause_1.SelectClause([]) }), error instanceof Error ? error : undefined);
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
//# sourceMappingURL=JoinAggregationDecomposer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JoinAggregationDecomposer.js","sourceRoot":"","sources":["../../../src/transformers/JoinAggregationDecomposer.ts"],"names":[],"mappings":"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"}
|