import Base from "../base.js"; import { Client } from "pg"; import Options from "./options.js"; import Table from "./table.js"; export default class VelociousDatabaseDriversPgsql extends Base { connection: Client | undefined; _options: Options | undefined; connect(): Promise; connectArgs(): Record; _close(): Promise; /** * Runs set connection checkout name. * @param {string | undefined} name - Human-readable name for this active checkout. * @returns {Promise} - Resolves when complete. */ setConnectionCheckoutName(name: string | undefined): Promise; /** * Runs clear connection checkout name. * @returns {Promise} - Resolves when complete. */ clearConnectionCheckoutName(): Promise; /** * Sets the database session timezone to UTC so bare timestamp literals store UTC instants. * @returns {Promise} - Resolves when complete. */ setSessionTimezoneToUtc(): Promise; /** * Runs alter table sqls. * @param {import("../../table-data/index.js").default} tableData - Table data. * @returns {Promise} - Resolves with SQL statements. */ alterTableSQLs(tableData: import("../../table-data/index.js").default): Promise; /** * Runs create database sql. * @param {string} databaseName - Database name. * @param {object} [args] - Options object. * @param {boolean} [args.ifNotExists] - Whether if not exists. * @returns {string[]} - SQL statements. */ createDatabaseSql(databaseName: string, args?: { ifNotExists?: boolean; }): string[]; /** * Runs drop database sql. * @param {string} databaseName - Database name. * @param {object} [args] - Options object. * @param {boolean} [args.ifExists] - Whether if exists. * @returns {string[]} - SQL statements. */ dropDatabaseSql(databaseName: string, args?: { ifExists?: boolean; }): string[]; /** * Runs create index sqls. * @param {import("../base.js").CreateIndexSqlArgs} indexData - Index data. * @returns {Promise} - Resolves with SQL statements. */ createIndexSQLs(indexData: import("../base.js").CreateIndexSqlArgs): Promise; /** * Runs remove index sqls. * @param {import("../base.js").RemoveIndexSqlArgs} indexData - Index data. * @returns {Promise} - Resolves with SQL statements. */ removeIndexSQLs(indexData: import("../base.js").RemoveIndexSqlArgs): Promise; /** * Runs create table sql. * @param {import("../../table-data/index.js").default} tableData - Table data. * @returns {Promise} - Resolves with SQL statements. */ createTableSql(tableData: import("../../table-data/index.js").default): Promise; currentDatabase(): Promise; disableForeignKeys(): Promise; enableForeignKeys(): Promise; /** * Runs drop table sqls. * @param {string} tableName - Table name. * @param {import("../base.js").DropTableSqlArgsType} [args] - Options object. * @returns {Promise} - Resolves with SQL statements. */ dropTableSQLs(tableName: string, args?: import("../base.js").DropTableSqlArgsType): Promise; getType(): string; /** * Whether this driver supports combining operations into one bulk `ALTER`. * @returns {boolean} - Whether bulk alter is supported. */ supportsBulkAlter(): boolean; /** * Whether the bulk `ALTER` can also carry `ADD INDEX` clauses. PostgreSQL's * `ALTER TABLE` cannot express index creation, so indexes stay standalone. * @returns {boolean} - Whether indexes can be added inside a bulk alter. */ supportsBulkAlterIndexes(): boolean; /** * Runs query actual. * @param {string} sql - SQL string. * @returns {Promise} - Resolves with the query actual. */ _queryActual(sql: string): Promise; /** * Executes a mutation with affected-row metadata. * @param {string} sql - Mutation SQL. * @returns {Promise} - Affected row count. */ _affectedRowsActual(sql: string): Promise; /** * Runs query to sql. * @param {import("../../query/index.js").default} query - Query instance. * @returns {string} - SQL string. */ queryToSql(query: import("../../query/index.js").default): string; shouldSetAutoIncrementWhenPrimaryKey(): boolean; supportsDefaultPrimaryKeyUUID(): boolean; /** * Runs convert value. * @param {ReturnType} value - Value to use. * @returns {ReturnType} - The converted value. */ _convertValue(value: ReturnType): ReturnType; /** * Runs escape. * @param {ReturnType} value - Value to use. * @returns {ReturnType} - The escape. */ escape(value: ReturnType): ReturnType; /** * Runs quote. * @param {ReturnType} value - Value to use. * @returns {string | number} - The quoted value. */ quote(value: ReturnType): string | number; /** * Runs delete sql. * @param {import("../base.js").DeleteSqlArgsType} args - Options object. * @returns {string} - SQL string. */ deleteSql({ tableName, conditions }: import("../base.js").DeleteSqlArgsType): string; /** * Runs insert sql. * @abstract * @param {import("../base.js").InsertSqlArgsType} args - Options object. * @returns {string} - SQL string. */ insertSql(args: import("../base.js").InsertSqlArgsType): string; getTables(): Promise; /** * Truncates all eligible tables in one PostgreSQL request. * @param {Array} tables - Eligible tables. * @returns {Promise} - Resolves when the batch completes. */ truncateTables(tables: Array): Promise; lastInsertID(options?: {}): Promise; options(): Options; _startTransactionAction(options?: {}): Promise; /** * Runs update sql. * @abstract * @param {import("../base.js").UpdateSqlArgsType} args - Options object. * @returns {string} - SQL string. */ updateSql({ conditions, data, tableName }: import("../base.js").UpdateSqlArgsType): string; /** * Runs upsert sql. * @param {import("../base.js").UpsertSqlArgsType} args - Options object. * @returns {string} - SQL string. */ upsertSql(args: import("../base.js").UpsertSqlArgsType): string; /** * Runs structure sql. * @returns {Promise} - Resolves with SQL string. */ structureSql(): Promise; /** * Deterministically hashes a lock name into a signed 64-bit integer so it * can be passed to `pg_advisory_lock(bigint)`. We use a fast 64-bit FNV-1a * hash — the exact value does not matter, only that the same name always * produces the same key within a process AND across processes that share * the same implementation. Returns the value as a string so the caller * can interpolate it into SQL without losing precision to JS number * coercion. * @param {string} name - Lock name. * @returns {string} - Signed 64-bit integer as a decimal string. */ advisoryLockKey(name: string): string; /** * Blocks until a PostgreSQL session-level advisory lock is acquired on * this connection. Implemented via `pg_advisory_lock(bigint)`, which has * no native timeout — the `timeoutMs` argument is emulated by racing a * `pg_try_advisory_lock` poll loop so callers on MySQL and Postgres see * the same contract. * @param {string} name - Lock name. * @param {{timeoutMs?: number | null}} [args] - Optional timeout in milliseconds; `null`, `undefined`, or negative blocks forever. * @returns {Promise} - True if the lock was acquired, false if the timeout elapsed. */ _acquireAdvisoryLock(name: string, { timeoutMs }?: { timeoutMs?: number | null; }): Promise; /** * Runs try acquire advisory lock. * @param {string} name - Lock name. * @returns {Promise} - True if the lock was acquired, false if it was already held. */ _tryAcquireAdvisoryLock(name: string): Promise; /** * Runs release advisory lock. * @param {string} name - Lock name. * @returns {Promise} - True if the lock was held by this session and has now been released. */ _releaseAdvisoryLock(name: string): Promise; /** * Runs is advisory lock held. * @param {string} name - Lock name. * @returns {Promise} - True if any session currently holds the lock. */ isAdvisoryLockHeld(name: string): Promise; } //# sourceMappingURL=index.d.ts.map