rawsql-ts
Version:
High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
54 lines (53 loc) • 2.73 kB
TypeScript
import { DeleteQuery } from '../models/DeleteQuery';
import { SimpleSelectQuery } from '../models/SelectQuery';
import { TableDefinitionModel, TableDefinitionRegistry } from '../models/TableDefinitionModel';
import { FixtureTableDefinition } from './FixtureCteBuilder';
import type { MissingFixtureStrategy } from './InsertResultSelectConverter';
/** Options that control how DELETE-to-SELECT conversion resolves metadata and fixtures. */
export interface DeleteResultSelectOptions {
/** 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 DeleteResultSelectConverter {
private static readonly DEFAULT_MISSING_FIXTURE_STRATEGY;
/**
* Converts a DELETE (with optional RETURNING) into a SELECT that mirrors its output rows.
*/
static toSelectQuery(deleteQuery: DeleteQuery, options?: DeleteResultSelectOptions): SimpleSelectQuery;
private static buildReturningSelectClause;
private static buildReturningSelectItems;
private static isWildcardReturningItem;
private static expandReturningWildcard;
private static buildDeleteReturningSelectItem;
private static buildDeleteColumnReference;
private static composeDeleteColumnReference;
private static getReturningAlias;
private static buildCountSelectClause;
private static buildFromClause;
private static buildReturningContext;
private static buildTableContexts;
private static parseReturningColumnName;
private static findTableContextForNamespaces;
private static ensureColumnExists;
private static resolveTableDefinition;
private static convertFixtureToTableDefinition;
private static buildTableDefinitionMap;
private static extractTargetTableName;
private static buildFixtureCtes;
private static collectPhysicalTableReferences;
private static buildFixtureTableMap;
private static filterFixtureTablesForReferences;
private static collectReferencedTablesFromWithClause;
private static ensureFixtureCoverage;
private static collectReferencedTables;
private static collectCteNamesFromWithClause;
private static getMissingFixtureTables;
private static mergeWithClause;
private static normalizeIdentifier;
}