mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-07 00:55:55 +00:00
get group by aggregates working with PQL validation and grpc streaming
This commit is contained in:
parent
ea9914dba0
commit
f2f9ea01dc
3 changed files with 20 additions and 8 deletions
|
|
@ -383,9 +383,10 @@ var callInfoByFunc = map[string]callInfo{
|
|||
"GroupBy": {
|
||||
allowUnknown: false,
|
||||
prototypes: map[string]interface{}{
|
||||
"filter": nil,
|
||||
"limit": int64(0),
|
||||
"previous": nil,
|
||||
"filter": nil,
|
||||
"limit": int64(0),
|
||||
"previous": nil,
|
||||
"aggregate": nil,
|
||||
},
|
||||
},
|
||||
"Options": {
|
||||
|
|
|
|||
|
|
@ -492,6 +492,7 @@ func makeRows(resp pilosa.QueryResponse, logger logger.Logger) chan *pb.RowRespo
|
|||
}
|
||||
}
|
||||
ci = append(ci, &pb.ColumnInfo{Name: "count", Datatype: "uint64"})
|
||||
ci = append(ci, &pb.ColumnInfo{Name: "sum", Datatype: "int64"})
|
||||
}
|
||||
rowResp := &pb.RowResponse{
|
||||
Headers: ci,
|
||||
|
|
@ -505,7 +506,10 @@ func makeRows(resp pilosa.QueryResponse, logger logger.Logger) chan *pb.RowRespo
|
|||
rowResp.Columns = append(rowResp.Columns, &pb.ColumnResponse{ColumnVal: &pb.ColumnResponse_Uint64Val{Uint64Val: uint64(fieldRow.RowID)}})
|
||||
}
|
||||
}
|
||||
rowResp.Columns = append(rowResp.Columns, &pb.ColumnResponse{ColumnVal: &pb.ColumnResponse_Uint64Val{Uint64Val: uint64(gc.Count)}})
|
||||
rowResp.Columns = append(rowResp.Columns,
|
||||
&pb.ColumnResponse{ColumnVal: &pb.ColumnResponse_Uint64Val{Uint64Val: gc.Count}},
|
||||
&pb.ColumnResponse{ColumnVal: &pb.ColumnResponse_Int64Val{Int64Val: gc.Sum}},
|
||||
)
|
||||
results <- rowResp
|
||||
}
|
||||
case pilosa.RowIdentifiers:
|
||||
|
|
|
|||
|
|
@ -133,10 +133,11 @@ func TestGRPC(t *testing.T) {
|
|||
{"a", "uint64"},
|
||||
{"b", "uint64"},
|
||||
{"count", "uint64"},
|
||||
{"sum", "int64"},
|
||||
},
|
||||
[][]expColumn{
|
||||
{uint64(10), uint64(11), uint64(123)},
|
||||
{uint64(10), uint64(12), uint64(456)},
|
||||
{uint64(10), uint64(11), uint64(123), int64(0)},
|
||||
{uint64(10), uint64(12), uint64(456), int64(0)},
|
||||
},
|
||||
},
|
||||
// []GroupCount (string)
|
||||
|
|
@ -161,10 +162,11 @@ func TestGRPC(t *testing.T) {
|
|||
{"a", "string"},
|
||||
{"b", "string"},
|
||||
{"count", "uint64"},
|
||||
{"sum", "int64"},
|
||||
},
|
||||
[][]expColumn{
|
||||
{"ten", "eleven", uint64(123)},
|
||||
{"ten", "twelve", uint64(456)},
|
||||
{"ten", "eleven", uint64(123), int64(0)},
|
||||
{"ten", "twelve", uint64(456), int64(0)},
|
||||
},
|
||||
},
|
||||
// RowIdentifiers (uint64)
|
||||
|
|
@ -259,6 +261,11 @@ func TestGRPC(t *testing.T) {
|
|||
if val != v {
|
||||
t.Fatalf("test %d expected column val: %v, but got: %v", ti, v, val)
|
||||
}
|
||||
case int64:
|
||||
val := column.GetInt64Val()
|
||||
if val != v {
|
||||
t.Fatalf("test %d expected column val: %v but got: %v", ti, v, val)
|
||||
}
|
||||
default:
|
||||
t.Fatalf("test %d has unhandled data type: %T", ti, v)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue