Browse Source

work on insert

auto-join
brianc 13 years ago
parent
commit
9af6a9c7c4
  1. 5
      lib/column.js
  2. 7
      lib/node/insert.js
  3. 9
      lib/node/query.js
  4. 6
      lib/table.js
  5. 5
      test/dialect-tests.js

5
lib/column.js

@ -39,6 +39,11 @@ var unaryMethod = function(name, operator) {
}
}
Column.prototype.value = function() {
this.value = value;
return this;
}
Column.prototype.toNode = function() {
//creates a query node from this column
return new ColumnNode(this);

7
lib/node/insert.js

@ -0,0 +1,7 @@
var Node = require(__dirname);
var Insert = Node.define({
type: 'ORDER BY'
});
module.exports = Insert;

9
lib/node/query.js

@ -3,6 +3,7 @@ var Select = require(__dirname + '/select');
var From = require(__dirname + '/from');
var Where = require(__dirname + '/where');
var OrderBy = require(__dirname + '/orderBy');
var Insert = require(__dirname + '/insert');
var Query = Node.define({
type: 'QUERY',
@ -43,6 +44,14 @@ var Query = Node.define({
});
return this.add(orderBy);
},
insert: function() {
var args = Array.prototype.slice.call(arguments, 0);
var insert = new Insert();
args.forEach(function(arg) {
insert.add(arg);
});
return this.add(insert);
},
toQuery: function() {
var Dialect = require(__dirname + '/../').dialect;
return new Dialect().getQuery(this);

6
lib/table.js

@ -49,6 +49,12 @@ Table.prototype.select = function() {
return query;
}
Table.prototype.insert = function() {
var insert = new Query(this);
query.insert.apply(query, arguments);
return query;
}
Table.prototype.toNode = function() {
return new TableNode(this);
}

5
test/dialect-tests.js

@ -135,8 +135,9 @@ test({
console.log('insert');
test({
query : post.insert(post.content, post.userId).values('test', 1),
pg : 'INSERT INTO post(post.content, post."userId") VALUES($1, $2)'
query : post.insert(post.content.value('test'), post.userId.value(1)),
pg : 'INSERT INTO post(post.content, post."userId") VALUES($1, $2)',
params: ['test', 1]
});
console.log('IGNORE: parent queries');

Loading…
Cancel
Save