UNPKG

typeorm

Version:

Data-Mapper ORM for TypeScript and ES2023+. Supports MySQL/MariaDB, PostgreSQL, MS SQL Server, Oracle, SAP HANA, SQLite, MongoDB databases.

566 lines (565 loc) • 17.4 kB
import type { ObjectLiteral } from "../../common/ObjectLiteral"; import type { ReadStream } from "../../platform/PlatformTools"; import { BaseQueryRunner } from "../../query-runner/BaseQueryRunner"; import type { QueryRunner } from "../../query-runner/QueryRunner"; import { Table } from "../../schema-builder/table/Table"; import { TableCheck } from "../../schema-builder/table/TableCheck"; import { TableColumn } from "../../schema-builder/table/TableColumn"; import type { TableExclusion } from "../../schema-builder/table/TableExclusion"; import { TableForeignKey } from "../../schema-builder/table/TableForeignKey"; import { TableIndex } from "../../schema-builder/table/TableIndex"; import { TableUnique } from "../../schema-builder/table/TableUnique"; import { View } from "../../schema-builder/view/View"; import { Query } from "../Query"; import type { IsolationLevel } from "../types/IsolationLevel"; import type { ReplicationMode } from "../types/ReplicationMode"; import type { SapDriver } from "./SapDriver"; /** * Runs queries on a single SQL Server database connection. */ export declare class SapQueryRunner extends BaseQueryRunner implements QueryRunner { /** * Database driver used by connection. */ driver: SapDriver; /** * Promise used to obtain a database connection from a pool for a first time. */ protected databaseConnectionPromise: Promise<any>; private lock; constructor(driver: SapDriver, mode: ReplicationMode); /** * Creates/uses database connection from the connection pool to perform further operations. * Returns obtained database connection. */ connect(): Promise<any>; /** * Releases used database connection. * You cannot use query runner methods once its released. */ release(): Promise<void>; /** * Starts transaction. * * @param isolationLevel */ startTransaction(isolationLevel?: IsolationLevel): Promise<void>; /** * Commits transaction. * Error will be thrown if transaction was not started. */ commitTransaction(): Promise<void>; /** * Rollbacks transaction. * Error will be thrown if transaction was not started. */ rollbackTransaction(): Promise<void>; /** * Switches AUTOCOMMIT mode on/off * * @see https://help.sap.com/docs/HANA_SERVICE_CF/7c78579ce9b14a669c1f3295b0d8ca16/d538d11053bd4f3f847ec5ce817a3d4c.html?locale=en-US * @param options * @param options.status */ setAutoCommit(options: { status: "on" | "off"; }): Promise<void>; /** * Executes a given SQL query. * * @param query * @param parameters * @param useStructuredResult */ query(query: string, parameters?: any[] | ObjectLiteral, useStructuredResult?: boolean): Promise<any>; /** * Returns raw data stream. * * @param query * @param parameters * @param onEnd * @param onError */ stream(query: string, parameters?: any[], onEnd?: Function, onError?: Function): Promise<ReadStream>; /** * Returns all available database names including system databases. */ getDatabases(): Promise<string[]>; /** * Returns all available schema names including system schemas. * If database parameter specified, returns schemas of that database. * * @param database */ getSchemas(database?: string): Promise<string[]>; /** * Checks if database with the given name exist. * * @param database */ hasDatabase(database: string): Promise<boolean>; /** * Returns current database. */ getCurrentDatabase(): Promise<string>; /** * Returns the database server version. */ getDatabaseAndVersion(): Promise<{ database: string; version: string; }>; /** * Checks if schema with the given name exist. * * @param schema */ hasSchema(schema: string): Promise<boolean>; /** * Returns current schema. */ getCurrentSchema(): Promise<string>; /** * Checks if table with the given name exist in the database. * * @param tableOrName */ hasTable(tableOrName: Table | string): Promise<boolean>; /** * Checks if column with the given name exist in the given table. * * @param tableOrName * @param columnName */ hasColumn(tableOrName: Table | string, columnName: string): Promise<boolean>; /** * Creates a new database. * * @param database * @param ifNotExists */ createDatabase(database: string, ifNotExists?: boolean): Promise<void>; /** * Drops database. * * @param database * @param ifExists */ dropDatabase(database: string, ifExists?: boolean): Promise<void>; /** * Creates a new table schema. * * @param schemaPath * @param ifNotExists */ createSchema(schemaPath: string, ifNotExists?: boolean): Promise<void>; /** * Drops table schema * * @param schemaPath * @param ifExists * @param isCascade */ dropSchema(schemaPath: string, ifExists?: boolean, isCascade?: boolean): Promise<void>; /** * Creates a new table. * * @param table * @param ifNotExists * @param createForeignKeys * @param createIndices */ createTable(table: Table, ifNotExists?: boolean, createForeignKeys?: boolean, createIndices?: boolean): Promise<void>; /** * Drops the table. * * @param tableOrName * @param ifExists * @param dropForeignKeys * @param dropIndices */ dropTable(tableOrName: Table | string, ifExists?: boolean, dropForeignKeys?: boolean, dropIndices?: boolean): Promise<void>; /** * Creates a new view. * * @param view * @param syncWithMetadata */ createView(view: View, syncWithMetadata?: boolean): Promise<void>; /** * Drops the view. * * @param target * @param ifExists */ dropView(target: View | string, ifExists?: boolean): Promise<void>; /** * Renames a table. * * @param oldTableOrName * @param newTableName */ renameTable(oldTableOrName: Table | string, newTableName: string): Promise<void>; /** * Creates a new column from the column in the table. * * @param tableOrName * @param column */ addColumn(tableOrName: Table | string, column: TableColumn): Promise<void>; /** * Creates a new columns from the column in the table. * * @param tableOrName * @param columns */ addColumns(tableOrName: Table | string, columns: TableColumn[]): Promise<void>; /** * Renames column in the given table. * * @param tableOrName * @param oldTableColumnOrName * @param newTableColumnOrName */ renameColumn(tableOrName: Table | string, oldTableColumnOrName: TableColumn | string, newTableColumnOrName: TableColumn | string): Promise<void>; /** * Changes a column in the table. * * @param tableOrName * @param oldTableColumnOrName * @param newColumn */ changeColumn(tableOrName: Table | string, oldTableColumnOrName: TableColumn | string, newColumn: TableColumn): Promise<void>; /** * Changes a column in the table. * * @param tableOrName * @param changedColumns */ changeColumns(tableOrName: Table | string, changedColumns: { newColumn: TableColumn; oldColumn: TableColumn; }[]): Promise<void>; /** * Drops column in the table. * * @param tableOrName * @param columnOrName * @param ifExists */ dropColumn(tableOrName: Table | string, columnOrName: TableColumn | string, ifExists?: boolean): Promise<void>; /** * Drops the columns in the table. * * @param tableOrName * @param columns * @param ifExists */ dropColumns(tableOrName: Table | string, columns: TableColumn[] | string[], ifExists?: boolean): Promise<void>; /** * Creates a new primary key. * * @param tableOrName * @param columnNames */ createPrimaryKey(tableOrName: Table | string, columnNames: string[]): Promise<void>; /** * Updates composite primary keys. * * @param tableOrName * @param columns */ updatePrimaryKeys(tableOrName: Table | string, columns: TableColumn[]): Promise<void>; /** * Drops a primary key. * * @param tableOrName * @param constraintName * @param ifExists */ dropPrimaryKey(tableOrName: Table | string, constraintName?: string, ifExists?: boolean): Promise<void>; /** * Creates a new unique constraint. * * @param tableOrName * @param uniqueConstraint */ createUniqueConstraint(tableOrName: Table | string, uniqueConstraint: TableUnique): Promise<void>; /** * Creates a new unique constraints. * * @param tableOrName * @param uniqueConstraints */ createUniqueConstraints(tableOrName: Table | string, uniqueConstraints: TableUnique[]): Promise<void>; /** * Drops unique constraint. * * @param tableOrName * @param uniqueOrName * @param ifExists */ dropUniqueConstraint(tableOrName: Table | string, uniqueOrName: TableUnique | string, ifExists?: boolean): Promise<void>; /** * Drops unique constraints. * * @param tableOrName * @param uniqueConstraints * @param ifExists */ dropUniqueConstraints(tableOrName: Table | string, uniqueConstraints: TableUnique[], ifExists?: boolean): Promise<void>; /** * Creates a new check constraint. * * @param tableOrName * @param checkConstraint */ createCheckConstraint(tableOrName: Table | string, checkConstraint: TableCheck): Promise<void>; /** * Creates a new check constraints. * * @param tableOrName * @param checkConstraints */ createCheckConstraints(tableOrName: Table | string, checkConstraints: TableCheck[]): Promise<void>; /** * Drops check constraint. * * @param tableOrName * @param checkOrName * @param ifExists */ dropCheckConstraint(tableOrName: Table | string, checkOrName: TableCheck | string, ifExists?: boolean): Promise<void>; /** * Drops check constraints. * * @param tableOrName * @param checkConstraints * @param ifExists */ dropCheckConstraints(tableOrName: Table | string, checkConstraints: TableCheck[], ifExists?: boolean): Promise<void>; /** * Creates a new exclusion constraint. * * @param tableOrName * @param exclusionConstraint */ createExclusionConstraint(tableOrName: Table | string, exclusionConstraint: TableExclusion): Promise<void>; /** * Creates a new exclusion constraints. * * @param tableOrName * @param exclusionConstraints */ createExclusionConstraints(tableOrName: Table | string, exclusionConstraints: TableExclusion[]): Promise<void>; /** * Drops exclusion constraint. * * @param tableOrName * @param exclusionOrName * @param ifExists */ dropExclusionConstraint(tableOrName: Table | string, exclusionOrName: TableExclusion | string, ifExists?: boolean): Promise<void>; /** * Drops exclusion constraints. * * @param tableOrName * @param exclusionConstraints * @param ifExists */ dropExclusionConstraints(tableOrName: Table | string, exclusionConstraints: TableExclusion[], ifExists?: boolean): Promise<void>; /** * Creates a new foreign key. * * @param tableOrName * @param foreignKey */ createForeignKey(tableOrName: Table | string, foreignKey: TableForeignKey): Promise<void>; /** * Creates a new foreign keys. * * @param tableOrName * @param foreignKeys */ createForeignKeys(tableOrName: Table | string, foreignKeys: TableForeignKey[]): Promise<void>; /** * Drops a foreign key from the table. * * @param tableOrName * @param foreignKeyOrName * @param ifExists */ dropForeignKey(tableOrName: Table | string, foreignKeyOrName: TableForeignKey | string, ifExists?: boolean): Promise<void>; /** * Drops a foreign keys from the table. * * @param tableOrName * @param foreignKeys * @param ifExists */ dropForeignKeys(tableOrName: Table | string, foreignKeys: TableForeignKey[], ifExists?: boolean): Promise<void>; /** * Creates a new index. * * @param tableOrName * @param index */ createIndex(tableOrName: Table | string, index: TableIndex): Promise<void>; /** * Creates a new indices * * @param tableOrName * @param indices */ createIndices(tableOrName: Table | string, indices: TableIndex[]): Promise<void>; /** * Drops an index. * * @param tableOrName * @param indexOrName * @param ifExists */ dropIndex(tableOrName: Table | string, indexOrName: TableIndex | string, ifExists?: boolean): Promise<void>; /** * Drops an indices from the table. * * @param tableOrName * @param indices * @param ifExists */ dropIndices(tableOrName: Table | string, indices: TableIndex[], ifExists?: boolean): Promise<void>; /** * Clears all table contents. * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions. * * @param tablePath * @param options * @param options.cascade */ clearTable(tablePath: string, options?: { cascade?: boolean; }): Promise<void>; /** * Removes all tables from the currently connected database. */ clearDatabase(): Promise<void>; protected loadViews(viewNames?: string[]): Promise<View[]>; /** * Loads all tables (with given names) from the database and creates a Table from them. * * @param tableNames */ protected loadTables(tableNames?: string[]): Promise<Table[]>; /** * Builds and returns SQL for create table. * * @param table * @param createForeignKeys */ protected createTableSql(table: Table, createForeignKeys?: boolean): Query; /** * Builds drop table sql. * * @param tableOrName * @param ifExists */ protected dropTableSql(tableOrName: Table | string, ifExists?: boolean): Query; protected createViewSql(view: View): Query; protected insertViewDefinitionSql(view: View): Promise<Query>; /** * Builds drop view sql. * * @param viewOrPath */ protected dropViewSql(viewOrPath: View | string): Query; /** * Builds remove view sql. * * @param viewOrPath */ protected deleteViewDefinitionSql(viewOrPath: View | string): Promise<Query>; protected addColumnSql(table: Table, column: TableColumn): string; protected dropColumnSql(table: Table, column: TableColumn): string; /** * Builds create index sql. * * @param table * @param index */ protected createIndexSql(table: Table, index: TableIndex): Query; /** * Builds drop index sql. * * @param table * @param indexOrName */ protected dropIndexSql(table: Table, indexOrName: TableIndex | string): Query; /** * Builds create primary key sql. * * @param table * @param columnNames */ protected createPrimaryKeySql(table: Table, columnNames: string[]): Query; /** * Builds drop primary key sql. * * @param table */ protected dropPrimaryKeySql(table: Table): Query; /** * Builds create check constraint sql. * * @param table * @param checkConstraint */ protected createCheckConstraintSql(table: Table, checkConstraint: TableCheck): Query; /** * Builds drop check constraint sql. * * @param table * @param checkOrName */ protected dropCheckConstraintSql(table: Table, checkOrName: TableCheck | string): Query; /** * Builds create foreign key sql. * * @param tableOrName * @param foreignKey */ protected createForeignKeySql(tableOrName: Table | string, foreignKey: TableForeignKey): Query; /** * Builds drop foreign key sql. * * @param tableOrName * @param foreignKeyOrName */ protected dropForeignKeySql(tableOrName: Table | string, foreignKeyOrName: TableForeignKey | string): Query; /** * Escapes a given comment so it's safe to include in a query. * * @param comment */ protected escapeComment(comment?: string): string; /** * Escapes given table or view path. * * @param target */ protected escapePath(target: Table | View | string): string; /** * Builds a query for create column. * * @param column * @param explicitDefault * @param explicitNullable */ protected buildCreateColumnSql(column: TableColumn, explicitDefault?: boolean, explicitNullable?: boolean): string; /** * Change table comment. * * @param tableOrName * @param newComment */ changeTableComment(tableOrName: Table | string, newComment?: string): Promise<void>; }