node-firebird-driver-native 2.1.1 → 2.4.0

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.
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # Firebird high-level native client for Node.js / TypeScript
5
5
 
6
- node-firebird-driver-native is a modern (Firebird 3+ client, Node.js 8+, TypeScript 2+) native client for Firebird based in the
6
+ node-firebird-driver-native is a modern (Firebird 3+ client, Node.js 10+, TypeScript 2+) native client for Firebird based in the
7
7
  node-firebird-driver API.
8
8
 
9
9
  ## Installation
@@ -48,7 +48,7 @@ async function test() {
48
48
  test().then(() => console.log('Finish...'));
49
49
  ```
50
50
 
51
- See more examples in `src/test` directory.
51
+ See more examples in [packages/node-firebird-driver/src/test](https://github.com/asfernandes/node-firebird-drivers/tree/master/packages/node-firebird-driver/src/test) directory.
52
52
 
53
53
  # Donation
54
54
 
@@ -22,7 +22,7 @@ class AttachmentImpl extends impl_1.AbstractAttachment {
22
22
  return __awaiter(this, void 0, void 0, function* () {
23
23
  const attachment = new AttachmentImpl(client);
24
24
  return yield client.statusAction((status) => __awaiter(this, void 0, void 0, function* () {
25
- const dpb = fb_util_1.createDpb(options);
25
+ const dpb = (0, fb_util_1.createDpb)(options);
26
26
  attachment.attachmentHandle = yield client.dispatcher.attachDatabaseAsync(status, uri, dpb.length, dpb);
27
27
  return attachment;
28
28
  }));
@@ -32,7 +32,7 @@ class AttachmentImpl extends impl_1.AbstractAttachment {
32
32
  return __awaiter(this, void 0, void 0, function* () {
33
33
  const attachment = new AttachmentImpl(client);
34
34
  return yield client.statusAction((status) => __awaiter(this, void 0, void 0, function* () {
35
- const dpb = fb_util_1.createDpb(options);
35
+ const dpb = (0, fb_util_1.createDpb)(options);
36
36
  attachment.attachmentHandle = yield client.dispatcher.createDatabaseAsync(status, uri, dpb.length, dpb);
37
37
  return attachment;
38
38
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/lib/attachment.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAwC;AAExC,2CAA4C;AAC5C,+CAAgD;AAChD,qCAAsC;AACtC,uCAAsC;AAUtC,6DAAwE;AAKxE,iCAAiC;AACjC,MAAa,cAAe,SAAQ,yBAAkB;IAMrD,MAAM,CAAO,OAAO,CAAC,MAAkB,EAAE,GAAW,EAAE,OAAwB;;YAC7E,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;YAE9C,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,CAAM,MAAM,EAAC,EAAE;gBAC/C,MAAM,GAAG,GAAG,mBAAS,CAAC,OAAO,CAAC,CAAC;gBAC/B,UAAU,CAAC,gBAAgB,GAAG,MAAM,MAAO,CAAC,UAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC1G,OAAO,UAAU,CAAC;YACnB,CAAC,CAAA,CAAC,CAAC;QACJ,CAAC;KAAA;IAED,MAAM,CAAO,cAAc,CAAC,MAAkB,EAAE,GAAW,EAAE,OAA+B;;YAC3F,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;YAE9C,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,CAAM,MAAM,EAAC,EAAE;gBAC/C,MAAM,GAAG,GAAG,mBAAS,CAAC,OAAO,CAAC,CAAC;gBAC/B,UAAU,CAAC,gBAAgB,GAAG,MAAM,MAAO,CAAC,UAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC1G,OAAO,UAAU,CAAC;YACnB,CAAC,CAAA,CAAC,CAAC;QACJ,CAAC;KAAA;IAED,mCAAmC;IACnB,kBAAkB;;YACjC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YACrF,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACnC,CAAC;KAAA;IAED,sDAAsD;IACtC,oBAAoB;;YACnC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3F,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACnC,CAAC;KAAA;IAED,gCAAgC;IAChB,wBAAwB,CAAC,OAA4B;;YACpE,OAAO,MAAM,6BAAe,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;KAAA;IAEe,kBAAkB,CAAC,WAA4B;;YAC9D,OAAO,MAAM,qBAAc,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACvD,CAAC;KAAA;IAEe,gBAAgB,CAAC,WAA4B,EAAE,IAAU;;YACxE,OAAO,MAAM,qBAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;KAAA;IAED,wBAAwB;IACR,eAAe,CAAC,WAA4B,EAAE,OAAe,EAAE,OAAwB;;YACtG,OAAO,MAAM,yBAAa,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACzE,CAAC;KAAA;IAEe,mBAAmB,CAClC,KAAe,EAAE,QAAyD;;YAE1E,OAAO,MAAM,mBAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;KAAA;CACD;AA7DD,wCA6DC"}
1
+ {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/lib/attachment.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAwC;AAExC,2CAA4C;AAC5C,+CAAgD;AAChD,qCAAsC;AACtC,uCAAsC;AAUtC,6DAAwE;AAKxE,iCAAiC;AACjC,MAAa,cAAe,SAAQ,yBAAkB;IAMrD,MAAM,CAAO,OAAO,CAAC,MAAkB,EAAE,GAAW,EAAE,OAAwB;;YAC7E,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;YAE9C,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,CAAM,MAAM,EAAC,EAAE;gBAC/C,MAAM,GAAG,GAAG,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC;gBAC/B,UAAU,CAAC,gBAAgB,GAAG,MAAM,MAAO,CAAC,UAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC1G,OAAO,UAAU,CAAC;YACnB,CAAC,CAAA,CAAC,CAAC;QACJ,CAAC;KAAA;IAED,MAAM,CAAO,cAAc,CAAC,MAAkB,EAAE,GAAW,EAAE,OAA+B;;YAC3F,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;YAE9C,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,CAAM,MAAM,EAAC,EAAE;gBAC/C,MAAM,GAAG,GAAG,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC;gBAC/B,UAAU,CAAC,gBAAgB,GAAG,MAAM,MAAO,CAAC,UAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC1G,OAAO,UAAU,CAAC;YACnB,CAAC,CAAA,CAAC,CAAC;QACJ,CAAC;KAAA;IAED,mCAAmC;IACnB,kBAAkB;;YACjC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YACrF,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACnC,CAAC;KAAA;IAED,sDAAsD;IACtC,oBAAoB;;YACnC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3F,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACnC,CAAC;KAAA;IAED,gCAAgC;IAChB,wBAAwB,CAAC,OAA4B;;YACpE,OAAO,MAAM,6BAAe,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;KAAA;IAEe,kBAAkB,CAAC,WAA4B;;YAC9D,OAAO,MAAM,qBAAc,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACvD,CAAC;KAAA;IAEe,gBAAgB,CAAC,WAA4B,EAAE,IAAU;;YACxE,OAAO,MAAM,qBAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;KAAA;IAED,wBAAwB;IACR,eAAe,CAAC,WAA4B,EAAE,OAAe,EAAE,OAAwB;;YACtG,OAAO,MAAM,yBAAa,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACzE,CAAC;KAAA;IAEe,mBAAmB,CAClC,KAAe,EAAE,QAAyD;;YAE1E,OAAO,MAAM,mBAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;KAAA;CACD;AA7DD,wCA6DC"}
@@ -15,4 +15,5 @@ export declare class BlobStreamImpl extends AbstractBlobStream {
15
15
  protected internalCancel(): Promise<void>;
16
16
  protected internalRead(buffer: Buffer): Promise<number>;
17
17
  protected internalWrite(buffer: Buffer): Promise<void>;
18
+ get isValid(): boolean;
18
19
  }
package/dist/lib/blob.js CHANGED
@@ -45,8 +45,8 @@ class BlobStreamImpl extends impl_1.AbstractBlobStream {
45
45
  yield this.blobHandle.getInfoAsync(status, infoReq.byteLength, infoReq, infoRet.byteLength, infoRet);
46
46
  if (infoRet[0] != impl_1.blobInfo.totalLength)
47
47
  throw new Error('Unrecognized response from Blob::getInfo.');
48
- const size = impl_1.getPortableInteger(infoRet.subarray(1), 2);
49
- return impl_1.getPortableInteger(infoRet.subarray(3), size);
48
+ const size = (0, impl_1.getPortableInteger)(infoRet.subarray(1), 2);
49
+ return (0, impl_1.getPortableInteger)(infoRet.subarray(3), size);
50
50
  }));
51
51
  });
52
52
  }
@@ -85,6 +85,9 @@ class BlobStreamImpl extends impl_1.AbstractBlobStream {
85
85
  }));
86
86
  });
87
87
  }
88
+ get isValid() {
89
+ return !!this.blobHandle && this.attachment.isValid;
90
+ }
88
91
  }
89
92
  exports.BlobStreamImpl = BlobStreamImpl;
90
93
  //# sourceMappingURL=blob.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blob.js","sourceRoot":"","sources":["../../src/lib/blob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blob.js","sourceRoot":"","sources":["../../src/lib/blob.ts"],"names":[],"mappings":"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"}
@@ -22,11 +22,11 @@ function fixMetadata(status, metadata) {
22
22
  try {
23
23
  for (let i = metadata.getCountSync(status) - 1; i >= 0; --i) {
24
24
  switch (metadata.getTypeSync(status, i)) {
25
- // Transforms CHAR descriptors to VARCHAR.
25
+ // Transform CHAR descriptors to VARCHAR.
26
26
  case impl_1.sqlTypes.SQL_TEXT:
27
27
  outBuilder.setTypeSync(status, i, impl_1.sqlTypes.SQL_VARYING);
28
28
  break;
29
- // Transforms numeric descriptors to DOUBLE PRECISION.
29
+ // Transform numeric descriptors to DOUBLE PRECISION.
30
30
  case impl_1.sqlTypes.SQL_SHORT:
31
31
  case impl_1.sqlTypes.SQL_LONG:
32
32
  case impl_1.sqlTypes.SQL_INT64:
@@ -35,6 +35,22 @@ function fixMetadata(status, metadata) {
35
35
  outBuilder.setLengthSync(status, i, 8);
36
36
  outBuilder.setScaleSync(status, i, 0);
37
37
  break;
38
+ // Transform TIME_TZ to TIME_TZ_EX.
39
+ case impl_1.sqlTypes.SQL_TIME_TZ:
40
+ outBuilder.setTypeSync(status, i, impl_1.sqlTypes.SQL_TIME_TZ_EX);
41
+ break;
42
+ // Transform TIMESTAMP_TZ to TIMESTAMP_TZ_EX.
43
+ case impl_1.sqlTypes.SQL_TIMESTAMP_TZ:
44
+ outBuilder.setTypeSync(status, i, impl_1.sqlTypes.SQL_TIMESTAMP_TZ_EX);
45
+ break;
46
+ // Transform INT128, DEC16 and DEC34 descriptors to VARCHAR.
47
+ case impl_1.sqlTypes.SQL_INT128:
48
+ case impl_1.sqlTypes.SQL_DEC16:
49
+ case impl_1.sqlTypes.SQL_DEC34:
50
+ outBuilder.setTypeSync(status, i, impl_1.sqlTypes.SQL_VARYING);
51
+ outBuilder.setLengthSync(status, i, 45);
52
+ outBuilder.setCharSetSync(status, i, impl_1.charSets.ascii);
53
+ break;
38
54
  }
39
55
  }
40
56
  ret = outBuilder.getMetadataSync(status);
@@ -1 +1 @@
1
- {"version":3,"file":"fb-util.js","sourceRoot":"","sources":["../../src/lib/fb-util.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6DAA0E;AAC1E,qEAAmD;AAKnD,yDAAyD;AACzD,SAAgB,WAAW,CAAC,MAAiB,EAAE,QAA6B;IAC3E,IAAI,CAAC,QAAQ;QACZ,OAAO,SAAS,CAAC;IAElB,IAAI,GAAuB,CAAC;IAE5B,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC;IACpD,IAAI;QACH,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;YAC5D,QAAQ,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBACxC,0CAA0C;gBAC1C,KAAK,eAAQ,CAAC,QAAQ;oBACrB,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,eAAQ,CAAC,WAAW,CAAC,CAAC;oBACxD,MAAM;gBAEP,sDAAsD;gBACtD,KAAK,eAAQ,CAAC,SAAS,CAAC;gBACxB,KAAK,eAAQ,CAAC,QAAQ,CAAC;gBACvB,KAAK,eAAQ,CAAC,SAAS,CAAC;gBACxB,KAAK,eAAQ,CAAC,SAAS;oBACtB,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,eAAQ,CAAC,UAAU,CAAC,CAAC;oBACvD,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtC,MAAM;aACP;SACD;QAED,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAE,CAAC;KAC1C;YACO;QACP,UAAU,CAAC,WAAW,EAAE,CAAC;KACzB;IAED,QAAQ,CAAC,WAAW,EAAE,CAAC;IAEvB,OAAO,GAAG,CAAC;AACZ,CAAC;AApCD,kCAoCC;AAED,SAAgB,iBAAiB,CAAC,MAAiB,EAAE,QAA6B;IACjF,IAAI,CAAC,QAAQ;QACZ,OAAO,EAAE,CAAC;IAEX,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAiB,EAAE,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YACrC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3C,UAAU,EAAE,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;YACjD,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YACzC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YACzC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;SACvC,CAAC,CAAC;KACH;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAnBD,8CAmBC"}
1
+ {"version":3,"file":"fb-util.js","sourceRoot":"","sources":["../../src/lib/fb-util.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import * as fb from 'node-firebird-native-api';
8
8
  /** Statement implementation. */
9
9
  export declare class StatementImpl extends AbstractStatement {
10
10
  attachment: AttachmentImpl;
11
+ hasResultSet: boolean;
11
12
  statementHandle?: fb.Statement;
12
13
  inMetadata?: fb.MessageMetadata;
13
14
  outMetadata?: fb.MessageMetadata;
@@ -24,5 +25,7 @@ export declare class StatementImpl extends AbstractStatement {
24
25
  protected internalExecute(transaction: TransactionImpl, parameters?: Array<any>, options?: ExecuteOptions): Promise<Array<any>>;
25
26
  /** Executes a prepared statement that has result set. */
26
27
  protected internalExecuteQuery(transaction: TransactionImpl, parameters?: Array<any>, options?: ExecuteQueryOptions): Promise<ResultSetImpl>;
28
+ setCursorName(cursorName: string): Promise<void>;
29
+ getExecPathText(): Promise<string | undefined>;
27
30
  get columnLabels(): Promise<string[]>;
28
31
  }
@@ -14,6 +14,7 @@ const resultset_1 = require("./resultset");
14
14
  const impl_1 = require("node-firebird-driver/dist/lib/impl");
15
15
  const fb_util_1 = require("./fb-util");
16
16
  const fb = require("node-firebird-native-api");
17
+ const util_1 = require("util");
17
18
  /** Statement implementation. */
18
19
  class StatementImpl extends impl_1.AbstractStatement {
19
20
  static prepare(attachment, transaction, sqlStmt, options) {
@@ -21,16 +22,17 @@ class StatementImpl extends impl_1.AbstractStatement {
21
22
  const statement = new StatementImpl(attachment);
22
23
  return yield attachment.client.statusAction((status) => __awaiter(this, void 0, void 0, function* () {
23
24
  //// FIXME: options/flags, dialect
24
- statement.statementHandle = yield attachment.attachmentHandle.prepareAsync(status, transaction.transactionHandle, 0, sqlStmt, 3, fb.Statement.PREPARE_PREFETCH_ALL);
25
- statement.inMetadata = fb_util_1.fixMetadata(status, yield statement.statementHandle.getInputMetadataAsync(status));
26
- statement.outMetadata = fb_util_1.fixMetadata(status, yield statement.statementHandle.getOutputMetadataAsync(status));
25
+ statement.statementHandle = yield attachment.attachmentHandle.prepareAsync(status, transaction === null || transaction === void 0 ? void 0 : transaction.transactionHandle, 0, sqlStmt, 3, fb.Statement.PREPARE_PREFETCH_ALL);
26
+ statement.hasResultSet = (statement.statementHandle.getFlagsSync(status) & fb.Statement.FLAG_HAS_CURSOR) != 0;
27
+ statement.inMetadata = (0, fb_util_1.fixMetadata)(status, yield statement.statementHandle.getInputMetadataAsync(status));
28
+ statement.outMetadata = (0, fb_util_1.fixMetadata)(status, yield statement.statementHandle.getOutputMetadataAsync(status));
27
29
  if (statement.inMetadata) {
28
30
  statement.inBuffer = new Uint8Array(statement.inMetadata.getMessageLengthSync(status));
29
- statement.dataWriter = fb_util_1.createDataWriter(fb_util_1.createDescriptors(status, statement.inMetadata));
31
+ statement.dataWriter = (0, fb_util_1.createDataWriter)((0, fb_util_1.createDescriptors)(status, statement.inMetadata));
30
32
  }
31
33
  if (statement.outMetadata) {
32
34
  statement.outBuffer = new Uint8Array(statement.outMetadata.getMessageLengthSync(status));
33
- statement.dataReader = fb_util_1.createDataReader(fb_util_1.createDescriptors(status, statement.outMetadata));
35
+ statement.dataReader = (0, fb_util_1.createDataReader)((0, fb_util_1.createDescriptors)(status, statement.outMetadata));
34
36
  }
35
37
  return statement;
36
38
  }));
@@ -62,8 +64,8 @@ class StatementImpl extends impl_1.AbstractStatement {
62
64
  return __awaiter(this, void 0, void 0, function* () {
63
65
  return yield this.attachment.client.statusAction((status) => __awaiter(this, void 0, void 0, function* () {
64
66
  yield this.dataWriter(this.attachment, transaction, this.inBuffer, parameters);
65
- const newTransaction = yield this.statementHandle.executeAsync(status, transaction.transactionHandle, this.inMetadata, this.inBuffer, this.outMetadata, this.outBuffer);
66
- if (newTransaction && transaction.transactionHandle != newTransaction) {
67
+ const newTransaction = yield this.statementHandle.executeAsync(status, transaction === null || transaction === void 0 ? void 0 : transaction.transactionHandle, this.inMetadata, this.inBuffer, this.outMetadata, this.outBuffer);
68
+ if (newTransaction && (transaction === null || transaction === void 0 ? void 0 : transaction.transactionHandle) != newTransaction) {
67
69
  //// FIXME: newTransaction.releaseSync();
68
70
  }
69
71
  return this.outMetadata ? yield this.dataReader(this.attachment, transaction, this.outBuffer) : [];
@@ -76,6 +78,28 @@ class StatementImpl extends impl_1.AbstractStatement {
76
78
  return yield resultset_1.ResultSetImpl.open(this, transaction, parameters, options);
77
79
  });
78
80
  }
81
+ setCursorName(cursorName) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ return yield this.attachment.client.statusAction((status) => __awaiter(this, void 0, void 0, function* () { return yield this.statementHandle.setCursorNameAsync(status, cursorName); }));
84
+ });
85
+ }
86
+ getExecPathText() {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ return yield this.attachment.client.statusAction((status) => __awaiter(this, void 0, void 0, function* () {
89
+ const infoReq = new Uint8Array([impl_1.statementInfo.sqlExecPathBlrText]);
90
+ const infoRet = new Uint8Array(65535);
91
+ yield this.statementHandle.getInfoAsync(status, infoReq.byteLength, infoReq, infoRet.byteLength, infoRet);
92
+ if (infoRet[0] == impl_1.commonInfo.end)
93
+ return undefined;
94
+ else {
95
+ if (infoRet[0] != impl_1.statementInfo.sqlExecPathBlrText)
96
+ throw new Error('Error retrieving statement execution path.');
97
+ const size = (0, impl_1.getPortableInteger)(infoRet.subarray(1), 2);
98
+ return new util_1.TextDecoder().decode(infoRet.subarray(3, 3 + size));
99
+ }
100
+ }));
101
+ });
102
+ }
79
103
  get columnLabels() {
80
104
  const asyncFunc = () => __awaiter(this, void 0, void 0, function* () {
81
105
  if (!this.outMetadata)
@@ -1 +1 @@
1
- {"version":3,"file":"statement.js","sourceRoot":"","sources":["../../src/lib/statement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statement.js","sourceRoot":"","sources":["../../src/lib/statement.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ class TransactionImpl extends impl_1.AbstractTransaction {
18
18
  return __awaiter(this, void 0, void 0, function* () {
19
19
  const transaction = new TransactionImpl(attachment);
20
20
  return yield attachment.client.statusAction((status) => __awaiter(this, void 0, void 0, function* () {
21
- const tpb = fb_util_1.createTpb(options);
21
+ const tpb = (0, fb_util_1.createTpb)(options);
22
22
  transaction.transactionHandle = yield attachment.attachmentHandle.startTransactionAsync(status, tpb.length, tpb);
23
23
  return transaction;
24
24
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/lib/transaction.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,uCAAsC;AAGtC,6DAAyE;AAKzE,kCAAkC;AAClC,MAAa,eAAgB,SAAQ,0BAAmB;IAMvD,MAAM,CAAO,KAAK,CAAC,UAA0B,EAAE,OAA4B;;YAC1E,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;YAEpD,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAM,MAAM,EAAC,EAAE;gBAC1D,MAAM,GAAG,GAAG,mBAAS,CAAC,OAAO,CAAC,CAAC;gBAC/B,WAAW,CAAC,iBAAiB,GAAG,MAAM,UAAW,CAAC,gBAAiB,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACnH,OAAO,WAAW,CAAC;YACpB,CAAC,CAAA,CAAC,CAAC;QACJ,CAAC;KAAA;IAED,mDAAmD;IACnC,cAAc;;YAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YACjG,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACpC,CAAC;KAAA;IAED,yEAAyE;IACzD,uBAAuB;;YACtC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClH,CAAC;KAAA;IAED,qDAAqD;IACrC,gBAAgB;;YAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YACnG,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACpC,CAAC;KAAA;IAED,2EAA2E;IAC3D,yBAAyB;;YACxC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;QACpH,CAAC;KAAA;CACD;AArCD,0CAqCC"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/lib/transaction.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,uCAAsC;AAGtC,6DAAyE;AAKzE,kCAAkC;AAClC,MAAa,eAAgB,SAAQ,0BAAmB;IAMvD,MAAM,CAAO,KAAK,CAAC,UAA0B,EAAE,OAA4B;;YAC1E,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;YAEpD,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAM,MAAM,EAAC,EAAE;gBAC1D,MAAM,GAAG,GAAG,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC;gBAC/B,WAAW,CAAC,iBAAiB,GAAG,MAAM,UAAW,CAAC,gBAAiB,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACnH,OAAO,WAAW,CAAC;YACpB,CAAC,CAAA,CAAC,CAAC;QACJ,CAAC;KAAA;IAED,mDAAmD;IACnC,cAAc;;YAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YACjG,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACpC,CAAC;KAAA;IAED,yEAAyE;IACzD,uBAAuB;;YACtC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClH,CAAC;KAAA;IAED,qDAAqD;IACrC,gBAAgB;;YAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YACnG,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACpC,CAAC;KAAA;IAED,2EAA2E;IAC3D,yBAAyB;;YACxC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;QACpH,CAAC;KAAA;CACD;AArCD,0CAqCC"}
package/dist/test/test.js CHANGED
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const lib_1 = require("../lib");
4
4
  const tests_1 = require("node-firebird-driver/dist/test/tests");
5
- const client = lib_1.createNativeClient(lib_1.getDefaultLibraryFilename());
6
- tests_1.runCommonTests(client);
5
+ const client = (0, lib_1.createNativeClient)((0, lib_1.getDefaultLibraryFilename)());
6
+ (0, tests_1.runCommonTests)(client);
7
7
  //# sourceMappingURL=test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/test/test.ts"],"names":[],"mappings":";;AAAA,gCAAuE;AAEvE,gEAAsE;AAEtE,MAAM,MAAM,GAAG,wBAAkB,CAAC,+BAAyB,EAAE,CAAC,CAAC;AAE/D,sBAAc,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/test/test.ts"],"names":[],"mappings":";;AAAA,gCAAuE;AAEvE,gEAAsE;AAEtE,MAAM,MAAM,GAAG,IAAA,wBAAkB,EAAC,IAAA,+BAAyB,GAAE,CAAC,CAAC;AAE/D,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-firebird-driver-native",
3
- "version": "2.1.1",
3
+ "version": "2.4.0",
4
4
  "description": "Firebird Native Driver for Node.js",
5
5
  "main": "dist/lib/index.js",
6
6
  "scripts": {
@@ -48,9 +48,9 @@
48
48
  ]
49
49
  },
50
50
  "dependencies": {
51
- "@types/node": "^14.10.1",
52
- "node-firebird-driver": "^2.1.1",
53
- "node-firebird-native-api": "^2.1.1"
51
+ "@types/node": "^17.0.10",
52
+ "node-firebird-driver": "^2.4.0",
53
+ "node-firebird-native-api": "^2.1.4"
54
54
  },
55
- "gitHead": "c566619ce8728c8906920c4d4ed6ede04cbd865e"
55
+ "gitHead": "3514f2b8fae52f1379db80a8149016f161603a54"
56
56
  }
@@ -21,7 +21,7 @@ import * as fb from 'node-firebird-native-api';
21
21
  /** Attachment implementation. */
22
22
  export class AttachmentImpl extends AbstractAttachment {
23
23
  // Override declarations.
24
- client: ClientImpl;
24
+ override client: ClientImpl;
25
25
 
26
26
  attachmentHandle?: fb.Attachment;
27
27
 
package/src/lib/blob.ts CHANGED
@@ -13,7 +13,7 @@ const MAX_SEGMENT_SIZE = 65535;
13
13
  /** BlobStream implementation. */
14
14
  export class BlobStreamImpl extends AbstractBlobStream {
15
15
  // Override declarations.
16
- attachment: AttachmentImpl;
16
+ override attachment: AttachmentImpl;
17
17
 
18
18
  blobHandle?: fb.Blob;
19
19
 
@@ -87,4 +87,8 @@ export class BlobStreamImpl extends AbstractBlobStream {
87
87
  }
88
88
  });
89
89
  }
90
+
91
+ get isValid(): boolean {
92
+ return !!this.blobHandle && this.attachment.isValid;
93
+ }
90
94
  }
package/src/lib/events.ts CHANGED
@@ -8,7 +8,7 @@ import * as fb from 'node-firebird-native-api';
8
8
  /** Events implementation. */
9
9
  export class EventsImpl extends AbstractEvents {
10
10
  // Override declarations.
11
- attachment: AttachmentImpl;
11
+ override attachment: AttachmentImpl;
12
12
 
13
13
  eventCallback: fb.EventCallback;
14
14
 
@@ -1,4 +1,4 @@
1
- import { sqlTypes, Descriptor } from 'node-firebird-driver/dist/lib/impl';
1
+ import { charSets, sqlTypes, Descriptor } from 'node-firebird-driver/dist/lib/impl';
2
2
  export * from 'node-firebird-driver/dist/lib/impl';
3
3
 
4
4
  import * as fb from 'node-firebird-native-api';
@@ -15,12 +15,12 @@ export function fixMetadata(status: fb.Status, metadata?: fb.MessageMetadata): f
15
15
  try {
16
16
  for (let i = metadata.getCountSync(status) - 1; i >= 0; --i) {
17
17
  switch (metadata.getTypeSync(status, i)) {
18
- // Transforms CHAR descriptors to VARCHAR.
18
+ // Transform CHAR descriptors to VARCHAR.
19
19
  case sqlTypes.SQL_TEXT:
20
20
  outBuilder.setTypeSync(status, i, sqlTypes.SQL_VARYING);
21
21
  break;
22
22
 
23
- // Transforms numeric descriptors to DOUBLE PRECISION.
23
+ // Transform numeric descriptors to DOUBLE PRECISION.
24
24
  case sqlTypes.SQL_SHORT:
25
25
  case sqlTypes.SQL_LONG:
26
26
  case sqlTypes.SQL_INT64:
@@ -29,6 +29,25 @@ export function fixMetadata(status: fb.Status, metadata?: fb.MessageMetadata): f
29
29
  outBuilder.setLengthSync(status, i, 8);
30
30
  outBuilder.setScaleSync(status, i, 0);
31
31
  break;
32
+
33
+ // Transform TIME_TZ to TIME_TZ_EX.
34
+ case sqlTypes.SQL_TIME_TZ:
35
+ outBuilder.setTypeSync(status, i, sqlTypes.SQL_TIME_TZ_EX);
36
+ break;
37
+
38
+ // Transform TIMESTAMP_TZ to TIMESTAMP_TZ_EX.
39
+ case sqlTypes.SQL_TIMESTAMP_TZ:
40
+ outBuilder.setTypeSync(status, i, sqlTypes.SQL_TIMESTAMP_TZ_EX);
41
+ break;
42
+
43
+ // Transform INT128, DEC16 and DEC34 descriptors to VARCHAR.
44
+ case sqlTypes.SQL_INT128:
45
+ case sqlTypes.SQL_DEC16:
46
+ case sqlTypes.SQL_DEC34:
47
+ outBuilder.setTypeSync(status, i, sqlTypes.SQL_VARYING);
48
+ outBuilder.setLengthSync(status, i, 45);
49
+ outBuilder.setCharSetSync(status, i, charSets.ascii);
50
+ break;
32
51
  }
33
52
  }
34
53
 
@@ -10,8 +10,8 @@ import * as fb from 'node-firebird-native-api';
10
10
  /** ResultSet implementation. */
11
11
  export class ResultSetImpl extends AbstractResultSet {
12
12
  // Override declarations.
13
- statement: StatementImpl;
14
- transaction: TransactionImpl;
13
+ override statement: StatementImpl;
14
+ override transaction: TransactionImpl;
15
15
 
16
16
  resultSetHandle?: fb.ResultSet;
17
17
  delayedError: any;
@@ -8,7 +8,7 @@ import {
8
8
  PrepareOptions
9
9
  } from 'node-firebird-driver';
10
10
 
11
- import { AbstractStatement } from 'node-firebird-driver/dist/lib/impl';
11
+ import { AbstractStatement, commonInfo, getPortableInteger, statementInfo } from 'node-firebird-driver/dist/lib/impl';
12
12
 
13
13
  import {
14
14
  createDataReader,
@@ -21,11 +21,14 @@ import {
21
21
 
22
22
  import * as fb from 'node-firebird-native-api';
23
23
 
24
+ import { TextDecoder } from 'util';
25
+
24
26
 
25
27
  /** Statement implementation. */
26
28
  export class StatementImpl extends AbstractStatement {
27
29
  // Override declarations.
28
- attachment: AttachmentImpl;
30
+ override attachment: AttachmentImpl;
31
+ override hasResultSet: boolean;
29
32
 
30
33
  statementHandle?: fb.Statement;
31
34
  inMetadata?: fb.MessageMetadata;
@@ -41,9 +44,11 @@ export class StatementImpl extends AbstractStatement {
41
44
 
42
45
  return await attachment.client.statusAction(async status => {
43
46
  //// FIXME: options/flags, dialect
44
- statement.statementHandle = await attachment!.attachmentHandle!.prepareAsync(status, transaction.transactionHandle,
47
+ statement.statementHandle = await attachment!.attachmentHandle!.prepareAsync(status, transaction?.transactionHandle,
45
48
  0, sqlStmt, 3, fb.Statement.PREPARE_PREFETCH_ALL);
46
49
 
50
+ statement.hasResultSet = (statement.statementHandle!.getFlagsSync(status) & fb.Statement.FLAG_HAS_CURSOR) != 0;
51
+
47
52
  statement.inMetadata = fixMetadata(status, await statement.statementHandle!.getInputMetadataAsync(status));
48
53
  statement.outMetadata = fixMetadata(status, await statement.statementHandle!.getOutputMetadataAsync(status));
49
54
 
@@ -88,10 +93,10 @@ export class StatementImpl extends AbstractStatement {
88
93
  return await this.attachment.client.statusAction(async status => {
89
94
  await this.dataWriter(this.attachment, transaction, this.inBuffer, parameters);
90
95
 
91
- const newTransaction = await this.statementHandle!.executeAsync(status, transaction.transactionHandle,
96
+ const newTransaction = await this.statementHandle!.executeAsync(status, transaction?.transactionHandle,
92
97
  this.inMetadata, this.inBuffer, this.outMetadata, this.outBuffer);
93
98
 
94
- if (newTransaction && transaction.transactionHandle != newTransaction) {
99
+ if (newTransaction && transaction?.transactionHandle != newTransaction) {
95
100
  //// FIXME: newTransaction.releaseSync();
96
101
  }
97
102
 
@@ -105,6 +110,30 @@ export class StatementImpl extends AbstractStatement {
105
110
  return await ResultSetImpl.open(this, transaction as TransactionImpl, parameters, options);
106
111
  }
107
112
 
113
+ async setCursorName(cursorName: string): Promise<void> {
114
+ return await this.attachment.client.statusAction(async status =>
115
+ await this.statementHandle!.setCursorNameAsync(status, cursorName)
116
+ );
117
+ }
118
+
119
+ async getExecPathText(): Promise<string | undefined> {
120
+ return await this.attachment.client.statusAction(async status => {
121
+ const infoReq = new Uint8Array([statementInfo.sqlExecPathBlrText]);
122
+ const infoRet = new Uint8Array(65535);
123
+ await this.statementHandle!.getInfoAsync(status, infoReq.byteLength, infoReq, infoRet.byteLength, infoRet);
124
+
125
+ if (infoRet[0] == commonInfo.end)
126
+ return undefined;
127
+ else {
128
+ if (infoRet[0] != statementInfo.sqlExecPathBlrText)
129
+ throw new Error('Error retrieving statement execution path.');
130
+
131
+ const size = getPortableInteger(infoRet.subarray(1), 2);
132
+ return new TextDecoder().decode(infoRet.subarray(3, 3 + size));
133
+ }
134
+ });
135
+ }
136
+
108
137
  get columnLabels(): Promise<string[]> {
109
138
  const asyncFunc = async (): Promise<string[]> => {
110
139
  if (!this.outMetadata)
@@ -10,7 +10,7 @@ import * as fb from 'node-firebird-native-api';
10
10
  /** Transaction implementation. */
11
11
  export class TransactionImpl extends AbstractTransaction {
12
12
  // Override declarations.
13
- attachment: AttachmentImpl;
13
+ override attachment: AttachmentImpl;
14
14
 
15
15
  transactionHandle?: fb.Transaction;
16
16