Socket
Socket
Sign inDemoInstall

@sap/hana-client

Package Overview
Dependencies
Maintainers
1
Versions
82
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sap/hana-client - npm Package Compare versions

Comparing version 2.17.22 to 2.18.22

26

CHANGELOG.md

@@ -0,1 +1,27 @@

# Hana Client 2.18.x Drivers
Please see the "What’s new in the SAP HANA Client" section in the official HANA client 2.18 documentation:
https://help.sap.com/viewer/product/SAP_HANA_CLIENT/2.18/en-US
For the latest updates please see SAP Note 3362072 - SAP HANA Client 2.18 Release Notes
https://launchpad.support.sap.com/#/notes/3362072
## Version 2.18.22
### Changes:
- Issue Number 301770: Calling status functions on Connection, Statement, or ResultSet objects could have caused the application to block temporarily.
- Issue Number 310411: The driver could have crashed with a malformed connection string.
- Issue Number 312275: The Node.js driver included in the HANA Client install for Mac on ARM64 could have failed to install.
### Underlying SQLDBC changes:
- Issue Number 307786: The client could have crashed when the Transaction Isolation Level was changed.
- Issue Number 307701: Incorrect results could have been returned after running out of memory.
- Issue Number 296003: The index server could have exited during out-of-memory situations when SQLDBC tracing was enabled.
- Issue Number 291672: High CPU usage could have been observed in a multi-threaded SQLDBC application.
- Issue Number 308137: SQLDBC could have crashed when accessed by a new user or technical user.
# Hana Client 2.17.x Drivers

@@ -2,0 +28,0 @@

44

lib/index.d.ts

@@ -86,25 +86,29 @@ declare module '@sap/hana-client' {

public exec<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}, fn: HanaResultCallback<T>): void;
public exec<T>(options: {[key: string]: boolean}, fn: HanaResultCallback<T>): void;
public exec<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: boolean}, fn: HanaResultCallback<T>): void;
public exec<T>(options: {[key: string]: any}, fn: HanaResultCallback<T>): void;
public exec<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: any}, fn: HanaResultCallback<T>): void;
public exec<T>(): T;
public exec<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}): T;
public exec<T>(options: {[key: string]: boolean}): T;
public exec<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: boolean}): T;
public exec<T>(options: {[key: string]: any}): T;
public exec<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: any}): T;
public execute<T>(fn: HanaResultCallback<T>): void;
public execute<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}, fn: HanaResultCallback<T>): void;
public execute<T>(options: {[key: string]: boolean}, fn: HanaResultCallback<T>): void;
public execute<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: boolean}, fn: HanaResultCallback<T>): void;
public execute<T>(options: {[key: string]: any}, fn: HanaResultCallback<T>): void;
public execute<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: any}, fn: HanaResultCallback<T>): void;
public execute<T>(): T;
public execute<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}): T;
public execute<T>(options: {[key: string]: boolean}): T;
public execute<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: boolean}): T;
public execute<T>(options: {[key: string]: any}): T;
public execute<T>(params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: any}): T;
public execBatch<T>(params: Array<Array<HanaParameterType>>): T;
public execBatch<T>(params: Array<Array<HanaParameterType>>, options: {[key: string]: any}): T;
public execBatch<T>(params: Array<Array<HanaParameterType>>, fn: HanaResultCallback<T>): void;
public execBatch<T>(params: Array<Array<HanaParameterType>>, options: {[key: string]: any}, fn: HanaResultCallback<T>): void;
public executeBatch<T>(params: Array<Array<HanaParameterType>>): T;
public executeBatch<T>(params: Array<Array<HanaParameterType>>, options: {[key: string]: any}): T;
public executeBatch<T>(params: Array<Array<HanaParameterType>>, fn: HanaResultCallback<T>): void;
public executeBatch<T>(params: Array<Array<HanaParameterType>>, options: {[key: string]: any}, fn: HanaResultCallback<T>): void;

@@ -114,2 +118,6 @@ public execQuery(fn: HanaResultSetCallback): void;

public execQuery(params?: HanaParameterType[]): ResultSet;
public execQuery(params: HanaParameterType[], options: {[key: string]: any}): ResultSet;
public execQuery(params: HanaParameterType[], options: {[key: string]: any}, fn: HanaResultSetCallback): void;
public execQuery(options: {[key: string]: any}): ResultSet;
public execQuery(options: {[key: string]: any}, fn: HanaResultSetCallback): void;

@@ -119,2 +127,6 @@ public executeQuery(fn: HanaResultSetCallback): void;

public executeQuery(params?: HanaParameterType[]): ResultSet;
public executeQuery(params: HanaParameterType[], options: {[key: string]: any}): ResultSet;
public executeQuery(params: HanaParameterType[], options: {[key: string]: any}, fn: HanaResultSetCallback): void;
public executeQuery(options: {[key: string]: any}): ResultSet;
public executeQuery(options: {[key: string]: any}, fn: HanaResultSetCallback): void;

@@ -153,19 +165,19 @@ public functionCode(): number;

public exec<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}, fn: HanaResultCallback<T>): void;
public exec<T>(sql: string, options: {[key: string]: boolean}, fn: HanaResultCallback<T>): void;
public exec<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: boolean}, fn: HanaResultCallback<T>): void;
public exec<T>(sql: string, options: {[key: string]: any}, fn: HanaResultCallback<T>): void;
public exec<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: any}, fn: HanaResultCallback<T>): void;
public exec<T>(sql: string): T;
public exec<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}): T;
public exec<T>(sql: string, options: {[key: string]: boolean}): T;
public exec<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: boolean}): T;
public exec<T>(sql: string, options: {[key: string]: any}): T;
public exec<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: any}): T;
public execute<T>(sql: string, fn: HanaResultCallback<T>): void;
public execute<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}, fn: HanaResultCallback<T>): void;
public execute<T>(sql: string, options: {[key: string]: boolean}, fn: HanaResultCallback<T>): void;
public execute<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: boolean}, fn: HanaResultCallback<T>): void;
public execute<T>(sql: string, options: {[key: string]: any}, fn: HanaResultCallback<T>): void;
public execute<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: any}, fn: HanaResultCallback<T>): void;
public execute<T>(sql: string): T;
public execute<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}): T;
public execute<T>(sql: string, options: {[key: string]: boolean}): T;
public execute<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: boolean}): T;
public execute<T>(sql: string, options: {[key: string]: any}): T;
public execute<T>(sql: string, params: HanaParameterType[] | {[key: string]: HanaParameterType}, options: {[key: string]: any}): T;

@@ -172,0 +184,0 @@ public getClientInfo(key: string): string;

@@ -310,2 +310,4 @@ 'use strict';

arg.rowsAsArray !== undefined ||
arg.queryTimeout !== undefined ||
arg.communicationTimeout !== undefined ||
arg.fastInternalRows !== undefined) {

@@ -371,3 +373,3 @@ // has a valid option key, so assume options

// see also ConnectionExec which has very similar code.
function StatementExec(stmt, p1, p2, p3) {
function StatementExec(stmt, p1, p2, p3, execType) {
var args = new ArgParser([p1, p2, p3]);

@@ -378,3 +380,16 @@ var parseError;

} catch(e) {
parseError = new Error("Invalid parameter for function 'exec[ute]([params][, options][, callback])'");
var methodName;
switch (execType) {
case 2:
methodName = "exec[ute]Batch";
break;
case 1:
methodName = "exec[ute]Query";
break;
default:
case 0:
methodName = "exec[ute]";
break;
}
parseError = new Error("Invalid parameter for function '" + methodName + "([params][, options][, callback])'");
parseError.code = -20002;

@@ -384,2 +399,15 @@ parseError.sqlState = 'HY000';

var func;
switch (execType) {
case 2:
func = stmt.execBatchInternal;
break;
case 1:
func = stmt.execQueryInternal;
break;
case 0:
default:
func = stmt.execInternal;
break;
}
if(args.cbfunc) {

@@ -392,5 +420,5 @@ // async call, do result set conversion work after Statement.execInternal

}
stmt.execInternal(args.params,
args.options,
function StatementExecCallback(e, rows) {
func.call(stmt, args.params,
args.options,
function StatementExecCallback(e, rows) {
if(!e) {

@@ -424,3 +452,3 @@ // convert rows from InternalResultSet format

}
var rows = stmt.execInternal(args.params, args.options, null);
var rows = func.call(stmt, args.params, args.options, null);
// convert rows from InternalResultSet format

@@ -441,3 +469,3 @@ // (Note rows can be a Number if stmt does not return a result set)

stmt.exec = function(p1 = null, p2 = null, p3 = null) {
return StatementExec(this, p1, p2, p3);
return StatementExec(this, p1, p2, p3, 0);
}

@@ -447,5 +475,25 @@ } // else case should never happen

stmt.execute = function(p1 = null, p2 = null, p3 = null) {
return StatementExec(this, p1, p2, p3);
return StatementExec(this, p1, p2, p3, 0);
}
} // else case should never happen
if(stmt.execQuery == null) {
stmt.execQuery = function(p1 = null, p2 = null, p3 = null) {
return StatementExec(this, p1, p2, p3, 1);
}
} // else case should never happen
if(stmt.executeQuery == null) {
stmt.executeQuery = function(p1 = null, p2 = null, p3 = null) {
return StatementExec(this, p1, p2, p3, 1);
}
} // else case should never happen
if(stmt.execBatch == null) {
stmt.execBatch = function(p1 = null, p2 = null, p3 = null) {
return StatementExec(this, p1, p2, p3, 2);
}
} // else case should never happen
if(stmt.executeBatch == null) {
stmt.executeBatch = function(p1 = null, p2 = null, p3 = null) {
return StatementExec(this, p1, p2, p3, 2);
}
} // else case should never happen
}

@@ -452,0 +500,0 @@

{
"name": "@sap/hana-client",
"version": "2.17.22",
"version": "2.18.22",
"lockfileVersion": 1,

@@ -5,0 +5,0 @@ "requires": true,

@@ -5,3 +5,3 @@ {

"description": "Official SAP HANA Node.js Driver",
"version": "2.17.22",
"version": "2.18.22",
"dependencies": {

@@ -8,0 +8,0 @@ "debug": "3.1.0"

@@ -227,1 +227,9 @@ # @sap/hana-client

+ [SAP HANA Documentation](https://help.sap.com/viewer/f1b440ded6144a54ada97ff95dac7adf/latest/en-US/a5c332936d9f47d8b820a4ecc427352c.html)
## License
The HANA Node.js Driver is provided via the [SAP Developer License Agreement](https://tools.hana.ondemand.com/developer-license-3_1.txt).
By using this software, you agree that the following text is incorporated into the terms of the Developer Agreement:
> If you are an existing SAP customer for On Premise software, your use of this current software is also covered by the terms of your software license agreement with SAP, including the Use Rights, the current version of which can be found at: https://www.sap.com/about/agreements/product-use-and-support-terms.html?tag=agreements:product-use-support-terms/on-premise-software/software-use-rights

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc