@@ -52,7 +52,7 @@ export interface IAstPartialMapper {
5252 from ?: ( from : a . From ) => a . From | nil
5353 fromCall ?: ( from : a . FromCall ) => a . From | nil
5454 fromStatement ?: ( from : a . FromStatement ) => a . From | nil
55- fromValues ?: ( from : a . FromValues ) => a . From | nil ;
55+ values ?: ( from : a . ValuesStatement ) => a . SelectStatement | nil ;
5656 fromTable ?: ( from : a . FromTable ) => a . From | nil
5757 selectionColumn ?: ( val : a . SelectedColumn ) => a . SelectedColumn | nil
5858 expr ?: ( val : a . Expr ) => a . Expr | nil
@@ -68,6 +68,7 @@ export interface IAstPartialMapper {
6868 callOverlay ?: ( val : a . ExprOverlay ) => a . Expr | nil
6969 array ?: ( val : a . ExprList ) => a . Expr | nil
7070 constant ?: ( value : a . ExprLiteral ) => a . Expr | nil
71+ default ?: ( value : a . ExprDefault ) => a . Expr | nil ;
7172 ref ?: ( val : a . ExprRef ) => a . Expr | nil
7273 unary ?: ( val : a . ExprUnary ) => a . Expr | nil
7374 binary ?: ( val : a . ExprBinary ) => a . Expr | nil
@@ -272,6 +273,8 @@ export class AstDefaultMapper implements IAstMapper {
272273 return this . do ( val ) ;
273274 case 'create function' :
274275 return this . createFunction ( val ) ;
276+ case 'values' :
277+ return this . values ( val ) ;
275278 default :
276279 throw NotSupported . never ( val ) ;
277280 }
@@ -432,18 +435,10 @@ export class AstDefaultMapper implements IAstMapper {
432435 if ( ! into ) {
433436 return null ; // nowhere to insert into
434437 }
435- const values = arrayNilMap ( val . values , valSet => {
436- return arrayNilMap ( valSet , v => {
437- if ( v === 'default' ) {
438- return v ;
439- }
440- return this . expr ( v ) ;
441- } ) ;
442- } ) ;
443438
444- const select = val . select && this . select ( val . select ) ;
439+ const select = val . insert && this . select ( val . insert ) ;
445440
446- if ( ! values ?. length && ! select ) {
441+ if ( ! select ) {
447442 // nothing to insert
448443 return null ;
449444 }
@@ -462,8 +457,7 @@ export class AstDefaultMapper implements IAstMapper {
462457
463458 return assignChanged ( val , {
464459 into,
465- values,
466- select,
460+ insert : select ,
467461 returning,
468462 onConflict : ! ocdo ? val . onConflict : assignChanged ( val . onConflict , {
469463 do : ocdo ,
@@ -811,6 +805,8 @@ export class AstDefaultMapper implements IAstMapper {
811805 return this . union ( val ) ;
812806 case 'with' :
813807 return this . with ( val ) ;
808+ case 'values' :
809+ return this . values ( val ) ;
814810 default :
815811 throw NotSupported . never ( val ) ;
816812 }
@@ -894,8 +890,6 @@ export class AstDefaultMapper implements IAstMapper {
894890 return this . fromTable ( from ) ;
895891 case 'statement' :
896892 return this . fromStatement ( from ) ;
897- case 'values' :
898- return this . fromValues ( from ) ;
899893 case 'call' :
900894 return this . fromCall ( from ) ;
901895 default :
@@ -924,7 +918,7 @@ export class AstDefaultMapper implements IAstMapper {
924918 } )
925919 }
926920
927- fromValues ( from : a . FromValues ) : a . From | nil {
921+ values ( from : a . ValuesStatement ) : a . SelectStatement | nil {
928922 const values = arrayNilMap ( from . values , x => arrayNilMap ( x , y => this . expr ( y ) ) ) ;
929923 if ( ! values ?. length ) {
930924 return null ; // nothing to select from
@@ -945,13 +939,13 @@ export class AstDefaultMapper implements IAstMapper {
945939 }
946940
947941 fromTable ( from : a . FromTable ) : a . From | nil {
948- const nfrom = this . tableRef ( from ) ;
942+ const nfrom = this . tableRef ( from . name ) ;
949943 if ( ! nfrom ) {
950944 return null ; // nothing to select from
951945 }
952946 const join = from . join && this . join ( from . join ) ;
953947 return assignChanged ( from , {
954- ... nfrom ,
948+ name : nfrom ,
955949 join,
956950 } )
957951 }
@@ -1021,6 +1015,10 @@ export class AstDefaultMapper implements IAstMapper {
10211015 return this . callOverlay ( val ) ;
10221016 case 'substring' :
10231017 return this . callSubstring ( val ) ;
1018+ case 'values' :
1019+ return this . values ( val ) ;
1020+ case 'default' :
1021+ return this . default ( val ) ;
10241022 default :
10251023 throw NotSupported . never ( val ) ;
10261024 }
@@ -1166,6 +1164,9 @@ export class AstDefaultMapper implements IAstMapper {
11661164 return value ;
11671165 }
11681166
1167+ default ( value : a . ExprDefault ) : a . Expr | nil {
1168+ return value ;
1169+ }
11691170
11701171 /** Called when a reference is used */
11711172 ref ( val : a . ExprRef ) : a . Expr | nil {
0 commit comments