rawsql-ts
Version:
High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
68 lines (67 loc) • 3.33 kB
TypeScript
import { InsertQuery } from '../models/InsertQuery';
import { SimpleSelectQuery } from '../models/SelectQuery';
import { TableDefinitionModel, TableDefinitionRegistry } from '../models/TableDefinitionModel';
import { FixtureTableDefinition } from './FixtureCteBuilder';
/** Options that drive how the insert-to-select transformation resolves table metadata. */
export interface InsertResultSelectOptions {
/** Optional registry keyed by table name (matching the target table name case). */
tableDefinitions?: TableDefinitionRegistry;
/** Optional callback to resolve metadata by full table name (useful for schemified names). */
tableDefinitionResolver?: (tableName: string) => TableDefinitionModel | undefined;
/** Optional fixtures that should shadow real tables inside the generated SELECT. */
fixtureTables?: FixtureTableDefinition[];
/** Strategy to control behavior when fixtures are missing for real tables. */
missingFixtureStrategy?: MissingFixtureStrategy;
}
/** Strategy choices for how missing fixtures are handled during transformation. */
export type MissingFixtureStrategy = 'error' | 'warn' | 'passthrough';
export declare class InsertResultSelectConverter {
private static readonly BASE_CTE_NAME;
private static readonly DEFAULT_MISSING_FIXTURE_STRATEGY;
/**
* Converts an INSERT ... SELECT/VALUES query into a SELECT that mirrors its RETURNING output
* (or a count(*) when RETURNING is absent).
*/
static toSelectQuery(insertQuery: InsertQuery, options?: InsertResultSelectOptions): SimpleSelectQuery;
private static prepareInsertQuery;
private static extractTargetTableName;
private static resolveTableDefinition;
private static convertFixtureToTableDefinition;
private static buildTableDefinitionMap;
private static resolveInsertColumns;
private static getSelectColumnCount;
private static getFirstSimpleSelectQuery;
private static buildColumnMetadata;
private static assertRequiredColumns;
private static buildReturningSelectItems;
private static isWildcardReturningItem;
private static expandReturningWildcard;
private static buildReturningSelectItem;
private static buildInsertColumnExpression;
private static extractColumnName;
private static getReturningAlias;
private static getColumnMetadata;
private static buildColumnExpression;
private static buildTypeValue;
private static collectPhysicalTableReferences;
private static buildFixtureCtes;
private static filterFixtureTablesForReferences;
private static collectReferencedTablesFromWithClause;
private static buildWithClause;
private static buildCountSelect;
private static buildFixtureTableMap;
private static ensureFixtureCoverage;
private static collectReferencedTables;
private static collectCteNamesFromWithClause;
private static addCteNames;
private static getMissingFixtureTables;
private static generateUniqueCteName;
private static normalizeIdentifier;
private static parseDefaultValue;
private static resolveDefaultValueExpression;
private static referencesSequence;
private static referencesSelect;
private static isSequenceFunction;
private static applyColumnCasts;
private static applyColumnCastsToSimple;
}