More flexible array retrieval + *vector support.
This commit is contained in:
parent
d9854d81fa
commit
db75d9ed50
5 changed files with 119 additions and 8 deletions
|
|
@ -2,6 +2,8 @@
|
|||
#define PGSQL_OIDS_H
|
||||
|
||||
#include <libpq-fe.h>
|
||||
#include <cstdint>
|
||||
#include <QDateTime>
|
||||
|
||||
namespace Pgsql {
|
||||
constexpr Oid bool_oid = 16;
|
||||
|
|
@ -141,6 +143,47 @@ namespace Pgsql {
|
|||
Oid ElemOidFromArrayOid(Oid oid);
|
||||
Oid ArrayOidFromElemOid(Oid oid);
|
||||
|
||||
template <typename T>
|
||||
class OidFor {
|
||||
public:
|
||||
static Oid elem();
|
||||
static Oid array();
|
||||
};
|
||||
|
||||
template <>
|
||||
class OidFor<int16_t> {
|
||||
public:
|
||||
static Oid elem() { return int2_oid; }
|
||||
static Oid array() { return int2_array_oid; }
|
||||
};
|
||||
|
||||
template <>
|
||||
class OidFor<int32_t> {
|
||||
public:
|
||||
static Oid elem() { return int4_oid; }
|
||||
static Oid array() { return int4_array_oid; }
|
||||
};
|
||||
|
||||
template <>
|
||||
class OidFor<unsigned int> {
|
||||
public:
|
||||
static Oid elem() { return oid_oid; }
|
||||
static Oid array() { return oid_array_oid; }
|
||||
};
|
||||
|
||||
template <>
|
||||
class OidFor<QDateTime> {
|
||||
public:
|
||||
static Oid elem() { return timestamptz_oid; }
|
||||
static Oid array() { return timestamptz_array_oid; }
|
||||
};
|
||||
// template <>
|
||||
// class OidFor<> {
|
||||
// public:
|
||||
// static Oid elem() { return _oid; }
|
||||
// static Oid array() { return _array_oid; }
|
||||
// };
|
||||
|
||||
} // end of namespace Pgsql
|
||||
|
||||
#endif // PGSQL_OIDS_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue