From 86ac598496084fb215ac14b93a922b0f38c4c5d9 Mon Sep 17 00:00:00 2001 From: Nicolas Guerrero Date: Sun, 24 Jan 2021 18:38:45 -0500 Subject: [PATCH] Add xid support --- decode.ts | 2 ++ oid.ts | 5 ++--- tests/data_types.ts | 12 ++++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/decode.ts b/decode.ts index 39d3864f..2fd53dde 100644 --- a/decode.ts +++ b/decode.ts @@ -286,9 +286,11 @@ function decodeText(value: Uint8Array, typeOid: number): any { return parseArray(strValue, (x) => x[0] === "t"); case Oid.int2: case Oid.int4: + case Oid.xid: return decodeBaseTenInt(strValue); case Oid.int2_array: case Oid.int4_array: + case Oid.xid_array: return decodeIntArray(strValue); case Oid.float4: case Oid.float8: diff --git a/oid.ts b/oid.ts index beaf81af..0a1f02d4 100644 --- a/oid.ts +++ b/oid.ts @@ -15,8 +15,7 @@ export const Oid = { oid: 26, // deno-lint-ignore camelcase _tid_0: 27, - // deno-lint-ignore camelcase - _xid_0: 28, + xid: 28, // deno-lint-ignore camelcase _cid_0: 29, // deno-lint-ignore camelcase @@ -101,7 +100,7 @@ export const Oid = { // deno-lint-ignore camelcase _tid_1: 1010, // deno-lint-ignore camelcase - _xid_1: 1011, + xid_array: 1011, // deno-lint-ignore camelcase _cid_1: 1012, // deno-lint-ignore camelcase diff --git a/tests/data_types.ts b/tests/data_types.ts index 26d63d1f..f823a487 100644 --- a/tests/data_types.ts +++ b/tests/data_types.ts @@ -557,3 +557,15 @@ testClient(async function timetzArray() { assertEquals(result.rows[0][0][0].slice(0, 8), "01:01:01"); }); + +testClient(async function xid() { + const result = await CLIENT.query("SELECT '1'::xid"); + + assertEquals(result.rows[0][0], 1); +}); + +testClient(async function xidArray() { + const result = await CLIENT.query("SELECT ARRAY['12'::xid, '4789'::xid]"); + + assertEquals(result.rows[0][0], [12, 4789]); +});