From 27f8fb16c5589ecfb36a7312f5df4cc7f03f63aa Mon Sep 17 00:00:00 2001 From: qcqcqc <1220204124@zust.edu.cn> Date: Tue, 30 Dec 2025 16:19:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20postgres=E7=9A=84char=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=9C=A8=E6=9F=A5=E8=AF=A2=E7=BB=93=E6=9E=9C=E4=B8=AD=E4=BC=9A?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A1=AB=E5=85=85=E7=A9=BA=E6=A0=BC=EF=BC=8C?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E7=89=B9=E6=AE=8A=E5=A4=84=E7=90=86=EF=BC=8C?= =?UTF-8?q?=E4=BB=A5=E4=BF=9D=E8=AF=81=E8=A1=8C=E4=B8=BA=E5=92=8Cmysql?= =?UTF-8?q?=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/PostgreSQL/store.js | 20 +++++++++++++++++++- src/PostgreSQL/store.ts | 20 ++++++++++++++++++-- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/lib/PostgreSQL/store.js b/lib/PostgreSQL/store.js index e2918d2..f51ee6f 100644 --- a/lib/PostgreSQL/store.js +++ b/lib/PostgreSQL/store.js @@ -176,13 +176,31 @@ class PostgreSQLStore extends CascadeStore_1.CascadeStore { } break; } + // TODO: 这里和mysql统一行为,ref类型的字符串去除前后空格 + case "char": + case "ref": { + if (value) { + (0, assert_1.default)(typeof value === 'string'); + r[attr] = value.trim(); + } + else { + r[attr] = value; + } + break; + } default: { r[attr] = value; } } } else { - r[attr] = value; + // TODO: 这里和mysql统一行为,id字段为char类型时,去除后面的空格 + if (value && typeof value === 'string' && attr === 'id') { + r[attr] = value.trim(); + } + else { + r[attr] = value; + } } } else { diff --git a/src/PostgreSQL/store.ts b/src/PostgreSQL/store.ts index 3bc79c1..7320460 100644 --- a/src/PostgreSQL/store.ts +++ b/src/PostgreSQL/store.ts @@ -243,12 +243,28 @@ export class PostgreSQLStore< } break; } + // TODO: 这里和mysql统一行为,ref类型的字符串去除前后空格 + case "char": + case "ref": { + if (value) { + assert(typeof value === 'string'); + r[attr] = value.trim(); + } else { + r[attr] = value; + } + break; + } default: { r[attr] = value; } } } else { - r[attr] = value; + // TODO: 这里和mysql统一行为,id字段为char类型时,去除后面的空格 + if (value && typeof value === 'string' && attr === 'id') { + r[attr] = value.trim(); + } else { + r[attr] = value; + } } } else { assign(r, { [attr]: value }); @@ -305,7 +321,7 @@ export class PostgreSQLStore< option?: PostgreSQLSelectOption ): Promise[]> { const sql = this.translator.translateSelect(entity, selection, option); - console.log('selection:', JSON.stringify(selection, null , 2), 'Select SQL:', sql); + console.log('selection:', JSON.stringify(selection, null, 2), 'Select SQL:', sql); const result = await this.connector.exec(sql, context.getCurrentTxnId()); return this.formResult(entity, result[0]); }