Skip to content
Snippets Groups Projects
Unverified Commit a5093a0c authored by yjw1268's avatar yjw1268 Committed by GitHub
Browse files

Add blob support in MO (#4472)

Add blob support in MO

Approved by: @nnsgmsone, @fengttt, @zhangxu19830126, @XuPeng-SH
parent a5047848
No related branches found
No related tags found
No related merge requests found
......@@ -173,7 +173,7 @@ func MockVector(t types.Type, rows int, unique, nullable bool, provider Vector)
v2 := rand.Intn(math.MaxInt32) + 1
vec.Append(float64(v1) / float64(v2))
}
case types.T_varchar, types.T_char:
case types.T_varchar, types.T_char, types.T_blob:
if unique {
for i := 0; i < rows; i++ {
s := fmt.Sprintf("%d-%d", i, 0)
......
......@@ -62,7 +62,7 @@ func SortBlockColumns(cols []containers.Vector, pk int) ([]uint32, error) {
decimal128s.Sort(cols[pk], sortedIdx)
case types.T_timestamp:
numerics.Sort[types.Timestamp](cols[pk], sortedIdx)
case types.T_char, types.T_json, types.T_varchar:
case types.T_char, types.T_json, types.T_varchar, types.T_blob:
varchar.Sort(cols[pk], sortedIdx)
default:
panic(fmt.Sprintf("%s not supported", cols[pk].GetType().String()))
......@@ -111,7 +111,7 @@ func MergeSortedColumn(column []containers.Vector, sortedIdx *[]uint32, fromLayo
ret, mapping = decimal128s.Merge(column, sortedIdx, fromLayout, toLayout)
case types.T_timestamp:
ret, mapping = numerics.Merge[types.Timestamp](column, sortedIdx, fromLayout, toLayout)
case types.T_char, types.T_json, types.T_varchar:
case types.T_char, types.T_json, types.T_varchar, types.T_blob:
ret, mapping = varchar.Merge(column, sortedIdx, fromLayout, toLayout)
default:
panic(fmt.Sprintf("%s not supported", column[0].GetType().String()))
......@@ -191,7 +191,7 @@ func ShuffleColumn(column []containers.Vector, sortedIdx []uint32, fromLayout, t
// dates.Merge(col, mergedSrc)
// case types.T_datetime:
// datetimes.Merge(col, mergedSrc)
// case types.T_char, types.T_json, types.T_varchar:
// case types.T_char, types.T_json, types.T_varchar, types.T_blob:
// varchar.Merge(col, mergedSrc)
// }
//
......@@ -228,7 +228,7 @@ func ShuffleColumn(column []containers.Vector, sortedIdx []uint32, fromLayout, t
// dates.Multiplex(col, mergedSrc)
// case types.T_datetime:
// datetimes.Multiplex(col, mergedSrc)
// case types.T_char, types.T_json, types.T_varchar:
// case types.T_char, types.T_json, types.T_varchar, types.T_blob:
// varchar.Multiplex(col, mergedSrc)
// }
// }
......
......@@ -82,7 +82,7 @@ func InsertOp[T comparable](input any, start, count int, fromRow uint32, dedupIn
func (idx *simpleTableIndex) KeyToVector(kType types.Type) containers.Vector {
vec := containers.MakeVector(kType, false)
switch kType.Oid {
case types.T_char, types.T_varchar, types.T_json:
case types.T_char, types.T_varchar, types.T_json, types.T_blob:
for k := range idx.tree {
vec.Append([]byte(k.(string)))
}
......@@ -180,7 +180,7 @@ func (idx *simpleTableIndex) BatchInsert(col containers.Vector, start, count int
return InsertOp[types.Timestamp](col.Slice(), start, count, row, dedupInput, idx.tree)
case types.T_datetime:
return InsertOp[types.Datetime](col.Slice(), start, count, row, dedupInput, idx.tree)
case types.T_char, types.T_varchar, types.T_json:
case types.T_char, types.T_varchar, types.T_json, types.T_blob:
vs := col.Slice().(*containers.Bytes)
if dedupInput {
set := make(map[string]bool)
......@@ -247,7 +247,7 @@ func (idx *simpleTableIndex) BatchDedup(col containers.Vector) error {
return DedupOp[types.Datetime](vals, idx.tree)
case types.T_timestamp:
return DedupOp[types.Timestamp](vals, idx.tree)
case types.T_char, types.T_varchar, types.T_json:
case types.T_char, types.T_varchar, types.T_json, types.T_blob:
vals := vals.(*containers.Bytes)
for i, s := range vals.Offset {
e := s + vals.Length[i]
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment