SQL Expressions: Add STDDEV(), VARIANCE() and aliases (#103851)
* SQL Expressions: Bump GMS for STDDEV(), VARIANCE() Bump Go MySQL Server to the latest version, to get support for STDDEV() and VARIANCE() functions, and their aliases. See https://github.com/dolthub/go-mysql-server/pull/2928 * Update app-code to comply with latest GMS version * Run `go mod tidy` * Update test which had depended on STDDEV being missing * Run `make update-workspace`
This commit is contained in:
@@ -195,11 +195,11 @@ func TestQueryFramesDateTimeSelect(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestErrorsFromGoMySQLServerAreFlagged(t *testing.T) {
|
||||
const GmsNotImplemented = "STDDEV" // not implemented in go-mysql-server as of 2025-03-18
|
||||
const GmsNotImplemented = "TRUNCATE" // not implemented in go-mysql-server as of 2025-04-11
|
||||
|
||||
db := DB{}
|
||||
|
||||
query := `SELECT ` + GmsNotImplemented + `(1);`
|
||||
query := `SELECT ` + GmsNotImplemented + `(123.456, 2);`
|
||||
|
||||
_, err := db.QueryFrames(context.Background(), "sqlExpressionRefId", query, nil)
|
||||
require.Error(t, err)
|
||||
|
||||
@@ -42,7 +42,7 @@ func convertToDataFrame(ctx *mysql.Context, iter mysql.RowIter, schema mysql.Sch
|
||||
for i, val := range row {
|
||||
// Run val through mysql.Type.Convert to normalize underlying value
|
||||
// of the interface
|
||||
nV, _, err := schema[i].Type.Convert(val)
|
||||
nV, _, err := schema[i].Type.Convert(ctx, val)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ type rowIter struct {
|
||||
row int
|
||||
}
|
||||
|
||||
func (ri *rowIter) Next(_ *mysql.Context) (mysql.Row, error) {
|
||||
func (ri *rowIter) Next(ctx *mysql.Context) (mysql.Row, error) {
|
||||
// We assume each field in the Frame has the same number of rows.
|
||||
numRows := 0
|
||||
if len(ri.ft.Frame.Fields) > 0 {
|
||||
@@ -95,7 +95,7 @@ func (ri *rowIter) Next(_ *mysql.Context) (mysql.Row, error) {
|
||||
|
||||
// If the field is JSON, convert json.RawMessage to types.JSONDocument
|
||||
if raw, ok := val.(json.RawMessage); ok {
|
||||
doc, inRange, err := types.JSON.Convert(raw)
|
||||
doc, inRange, err := types.JSON.Convert(ctx, raw)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to convert json.RawMessage to JSONDocument: %w", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user