|
|
@ -246,7 +246,20 @@ Postgres.prototype.visitCreate = function(create) { |
|
|
|
var result = ['CREATE TABLE']; |
|
|
|
result = result.concat(create.nodes.map(this.visit.bind(this))); |
|
|
|
result.push(this.visit(table.toNode())); |
|
|
|
result.push('(' + col_nodes.map(this.visit.bind(this)).join(', ') + ')'); |
|
|
|
this._visitCreateCompoundPrimaryKey = col_nodes.filter(function(n) { |
|
|
|
return n.primaryKey; |
|
|
|
}).length > 1; |
|
|
|
var colspec = '(' + col_nodes.map(this.visit.bind(this)).join(', '); |
|
|
|
if (this._visitCreateCompoundPrimaryKey) { |
|
|
|
colspec += ', PRIMARY KEY ('; |
|
|
|
colspec += col_nodes.map(function(node) { |
|
|
|
return this.quote(node.name); |
|
|
|
}.bind(this)).join(', '); |
|
|
|
colspec += ')'; |
|
|
|
} |
|
|
|
colspec += ')'; |
|
|
|
result.push(colspec); |
|
|
|
this._visitCreateCompoundPrimaryKey = false; |
|
|
|
this._visitingCreate = false; |
|
|
|
return result; |
|
|
|
}; |
|
|
@ -663,7 +676,7 @@ Postgres.prototype.visitColumn = function(columnNode) { |
|
|
|
txt.push(' ' + columnNode.dataType); |
|
|
|
|
|
|
|
if (this._visitingCreate) { |
|
|
|
if (columnNode.primaryKey) { |
|
|
|
if (columnNode.primaryKey && !this._visitCreateCompoundPrimaryKey) { |
|
|
|
// creating a column as a primary key
|
|
|
|
txt.push(' PRIMARY KEY'); |
|
|
|
} else if (columnNode.notNull) { |
|
|
|