rawsql-ts
Version:
High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
52 lines (51 loc) • 2.64 kB
TypeScript
import { UpdateQuery } from '../models/UpdateQuery';
import { SimpleSelectQuery } from '../models/SelectQuery';
import { TableDefinitionModel, TableDefinitionRegistry } from '../models/TableDefinitionModel';
import { FixtureTableDefinition } from './FixtureCteBuilder';
import type { MissingFixtureStrategy } from './InsertResultSelectConverter';
/** Options that control how UPDATE-to-SELECT conversion resolves metadata and fixtures. */
export interface UpdateResultSelectOptions {
/** Optional registry keyed by table name (matching the target table name case). */
tableDefinitions?: TableDefinitionRegistry;
/** Optional callback that resolves metadata by table name (useful for schemified targets). */
tableDefinitionResolver?: (tableName: string) => TableDefinitionModel | undefined;
/** Optional fixtures that should shadow real tables inside the generated SELECT. */
fixtureTables?: FixtureTableDefinition[];
/** Strategy for how missing fixtures should be tolerated. */
missingFixtureStrategy?: MissingFixtureStrategy;
}
export declare class UpdateResultSelectConverter {
private static readonly DEFAULT_MISSING_FIXTURE_STRATEGY;
/**
* Converts an UPDATE with RETURNING (or a bare UPDATE) into a SELECT that mirrors its output rows.
*/
static toSelectQuery(updateQuery: UpdateQuery, options?: UpdateResultSelectOptions): SimpleSelectQuery;
private static buildReturningSelectClause;
private static buildReturningSelectItems;
private static isWildcardReturningItem;
private static expandReturningWildcard;
private static buildUpdateReturningSelectItem;
private static buildUpdateColumnExpression;
private static getColumnReferenceName;
private static getReturningAlias;
private static buildCountSelectClause;
private static buildFromClause;
private static mapSetExpressions;
private static ensureColumnExists;
private static resolveTableDefinition;
private static convertFixtureToTableDefinition;
private static buildTableDefinitionMap;
private static extractTargetTableName;
private static extractColumnName;
private static buildFixtureCtes;
private static collectPhysicalTableReferences;
private static filterFixtureTablesForReferences;
private static collectReferencedTablesFromWithClause;
private static buildFixtureTableMap;
private static ensureFixtureCoverage;
private static collectReferencedTables;
private static collectCteNamesFromWithClause;
private static getMissingFixtureTables;
private static mergeWithClause;
private static normalizeIdentifier;
}