1#ifndef DBALLE_DB_V7_POSTGRESQL_DATA_H
2#define DBALLE_DB_V7_POSTGRESQL_DATA_H
4#include <dballe/db/v7/cache.h>
5#include <dballe/db/v7/data.h>
14template <
typename Parent>
class PostgreSQLDataCommon :
public Parent
19 std::string select_attrs_query_name;
20 std::string write_attrs_query_name;
21 std::string remove_attrs_query_name;
22 std::string remove_data_query_name;
27 PostgreSQLDataCommon(
const PostgreSQLDataCommon&) =
delete;
28 PostgreSQLDataCommon(
const PostgreSQLDataCommon&&) =
delete;
29 PostgreSQLDataCommon& operator=(
const PostgreSQLDataCommon&) =
delete;
31 void update(
Tracer<>& trc, std::vector<typename Parent::BatchValue>& vars,
32 bool with_attrs)
override;
35 std::function<
void(std::unique_ptr<wreport::Var>)> dest)
override;
36 void write_attrs(
Tracer<>& trc,
int id_data,
const Values& values)
override;
37 void remove_all_attrs(
Tracer<>& trc,
int id_data)
override;
39 void remove_by_id(
Tracer<>& trc,
int id)
override;
45class PostgreSQLStationData :
public PostgreSQLDataCommon<StationData>
48 using PostgreSQLDataCommon::PostgreSQLDataCommon;
55 std::function<
void(
int id, wreport::Varcode code)> dest)
override;
57 std::vector<batch::StationDatum>& vars,
58 bool with_attrs)
override;
62 std::unique_ptr<wreport::Var> var)>)
override;
63 void dump(FILE* out)
override;
64 void clear_cache()
override {}
67class PostgreSQLData :
public PostgreSQLDataCommon<Data>
70 using PostgreSQLDataCommon::PostgreSQLDataCommon;
76 std::function<
void(
int id,
int id_levtr, wreport::Varcode code)>
79 std::vector<batch::MeasuredDatum>& vars,
80 bool with_attrs)
override;
84 const Datetime& datetime,
int id_data,
85 std::unique_ptr<wreport::Var> var)>)
override;
90 size_t size)>)
override;
91 void dump(FILE* out)
override;
92 void clear_cache()
override {}
Smart pointer for trace::Step objects, which calls done() when going out of scope.
Definition db/v7/fwd.h:45
Definition db/v7/postgresql/data.h:15
dballe::sql::PostgreSQLConnection & conn
DB connection.
Definition db/v7/postgresql/data.h:18
void run_summary_query(Tracer<> &trc, const v7::SummaryQueryBuilder &qb, std::function< void(const dballe::DBStation &station, int id_levtr, wreport::Varcode code, const DatetimeRange &datetime, size_t size)>) override
Run a summary query, iterating on the resulting variables.
void insert(Tracer<> &trc, int id_station, const Datetime &datetime, std::vector< batch::MeasuredDatum > &vars, bool with_attrs) override
Bulk variable insert.
void dump(FILE *out) override
Dump the entire contents of the table to an output stream.
void query(Tracer<> &trc, int id_station, const Datetime &datetime, std::function< void(int id, int id_levtr, wreport::Varcode code)> dest) override
Query contents of the data table.
void run_data_query(Tracer<> &trc, const v7::DataQueryBuilder &qb, std::function< void(const dballe::DBStation &station, int id_levtr, const Datetime &datetime, int id_data, std::unique_ptr< wreport::Var > var)>) override
Run a data query, iterating on the resulting variables.
void dump(FILE *out) override
Dump the entire contents of the table to an output stream.
void insert(Tracer<> &trc, int id_station, std::vector< batch::StationDatum > &vars, bool with_attrs) override
Bulk variable insert.
void query(Tracer<> &trc, int id_station, std::function< void(int id, wreport::Varcode code)> dest) override
Query contents of the data table.
void run_station_data_query(Tracer<> &trc, const v7::DataQueryBuilder &qb, std::function< void(const dballe::DBStation &station, int id_data, std::unique_ptr< wreport::Var > var)>) override
Run a station data query, iterating on the resulting variables.
Database connection.
Definition postgresql.h:240
Forward declarations for public dballe/sql names.
Range of datetimes.
Definition types.h:297
Date and time.
Definition types.h:164
Collection of Value objects, indexed by wreport::Varcode.
Definition values.h:216
Definition qbuilder.h:122
Definition qbuilder.h:135
Definition transaction.h:16