@@ -506,7 +506,7 @@ func (p *planner) planCreateList(expr ast.Expr) (Interpretable, error) {
506
506
id : expr .ID (),
507
507
elems : elems ,
508
508
optionals : optionals ,
509
- hasOptionals : len (optionals ) != 0 ,
509
+ hasOptionals : len (optionalIndices ) != 0 ,
510
510
adapter : p .adapter ,
511
511
}, nil
512
512
}
@@ -518,6 +518,7 @@ func (p *planner) planCreateMap(expr ast.Expr) (Interpretable, error) {
518
518
optionals := make ([]bool , len (entries ))
519
519
keys := make ([]Interpretable , len (entries ))
520
520
vals := make ([]Interpretable , len (entries ))
521
+ hasOptionals := false
521
522
for i , e := range entries {
522
523
entry := e .AsMapEntry ()
523
524
keyVal , err := p .Plan (entry .Key ())
@@ -532,13 +533,14 @@ func (p *planner) planCreateMap(expr ast.Expr) (Interpretable, error) {
532
533
}
533
534
vals [i ] = valVal
534
535
optionals [i ] = entry .IsOptional ()
536
+ hasOptionals = hasOptionals || entry .IsOptional ()
535
537
}
536
538
return & evalMap {
537
539
id : expr .ID (),
538
540
keys : keys ,
539
541
vals : vals ,
540
542
optionals : optionals ,
541
- hasOptionals : len ( optionals ) != 0 ,
543
+ hasOptionals : hasOptionals ,
542
544
adapter : p .adapter ,
543
545
}, nil
544
546
}
@@ -554,6 +556,7 @@ func (p *planner) planCreateStruct(expr ast.Expr) (Interpretable, error) {
554
556
optionals := make ([]bool , len (objFields ))
555
557
fields := make ([]string , len (objFields ))
556
558
vals := make ([]Interpretable , len (objFields ))
559
+ hasOptionals := false
557
560
for i , f := range objFields {
558
561
field := f .AsStructField ()
559
562
fields [i ] = field .Name ()
@@ -563,14 +566,15 @@ func (p *planner) planCreateStruct(expr ast.Expr) (Interpretable, error) {
563
566
}
564
567
vals [i ] = val
565
568
optionals [i ] = field .IsOptional ()
569
+ hasOptionals = hasOptionals || field .IsOptional ()
566
570
}
567
571
return & evalObj {
568
572
id : expr .ID (),
569
573
typeName : typeName ,
570
574
fields : fields ,
571
575
vals : vals ,
572
576
optionals : optionals ,
573
- hasOptionals : len ( optionals ) != 0 ,
577
+ hasOptionals : hasOptionals ,
574
578
provider : p .provider ,
575
579
}, nil
576
580
}
0 commit comments