跳到主要内容

PostgreSQLDialect

Defined in: packages/rxdb-adapter-pglite/src/sql_dialect.ts:56

PostgreSQL 方言实现

关键差异:

  • 参数占位符:$1, $2, $3(而不是 SQLite 的 ?)
  • RETURNING 子句:支持返回插入/更新的行
  • 标识符转义:双引号
  • JSON 操作符:->> 和 ->
  • 字符串连接:||

Implements​

Constructors​

Constructor​

new PostgreSQLDialect(): PostgreSQLDialect;

Returns​

PostgreSQLDialect

Methods​

escapeIdentifier()​

escapeIdentifier(identifier): string;

Defined in: packages/rxdb-adapter-pglite/src/sql_dialect.ts:65

转义标识符(表名、列名等)

Parameters​

ParameterTypeDescription
identifierstring标识符

Returns​

string

转义后的标识符

Implementation of​

ISqlDialect.escapeIdentifier


generateBatchInsert()​

generateBatchInsert(
tableName,
columns,
rowCount
): string;

Defined in: packages/rxdb-adapter-pglite/src/sql_dialect.ts:87

生成批量插入 SQL(带 RETURNING)

Parameters​

ParameterTypeDescription
tableNamestring表名
columnsstring[]列名数组
rowCountnumber行数

Returns​

string

SQL 语句


generateBatchUpdate()​

generateBatchUpdate(
tableName,
pkColumn,
updateColumns,
rowCount?,
columnTypes?
): string;

Defined in: packages/rxdb-adapter-pglite/src/sql_dialect.ts:125

生成批量更新 SQL(使用 UPDATE ... FROM 模式)

每行占 1 + updateColumns.length 个参数,顺序是「主键, ...更新列」。

原实现固定生成 FROM (VALUES ($1)),别名列表却声明 1+N 列, 且更新列名未转义 —— 送进 PG 是 42P10 (table "temp" has 1 columns available but N columns specified), 而三条既有用例把这个形态 toContain 成了正确期望(PGL-014)。

VALUES 里的参数在 PG 眼里是 text。目标列不是文本类型时,必须通过 columnTypes 给出目标类型,否则 PG 报 column "age" is of type integer but expression is of type text —— 本方法拿不到实体 metadata,类型只能由调用方提供。

Parameters​

ParameterTypeDefault valueDescription
tableNamestringundefined表名
pkColumnstringundefined主键列名
updateColumnsstring[]undefined更新列名数组
rowCountnumber1批量行数,默认 1
columnTypesReadonly<Record<string, string>>{}列名 → PostgreSQL 类型,用于生成 ::type 转换;未给出的列按 text 处理

Returns​

string

SQL 模板

Throws​

rowCount 小于 1 或 updateColumns 为空


getConcatOperator()​

getConcatOperator(): string;

Defined in: packages/rxdb-adapter-pglite/src/sql_dialect.ts:76

获取字符串连接操作符

Returns​

string

字符串连接操作符

Implementation of​

ISqlDialect.getConcatOperator


getJsonExtractOperator()​

getJsonExtractOperator(): string;

Defined in: packages/rxdb-adapter-pglite/src/sql_dialect.ts:71

获取 JSON 提取操作符

Returns​

string

JSON 提取操作符

Implementation of​

ISqlDialect.getJsonExtractOperator


getParameterPlaceholder()​

getParameterPlaceholder(index): string;

Defined in: packages/rxdb-adapter-pglite/src/sql_dialect.ts:61

获取参数占位符

Parameters​

ParameterTypeDescription
indexnumber参数索引(从 1 开始)

Returns​

string

占位符字符串

Implementation of​

ISqlDialect.getParameterPlaceholder


getReturningClause()​

getReturningClause(): string;

Defined in: packages/rxdb-adapter-pglite/src/sql_dialect.ts:57

获取自增主键的 RETURNING 子句

Returns​

string

RETURNING 子句字符串

Implementation of​

ISqlDialect.getReturningClause