mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2026-10-13 09:52:01 -05:00
deleteOne and deleteMany: moved old ops to legacy, created new ops, added deprecation - completed
This commit is contained in:
1 parent
e0a0458d46
commit
7019fe9e7e
6 files changed
+148
-16
No files matched your search
+9
-4
@@ -38,10 +38,13 @@ public class DataApiOpMapper implements OpMapper<DataApiBaseOp,DataApiSpace> {
|
||||
static {
|
||||
DEPRECATED_OP_TYPES = new HashMap<>();
|
||||
// admin ops:
|
||||
DEPRECATED_OP_TYPES.put(DataApiOpType.create_collection_with_class, null);
|
||||
DEPRECATED_OP_TYPES.put(DataApiOpType.create_collection_with_class, null); // TODO => newstyle create coll.
|
||||
// db-admin ops:
|
||||
// in-database ops:
|
||||
// in-collection ops:
|
||||
DEPRECATED_OP_TYPES.put(DataApiOpType.delete_all, DataApiOpType.collection_delete_many);
|
||||
DEPRECATED_OP_TYPES.put(DataApiOpType.delete_many, DataApiOpType.collection_delete_many);
|
||||
DEPRECATED_OP_TYPES.put(DataApiOpType.delete_one, DataApiOpType.collection_delete_one);
|
||||
DEPRECATED_OP_TYPES.put(DataApiOpType.find, DataApiOpType.collection_find);
|
||||
DEPRECATED_OP_TYPES.put(DataApiOpType.find_vector, DataApiOpType.collection_find);
|
||||
DEPRECATED_OP_TYPES.put(DataApiOpType.find_vector_filter, DataApiOpType.collection_find);
|
||||
@@ -101,10 +104,7 @@ public class DataApiOpMapper implements OpMapper<DataApiBaseOp,DataApiSpace> {
|
||||
case insert_one_vector -> new DataApiCollectionInsertOneVectorOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case update_one -> new DataApiCollectionUpdateOneOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case update_many -> new DataApiCollectionUpdateManyOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case delete_one -> new DataApiCollectionDeleteOneOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case find_one_and_delete -> new DataApiCollectionFindOneAndDeleteOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case delete_many -> new DataApiCollectionDeleteManyOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case delete_all -> new DataApiCollectionDeleteAllOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case replace_one -> new DataApiCollectionReplaceOneOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case find_one_and_replace -> new DataApiCollectionFindOneAndReplaceOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case estimated_document_count ->
|
||||
@@ -117,6 +117,11 @@ public class DataApiOpMapper implements OpMapper<DataApiBaseOp,DataApiSpace> {
|
||||
// in-database ops:
|
||||
case create_collection_with_class -> new DataApiLegacyCreateCollectionWithClassOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
// in-collection ops:
|
||||
case collection_delete_many -> new DataApiCollectionDeleteManyOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case collection_delete_one -> new DataApiCollectionDeleteOneOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case delete_one -> new DataApiCollectionLegacyDeleteOneOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case delete_many -> new DataApiCollectionLegacyDeleteManyOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case delete_all -> new DataApiCollectionLegacyDeleteAllOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case find -> new DataApiCollectionLegacyFindOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case find_vector -> new DataApiCollectionLegacyFindVectorOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
case find_vector_filter -> new DataApiCollectionLegacyFindVectorFilterOpDispenser(adapter, op, typeAndTarget.targetFunction);
|
||||
|
||||
+7
-7
@@ -19,27 +19,27 @@ package io.nosqlbench.adapter.dataapi.opdispensers;
|
||||
import com.datastax.astra.client.databases.Database;
|
||||
import io.nosqlbench.adapter.dataapi.DataApiDriverAdapter;
|
||||
import io.nosqlbench.adapter.dataapi.ops.DataApiBaseOp;
|
||||
import io.nosqlbench.adapter.dataapi.ops.DataApiCollectionDeleteAllOp;
|
||||
import io.nosqlbench.adapter.dataapi.ops.DataApiCollectionLegacyDeleteAllOp;
|
||||
import io.nosqlbench.adapters.api.templating.ParsedOp;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import java.util.function.LongFunction;
|
||||
|
||||
public class DataApiCollectionDeleteAllOpDispenser extends DataApiOpDispenser {
|
||||
private static final Logger logger = LogManager.getLogger(DataApiCollectionDeleteAllOpDispenser.class);
|
||||
private final LongFunction<DataApiCollectionDeleteAllOp> opFunction;
|
||||
public class DataApiCollectionLegacyDeleteAllOpDispenser extends DataApiOpDispenser {
|
||||
private static final Logger logger = LogManager.getLogger(DataApiCollectionLegacyDeleteAllOpDispenser.class);
|
||||
private final LongFunction<DataApiCollectionLegacyDeleteAllOp> opFunction;
|
||||
|
||||
public DataApiCollectionDeleteAllOpDispenser(DataApiDriverAdapter adapter, ParsedOp op, LongFunction<String> targetFunction) {
|
||||
public DataApiCollectionLegacyDeleteAllOpDispenser(DataApiDriverAdapter adapter, ParsedOp op, LongFunction<String> targetFunction) {
|
||||
super(adapter, op, targetFunction);
|
||||
this.opFunction = createOpFunction(op);
|
||||
}
|
||||
|
||||
private LongFunction<DataApiCollectionDeleteAllOp> createOpFunction(ParsedOp op) {
|
||||
private LongFunction<DataApiCollectionLegacyDeleteAllOp> createOpFunction(ParsedOp op) {
|
||||
return (l) -> {
|
||||
Database db = spaceFunction.apply(l).getDatabase();
|
||||
|
||||
return new DataApiCollectionDeleteAllOp(
|
||||
return new DataApiCollectionLegacyDeleteAllOp(
|
||||
db,
|
||||
db.getCollection(targetFunction.apply(l))
|
||||
);
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (c) nosqlbench
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package io.nosqlbench.adapter.dataapi.opdispensers;
|
||||
|
||||
import com.datastax.astra.client.databases.Database;
|
||||
import com.datastax.astra.client.core.query.Filter;
|
||||
import io.nosqlbench.adapter.dataapi.DataApiDriverAdapter;
|
||||
import io.nosqlbench.adapter.dataapi.ops.DataApiBaseOp;
|
||||
import io.nosqlbench.adapter.dataapi.ops.DataApiCollectionDeleteManyOp;
|
||||
import io.nosqlbench.adapters.api.templating.ParsedOp;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import java.util.function.LongFunction;
|
||||
|
||||
public class DataApiCollectionLegacyDeleteManyOpDispenser extends DataApiOpDispenser {
|
||||
private static final Logger logger = LogManager.getLogger(DataApiCollectionLegacyDeleteManyOpDispenser.class);
|
||||
private final LongFunction<DataApiCollectionDeleteManyOp> opFunction;
|
||||
|
||||
public DataApiCollectionLegacyDeleteManyOpDispenser(DataApiDriverAdapter adapter, ParsedOp op, LongFunction<String> targetFunction) {
|
||||
super(adapter, op, targetFunction);
|
||||
this.opFunction = createOpFunction(op);
|
||||
}
|
||||
|
||||
private LongFunction<DataApiCollectionDeleteManyOp> createOpFunction(ParsedOp op) {
|
||||
return (l) -> {
|
||||
Database db = spaceFunction.apply(l).getDatabase();
|
||||
Filter filter = getLegacyFilterFromOp(op, l);
|
||||
|
||||
return new DataApiCollectionDeleteManyOp(
|
||||
db,
|
||||
db.getCollection(targetFunction.apply(l)),
|
||||
filter
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataApiBaseOp getOp(long cycle) {
|
||||
return opFunction.apply(cycle);
|
||||
}
|
||||
}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (c) nosqlbench
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package io.nosqlbench.adapter.dataapi.opdispensers;
|
||||
|
||||
import com.datastax.astra.client.databases.Database;
|
||||
import com.datastax.astra.client.collections.commands.options.CollectionDeleteOneOptions;
|
||||
import com.datastax.astra.client.core.query.Filter;
|
||||
import com.datastax.astra.client.core.query.Sort;
|
||||
import io.nosqlbench.adapter.dataapi.DataApiDriverAdapter;
|
||||
import io.nosqlbench.adapter.dataapi.ops.DataApiBaseOp;
|
||||
import io.nosqlbench.adapter.dataapi.ops.DataApiCollectionDeleteOneOp;
|
||||
import io.nosqlbench.adapters.api.templating.ParsedOp;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import java.util.function.LongFunction;
|
||||
|
||||
public class DataApiCollectionLegacyDeleteOneOpDispenser extends DataApiOpDispenser {
|
||||
private static final Logger logger = LogManager.getLogger(DataApiCollectionLegacyDeleteOneOpDispenser.class);
|
||||
private final LongFunction<DataApiCollectionDeleteOneOp> opFunction;
|
||||
|
||||
public DataApiCollectionLegacyDeleteOneOpDispenser(DataApiDriverAdapter adapter, ParsedOp op, LongFunction<String> targetFunction) {
|
||||
super(adapter, op, targetFunction);
|
||||
this.opFunction = createOpFunction(op);
|
||||
}
|
||||
|
||||
private LongFunction<DataApiCollectionDeleteOneOp> createOpFunction(ParsedOp op) {
|
||||
return (l) -> {
|
||||
Database db = spaceFunction.apply(l).getDatabase();
|
||||
Filter filter = getLegacyFilterFromOp(op, l);
|
||||
CollectionDeleteOneOptions options = getCollectionDeleteOneOptions(op, l);
|
||||
|
||||
return new DataApiCollectionDeleteOneOp(
|
||||
db,
|
||||
db.getCollection(targetFunction.apply(l)),
|
||||
filter,
|
||||
options
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
private CollectionDeleteOneOptions getCollectionDeleteOneOptions(ParsedOp op, long l) {
|
||||
CollectionDeleteOneOptions options = new CollectionDeleteOneOptions();
|
||||
Sort sort = getSortFromOp(op, l);
|
||||
if (sort != null) {
|
||||
options = options.sort(sort);
|
||||
}
|
||||
return options;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataApiBaseOp getOp(long cycle) {
|
||||
return opFunction.apply(cycle);
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -19,10 +19,10 @@ package io.nosqlbench.adapter.dataapi.ops;
|
||||
import com.datastax.astra.client.collections.Collection;
|
||||
import com.datastax.astra.client.databases.Database;
|
||||
|
||||
public class DataApiCollectionDeleteAllOp extends DataApiBaseOp {
|
||||
public class DataApiCollectionLegacyDeleteAllOp extends DataApiBaseOp {
|
||||
private final Collection collection;
|
||||
|
||||
public DataApiCollectionDeleteAllOp(Database db, Collection collection) {
|
||||
public DataApiCollectionLegacyDeleteAllOp(Database db, Collection collection) {
|
||||
super(db);
|
||||
this.collection = collection;
|
||||
}
|
||||
+5
-3
@@ -39,10 +39,7 @@ public enum DataApiOpType {
|
||||
insert_one_vector,
|
||||
update_one,
|
||||
update_many,
|
||||
delete_one,
|
||||
find_one_and_delete,
|
||||
delete_many,
|
||||
delete_all,
|
||||
replace_one,
|
||||
find_one_and_replace,
|
||||
estimated_document_count,
|
||||
@@ -54,6 +51,9 @@ public enum DataApiOpType {
|
||||
// in-database ops:
|
||||
create_collection_with_class,
|
||||
// in-collection ops:
|
||||
delete_one,
|
||||
delete_many,
|
||||
delete_all,
|
||||
find,
|
||||
find_vector,
|
||||
find_vector_filter,
|
||||
@@ -67,6 +67,8 @@ public enum DataApiOpType {
|
||||
// db-admin ops:
|
||||
// in-database ops:
|
||||
// in-collection ops:
|
||||
collection_delete_many,
|
||||
collection_delete_one,
|
||||
collection_find,
|
||||
collection_find_one,
|
||||
collection_find_one_and_update,
|
||||
|
||||
Reference in new issue
Block a user