mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-06 17:18:35 +08:00
fix: Null expr does not work for json field (#40456)
issue: https://github.com/milvus-io/milvus/issues/40455 Signed-off-by: sunby <sunbingyi1992@gmail.com>
This commit is contained in:
parent
001fc992df
commit
8fbacf3583
@ -54,9 +54,7 @@ class ChunkedColumnBase : public ColumnBase {
|
||||
ChunkedColumnBase() = default;
|
||||
// memory mode ctor
|
||||
explicit ChunkedColumnBase(const FieldMeta& field_meta) {
|
||||
if (field_meta.is_nullable()) {
|
||||
nullable_ = true;
|
||||
}
|
||||
nullable_ = field_meta.is_nullable();
|
||||
}
|
||||
|
||||
virtual ~ChunkedColumnBase() = default;
|
||||
@ -248,7 +246,9 @@ class ChunkedColumn : public ChunkedColumnBase {
|
||||
: ChunkedColumnBase(field_meta) {
|
||||
}
|
||||
|
||||
explicit ChunkedColumn(const std::vector<std::shared_ptr<Chunk>>& chunks) {
|
||||
explicit ChunkedColumn(const FieldMeta& field_meta,
|
||||
const std::vector<std::shared_ptr<Chunk>>& chunks)
|
||||
: ChunkedColumnBase(field_meta) {
|
||||
for (auto& chunk : chunks) {
|
||||
AddChunk(chunk);
|
||||
}
|
||||
@ -272,7 +272,9 @@ class ChunkedSparseFloatColumn : public ChunkedColumnBase {
|
||||
}
|
||||
|
||||
explicit ChunkedSparseFloatColumn(
|
||||
const std::vector<std::shared_ptr<Chunk>>& chunks) {
|
||||
const FieldMeta& field_meta,
|
||||
const std::vector<std::shared_ptr<Chunk>>& chunks)
|
||||
: ChunkedColumnBase(field_meta) {
|
||||
for (auto& chunk : chunks) {
|
||||
AddChunk(chunk);
|
||||
}
|
||||
@ -317,7 +319,9 @@ class ChunkedVariableColumn : public ChunkedColumnBase {
|
||||
}
|
||||
|
||||
explicit ChunkedVariableColumn(
|
||||
const std::vector<std::shared_ptr<Chunk>>& chunks) {
|
||||
const FieldMeta& field_meta,
|
||||
const std::vector<std::shared_ptr<Chunk>>& chunks)
|
||||
: ChunkedColumnBase(field_meta) {
|
||||
for (auto& chunk : chunks) {
|
||||
AddChunk(chunk);
|
||||
}
|
||||
@ -397,7 +401,9 @@ class ChunkedArrayColumn : public ChunkedColumnBase {
|
||||
}
|
||||
|
||||
explicit ChunkedArrayColumn(
|
||||
const std::vector<std::shared_ptr<Chunk>>& chunks) {
|
||||
const FieldMeta& field_meta,
|
||||
const std::vector<std::shared_ptr<Chunk>>& chunks)
|
||||
: ChunkedColumnBase(field_meta) {
|
||||
for (auto& chunk : chunks) {
|
||||
AddChunk(chunk);
|
||||
}
|
||||
|
||||
@ -531,7 +531,7 @@ ChunkedSegmentSealedImpl::MapFieldData(const FieldId field_id,
|
||||
// DEFAULT_MMAP_VRCOL_BLOCK_SIZE);
|
||||
auto var_column =
|
||||
std::make_shared<ChunkedVariableColumn<std::string>>(
|
||||
chunks);
|
||||
field_meta, chunks);
|
||||
// var_column->Seal(std::move(indices));
|
||||
column = std::move(var_column);
|
||||
break;
|
||||
@ -539,21 +539,22 @@ ChunkedSegmentSealedImpl::MapFieldData(const FieldId field_id,
|
||||
case milvus::DataType::JSON: {
|
||||
auto var_column =
|
||||
std::make_shared<ChunkedVariableColumn<milvus::Json>>(
|
||||
chunks);
|
||||
field_meta, chunks);
|
||||
// var_column->Seal(std::move(indices));
|
||||
column = std::move(var_column);
|
||||
break;
|
||||
}
|
||||
case milvus::DataType::ARRAY: {
|
||||
auto arr_column = std::make_shared<ChunkedArrayColumn>(chunks);
|
||||
auto arr_column =
|
||||
std::make_shared<ChunkedArrayColumn>(field_meta, chunks);
|
||||
// arr_column->Seal(std::move(indices),
|
||||
// std::move(element_indices));
|
||||
column = std::move(arr_column);
|
||||
break;
|
||||
}
|
||||
case milvus::DataType::VECTOR_SPARSE_FLOAT: {
|
||||
auto sparse_column =
|
||||
std::make_shared<ChunkedSparseFloatColumn>(chunks);
|
||||
auto sparse_column = std::make_shared<ChunkedSparseFloatColumn>(
|
||||
field_meta, chunks);
|
||||
// sparse_column->Seal(std::move(indices));
|
||||
column = std::move(sparse_column);
|
||||
break;
|
||||
@ -564,7 +565,7 @@ ChunkedSegmentSealedImpl::MapFieldData(const FieldId field_id,
|
||||
}
|
||||
}
|
||||
} else {
|
||||
column = std::make_shared<ChunkedColumn>(chunks);
|
||||
column = std::make_shared<ChunkedColumn>(field_meta, chunks);
|
||||
}
|
||||
|
||||
// column->SetValidData(std::move(valid_data));
|
||||
|
||||
@ -106,7 +106,7 @@ ChunkCache::Read(const std::string& filepath,
|
||||
data_type);
|
||||
} else {
|
||||
std::vector<std::shared_ptr<Chunk>> chunks{chunk};
|
||||
column = std::make_shared<ChunkedColumn>(chunks);
|
||||
column = std::make_shared<ChunkedColumn>(field_meta, chunks);
|
||||
}
|
||||
if (mmap_enabled && mmap_rss_not_need) {
|
||||
auto ok = madvise(reinterpret_cast<void*>(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user