#include "postgres_fe.h"#include <stdlib.h>#include "ecpgtype.h"#include "ecpglib.h"#include "extern.h"#include "sqltypes.h"#include "sql3types.h"#include "pg_type.h"
Go to the source code of this file.
Defines | |
| #define | POSTGRES_ECPG_INTERNAL |
Functions | |
| const char * | ecpg_type_name (enum ECPGttype typ) |
| int | ecpg_dynamic_type (Oid type) |
| int | sqlda_dynamic_type (Oid type, enum COMPAT_MODE compat) |
| #define POSTGRES_ECPG_INTERNAL |
Definition at line 3 of file typename.c.
| int ecpg_dynamic_type | ( | Oid | type | ) |
Definition at line 72 of file typename.c.
References BOOLOID, BPCHAROID, DATEOID, FLOAT4OID, FLOAT8OID, INT2OID, INT4OID, NUMERICOID, TEXTOID, TIMEOID, TIMESTAMPOID, and VARCHAROID.
Referenced by ecpg_is_type_an_array(), and ECPGget_desc().
{
switch (type)
{
case BOOLOID:
return SQL3_BOOLEAN; /* bool */
case INT2OID:
return SQL3_SMALLINT; /* int2 */
case INT4OID:
return SQL3_INTEGER; /* int4 */
case TEXTOID:
return SQL3_CHARACTER; /* text */
case FLOAT4OID:
return SQL3_REAL; /* float4 */
case FLOAT8OID:
return SQL3_DOUBLE_PRECISION; /* float8 */
case BPCHAROID:
return SQL3_CHARACTER; /* bpchar */
case VARCHAROID:
return SQL3_CHARACTER_VARYING; /* varchar */
case DATEOID:
return SQL3_DATE_TIME_TIMESTAMP; /* date */
case TIMEOID:
return SQL3_DATE_TIME_TIMESTAMP; /* time */
case TIMESTAMPOID:
return SQL3_DATE_TIME_TIMESTAMP; /* datetime */
case NUMERICOID:
return SQL3_NUMERIC; /* numeric */
default:
return 0;
}
}
| const char* ecpg_type_name | ( | enum ECPGttype | typ | ) |
Definition at line 18 of file typename.c.
References ECPGt_bool, ECPGt_char, ECPGt_char_variable, ECPGt_const, ECPGt_date, ECPGt_decimal, ECPGt_double, ECPGt_float, ECPGt_int, ECPGt_interval, ECPGt_long, ECPGt_long_long, ECPGt_numeric, ECPGt_short, ECPGt_string, ECPGt_timestamp, ECPGt_unsigned_char, ECPGt_unsigned_int, ECPGt_unsigned_long, ECPGt_unsigned_long_long, ECPGt_unsigned_short, and ECPGt_varchar.
Referenced by ecpg_get_data(), ecpg_store_input(), and ECPGdump_a_simple().
{
switch (typ)
{
case ECPGt_char:
case ECPGt_string:
return "char";
case ECPGt_unsigned_char:
return "unsigned char";
case ECPGt_short:
return "short";
case ECPGt_unsigned_short:
return "unsigned short";
case ECPGt_int:
return "int";
case ECPGt_unsigned_int:
return "unsigned int";
case ECPGt_long:
return "long";
case ECPGt_unsigned_long:
return "unsigned long";
case ECPGt_long_long:
return "long long";
case ECPGt_unsigned_long_long:
return "unsigned long long";
case ECPGt_float:
return "float";
case ECPGt_double:
return "double";
case ECPGt_bool:
return "bool";
case ECPGt_varchar:
return "varchar";
case ECPGt_char_variable:
return "char";
case ECPGt_decimal:
return "decimal";
case ECPGt_numeric:
return "numeric";
case ECPGt_date:
return "date";
case ECPGt_timestamp:
return "timestamp";
case ECPGt_interval:
return "interval";
case ECPGt_const:
return "Const";
default:
abort();
}
return ""; /* keep MSC compiler happy */
}
| int sqlda_dynamic_type | ( | Oid | type, | |
| enum COMPAT_MODE | compat | |||
| ) |
Definition at line 106 of file typename.c.
References BPCHAROID, CHAROID, DATEOID, ECPGt_decimal, FLOAT4OID, FLOAT8OID, INFORMIX_MODE, INT2OID, INT4OID, INT8OID, INTERVALOID, NUMERICOID, TEXTOID, TIMESTAMPOID, TIMESTAMPTZOID, and VARCHAROID.
Referenced by ecpg_build_compat_sqlda(), ecpg_build_native_sqlda(), and sqlda_common_total_size().
{
switch (type)
{
case CHAROID:
case VARCHAROID:
case BPCHAROID:
case TEXTOID:
return ECPGt_char;
case INT2OID:
return ECPGt_short;
case INT4OID:
return ECPGt_int;
case FLOAT8OID:
return ECPGt_double;
case FLOAT4OID:
return ECPGt_float;
case NUMERICOID:
return INFORMIX_MODE(compat) ? ECPGt_decimal : ECPGt_numeric;
case DATEOID:
return ECPGt_date;
case TIMESTAMPOID:
case TIMESTAMPTZOID:
return ECPGt_timestamp;
case INTERVALOID:
return ECPGt_interval;
case INT8OID:
#ifdef HAVE_LONG_LONG_INT_64
return ECPGt_long_long;
#endif
#ifdef HAVE_LONG_INT_64
return ECPGt_long;
#endif
/* Unhandled types always return a string */
default:
return ECPGt_char;
}
}
1.7.1