summaryrefslogtreecommitdiff
path: root/libpqpp/pq-column.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libpqpp/pq-column.cpp')
-rw-r--r--libpqpp/pq-column.cpp39
1 files changed, 19 insertions, 20 deletions
diff --git a/libpqpp/pq-column.cpp b/libpqpp/pq-column.cpp
index 446fe38..e85ead5 100644
--- a/libpqpp/pq-column.cpp
+++ b/libpqpp/pq-column.cpp
@@ -10,6 +10,7 @@
#include <cstring>
#include <libpq-fe.h>
#include <memory>
+#include <server/catalog/pg_type_d.h>
PQ::Column::Column(const SelectBase * s, unsigned int i) :
DB::Column(PQfname(s->execRes, static_cast<int>(i)), i), sc(s), oid(PQftype(sc->execRes, static_cast<int>(colNo))),
@@ -50,30 +51,29 @@ PQ::Column::apply(DB::HandleField & h) const
return;
}
switch (oid) {
- case 18: // CHAROID:
- case 1043: // VARCHAROID:
- case 25: // TEXTOID:
- case 142: // XMLOID:
+ case CHAROID:
+ case VARCHAROID:
+ case TEXTOID:
+ case XMLOID:
default:
h.string({value(), length()});
break;
- case 16: // BOOLOID:
+ case BOOLOID:
h.boolean(value()[0] == 't');
break;
- case 21: // INT2OID:
- case 23: // INT4OID:
- case 20: // INT8OID:
+ case INT2OID:
+ case INT4OID:
+ case INT8OID:
h.integer(atol(value()));
break;
- case 1700: // NUMERICOID:
- case 700: // FLOAT4OID:
- case 701: // FLOAT8OID:
+ case NUMERICOID:
+ case FLOAT4OID:
+ case FLOAT8OID:
h.floatingpoint(atof(value()));
break;
- case 704: // TINTERVALOID
- case 1083: // TIMEOID:
- case 1186: // INTERVALOID
- {
+ case TIMEOID:
+ case INTERVALOID:
+ {
int days = 0, hours = 0, minutes = 0, seconds = 0, fractions = 0, flen1 = 0, flen2 = 0;
const char * val = value();
// NOLINTNEXTLINE(hicpp-vararg)
@@ -90,15 +90,14 @@ PQ::Column::apply(DB::HandleField & h) const
}
break;
}
- case 1082: // DATEOID:
+ case DATEOID:
h.timestamp(boost::posix_time::ptime(boost::gregorian::from_string(value())));
break;
- case 702: // ABSTIMEOID:
- case 1114: // TIMESTAMPOID:
- case 1184: // TIMESTAMPTZOID:
+ case TIMESTAMPOID:
+ case TIMESTAMPTZOID:
h.timestamp(boost::posix_time::time_from_string(value()));
break;
- case 17: // BYTEAOID
+ case BYTEAOID:
{
if (buf) {
PQfreemem(buf);