@@ -110,9 +110,28 @@ function values(first, rest, parameters, types, transform) {
110
110
return valuesBuilder ( multi ? first : [ first ] , parameters , types , transform , columns )
111
111
}
112
112
113
+ function select ( first , rest , parameters , types , transform ) {
114
+ typeof first === 'string' && ( first = [ first ] . concat ( rest ) )
115
+ if ( Array . isArray ( first ) )
116
+ return first . map ( x => escapeIdentifier ( transform . column . to ? transform . column . to ( x ) : x ) ) . join ( ',' )
117
+
118
+ let value
119
+ const columns = rest . length ? rest . flat ( ) : Object . keys ( first )
120
+ return columns . map ( x => {
121
+ value = first [ x ]
122
+ return (
123
+ value instanceof Query ? value . strings [ 0 ] :
124
+ value instanceof Identifier ? value . value :
125
+ handleValue ( value , parameters , types )
126
+ ) + ' as ' + escapeIdentifier ( transform . column . to ? transform . column . to ( x ) : x )
127
+ } ) . join ( ',' )
128
+ }
129
+
113
130
const builders = Object . entries ( {
114
131
values,
115
132
in : values ,
133
+ select,
134
+ returning : select ,
116
135
117
136
update ( first , rest , parameters , types , transform ) {
118
137
return ( rest . length ? rest . flat ( ) : Object . keys ( first ) ) . map ( x =>
@@ -121,23 +140,6 @@ const builders = Object.entries({
121
140
)
122
141
} ,
123
142
124
- select ( first , rest , parameters , types , transform ) {
125
- typeof first === 'string' && ( first = [ first ] . concat ( rest ) )
126
- if ( Array . isArray ( first ) )
127
- return first . map ( x => escapeIdentifier ( transform . column . to ? transform . column . to ( x ) : x ) ) . join ( ',' )
128
-
129
- let value
130
- const columns = rest . length ? rest . flat ( ) : Object . keys ( first )
131
- return columns . map ( x => {
132
- value = first [ x ]
133
- return (
134
- value instanceof Query ? value . strings [ 0 ] :
135
- value instanceof Identifier ? value . value :
136
- handleValue ( value , parameters , types )
137
- ) + ' as ' + escapeIdentifier ( transform . column . to ? transform . column . to ( x ) : x )
138
- } ) . join ( ',' )
139
- } ,
140
-
141
143
insert ( first , rest , parameters , types , transform ) {
142
144
const columns = rest . length ? rest . flat ( ) : Object . keys ( Array . isArray ( first ) ? first [ 0 ] : first )
143
145
return '(' + columns . map ( x =>
0 commit comments