mirror of
https://github.com/minio/minio.git
synced 2025-04-16 00:49:09 -04:00
Fix out-of-bound array access crash in select processing (#6594)
Fix test case.
This commit is contained in:
parent
cbc5d78a09
commit
16a100b597
@ -370,8 +370,9 @@ func aggregationFunctions(counter int, filtrCount int, myAggVals []float64, colu
|
|||||||
// If column names are provided as an index it'll use this if statement instead of the else/
|
// If column names are provided as an index it'll use this if statement instead of the else/
|
||||||
var convAggFloat float64
|
var convAggFloat float64
|
||||||
if representsInt(storeReqCols[i]) {
|
if representsInt(storeReqCols[i]) {
|
||||||
myIndex, _ := strconv.Atoi(storeReqCols[i])
|
colIndex, _ := strconv.Atoi(storeReqCols[i])
|
||||||
convAggFloat, _ = strconv.ParseFloat(record[myIndex], 64)
|
// colIndex is 1-based
|
||||||
|
convAggFloat, _ = strconv.ParseFloat(record[colIndex-1], 64)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// case that the columns are in the form of named columns rather than indices.
|
// case that the columns are in the form of named columns rather than indices.
|
||||||
|
@ -331,7 +331,7 @@ func TestMyAggregationFunc(t *testing.T) {
|
|||||||
{1, 1, []float64{10}, columnsMap, []string{"Col1"}, []string{"avg"}, []string{"1", "2"}, nil, 5.500},
|
{1, 1, []float64{10}, columnsMap, []string{"Col1"}, []string{"avg"}, []string{"1", "2"}, nil, 5.500},
|
||||||
{10, 5, []float64{0.000}, columnsMap, []string{"Col1"}, []string{"random"}, []string{"1", "2"}, ErrParseNonUnaryAgregateFunctionCall, 0},
|
{10, 5, []float64{0.000}, columnsMap, []string{"Col1"}, []string{"random"}, []string{"1", "2"}, ErrParseNonUnaryAgregateFunctionCall, 0},
|
||||||
{0, 5, []float64{0}, columnsMap, []string{"0"}, []string{"count"}, []string{"1", "2"}, nil, 1},
|
{0, 5, []float64{0}, columnsMap, []string{"0"}, []string{"count"}, []string{"1", "2"}, nil, 1},
|
||||||
{10, 5, []float64{10}, columnsMap, []string{"1"}, []string{"min"}, []string{"1", "12"}, nil, 10},
|
{10, 5, []float64{10}, columnsMap, []string{"1"}, []string{"min"}, []string{"1", "12"}, nil, 1},
|
||||||
}
|
}
|
||||||
for _, table := range tables {
|
for _, table := range tables {
|
||||||
err := aggregationFunctions(table.counter, table.filtrCount, table.myAggVals, table.columnsMap, table.storeReqCols, table.storeFunctions, table.record)
|
err := aggregationFunctions(table.counter, table.filtrCount, table.myAggVals, table.columnsMap, table.storeReqCols, table.storeFunctions, table.record)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user