MCPcopy Create free account
hub / github.com/rilldata/rill / writeInCondition

Method writeInCondition

runtime/metricsview/astexpr.go:523–558  ·  view source on GitHub ↗
(left, right *Expression, leftOverride string, not bool)

Source from the content-addressed store, hash-verified

521}
522
523func (b *sqlExprBuilder) writeInCondition(left, right *Expression, leftOverride string, not bool) error {
524 if right.Value != nil {
525 vals, ok := right.Value.([]any)
526 if !ok {
527 return fmt.Errorf("the right value must be a list of values for an IN condition")
528 }
529
530 return b.writeInConditionForValues(left, leftOverride, vals, not)
531 }
532
533 b.writeByte('(')
534
535 if leftOverride != "" {
536 b.writeParenthesizedString(leftOverride)
537 } else {
538 err := b.writeExpression(left)
539 if err != nil {
540 return err
541 }
542 }
543
544 if not {
545 b.writeString(" NOT IN ")
546 } else {
547 b.writeString(" IN ")
548 }
549
550 err := b.writeExpression(right)
551 if err != nil {
552 return err
553 }
554
555 b.writeByte(')')
556
557 return nil
558}
559
560func (b *sqlExprBuilder) writeInConditionForValues(left *Expression, leftOverride string, vals []any, not bool) error {
561 var hasNull, hasNonNull bool

Callers 1

Calls 6

writeByteMethod · 0.95
writeExpressionMethod · 0.95
writeStringMethod · 0.95
ErrorfMethod · 0.65

Tested by

no test coverage detected