summaryrefslogtreecommitdiff
path: root/slicer/db/sqlTablePatchSerializer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'slicer/db/sqlTablePatchSerializer.cpp')
-rw-r--r--slicer/db/sqlTablePatchSerializer.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/slicer/db/sqlTablePatchSerializer.cpp b/slicer/db/sqlTablePatchSerializer.cpp
index 3b73f05..ec0e344 100644
--- a/slicer/db/sqlTablePatchSerializer.cpp
+++ b/slicer/db/sqlTablePatchSerializer.cpp
@@ -11,6 +11,7 @@
namespace Slicer {
AdHocFormatter(ttname, "slicer_tmp_%?");
+
SqlTablePatchSerializer::SqlTablePatchSerializer(DB::Connection * const d, DB::TablePatch & tp) :
db(d), tablePatch(tp)
{
@@ -18,7 +19,7 @@ namespace Slicer {
}
void
- SqlTablePatchSerializer::Serialize(Slicer::ModelPartForRootPtr mpr)
+ SqlTablePatchSerializer::Serialize(ModelPartForRootParam mpr)
{
tablePatch.pk.clear();
tablePatch.cols.clear();
@@ -31,22 +32,22 @@ namespace Slicer {
SqlInsertSerializer ins(db, tablePatch.src);
ins.Serialize(mpr);
- auto mp = mpr->GetContainedModelPart();
- mp->OnEachChild([this](const auto & name, const auto &, const auto & h) {
- if (isPKey(h)) {
- tablePatch.pk.insert(name);
- }
- });
- mp->OnEachChild([this](const auto & name, const auto &, const auto & h) {
- if (isBind(h)) {
- tablePatch.cols.insert(name);
- }
+ mpr->OnContained([this](auto && mp) {
+ mp->OnEachChild([this](const auto & name, const auto &, const auto & h) {
+ if (isPKey(h)) {
+ tablePatch.pk.insert(name);
+ }
+ if (isBind(h)) {
+ tablePatch.cols.insert(name);
+ }
+ });
});
db->patchTable(&tablePatch);
}
AdHocFormatter(createTmpTable, "CREATE TEMPORARY TABLE %? AS SELECT * FROM %? WHERE 1 = 0");
+
void
SqlTablePatchSerializer::createTemporaryTable()
{
@@ -54,6 +55,7 @@ namespace Slicer {
}
AdHocFormatter(dropTmpTable, "DROP TABLE %?");
+
void
SqlTablePatchSerializer::dropTemporaryTable()
{