File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ Postgres.prototype.visit = function(node) {
4545 case 'DEFAULT' : return this . visitDefault ( node ) ;
4646 case 'IF EXISTS' : return this . visitIfExists ( ) ;
4747 case 'IF NOT EXISTS' : return this . visitIfNotExists ( ) ;
48+ case 'RENAME' : return this . visitRename ( node ) ;
4849 case 'ADD COLUMN' : return this . visitAddColumn ( node ) ;
4950 case 'DROP COLUMN' : return this . visitDropColumn ( node ) ;
5051 case 'RENAME COLUMN' : return this . visitRenameColumn ( node ) ;
@@ -346,6 +347,10 @@ Postgres.prototype.visitRenameColumn = function(renameColumn) {
346347 return [ 'RENAME COLUMN ' + this . visit ( renameColumn . nodes [ 0 ] ) + ' TO ' + this . visit ( renameColumn . nodes [ 1 ] ) ] ;
347348} ;
348349
350+ Postgres . prototype . visitRename = function ( rename ) {
351+ return [ 'RENAME TO ' + this . visit ( rename . nodes [ 0 ] ) ] ;
352+ } ;
353+
349354Postgres . prototype . visitIfExists = function ( ) {
350355 return [ 'IF EXISTS' ] ;
351356} ;
Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ var Alter = require(__dirname + '/alter');
2121var AddColumn = require ( __dirname + '/addColumn' ) ;
2222var DropColumn = require ( __dirname + '/dropColumn' ) ;
2323var RenameColumn = require ( __dirname + '/renameColumn' ) ;
24+ var Rename = require ( __dirname + '/rename' ) ;
2425var Column = require ( __dirname + '/../column' ) ;
2526var ParameterNode = require ( __dirname + '/parameter' ) ;
2627var IfExists = require ( __dirname + '/ifExists' ) ;
@@ -161,6 +162,14 @@ var Query = Node.define({
161162 alter : function ( ) {
162163 return this . add ( new Alter ( ) ) ;
163164 } ,
165+ rename : function ( newName ) {
166+ var renameClause = new Rename ( ) ;
167+ if ( ! newName . toNode )
168+ newName = new Column ( { name : newName , table : this . table } ) ;
169+ renameClause . add ( newName . toNode ( ) ) ;
170+ this . nodes [ 0 ] . add ( renameClause ) ;
171+ return this ;
172+ } ,
164173 addColumn : function ( column , dataType ) {
165174 var addClause = new AddColumn ( ) ;
166175 if ( ! column . toNode )
Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+
3+ var Node = require ( __dirname ) ;
4+
5+ module . exports = Node . define ( {
6+ type : 'RENAME'
7+ } ) ;
Original file line number Diff line number Diff line change @@ -37,6 +37,14 @@ Harness.test({
3737 params : [ ]
3838} ) ;
3939
40+ Harness . test ( {
41+ query : post . alter ( ) . rename ( 'posts' ) ,
42+ pg : 'ALTER TABLE "post" RENAME TO "posts"' ,
43+ sqlite : 'ALTER TABLE "post" RENAME TO "posts"' ,
44+ mysql : 'ALTER TABLE `post` RENAME TO `posts`' ,
45+ params : [ ]
46+ } ) ;
47+
4048var group = Table . define ( {
4149 name : 'group' ,
4250 columns : [ {
You can’t perform that action at this time.
0 commit comments