Skip to content

Commit

Permalink
Cherry-pick 06def14 with conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
vitess-bot[bot] authored and vitess-bot committed Jan 8, 2025
1 parent 1b615f5 commit 1704469
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
29 changes: 29 additions & 0 deletions go/vt/vtgate/evalengine/arena.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,35 @@ func (a *Arena) newEvalDecimal(dec decimal.Decimal, m, d int32) *evalDecimal {
return a.newEvalDecimalWithPrec(dec.Clamp(m-d, d), d)
}

<<<<<<< HEAD

Check failure on line 64 in go/vt/vtgate/evalengine/arena.go

View workflow job for this annotation

GitHub Actions / Code Coverage

syntax error: non-declaration statement outside function body
=======
func (a *Arena) newEvalEnum(raw []byte, values *EnumSetValues) *evalEnum {
if cap(a.aEnum) > len(a.aEnum) {
a.aEnum = a.aEnum[:len(a.aEnum)+1]
} else {
a.aEnum = append(a.aEnum, evalEnum{})
}
val := &a.aEnum[len(a.aEnum)-1]
s := string(raw)
val.string = s
val.value = valueIdx(values, s)
return val
}

func (a *Arena) newEvalSet(raw []byte, values *EnumSetValues) *evalSet {
if cap(a.aSet) > len(a.aSet) {
a.aSet = a.aSet[:len(a.aSet)+1]
} else {
a.aSet = append(a.aSet, evalSet{})
}
val := &a.aSet[len(a.aSet)-1]
s := string(raw)
val.string = s
val.set = evalSetBits(values, s)
return val
}

>>>>>>> 06def14056 (Fix crash in the evalengine (#17487))

Check failure on line 92 in go/vt/vtgate/evalengine/arena.go

View workflow job for this annotation

GitHub Actions / Code Coverage

syntax error: non-declaration statement outside function body

Check failure on line 92 in go/vt/vtgate/evalengine/arena.go

View workflow job for this annotation

GitHub Actions / Code Coverage

invalid character U+0023 '#'
func (a *Arena) newEvalBool(b bool) *evalInt64 {
if b {
return a.newEvalInt64(1)
Expand Down
14 changes: 14 additions & 0 deletions go/vt/vtgate/evalengine/compiler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -716,6 +716,20 @@ func TestCompilerSingle(t *testing.T) {
expression: `WEEK(timestamp '2024-01-01 10:34:58', 1)`,
result: `INT64(1)`,
},
{
expression: `column0 + 1`,
values: []sqltypes.Value{sqltypes.MakeTrusted(sqltypes.Enum, []byte("foo"))},
// Returns 0, as unknown enums evaluate here to -1. We have this test to
// exercise the path to push enums onto the stack.
result: `FLOAT64(0)`,
},
{
expression: `column0 + 1`,
values: []sqltypes.Value{sqltypes.MakeTrusted(sqltypes.Set, []byte("foo"))},
// Returns 1, as unknown sets evaluate here to 0. We have this test to
// exercise the path to push sets onto the stack.
result: `FLOAT64(1)`,
},
}

tz, _ := time.LoadLocation("Europe/Madrid")
Expand Down

0 comments on commit 1704469

Please sign in to comment.