mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-07 17:48:29 +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;
|
ChunkedColumnBase() = default;
|
||||||
// memory mode ctor
|
// memory mode ctor
|
||||||
explicit ChunkedColumnBase(const FieldMeta& field_meta) {
|
explicit ChunkedColumnBase(const FieldMeta& field_meta) {
|
||||||
if (field_meta.is_nullable()) {
|
nullable_ = field_meta.is_nullable();
|
||||||
nullable_ = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~ChunkedColumnBase() = default;
|
virtual ~ChunkedColumnBase() = default;
|
||||||
@ -248,7 +246,9 @@ class ChunkedColumn : public ChunkedColumnBase {
|
|||||||
: ChunkedColumnBase(field_meta) {
|
: 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) {
|
for (auto& chunk : chunks) {
|
||||||
AddChunk(chunk);
|
AddChunk(chunk);
|
||||||
}
|
}
|
||||||
@ -272,7 +272,9 @@ class ChunkedSparseFloatColumn : public ChunkedColumnBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
explicit ChunkedSparseFloatColumn(
|
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) {
|
for (auto& chunk : chunks) {
|
||||||
AddChunk(chunk);
|
AddChunk(chunk);
|
||||||
}
|
}
|
||||||
@ -317,7 +319,9 @@ class ChunkedVariableColumn : public ChunkedColumnBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
explicit ChunkedVariableColumn(
|
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) {
|
for (auto& chunk : chunks) {
|
||||||
AddChunk(chunk);
|
AddChunk(chunk);
|
||||||
}
|
}
|
||||||
@ -397,7 +401,9 @@ class ChunkedArrayColumn : public ChunkedColumnBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
explicit ChunkedArrayColumn(
|
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) {
|
for (auto& chunk : chunks) {
|
||||||
AddChunk(chunk);
|
AddChunk(chunk);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -531,7 +531,7 @@ ChunkedSegmentSealedImpl::MapFieldData(const FieldId field_id,
|
|||||||
// DEFAULT_MMAP_VRCOL_BLOCK_SIZE);
|
// DEFAULT_MMAP_VRCOL_BLOCK_SIZE);
|
||||||
auto var_column =
|
auto var_column =
|
||||||
std::make_shared<ChunkedVariableColumn<std::string>>(
|
std::make_shared<ChunkedVariableColumn<std::string>>(
|
||||||
chunks);
|
field_meta, chunks);
|
||||||
// var_column->Seal(std::move(indices));
|
// var_column->Seal(std::move(indices));
|
||||||
column = std::move(var_column);
|
column = std::move(var_column);
|
||||||
break;
|
break;
|
||||||
@ -539,21 +539,22 @@ ChunkedSegmentSealedImpl::MapFieldData(const FieldId field_id,
|
|||||||
case milvus::DataType::JSON: {
|
case milvus::DataType::JSON: {
|
||||||
auto var_column =
|
auto var_column =
|
||||||
std::make_shared<ChunkedVariableColumn<milvus::Json>>(
|
std::make_shared<ChunkedVariableColumn<milvus::Json>>(
|
||||||
chunks);
|
field_meta, chunks);
|
||||||
// var_column->Seal(std::move(indices));
|
// var_column->Seal(std::move(indices));
|
||||||
column = std::move(var_column);
|
column = std::move(var_column);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case milvus::DataType::ARRAY: {
|
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),
|
// arr_column->Seal(std::move(indices),
|
||||||
// std::move(element_indices));
|
// std::move(element_indices));
|
||||||
column = std::move(arr_column);
|
column = std::move(arr_column);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case milvus::DataType::VECTOR_SPARSE_FLOAT: {
|
case milvus::DataType::VECTOR_SPARSE_FLOAT: {
|
||||||
auto sparse_column =
|
auto sparse_column = std::make_shared<ChunkedSparseFloatColumn>(
|
||||||
std::make_shared<ChunkedSparseFloatColumn>(chunks);
|
field_meta, chunks);
|
||||||
// sparse_column->Seal(std::move(indices));
|
// sparse_column->Seal(std::move(indices));
|
||||||
column = std::move(sparse_column);
|
column = std::move(sparse_column);
|
||||||
break;
|
break;
|
||||||
@ -564,7 +565,7 @@ ChunkedSegmentSealedImpl::MapFieldData(const FieldId field_id,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
column = std::make_shared<ChunkedColumn>(chunks);
|
column = std::make_shared<ChunkedColumn>(field_meta, chunks);
|
||||||
}
|
}
|
||||||
|
|
||||||
// column->SetValidData(std::move(valid_data));
|
// column->SetValidData(std::move(valid_data));
|
||||||
|
|||||||
@ -106,7 +106,7 @@ ChunkCache::Read(const std::string& filepath,
|
|||||||
data_type);
|
data_type);
|
||||||
} else {
|
} else {
|
||||||
std::vector<std::shared_ptr<Chunk>> chunks{chunk};
|
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) {
|
if (mmap_enabled && mmap_rss_not_need) {
|
||||||
auto ok = madvise(reinterpret_cast<void*>(
|
auto ok = madvise(reinterpret_cast<void*>(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user