UNPKG

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
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; }