dialect.d.ts 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { entityKind } from "../entity.js";
  2. import type { MigrationConfig, MigrationMeta } from "../migrator.js";
  3. import { PgColumn } from "./columns/index.js";
  4. import type { PgDeleteConfig, PgInsertConfig, PgUpdateConfig } from "./query-builders/index.js";
  5. import type { PgSelectConfig } from "./query-builders/select.types.js";
  6. import { PgTable } from "./table.js";
  7. import { type BuildRelationalQueryResult, type DBQueryConfig, type Relation, type TableRelationalConfig, type TablesRelationalConfig } from "../relations.js";
  8. import { type DriverValueEncoder, type QueryTypingsValue, type QueryWithTypings, SQL } from "../sql/sql.js";
  9. import { type Casing, type UpdateSet } from "../utils.js";
  10. import type { PgSession } from "./session.js";
  11. import type { PgMaterializedView } from "./view.js";
  12. export interface PgDialectConfig {
  13. casing?: Casing;
  14. }
  15. export declare class PgDialect {
  16. static readonly [entityKind]: string;
  17. constructor(config?: PgDialectConfig);
  18. migrate(migrations: MigrationMeta[], session: PgSession, config: string | MigrationConfig): Promise<void>;
  19. escapeName(name: string): string;
  20. escapeParam(num: number): string;
  21. escapeString(str: string): string;
  22. private buildWithCTE;
  23. buildDeleteQuery({ table, where, returning, withList }: PgDeleteConfig): SQL;
  24. buildUpdateSet(table: PgTable, set: UpdateSet): SQL;
  25. buildUpdateQuery({ table, set, where, returning, withList, from, joins }: PgUpdateConfig): SQL;
  26. /**
  27. * Builds selection SQL with provided fields/expressions
  28. *
  29. * Examples:
  30. *
  31. * `select <selection> from`
  32. *
  33. * `insert ... returning <selection>`
  34. *
  35. * If `isSingleTable` is true, then columns won't be prefixed with table name
  36. */
  37. private buildSelection;
  38. private buildJoins;
  39. private buildFromTable;
  40. buildSelectQuery({ withList, fields, fieldsFlat, where, having, table, joins, orderBy, groupBy, limit, offset, lockingClause, distinct, setOperators, }: PgSelectConfig): SQL;
  41. buildSetOperations(leftSelect: SQL, setOperators: PgSelectConfig['setOperators']): SQL;
  42. buildSetOperationQuery({ leftSelect, setOperator: { type, isAll, rightSelect, limit, orderBy, offset }, }: {
  43. leftSelect: SQL;
  44. setOperator: PgSelectConfig['setOperators'][number];
  45. }): SQL;
  46. buildInsertQuery({ table, values: valuesOrSelect, onConflict, returning, withList, select, overridingSystemValue_ }: PgInsertConfig): SQL;
  47. buildRefreshMaterializedViewQuery({ view, concurrently, withNoData }: {
  48. view: PgMaterializedView;
  49. concurrently?: boolean;
  50. withNoData?: boolean;
  51. }): SQL;
  52. prepareTyping(encoder: DriverValueEncoder<unknown, unknown>): QueryTypingsValue;
  53. sqlToQuery(sql: SQL, invokeSource?: 'indexes' | undefined): QueryWithTypings;
  54. buildRelationalQueryWithoutPK({ fullSchema, schema, tableNamesMap, table, tableConfig, queryConfig: config, tableAlias, nestedQueryRelation, joinOn, }: {
  55. fullSchema: Record<string, unknown>;
  56. schema: TablesRelationalConfig;
  57. tableNamesMap: Record<string, string>;
  58. table: PgTable;
  59. tableConfig: TableRelationalConfig;
  60. queryConfig: true | DBQueryConfig<'many', true>;
  61. tableAlias: string;
  62. nestedQueryRelation?: Relation;
  63. joinOn?: SQL;
  64. }): BuildRelationalQueryResult<PgTable, PgColumn>;
  65. }