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.2.1 to 0.2.2

lib/node/renameColumn.js

22

lib/dialect/postgres.js
var util = require('util');
var assert = require('assert');
var From = require(__dirname + '/../node/from');

@@ -43,2 +44,3 @@ var Parameter = require(__dirname + '/../node/parameter');

case 'DROP COLUMN': return this.visitDropColumn(node);
case 'RENAME COLUMN': return this.visitRenameColumn(node);
case 'LIMIT':

@@ -86,4 +88,2 @@ case 'OFFSET':

Postgres.prototype.visitUpdate = function(update) {
//don't prefix columns with table names
this._visitingUpdate = true;
//don't auto-generate from clause

@@ -93,3 +93,6 @@ this._visitedFrom = true;

for(var i = 0, node; node = update.nodes[i]; i++) {
params = params.concat(this.visit(node) + ' = ' + this.visit(node.value));
this._visitingUpdateTargetColumn = true;
var target_col = this.visit(node);
this._visitingUpdateTargetColumn = false;
params = params.concat(target_col + ' = ' + this.visit(node.value));
}

@@ -102,3 +105,2 @@ var result = [

];
this._visitingUpdate = false;
return result;

@@ -142,3 +144,2 @@ }

var col_nodes = table.columns.map(function(col) { return col.toNode(); });
console.log('nodes.length: ' + alter.nodes.length);
var result = [

@@ -252,3 +253,3 @@ 'ALTER TABLE',

}
if(!this._visitedInsert && !this._visitingUpdate && !this._visitingCreate && !this._visitingAlter) {
if(!this._visitedInsert && !this._visitingUpdateTargetColumn && !this._visitingCreate && !this._visitingAlter) {
if(table.alias) {

@@ -273,4 +274,7 @@ txt = table.alias;

}
if(this._visitingCreate || this._visitingAddColumn)
if(this._visitingCreate || this._visitingAddColumn) {
assert(columnNode.dataType, 'dataType missing for column ' + columnNode.name +
' (CREATE TABLE and ADD COLUMN statements require a dataType)');
txt += ' ' + columnNode.dataType;
}
return txt;

@@ -301,2 +305,6 @@ }

Postgres.prototype.visitRenameColumn = function(renameColumn) {
return ['RENAME COLUMN ' + this.visit(renameColumn.nodes[0]) + ' TO ' + this.visit(renameColumn.nodes[1])];
}
Postgres.prototype.visitIfExists = function() {

@@ -303,0 +311,0 @@ return ['IF EXISTS'];

@@ -16,5 +16,8 @@ var Node = require(__dirname);

var DropColumn = require(__dirname + '/dropColumn');
var RenameColumn = require(__dirname + '/renameColumn');
var Column = require(__dirname + '/../column');
var ParameterNode = require(__dirname + '/parameter');
var IfExists = require(__dirname + '/ifExists');
var IfNotExists = require(__dirname + '/ifNotExists');
var Column = require(__dirname + '/../column');

@@ -48,2 +51,5 @@ var Modifier = Node.define({

where: function(node) {
if (!node.toNode && typeof node == 'object')
node = this._whereObject(node);
//calling #where twice functions like calling #where & then #and

@@ -55,2 +61,15 @@ if(this.whereClause) return this.and(node);

},
_whereObject: function(node) {
var result;
for (var colName in node) {
var column = new Column({name: colName, table: this.table});
var query = column.equals(node[colName]);
if (!result)
result = query;
else
result.and(query);
}
return result;
},
or: function(node) {

@@ -137,4 +156,8 @@ this.whereClause.or(node);

},
addColumn: function(column) {
addColumn: function(column, dataType) {
var addClause = new AddColumn();
if (!column.toNode)
column = new Column({name: column, table: this.table});
if (dataType)
column.dataType = dataType;
addClause.add(column.toNode());

@@ -146,2 +169,4 @@ this.nodes[0].add(addClause);

var dropClause = new DropColumn();
if (!column.toNode)
column = new Column({name: column, table: this.table});
dropClause.add(column.toNode());

@@ -151,2 +176,13 @@ this.nodes[0].add(dropClause);

},
renameColumn: function(oldColumn, newColumn) {
var renameClause = new RenameColumn();
if (!oldColumn.toNode)
oldColumn = new Column({name: oldColumn, table: this.table});
if (!newColumn.toNode)
newColumn = new Column({name: newColumn, table: this.table});
renameClause.add(oldColumn.toNode());
renameClause.add(newColumn.toNode());
this.nodes[0].add(renameClause);
return this;
},
limit: function(count) {

@@ -153,0 +189,0 @@ return this.add(new Modifier(this, 'LIMIT', count));

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

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

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

@@ -17,2 +17,7 @@ var Harness = require('./support');

Harness.test({
query : post.alter().dropColumn('content').dropColumn('userId'),
pg : 'ALTER TABLE "post" DROP COLUMN "content", DROP COLUMN "userId"',
params: []
});

@@ -40,2 +45,26 @@ var group = Table.define({

params: []
});
});
Harness.test({
query : group.alter().addColumn('id', 'varchar(100)').addColumn('userId', 'varchar(100)'),
pg : 'ALTER TABLE "group" ADD COLUMN "id" varchar(100), ADD COLUMN "userId" varchar(100)',
params: []
});
Harness.test({
query : group.alter().renameColumn('userId', 'newUserId'),
pg : 'ALTER TABLE "group" RENAME COLUMN "userId" TO "newUserId"',
params: []
});
Harness.test({
query : group.alter().renameColumn(group.userId, 'newUserId'),
pg : 'ALTER TABLE "group" RENAME COLUMN "userId" TO "newUserId"',
params: []
});
Harness.test({
query : group.alter().renameColumn('userId', group.id),
pg : 'ALTER TABLE "group" RENAME COLUMN "userId" TO "id"',
params: []
});

@@ -94,1 +94,6 @@ var Harness = require('./support');

});
Harness.test({
query : user.select('name').from('user').where({name: 'brian'}),
pg : 'SELECT name FROM user WHERE ("user"."name" = $1)'
});

@@ -31,5 +31,11 @@ var Harness = require('./support');

query : post.update({content: user.name}).from(user).where(post.userId.equals(user.id)),
pg : 'UPDATE "post" SET "content" = "name" FROM "user" WHERE ("post"."userId" = "user"."id")',
pg : 'UPDATE "post" SET "content" = "user"."name" FROM "user" WHERE ("post"."userId" = "user"."id")',
params: []
});
// update() needs to prefix ambiguous source columns; prefixing target columns is not allowed
Harness.test({
query : post.update({userId: user.id}).from(user).where(post.userId.equals(user.id)),
pg : 'UPDATE "post" SET "userId" = "user"."id" FROM "user" WHERE ("post"."userId" = "user"."id")',
params: []
});
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