| 201 | } |
| 202 | |
| 203 | void ZVecPyCollection::bind_dml_methods( |
| 204 | py::class_<Collection, Collection::Ptr> &col) { |
| 205 | // bind collection upsert/insert/update/delete methods |
| 206 | col.def("Insert", |
| 207 | [](Collection &self, std::vector<Doc> &docs) { |
| 208 | Result<WriteResults> result; |
| 209 | { |
| 210 | py::gil_scoped_release release; |
| 211 | result = self.Insert(docs); |
| 212 | } |
| 213 | return unwrap_expected(result); |
| 214 | }) |
| 215 | .def("Update", |
| 216 | [](Collection &self, std::vector<Doc> &docs) { |
| 217 | Result<WriteResults> result; |
| 218 | { |
| 219 | py::gil_scoped_release release; |
| 220 | result = self.Update(docs); |
| 221 | } |
| 222 | return unwrap_expected(result); |
| 223 | }) |
| 224 | .def("Upsert", |
| 225 | [](Collection &self, std::vector<Doc> &docs) { |
| 226 | Result<WriteResults> result; |
| 227 | { |
| 228 | py::gil_scoped_release release; |
| 229 | result = self.Upsert(docs); |
| 230 | } |
| 231 | return unwrap_expected(result); |
| 232 | }) |
| 233 | .def("Delete", |
| 234 | [](Collection &self, const std::vector<std::string> &pks) { |
| 235 | Result<WriteResults> result; |
| 236 | { |
| 237 | py::gil_scoped_release release; |
| 238 | result = self.Delete(pks); |
| 239 | } |
| 240 | return unwrap_expected(result); |
| 241 | }) |
| 242 | .def("DeleteByFilter", [](Collection &self, const std::string &filter) { |
| 243 | Status status; |
| 244 | { |
| 245 | py::gil_scoped_release release; |
| 246 | status = self.DeleteByFilter(filter); |
| 247 | } |
| 248 | throw_if_error(status); |
| 249 | }); |
| 250 | } |
| 251 | |
| 252 | void ZVecPyCollection::bind_dql_methods( |
| 253 | py::class_<Collection, Collection::Ptr> &col) { |
nothing calls this directly
no test coverage detected