From 4dd626140ae5174bcbd15c6b9094dfaf583e78ad Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Tue, 21 Feb 2023 17:41:54 +0100 Subject: [PATCH] Move table creation for expire tables where it belongs With the rest of the expire output code. --- src/expire-output.cpp | 11 +++++++++++ src/expire-output.hpp | 7 +++++++ src/output-flex.cpp | 9 +-------- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/expire-output.cpp b/src/expire-output.cpp index 5e8fb7dea..1d5b241f5 100644 --- a/src/expire-output.cpp +++ b/src/expire-output.cpp @@ -69,3 +69,14 @@ expire_output_t::output_tiles_to_table(quadkey_list_t const &tiles_at_maxzoom, return count; } + +void expire_output_t::create_output_table(pg_conn_t const &connection) const +{ + auto const qn = qualified_name(m_schema, m_table); + connection.exec("CREATE TABLE IF NOT EXISTS {} (" + " zoom int4 NOT NULL," + " x int4 NOT NULL," + " y int4 NOT NULL," + " PRIMARY KEY (zoom, x, y))", + qn); +} diff --git a/src/expire-output.hpp b/src/expire-output.hpp index f3a7fad4f..3b8d83e7d 100644 --- a/src/expire-output.hpp +++ b/src/expire-output.hpp @@ -15,6 +15,8 @@ #include #include +class pg_conn_t; + /** * Output for tile expiry. */ @@ -70,6 +72,11 @@ class expire_output_t std::size_t output_tiles_to_table(quadkey_list_t const &tiles_at_maxzoom, std::string const &conninfo) const; + /** + * Create table for tiles. + */ + void create_output_table(pg_conn_t const &connection) const; + private: /// The internal (unique) name of the output std::string m_name; diff --git a/src/output-flex.cpp b/src/output-flex.cpp index 60543ea1b..09b9cf563 100644 --- a/src/output-flex.cpp +++ b/src/output-flex.cpp @@ -1275,14 +1275,7 @@ create_expire_tables(std::vector const &expire_outputs, connection.exec("SET client_min_messages = WARNING"); for (auto &expire_output : expire_outputs) { if (!expire_output.table().empty()) { - auto const qn = - qualified_name(expire_output.schema(), expire_output.table()); - connection.exec("CREATE TABLE IF NOT EXISTS {} (" - " zoom int4 NOT NULL," - " x int4 NOT NULL," - " y int4 NOT NULL," - " PRIMARY KEY (zoom, x, y))", - qn); + expire_output.create_output_table(connection); } } }