From ecdf06ef39a177b207dc75930e96dfcf2ae12cdc Mon Sep 17 00:00:00 2001 From: Xiao Yijun Date: Fri, 9 Sep 2022 11:15:40 +0800 Subject: [PATCH] feat(core): save empty string as null value in DB (#1901) --- packages/core/src/database/utils.test.ts | 4 ++++ packages/core/src/database/utils.ts | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/core/src/database/utils.test.ts b/packages/core/src/database/utils.test.ts index ea36c450f..b966768b6 100644 --- a/packages/core/src/database/utils.test.ts +++ b/packages/core/src/database/utils.test.ts @@ -53,6 +53,10 @@ describe('convertToPrimitiveOrSql()', () => { expect(convertToPrimitiveOrSql(normalKey, ['bar'])).toEqual('["bar"]'); }); + it('converts empty string to null value', () => { + expect(convertToPrimitiveOrSql(normalKey, '')).toEqual(null); + }); + it('converts value to sql when key ends with special set and value is number', () => { for (const value of timestampKeyEndings) { expect(convertToPrimitiveOrSql(`${normalKey}${value}`, 12_341_234)).toEqual({ diff --git a/packages/core/src/database/utils.ts b/packages/core/src/database/utils.ts index 0bd63cd38..1cdeeb65f 100644 --- a/packages/core/src/database/utils.ts +++ b/packages/core/src/database/utils.ts @@ -47,7 +47,15 @@ export const convertToPrimitiveOrSql = ( return sql`to_timestamp(${value}::double precision / 1000)`; } - if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') { + if (typeof value === 'number' || typeof value === 'boolean') { + return value; + } + + if (typeof value === 'string') { + if (value === '') { + return null; + } + return value; }