Socket
Socket
Sign inDemoInstall

sql

Package Overview
Dependencies
Maintainers
1
Versions
101
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sql - npm Package Compare versions

Comparing version 0.45.1 to 0.45.2

36

lib/dialect/mssql.js

@@ -116,2 +116,38 @@ // TODO: visitCreate needs to support schemas

// Need to implement a special version of CASE since SQL doesn't support
// CASE WHEN true THEN xxx END
// the "true" has to be a boolean expression like 1=1
Mssql.prototype.visitCase = function(caseExp) {
var _this=this
function _whenValue(node){
if (node.type!='PARAMETER') return _this.visit(node);
// dealing with a true/false value
var val=node.value();
if (val==true) return '1=1'; else return '0=1';
}
assert(caseExp.whenList.length == caseExp.thenList.length);
var self = this;
var text = '(CASE';
this.visitingCase = true;
for (var i = 0; i < caseExp.whenList.length; i++) {
var whenExp = ' WHEN ' + _whenValue(caseExp.whenList[i]);
var thenExp = ' THEN ' + this.visit(caseExp.thenList[i]);
text += whenExp + thenExp;
}
if (null != caseExp.else && undefined != caseExp.else) {
text += ' ELSE ' + this.visit(caseExp.else);
}
this.visitingCase = false;
text += ' END)';
return [text];
}
Mssql.prototype.visitColumn = function(columnNode) {

@@ -118,0 +154,0 @@ var self=this;

2

package.json

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

"description": "sql builder",
"version": "0.45.1",
"version": "0.45.2",
"homepage": "https://github.com/brianc/node-sql",

@@ -8,0 +8,0 @@ "repository": {

@@ -22,4 +22,5 @@ 'use strict';

mssql: {
text : 'SELECT (CASE WHEN @1 THEN @2 WHEN @3 THEN @4 ELSE @5 END) FROM [customer]',
string: 'SELECT (CASE WHEN TRUE THEN 0 WHEN FALSE THEN 1 ELSE 2 END) FROM [customer]'
text : 'SELECT (CASE WHEN 1=1 THEN @1 WHEN 0=1 THEN @2 ELSE @3 END) FROM [customer]',
string: 'SELECT (CASE WHEN 1=1 THEN 0 WHEN 0=1 THEN 1 ELSE 2 END) FROM [customer]',
params: [0, 1, 2]
},

@@ -45,4 +46,5 @@ params: [true, 0, false, 1, 2]

mssql: {
text : 'SELECT ([customer].[age] + (CASE WHEN @1 THEN @2 WHEN @3 THEN @4 ELSE @5 END)) FROM [customer]',
string: 'SELECT ([customer].[age] + (CASE WHEN TRUE THEN 0 WHEN FALSE THEN 1 ELSE 2 END)) FROM [customer]'
text : 'SELECT ([customer].[age] + (CASE WHEN 1=1 THEN @1 WHEN 0=1 THEN @2 ELSE @3 END)) FROM [customer]',
string: 'SELECT ([customer].[age] + (CASE WHEN 1=1 THEN 0 WHEN 0=1 THEN 1 ELSE 2 END)) FROM [customer]',
params: [0, 1, 2]
},

@@ -68,4 +70,5 @@ params: [true, 0, false, 1, 2]

mssql: {
text : 'SELECT ((CASE WHEN @1 THEN @2 WHEN @3 THEN @4 ELSE @5 END) + @6) FROM [customer]',
string: 'SELECT ((CASE WHEN TRUE THEN 0 WHEN FALSE THEN 1 ELSE 2 END) + 3) FROM [customer]'
text : 'SELECT ((CASE WHEN 1=1 THEN @1 WHEN 0=1 THEN @2 ELSE @3 END) + @4) FROM [customer]',
string: 'SELECT ((CASE WHEN 1=1 THEN 0 WHEN 0=1 THEN 1 ELSE 2 END) + 3) FROM [customer]',
params: [0, 1, 2, 3]
},

@@ -91,4 +94,5 @@ params: [true, 0, false, 1, 2, 3]

mssql: {
text : 'SELECT (CASE WHEN @1 THEN @2 WHEN @3 THEN @4 ELSE ([customer].[age] BETWEEN @5 AND @6) END) FROM [customer]',
string: 'SELECT (CASE WHEN TRUE THEN 0 WHEN FALSE THEN 1 ELSE ([customer].[age] BETWEEN 10 AND 20) END) FROM [customer]'
text : 'SELECT (CASE WHEN 1=1 THEN @1 WHEN 0=1 THEN @2 ELSE ([customer].[age] BETWEEN @3 AND @4) END) FROM [customer]',
string: 'SELECT (CASE WHEN 1=1 THEN 0 WHEN 0=1 THEN 1 ELSE ([customer].[age] BETWEEN 10 AND 20) END) FROM [customer]',
params: [0, 1, 10, 20]
},

@@ -114,4 +118,5 @@ params: [true, 0, false, 1, 10, 20]

mssql: {
text : 'SELECT (CASE WHEN @1 THEN @2 WHEN @3 THEN @4 END) FROM [customer]',
string: 'SELECT (CASE WHEN TRUE THEN 0 WHEN FALSE THEN 1 END) FROM [customer]'
text : 'SELECT (CASE WHEN 1=1 THEN @1 WHEN 0=1 THEN @2 END) FROM [customer]',
string: 'SELECT (CASE WHEN 1=1 THEN 0 WHEN 0=1 THEN 1 END) FROM [customer]',
params: [0, 1]
},

@@ -118,0 +123,0 @@ params: [true, 0, false, 1]

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