lsst.daf.persistence  13.0-36-gb9d951e
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros
dbStorage.cc
Go to the documentation of this file.
1 #include "pybind11/pybind11.h"
2 #include "pybind11/stl.h"
3 
7 
8 namespace py = pybind11;
9 using namespace pybind11::literals;
10 
11 namespace lsst {
12 namespace daf {
13 namespace persistence {
14 namespace {
15 
16 template <typename T, typename C>
17 void declareParams(C& cls, const std::string& suffix) {
18  cls.def(("setColumn" + suffix).c_str(), &DbStorage::setColumn<T>);
19  cls.def(("condParam" + suffix).c_str(), &DbStorage::condParam<T>);
20  cls.def(("outParam" + suffix).c_str(), &DbStorage::outParam<T>);
21  cls.def(("getColumnByPos" + suffix).c_str(), &DbStorage::getColumnByPos<T>);
22 }
23 
24 } // <anonymous>
25 
26 PYBIND11_PLUGIN(dbStorage) {
27  py::module mod("dbStorage");
28 
29  py::class_<DbStorage, std::shared_ptr<DbStorage>, FormatterStorage> cls(mod, "DbStorage");
30 
31  /* Constructors */
32  cls.def(py::init<>());
33 
34  /* Member functions */
35  cls.def("setPolicy", &DbStorage::setPolicy);
36  cls.def("setPersistLocation", &DbStorage::setPersistLocation);
37  cls.def("setRetrieveLocation", &DbStorage::setRetrieveLocation);
38  cls.def("startTransaction", &DbStorage::startTransaction);
39  cls.def("endTransaction", &DbStorage::endTransaction);
40  cls.def("createTableFromTemplate", &DbStorage::createTableFromTemplate, "tableName"_a, "templateName"_a,
41  "mayAlreadyExist"_a = false);
42  cls.def("dropTable", &DbStorage::dropTable);
43  cls.def("truncateTable", &DbStorage::truncateTable);
44  cls.def("executeSql", &DbStorage::executeSql);
45  cls.def("setTableForInsert", &DbStorage::setTableForInsert);
46  cls.def("setColumnToNull", &DbStorage::setColumnToNull);
47  cls.def("insertRow", &DbStorage::insertRow);
48  cls.def("setTableForQuery", &DbStorage::setTableForQuery, "tableName"_a, "isExpr"_a = false);
49  cls.def("setTableListForQuery", &DbStorage::setTableListForQuery);
50  cls.def("outColumn", &DbStorage::outColumn, "columnName"_a, "isExpr"_a = false);
51  cls.def("orderBy", &DbStorage::orderBy);
52  cls.def("groupBy", &DbStorage::groupBy);
53  cls.def("setQueryWhere", &DbStorage::setQueryWhere);
54  cls.def("query", &DbStorage::query);
55  cls.def("next", &DbStorage::next);
56  cls.def("__next__", &DbStorage::next);
57  cls.def("columnIsNull", &DbStorage::columnIsNull);
58  cls.def("finishQuery", &DbStorage::finishQuery);
59 
60  /* Templated member functions */
61  declareParams<char>(cls, "Char");
62  declareParams<short>(cls, "Short");
63  declareParams<int>(cls, "Int");
64  declareParams<long>(cls, "Long");
65  declareParams<long long>(cls, "Int64");
66  declareParams<float>(cls, "Float");
67  declareParams<double>(cls, "Double");
68  declareParams<std::string>(cls, "String");
69  declareParams<bool>(cls, "Bool");
70 
71  return mod.ptr();
72 }
73 
74 } // persistence
75 } // daf
76 } // lsst
Abstract base class for FormatterStorage implementations.
Interface for DbStorage class.
Interface for FormatterStorage abstract base class.
PYBIND11_PLUGIN(dbAuth)
Definition: dbAuth.cc:11
Interface for LogicalLocation class.