@@ -124,13 +124,9 @@ function INSERT(table) {
124
124
125
125
INSERT . prototype = {
126
126
VALUES : function ( object ) {
127
- var values = this . values ,
128
- columns = Object . keys ( object ) ,
129
- placeholders = columns . map ( function ( c , i ) {
130
- values . push ( object [ c ] ) ;
131
- return '$' + values . length ;
132
- } ) ;
133
- this . text += '(' + columns . join ( ', ' ) + ') VALUES(' + placeholders . join ( ', ' ) + ')' ;
127
+ var columns = Object . keys ( object ) ,
128
+ insert_values = get_insert_values ( object , columns , this . values ) ;
129
+ this . text += '(' + columns . join ( ', ' ) + ') VALUES(' + insert_values + ')' ;
134
130
return this ;
135
131
} ,
136
132
RETURNING : function ( returning ) {
@@ -169,10 +165,18 @@ DELETE.prototype = {
169
165
}
170
166
} ;
171
167
172
- function get_set_placeholder ( value , values ) {
168
+ function get_insert_values ( object , columns , values ) {
169
+ return columns . map ( function ( c , i ) {
170
+ return get_placeholder ( object [ c ] , values ) ;
171
+ } ) . join ( ', ' ) ;
172
+ }
173
+
174
+
175
+ // used in get_set_clause and get_insert_values...
176
+ function get_placeholder ( value , values ) {
173
177
if ( Array . isArray ( value ) ) {
174
178
return 'ARRAY[' + value . map ( function ( item ) {
175
- return get_set_placeholder ( item , values ) ;
179
+ return get_placeholder ( item , values ) ;
176
180
} ) . join ( ', ' ) + ']'
177
181
} else {
178
182
values . push ( value ) ;
@@ -183,7 +187,7 @@ function get_set_placeholder(value, values) {
183
187
// only used in UPDATE, but here for clarity/efficiency
184
188
function get_set_clause ( set , values ) {
185
189
return Object . keys ( set ) . map ( function ( c , i ) {
186
- return c + ' = ' + get_set_placeholder ( set [ c ] , values ) ;
190
+ return c + ' = ' + get_placeholder ( set [ c ] , values ) ;
187
191
} ) . join ( ', ' ) ;
188
192
}
189
193
0 commit comments