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
| Parameter | Type | Description |
|---|---|---|
identifier | string | 标识符 |
Returns
string
转义后的标识符
Implementation of
generateBatchInsert()
generateBatchInsert(
tableName,
columns,
rowCount
): string;
Defined in: packages/rxdb-adapter-pglite/src/sql_dialect.ts:87
生成批量插入 SQL(带 RETURNING)
Parameters
| Parameter | Type | Description |
|---|---|---|
tableName | string | 表名 |
columns | string[] | 列名数组 |
rowCount | number | 行数 |
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
| Parameter | Type | Default value | Description |
|---|---|---|---|
tableName | string | undefined | 表名 |
pkColumn | string | undefined | 主键列名 |
updateColumns | string[] | undefined | 更新列名数组 |
rowCount | number | 1 | 批量行数,默认 1 |
columnTypes | Readonly<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
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
| Parameter | Type | Description |
|---|---|---|
index | number | 参数索引(从 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 子句字符串