diff options
Diffstat (limited to 'src/interfaces/ecpg/include')
-rw-r--r-- | src/interfaces/ecpg/include/Makefile | 2 | ||||
-rw-r--r-- | src/interfaces/ecpg/include/ecpgerrno.h | 4 | ||||
-rw-r--r-- | src/interfaces/ecpg/include/ecpglib.h | 12 | ||||
-rw-r--r-- | src/interfaces/ecpg/include/sql3types.h | 38 |
4 files changed, 56 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/include/Makefile b/src/interfaces/ecpg/include/Makefile index db0ea7954e5..6ab79fd856b 100644 --- a/src/interfaces/ecpg/include/Makefile +++ b/src/interfaces/ecpg/include/Makefile @@ -10,11 +10,13 @@ install:: $(INSTALL) $(INSTLOPTS) ecpglib.h $(HEADERDIR) $(INSTALL) $(INSTLOPTS) ecpgtype.h $(HEADERDIR) $(INSTALL) $(INSTLOPTS) sqlca.h $(HEADERDIR) + $(INSTALL) $(INSTLOPTS) sql3types.h $(HEADERDIR) uninstall:: rm -f $(HEADERDIR)/ecpgerrno.h rm -f $(HEADERDIR)/ecpglib.h rm -f $(HEADERDIR)/ecpgtype.h rm -f $(HEADERDIR)/sqlca.h + rm -f $(HEADERDIR)/sql3types.h dep depend: diff --git a/src/interfaces/ecpg/include/ecpgerrno.h b/src/interfaces/ecpg/include/ecpgerrno.h index db2618f31d0..429703a29ca 100644 --- a/src/interfaces/ecpg/include/ecpgerrno.h +++ b/src/interfaces/ecpg/include/ecpgerrno.h @@ -29,6 +29,10 @@ #define ECPG_INVALID_STMT -230 +/* dynamic SQL related */ +#define ECPG_UNKNOWN_DESCRIPTOR -240 +#define ECPG_INVALID_DESCRIPTOR_INDEX -241 + /* finally the backend error messages, they start at 400 */ #define ECPG_PGSQL -400 #define ECPG_TRANS -401 diff --git a/src/interfaces/ecpg/include/ecpglib.h b/src/interfaces/ecpg/include/ecpglib.h index 9ceb6916954..f50a2bb09d8 100644 --- a/src/interfaces/ecpg/include/ecpglib.h +++ b/src/interfaces/ecpg/include/ecpglib.h @@ -1,4 +1,5 @@ #include <postgres.h> +#include <libpq-fe.h> #ifdef __cplusplus extern "C" @@ -49,6 +50,17 @@ extern "C" #define SQLCODE sqlca.sqlcode +/* dynamic SQL */ + + unsigned int ECPGDynamicType(Oid type); + unsigned int ECPGDynamicType_DDT(Oid type); + PGresult * ECPGresultByDescriptor(int line,const char *name); + bool ECPGdo_descriptor(int line,const char *connection, + const char *descriptor,const char *query); + bool ECPGdeallocate_desc(int line,const char *name); + bool ECPGallocate_desc(int line,const char *name); + void ECPGraise(int line,int code); + #ifdef __cplusplus } diff --git a/src/interfaces/ecpg/include/sql3types.h b/src/interfaces/ecpg/include/sql3types.h new file mode 100644 index 00000000000..c844975b4ad --- /dev/null +++ b/src/interfaces/ecpg/include/sql3types.h @@ -0,0 +1,38 @@ +/* SQL3 dynamic type codes + * + * Copyright (c) 2000, Christof Petig <christof.petig@wtal.de> + * + * $Header: /cvsroot/pgsql/src/interfaces/ecpg/include/sql3types.h,v 1.1 2000/02/16 16:18:03 meskes Exp $ + */ + +/* chapter 13.1 table 2: Codes used for SQL data types in Dynamic SQL */ + +enum { SQL3_CHARACTER=1, + SQL3_NUMERIC, + SQL3_DECIMAL, + SQL3_INTEGER, + SQL3_SMALLINT, + SQL3_FLOAT, + SQL3_REAL, + SQL3_DOUBLE_PRECISION, + SQL3_DATE_TIME_TIMESTAMP, + SQL3_INTERVAL, //10 + SQL3_CHARACTER_VARYING=12, + SQL3_ENUMERATED, + SQL3_BIT, + SQL3_BIT_VARYING, + SQL3_BOOLEAN, + SQL3_abstract + // the rest is xLOB stuff + }; + +/* chapter 13.1 table 3: Codes associated with datetime data types in Dynamic SQL */ + +enum { SQL3_DDT_DATE=1, + SQL3_DDT_TIME, + SQL3_DDT_TIMESTAMP, + SQL3_DDT_TIME_WITH_TIME_ZONE, + SQL3_DDT_TIMESTAMP_WITH_TIME_ZONE, + + SQL3_DDT_ILLEGAL /* not a datetime data type (not part of standard) */ + }; |