#include "pq-binarycolumn.h" #include "column.h" #include "dbTypes.h" #include "pq-column.h" #include #include #include #include PQ::BinaryColumn::BinaryColumn(const PQ::SelectBase * s, unsigned int f) : PQ::Column(s, f) { } void PQ::BinaryColumn::apply(DB::HandleField & h) const { if (isNull()) { h.null(); return; } switch (oid) { case CHAROID: case VARCHAROID: case TEXTOID: case XMLOID: h.string({value(), length()}); break; case BOOLOID: h.boolean(valueAs()); break; case INT2OID: h.integer(static_cast(be16toh(valueAs()))); break; case INT4OID: h.integer(static_cast(be32toh(valueAs()))); break; case INT8OID: h.integer(static_cast(be64toh(valueAs()))); break; case BYTEAOID: h.blob(DB::Blob(value(), length())); break; default: throw DB::ColumnTypeNotSupported(); } }