Skip to content

Commit 730bf0e

Browse files
author
Henrik Johansson
committed
schema: append newly generated values for mv queries
1 parent 6993fd8 commit 730bf0e

File tree

1 file changed

+26
-14
lines changed

1 file changed

+26
-14
lines changed

Diff for: schema.go

+26-14
Original file line numberDiff line numberDiff line change
@@ -884,20 +884,26 @@ func (s *Schema) genMultiplePartitionQuery(t *Table, g *Generator, r *rand.Rand,
884884
tableName = t.MaterializedViews[view].Name
885885
partitionKeys = t.MaterializedViews[view].PartitionKeys
886886
}
887-
pkNum := r.Intn(len(partitionKeys))
888-
if pkNum == 0 {
889-
pkNum = 1
887+
numQueryPKs := r.Intn(len(partitionKeys))
888+
if numQueryPKs == 0 {
889+
numQueryPKs = 1
890890
}
891891
builder := qb.Select(s.Keyspace.Name + "." + tableName)
892892
for i, pk := range partitionKeys {
893-
builder = builder.Where(qb.InTuple(pk.Name, pkNum))
894-
for j := 0; j < pkNum; j++ {
893+
builder = builder.Where(qb.InTuple(pk.Name, numQueryPKs))
894+
for j := 0; j < numQueryPKs; j++ {
895895
vs, ok := g.GetOld()
896896
if !ok {
897897
return nil
898898
}
899-
values = append(values, vs.Value[i])
900-
typs = append(typs, pk.Type)
899+
numMVKeys := len(partitionKeys) - len(vs.Value)
900+
if i < numMVKeys {
901+
values = appendValue(pk.Type, r, p, values)
902+
typs = append(typs, pk.Type)
903+
} else {
904+
values = append(values, vs.Value[i-numMVKeys])
905+
typs = append(typs, pk.Type)
906+
}
901907
}
902908
}
903909
return &Stmt{
@@ -976,20 +982,26 @@ func (s *Schema) genMultiplePartitionClusteringRangeQuery(t *Table, g *Generator
976982
partitionKeys = t.MaterializedViews[view].PartitionKeys
977983
clusteringKeys = t.MaterializedViews[view].ClusteringKeys
978984
}
979-
pkNum := r.Intn(len(partitionKeys))
980-
if pkNum == 0 {
981-
pkNum = 1
985+
numQueryPKs := r.Intn(len(partitionKeys))
986+
if numQueryPKs == 0 {
987+
numQueryPKs = 1
982988
}
983989
builder := qb.Select(s.Keyspace.Name + "." + tableName)
984990
for i, pk := range partitionKeys {
985-
builder = builder.Where(qb.InTuple(pk.Name, pkNum))
986-
for j := 0; j < pkNum; j++ {
991+
builder = builder.Where(qb.InTuple(pk.Name, numQueryPKs))
992+
for j := 0; j < numQueryPKs; j++ {
987993
vs, ok := g.GetOld()
988994
if !ok {
989995
return nil
990996
}
991-
values = append(values, vs.Value[i])
992-
typs = append(typs, pk.Type)
997+
numMVKeys := len(partitionKeys) - len(vs.Value)
998+
if i < numMVKeys {
999+
values = appendValue(pk.Type, r, p, values)
1000+
typs = append(typs, pk.Type)
1001+
} else {
1002+
values = append(values, vs.Value[i-numMVKeys])
1003+
typs = append(typs, pk.Type)
1004+
}
9931005
}
9941006
}
9951007
if len(clusteringKeys) > 0 {

0 commit comments

Comments
 (0)