मुझे यह पूछने के बाद जवाब मिला। मूल रूप से libpq-fe.h और postgres.h के साथ कैटलॉग/pg_type.h नामक एक फ़ाइल है। आपको libpq-fe.h और postgres.h को शामिल करने के बाद शामिल करने की आवश्यकता है, फिर आप TEXTOID
जैसी परिभाषाओं तक पहुंच सकते हैं , BOOLOID
, INT4OID
आदि.
#include <stdio.h>
#include <postgres.h>
#include <libpq-fe.h>
#include <catalog/pg_type.h>
// ... snip ...
if (PQgetisnull(result, row, col)) {
// value is NULL, nothing more to do
} else {
char * value = PQgetvalue(result, row, col);
int length = PQgetlength(result, row, col);
switch (PQftype(result, col)) {
case INT2OID:
case INT4OID:
case INT8OID:
// process value as an integer
break;
default:
// just default to a text representation
}
}
आपको वास्तव में एक विस्तृत सूची प्राप्त करने के लिए pg_type.h में सभी OID को देखने की आवश्यकता है, या बस परीक्षण करें कि आपको मूल SELECT 't'::boolean
करने से क्या मिलता है। क्वेश्चन आदि टाइप करें और स्विच का निर्माण केवल तभी करें जब आपको एक नए प्रकार के सपोर्ट की आवश्यकता हो।