@m2k-5f/pgtx 2.5.1 → 2.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,10 @@ export class Connection {
62
62
  this._stmtCounter = 0;
63
63
  this.params = params;
64
64
  this._logLevel = logLevel;
65
- this._socket = new SocketConnector(socket, (type, _, reader) => this._handlePacket(type, reader), (err) => this._registerReconnect());
65
+ this._socket = new SocketConnector(socket, (type, _, reader) => this._handlePacket(type, reader), (err) => {
66
+ // console.log(err)
67
+ this._registerReconnect();
68
+ });
66
69
  this._writer = writer;
67
70
  }
68
71
  /**
@@ -6,7 +6,7 @@ export class ConnectionRequestBuffer {
6
6
  this.lastRequestLenByteOffset = lastRequestLenByteOffset;
7
7
  }
8
8
  static new(capacity) {
9
- return new ConnectionRequestBuffer(Buffer.alloc(capacity));
9
+ return new ConnectionRequestBuffer(Buffer.allocUnsafe(capacity));
10
10
  }
11
11
  ensureCapacity(needed) {
12
12
  const required = needed + this.offset;
@@ -12,7 +12,6 @@ export declare class ConnectionResponseBuffer {
12
12
  readInt16(): number;
13
13
  readCString(): string;
14
14
  readRawString(length: number): string;
15
- readBytes(length: number): Buffer;
16
15
  hasMore(): boolean;
17
16
  readRawBinaryString(length: number): string;
18
17
  readBinaryDate(): Date;
@@ -24,7 +23,10 @@ export declare class ConnectionResponseBuffer {
24
23
  readBool(): boolean;
25
24
  readBigInt64(): bigint;
26
25
  readInt64(): number;
26
+ readFloat32(): number;
27
27
  readFloat64(): number;
28
+ readUuid(): string;
29
+ readBytes(length: number): Buffer<ArrayBuffer>;
28
30
  getBufferHash(length: number): number;
29
31
  }
30
32
  export declare class ConnectionResponseReader {
@@ -37,7 +39,7 @@ export declare class ConnectionResponseReader {
37
39
  length: number;
38
40
  };
39
41
  readAuthentication(): AuthenticationCode;
40
- readMD5Salt(): Buffer<ArrayBufferLike>;
42
+ readMD5Salt(): Buffer<ArrayBuffer>;
41
43
  readParameterStatus(): {
42
44
  name: string;
43
45
  value: string;
@@ -1 +1 @@
1
- {"version":3,"file":"connection-response-reader.d.ts","sourceRoot":"","sources":["../../src/protocol/connection-response-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA6B,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAM3C,qBAAa,wBAAwB;IAI7B,OAAO,CAAC,MAAM;IAHlB,OAAO,CAAC,KAAK,CAAI;IAEjB,OAAO;IAKP,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;IAK1B,QAAQ,IAAI,MAAM;IAOlB,SAAS,IAAI,MAAM;IAOnB,SAAS,IAAI,MAAM;IAOnB,WAAW,IAAI,MAAM;IAQrB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAOrC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAOjC,OAAO,IAAI,OAAO;IAKlB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAO3C,cAAc,IAAI,IAAI;IAOtB,mBAAmB,IAAI,IAAI;IAO3B,cAAc,IAAI,MAAM;IAaxB,SAAS,CAAC,SAAS,EAAE,MAAM;IAK3B,aAAa,IAAI,OAAO;IAaxB,iBAAiB;IAIjB,QAAQ;IAMR,YAAY,IAAI,MAAM;IAOtB,SAAS;IAST,WAAW,IAAI,MAAM;IAMrB,aAAa,CAAC,MAAM,EAAE,MAAM;CAW/B;AAGD,qBAAa,wBAAwB;IAI7B,OAAO,CAAC,MAAM;IAHlB,OAAO,CAAC,mBAAmB,CAAK;IAEhC,OAAO;IAKP,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;IAK1B,QAAQ;cACoC,YAAY;;;IAIxD,kBAAkB,IACoB,kBAAkB;IAIxD,WAAW;IAKX,mBAAmB;;;;IAQnB,kBAAkB;;;;IAQlB,iBAAiB,IAAI,aAAa;IA4ClC,iBAAiB,IACoB,iBAAiB;IAItD,kBAAkB,IAAI,MAAM,EAAE;IAa9B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKvC,kBAAkB;IAsBlB,WAAW,CAAC,YAAY,EAAE,iBAAiB,EAAE,EAAE,YAAY,GAAE,OAAe,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA6FlG,wBAAwB;;;;IASxB,mBAAmB,IAAI,MAAM;IAK7B,OAAO;IAKP,aAAa;IAKb,iBAAiB;IAKjB,iBAAiB;IAGjB,gBAAgB;IAGhB,wBAAwB;IAOxB,UAAU;CACb"}
1
+ {"version":3,"file":"connection-response-reader.d.ts","sourceRoot":"","sources":["../../src/protocol/connection-response-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA6B,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAM3C,qBAAa,wBAAwB;IAI7B,OAAO,CAAC,MAAM;IAHlB,OAAO,CAAC,KAAK,CAAI;IAEjB,OAAO;IAKP,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;IAK1B,QAAQ,IAAI,MAAM;IAOlB,SAAS,IAAI,MAAM;IAOnB,SAAS,IAAI,MAAM;IAOnB,WAAW,IAAI,MAAM;IAQrB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAOrC,OAAO,IAAI,OAAO;IAKlB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAO3C,cAAc,IAAI,IAAI;IAOtB,mBAAmB,IAAI,IAAI;IAO3B,cAAc,IAAI,MAAM;IAaxB,SAAS,CAAC,SAAS,EAAE,MAAM;IAK3B,aAAa,IAAI,OAAO;IAaxB,iBAAiB;IAIjB,QAAQ;IAMR,YAAY,IAAI,MAAM;IAOtB,SAAS;IAST,WAAW;IAOX,WAAW,IAAI,MAAM;IAMrB,QAAQ;IAWR,SAAS,CAAC,MAAM,EAAE,MAAM;IAQxB,aAAa,CAAC,MAAM,EAAE,MAAM;CAW/B;AAGD,qBAAa,wBAAwB;IAI7B,OAAO,CAAC,MAAM;IAHlB,OAAO,CAAC,mBAAmB,CAAK;IAEhC,OAAO;IAKP,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;IAK1B,QAAQ;cACoC,YAAY;;;IAIxD,kBAAkB,IACoB,kBAAkB;IAIxD,WAAW;IAKX,mBAAmB;;;;IAQnB,kBAAkB;;;;IAQlB,iBAAiB,IAAI,aAAa;IA4ClC,iBAAiB,IACoB,iBAAiB;IAItD,kBAAkB,IAAI,MAAM,EAAE;IAa9B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKvC,kBAAkB;IAsBlB,WAAW,CAAC,YAAY,EAAE,iBAAiB,EAAE,EAAE,YAAY,GAAE,OAAe,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA0GlG,wBAAwB;;;;IASxB,mBAAmB,IAAI,MAAM;IAK7B,OAAO;IAKP,aAAa;IAKb,iBAAiB;IAKjB,iBAAiB;IAGjB,gBAAgB;IAGhB,wBAAwB;IAOxB,UAAU;CACb"}
@@ -36,11 +36,6 @@ export class ConnectionResponseBuffer {
36
36
  this.caret += length;
37
37
  return text;
38
38
  }
39
- readBytes(length) {
40
- const slice = this.buffer.subarray(this.caret, this.caret + length);
41
- this.caret += length;
42
- return slice;
43
- }
44
39
  hasMore() {
45
40
  return this.caret < this.buffer.length;
46
41
  }
@@ -99,11 +94,30 @@ export class ConnectionResponseBuffer {
99
94
  this.caret += 8;
100
95
  return (hi * 4294967296) + lo;
101
96
  }
97
+ readFloat32() {
98
+ const value = this.buffer.readFloatBE(this.caret);
99
+ this.caret += 4;
100
+ return value;
101
+ }
102
102
  readFloat64() {
103
103
  const value = this.buffer.readDoubleBE(this.caret);
104
104
  this.caret += 8;
105
105
  return value;
106
106
  }
107
+ readUuid() {
108
+ const buf = this.readBytes(16);
109
+ return buf.toString('hex', 0, 4) + '-' +
110
+ buf.toString('hex', 4, 6) + '-' +
111
+ buf.toString('hex', 6, 8) + '-' +
112
+ buf.toString('hex', 8, 10) + '-' +
113
+ buf.toString('hex', 10, 16);
114
+ }
115
+ readBytes(length) {
116
+ const result = Buffer.allocUnsafe(length);
117
+ this.buffer.copy(result, 0, this.caret, this.caret + length);
118
+ this.caret += length;
119
+ return result;
120
+ }
107
121
  getBufferHash(length) {
108
122
  let hash = 2166136261;
109
123
  const end = this.caret + length;
@@ -228,19 +242,17 @@ export class ConnectionResponseReader {
228
242
  for (let i = 0; i < fieldsCount; i++) {
229
243
  const fieldLength = this.buffer.readInt32();
230
244
  const desc = descriptions[i];
231
- const key = desc ? desc.name : `col_${i}`;
245
+ const key = desc.name;
232
246
  if (fieldLength === -1) {
233
247
  row[key] = null;
234
248
  continue;
235
249
  }
236
- const oid = desc ? desc.typeOID : 0;
250
+ const oid = desc.typeOID;
237
251
  switch (oid) {
238
- case DataTypeOids.Int4:
239
- row[key] = this.buffer.readInt32();
240
- break;
241
252
  case DataTypeOids.Text:
242
253
  case DataTypeOids.Varchar:
243
254
  case DataTypeOids.Char:
255
+ case DataTypeOids.Bpchar:
244
256
  {
245
257
  if (fieldLength <= 32) {
246
258
  let cacheForColumn = columnValueCache.get(i);
@@ -267,36 +279,72 @@ export class ConnectionResponseReader {
267
279
  }
268
280
  break;
269
281
  case DataTypeOids.Int2:
270
- row[key] = this.buffer.readInt16();
282
+ {
283
+ row[key] = this.buffer.readInt16();
284
+ }
271
285
  break;
272
- case DataTypeOids.Bool:
273
- row[key] = this.buffer.readBool();
286
+ case DataTypeOids.Int4:
287
+ {
288
+ row[key] = this.buffer.readInt32();
289
+ }
274
290
  break;
275
291
  case DataTypeOids.Int8:
276
292
  {
277
293
  row[key] = int8toBigint ? this.buffer.readBigInt64() : this.buffer.readInt64();
278
294
  }
279
295
  break;
296
+ case DataTypeOids.Float4:
297
+ {
298
+ row[key] = this.buffer.readFloat32();
299
+ }
300
+ break;
280
301
  case DataTypeOids.Float8:
281
- row[key] = this.buffer.readFloat64();
302
+ {
303
+ row[key] = this.buffer.readFloat64();
304
+ }
305
+ break;
306
+ case DataTypeOids.Bool:
307
+ {
308
+ row[key] = this.buffer.readBool();
309
+ }
310
+ break;
311
+ case DataTypeOids.Bytea:
312
+ {
313
+ row[key] = this.buffer.readBytes(fieldLength);
314
+ }
282
315
  break;
283
316
  case DataTypeOids.Jsonb:
284
- this.buffer.skipBytes(1);
285
- row[key] = JSON.parse(this.buffer.readRawString(fieldLength - 1));
317
+ {
318
+ this.buffer.skipBytes(1);
319
+ row[key] = JSON.parse(this.buffer.readRawString(fieldLength - 1));
320
+ }
286
321
  break;
287
322
  case DataTypeOids.Json:
288
- row[key] = JSON.parse(this.buffer.readRawString(fieldLength));
323
+ {
324
+ row[key] = JSON.parse(this.buffer.readRawString(fieldLength));
325
+ }
289
326
  break;
290
327
  case DataTypeOids.Date:
291
- row[key] = this.buffer.readBinaryDate();
328
+ {
329
+ row[key] = this.buffer.readBinaryDate();
330
+ }
292
331
  break;
293
332
  case DataTypeOids.Timestamp:
294
333
  case DataTypeOids.Timestamptz:
295
- row[key] = this.buffer.readBinaryTimestamp();
334
+ {
335
+ row[key] = this.buffer.readBinaryTimestamp();
336
+ }
337
+ break;
338
+ case DataTypeOids.Uuid:
339
+ {
340
+ row[key] = this.buffer.readUuid();
341
+ }
296
342
  break;
297
343
  default:
298
- this.buffer.skipBytes(fieldLength);
299
- row[key] = null;
344
+ {
345
+ this.buffer.skipBytes(fieldLength);
346
+ row[key] = null;
347
+ }
300
348
  break;
301
349
  }
302
350
  }
@@ -32,6 +32,9 @@ const prepareValue = (value) => {
32
32
  if (value instanceof Date) {
33
33
  return value.toISOString();
34
34
  }
35
+ if (Buffer.isBuffer(value) || value instanceof Uint8Array) {
36
+ return '\\x' + Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString('hex');
37
+ }
35
38
  if (Array.isArray(value)) {
36
39
  const elements = value.map(el => {
37
40
  if (el === null || el === undefined)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m2k-5f/pgtx",
3
- "version": "2.5.1",
3
+ "version": "2.5.2",
4
4
  "type": "module",
5
5
  "description": "Blazing-fast PostgreSQL driver with pipeline support.",
6
6
  "files": [
@@ -44,6 +44,7 @@
44
44
  "devDependencies": {
45
45
  "@types/node": "^26.2.0",
46
46
  "mitata": "^1.0.34",
47
+ "pg": "^8.23.0",
47
48
  "postgres": "^3.4.9",
48
49
  "tsx": "^4.23.11",
49
50
  "typescript": "^5.9.3"