@@ -124,13 +124,9 @@ function INSERT(table) {
124124
125125INSERT . prototype = {
126126 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 + ')' ;
134130 return this ;
135131 } ,
136132 RETURNING : function ( returning ) {
@@ -169,10 +165,18 @@ DELETE.prototype = {
169165 }
170166} ;
171167
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 ) {
173177 if ( Array . isArray ( value ) ) {
174178 return 'ARRAY[' + value . map ( function ( item ) {
175- return get_set_placeholder ( item , values ) ;
179+ return get_placeholder ( item , values ) ;
176180 } ) . join ( ', ' ) + ']'
177181 } else {
178182 values . push ( value ) ;
@@ -183,7 +187,7 @@ function get_set_placeholder(value, values) {
183187// only used in UPDATE, but here for clarity/efficiency
184188function get_set_clause ( set , values ) {
185189 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 ) ;
187191 } ) . join ( ', ' ) ;
188192}
189193
0 commit comments