99 lines
3.0 KiB
C
99 lines
3.0 KiB
C
|
|
/* File: pgtypes.h
|
|
*
|
|
* Description: See "pgtypes.c"
|
|
*
|
|
* Comments: See "notice.txt" for copyright and license information.
|
|
*
|
|
*/
|
|
|
|
#ifndef __PGTYPES_H__
|
|
#define __PGTYPES_H__
|
|
|
|
#include "psqlodbc.h"
|
|
|
|
/* the type numbers are defined by the OID's of the types' rows */
|
|
/* in table pg_type */
|
|
|
|
|
|
#if 0
|
|
#define PG_TYPE_LO ???? /* waiting for permanent type */
|
|
#endif
|
|
|
|
#define PG_TYPE_BOOL 16
|
|
#define PG_TYPE_BYTEA 17
|
|
#define PG_TYPE_CHAR 18
|
|
#define PG_TYPE_NAME 19
|
|
#define PG_TYPE_INT8 20
|
|
#define PG_TYPE_INT2 21
|
|
#define PG_TYPE_INT2VECTOR 22
|
|
#define PG_TYPE_INT4 23
|
|
#define PG_TYPE_REGPROC 24
|
|
#define PG_TYPE_TEXT 25
|
|
#define PG_TYPE_OID 26
|
|
#define PG_TYPE_TID 27
|
|
#define PG_TYPE_XID 28
|
|
#define PG_TYPE_CID 29
|
|
#define PG_TYPE_OIDVECTOR 30
|
|
#define PG_TYPE_SET 32
|
|
#define PG_TYPE_CHAR2 409
|
|
#define PG_TYPE_CHAR4 410
|
|
#define PG_TYPE_CHAR8 411
|
|
#define PG_TYPE_POINT 600
|
|
#define PG_TYPE_LSEG 601
|
|
#define PG_TYPE_PATH 602
|
|
#define PG_TYPE_BOX 603
|
|
#define PG_TYPE_POLYGON 604
|
|
#define PG_TYPE_FILENAME 605
|
|
#define PG_TYPE_FLOAT4 700
|
|
#define PG_TYPE_FLOAT8 701
|
|
#define PG_TYPE_ABSTIME 702
|
|
#define PG_TYPE_RELTIME 703
|
|
#define PG_TYPE_TINTERVAL 704
|
|
#define PG_TYPE_UNKNOWN 705
|
|
#define PG_TYPE_MONEY 790
|
|
#define PG_TYPE_OIDINT2 810
|
|
#define PG_TYPE_OIDINT4 910
|
|
#define PG_TYPE_OIDNAME 911
|
|
#define PG_TYPE_BPCHAR 1042
|
|
#define PG_TYPE_VARCHAR 1043
|
|
#define PG_TYPE_DATE 1082
|
|
#define PG_TYPE_TIME 1083
|
|
#define PG_TYPE_DATETIME 1184
|
|
#define PG_TYPE_TIMESTAMP 1296
|
|
#define PG_TYPE_NUMERIC 1700
|
|
|
|
/* extern Int4 pgtypes_defined[]; */
|
|
extern Int2 sqlTypes[];
|
|
|
|
/* Defines for pgtype_precision */
|
|
#define PG_STATIC -1
|
|
|
|
Int4 sqltype_to_pgtype(Int2 fSqlType);
|
|
|
|
Int2 pgtype_to_sqltype(StatementClass *stmt, Int4 type);
|
|
Int2 pgtype_to_ctype(StatementClass *stmt, Int4 type);
|
|
char *pgtype_to_name(StatementClass *stmt, Int4 type);
|
|
|
|
/* These functions can use static numbers or result sets(col parameter) */
|
|
Int4 pgtype_precision(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as);
|
|
Int4 pgtype_display_size(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as);
|
|
Int4 pgtype_length(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as);
|
|
|
|
Int2 pgtype_scale(StatementClass *stmt, Int4 type, int col);
|
|
Int2 pgtype_radix(StatementClass *stmt, Int4 type);
|
|
Int2 pgtype_nullable(StatementClass *stmt, Int4 type);
|
|
Int2 pgtype_auto_increment(StatementClass *stmt, Int4 type);
|
|
Int2 pgtype_case_sensitive(StatementClass *stmt, Int4 type);
|
|
Int2 pgtype_money(StatementClass *stmt, Int4 type);
|
|
Int2 pgtype_searchable(StatementClass *stmt, Int4 type);
|
|
Int2 pgtype_unsigned(StatementClass *stmt, Int4 type);
|
|
char *pgtype_literal_prefix(StatementClass *stmt, Int4 type);
|
|
char *pgtype_literal_suffix(StatementClass *stmt, Int4 type);
|
|
char *pgtype_create_params(StatementClass *stmt, Int4 type);
|
|
|
|
Int2 sqltype_to_default_ctype(Int2 sqltype);
|
|
|
|
#endif
|
|
|