Skip to content

Commit 3c02fb5

Browse files
committed
Merge remote-tracking branch 'origin/main' into feat/rabitq
2 parents 7d02fea + f1349cc commit 3c02fb5

13 files changed

Lines changed: 43 additions & 80 deletions

File tree

python/zvec/__init__.pyi

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,9 @@ class _Collection:
8787
def Open(arg0: str, arg1: param.CollectionOption) -> _Collection: ...
8888
def AddColumn(
8989
self,
90-
arg0: str,
91-
arg1: schema._FieldSchema,
92-
arg2: str,
93-
arg3: param.AddColumnOption,
90+
arg0: schema._FieldSchema,
91+
arg1: str,
92+
arg2: param.AddColumnOption,
9493
) -> None: ...
9594
def AlterColumn(
9695
self,

python/zvec/model/collection.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,7 @@ def add_column(
170170
option (Optional[AddColumnOption], optional): Options for the operation.
171171
Defaults to ``AddColumnOption()``.
172172
"""
173-
self._obj.AddColumn(
174-
field_schema.name, field_schema._get_object(), expression, option
175-
)
173+
self._obj.AddColumn(field_schema._get_object(), expression, option)
176174
self._schema = CollectionSchema._from_core(self._obj.Schema())
177175

178176
def drop_column(self, field_name: str) -> None:

python/zvec/tool/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def require_module(module: str, mitigation: Optional[str] = None) -> Any:
5252
package = mitigation or module
5353
msg = f"Required package '{package}' is not installed. "
5454
if "." in module:
55-
top_level = module.split(".")[0]
55+
top_level = module.split(".", maxsplit=1)[0]
5656
msg += f"Module '{module}' is part of '{top_level}', "
5757
if mitigation:
5858
msg += f"please pip install '{mitigation}'."

src/binding/python/model/python_collection.cc

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,10 @@ void ZVecPyCollection::bind_ddl_methods(
142142

143143
// binding column ddl methods
144144
col.def("AddColumn",
145-
[](Collection &self, const std::string &column_name,
146-
const FieldSchema::Ptr &column_schema,
145+
[](Collection &self, const FieldSchema::Ptr &column_schema,
147146
const std::string &expression, const AddColumnOptions &options) {
148147
const auto status =
149-
self.AddColumn(column_name, column_schema, expression, options);
148+
self.AddColumn(column_schema, expression, options);
150149
throw_if_error(status);
151150
})
152151
.def("DropColumn",

src/db/collection.cc

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,7 @@ class CollectionImpl : public Collection {
9393

9494
Status Optimize(const OptimizeOptions &options) override;
9595

96-
Status AddColumn(const std::string &column_name,
97-
const FieldSchema::Ptr &column_schema,
96+
Status AddColumn(const FieldSchema::Ptr &column_schema,
9897
const std::string &expression,
9998
const AddColumnOptions &options) override;
10099

@@ -1046,16 +1045,10 @@ Status CollectionImpl::validate(const std::string &column,
10461045
return Status::InvalidArgument("Column schema is null");
10471046
}
10481047

1049-
if (column.empty()) {
1048+
if (schema->name().empty()) {
10501049
return Status::InvalidArgument("Column name is empty");
10511050
}
1052-
1053-
if (schema->name() != column) {
1054-
return Status::InvalidArgument(
1055-
"Column name and schema name are not matched");
1056-
}
1057-
1058-
if (schema_->has_field(column)) {
1051+
if (schema_->has_field(schema->name())) {
10591052
return Status::InvalidArgument("column already exists");
10601053
}
10611054

@@ -1143,8 +1136,7 @@ Status CollectionImpl::validate(const std::string &column,
11431136
return Status::OK();
11441137
}
11451138

1146-
Status CollectionImpl::AddColumn(const std::string &column_name,
1147-
const FieldSchema::Ptr &column_schema,
1139+
Status CollectionImpl::AddColumn(const FieldSchema::Ptr &column_schema,
11481140
const std::string &expression,
11491141
const AddColumnOptions &options) {
11501142
CHECK_COLLECTION_READONLY_RETURN_STATUS;
@@ -1154,7 +1146,7 @@ Status CollectionImpl::AddColumn(const std::string &column_name,
11541146
CHECK_DESTROY_RETURN_STATUS(destroyed_, false);
11551147

11561148
// validate
1157-
auto s = validate(column_name, column_schema, expression, "", ColumnOp::ADD);
1149+
auto s = validate("", column_schema, expression, "", ColumnOp::ADD);
11581150
CHECK_RETURN_STATUS(s);
11591151

11601152
// forbidden writing until index is ready
@@ -1172,7 +1164,7 @@ Status CollectionImpl::AddColumn(const std::string &column_name,
11721164
Version new_version = version_manager_->get_current_version();
11731165

11741166
// add column on segment manager
1175-
s = segment_manager_->add_column(column_name, column_schema, expression,
1167+
s = segment_manager_->add_column(column_schema, expression,
11761168
options.concurrency_);
11771169
CHECK_RETURN_STATUS(s);
11781170

src/db/index/segment/segment.cc

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,7 @@ class SegmentImpl : public Segment,
215215
RecordBatchReaderPtr scan(
216216
const std::vector<std::string> &columns) const override;
217217

218-
Status add_column(const std::string &column_name,
219-
FieldSchema::Ptr column_schema,
218+
Status add_column(FieldSchema::Ptr column_schema,
220219
const std::string &expression,
221220
const AddColumnOptions &options) override;
222221

@@ -3020,8 +3019,7 @@ Status SegmentImpl::reopen_invert_indexer(bool read_only) {
30203019
return Status::OK();
30213020
}
30223021

3023-
Status SegmentImpl::add_column(const std::string &column_name,
3024-
FieldSchema::Ptr column_schema,
3022+
Status SegmentImpl::add_column(FieldSchema::Ptr column_schema,
30253023
const std::string &expression,
30263024
const AddColumnOptions & /*options*/) {
30273025
if (memory_store_) {
@@ -3084,8 +3082,8 @@ Status SegmentImpl::add_column(const std::string &column_name,
30843082
return Status::InternalError(result.status().message());
30853083
}
30863084
auto dataset = std::move(result).ValueOrDie();
3087-
auto eval_result = EvaluateExpressionWithDataset(dataset, column_name, expr,
3088-
expected_type);
3085+
auto eval_result = EvaluateExpressionWithDataset(
3086+
dataset, column_schema->name(), expr, expected_type);
30893087
if (!eval_result.ok()) {
30903088
return Status::InternalError("evaluate expression failed:",
30913089
eval_result.status().message());
@@ -3109,9 +3107,9 @@ Status SegmentImpl::add_column(const std::string &column_name,
31093107

31103108
std::vector<BlockMeta> new_blocks;
31113109
status = WriteColumnInBlocks(
3112-
column_name, new_column, filter_column_blocks, path_, segment_meta_->id(),
3113-
[this]() { return allocate_block_id(); }, !options_.enable_mmap_,
3114-
&new_blocks);
3110+
column_schema->name(), new_column, filter_column_blocks, path_,
3111+
segment_meta_->id(), [this]() { return allocate_block_id(); },
3112+
!options_.enable_mmap_, &new_blocks);
31153113
if (!status.ok()) {
31163114
return Status::InternalError(status.message());
31173115
}
@@ -3158,7 +3156,7 @@ Status SegmentImpl::add_column(const std::string &column_name,
31583156
segment_meta_->add_persisted_block(block);
31593157
}
31603158

3161-
auto column_indexer = (*invert_indexers_)[column_name];
3159+
auto column_indexer = (*invert_indexers_)[column_schema->name()];
31623160
auto s = insert_array_to_invert_indexer(column_schema, new_column,
31633161
&column_indexer);
31643162
CHECK_RETURN_STATUS(s);

src/db/index/segment/segment.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ class Segment {
6666
virtual uint64_t doc_count(const IndexFilter::Ptr filter = nullptr) = 0;
6767

6868
// for collection
69-
virtual Status add_column(const std::string &column_name,
70-
FieldSchema::Ptr column_schema,
69+
virtual Status add_column(FieldSchema::Ptr column_schema,
7170
const std::string &expression,
7271
const AddColumnOptions &options) = 0;
7372

src/db/index/segment/segment_manager.cc

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,7 @@ std::vector<SegmentMeta::Ptr> SegmentManager::get_segments_meta() const {
8181
return segments_meta;
8282
}
8383

84-
Status SegmentManager::add_column(const std::string &column_name,
85-
const FieldSchema::Ptr &column_schema,
84+
Status SegmentManager::add_column(const FieldSchema::Ptr &column_schema,
8685
const std::string &expression,
8786
int concurrency) {
8887
if (concurrency <= 0) {
@@ -98,7 +97,7 @@ Status SegmentManager::add_column(const std::string &column_name,
9897
for (size_t j = i; j < end; ++j) {
9998
auto &segment = segments[j].second;
10099
futures.emplace_back(std::async(std::launch::async, [&]() -> Status {
101-
return segment->add_column(column_name, column_schema, expression,
100+
return segment->add_column(column_schema, expression,
102101
AddColumnOptions{concurrency});
103102
}));
104103
}

src/db/index/segment/segment_manager.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ class SegmentManager {
4040

4141
std::vector<SegmentMeta::Ptr> get_segments_meta() const;
4242

43-
Status add_column(const std::string &column_name,
44-
const FieldSchema::Ptr &column_schema,
43+
Status add_column(const FieldSchema::Ptr &column_schema,
4544
const std::string &expression, int concurrency);
4645

4746
Status alter_column(const std::string &column_name,

src/include/zvec/db/collection.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@ class Collection {
7474
virtual Status Optimize(const OptimizeOptions &options = OptimizeOptions{
7575
0}) = 0;
7676

77-
virtual Status AddColumn(const std::string &column_name,
78-
const FieldSchema::Ptr &column_schema,
77+
virtual Status AddColumn(const FieldSchema::Ptr &column_schema,
7978
const std::string &expression,
8079
const AddColumnOptions &options = AddColumnOptions{
8180
0}) = 0;

0 commit comments

Comments
 (0)