summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/ecpglib/extern.h
diff options
context:
space:
mode:
authorTom Lane2018-12-01 21:34:00 +0000
committerTom Lane2018-12-01 21:34:00 +0000
commit3295f82022ff0da95c96d8ca763e1d8902345466 (patch)
treebc3ce9d11b1fd3d90e278d6c0ed91ff3add530e6 /src/interfaces/ecpg/ecpglib/extern.h
parent2d34ad84303181111c6f0747186857ff50106267 (diff)
Rename ecpg's various "extern.h" files to have distinct names.
This should reduce confusion, and in particular make it safe to copy typename.c into preproc/ and compile it there. This doesn't affect anything outside ecpg, and particularly not end users, because these files don't get installed; they just exist to share declarations among the .c files of each subdirectory. Discussion: https://postgr.es/m/[email protected]
Diffstat (limited to 'src/interfaces/ecpg/ecpglib/extern.h')
-rw-r--r--src/interfaces/ecpg/ecpglib/extern.h224
1 files changed, 0 insertions, 224 deletions
diff --git a/src/interfaces/ecpg/ecpglib/extern.h b/src/interfaces/ecpg/ecpglib/extern.h
deleted file mode 100644
index a88f34106cc..00000000000
--- a/src/interfaces/ecpg/ecpglib/extern.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/* src/interfaces/ecpg/ecpglib/extern.h */
-
-#ifndef _ECPG_LIB_EXTERN_H
-#define _ECPG_LIB_EXTERN_H
-
-#include "libpq-fe.h"
-#include "sqlca.h"
-#include "sqlda-native.h"
-#include "sqlda-compat.h"
-#include "ecpg_config.h"
-
-#ifndef CHAR_BIT
-#include <limits.h>
-#endif
-
-enum COMPAT_MODE
-{
- ECPG_COMPAT_PGSQL = 0, ECPG_COMPAT_INFORMIX, ECPG_COMPAT_INFORMIX_SE, ECPG_COMPAT_ORACLE
-};
-
-extern bool ecpg_internal_regression_mode;
-
-#define INFORMIX_MODE(X) ((X) == ECPG_COMPAT_INFORMIX || (X) == ECPG_COMPAT_INFORMIX_SE)
-#define ORACLE_MODE(X) ((X) == ECPG_COMPAT_ORACLE)
-
-enum ARRAY_TYPE
-{
- ECPG_ARRAY_ERROR, ECPG_ARRAY_NOT_SET, ECPG_ARRAY_ARRAY, ECPG_ARRAY_VECTOR, ECPG_ARRAY_NONE
-};
-
-#define ECPG_IS_ARRAY(X) ((X) == ECPG_ARRAY_ARRAY || (X) == ECPG_ARRAY_VECTOR)
-
-/* A generic varchar type. */
-struct ECPGgeneric_varchar
-{
- int len;
- char arr[FLEXIBLE_ARRAY_MEMBER];
-};
-
-/*
- * type information cache
- */
-
-struct ECPGtype_information_cache
-{
- struct ECPGtype_information_cache *next;
- int oid;
- enum ARRAY_TYPE isarray;
-};
-
-/* structure to store one statement */
-struct statement
-{
- int lineno;
- char *command;
- char *name;
- struct connection *connection;
- enum COMPAT_MODE compat;
- bool force_indicator;
- enum ECPG_statement_type statement_type;
- bool questionmarks;
- struct variable *inlist;
- struct variable *outlist;
- char *oldlocale;
- int nparams;
- char **paramvalues;
- PGresult *results;
-};
-
-/* structure to store prepared statements for a connection */
-struct prepared_statement
-{
- char *name;
- bool prepared;
- struct statement *stmt;
- struct prepared_statement *next;
-};
-
-/* structure to store connections */
-struct connection
-{
- char *name;
- PGconn *connection;
- bool autocommit;
- struct ECPGtype_information_cache *cache_head;
- struct prepared_statement *prep_stmts;
- struct connection *next;
-};
-
-/* structure to store descriptors */
-struct descriptor
-{
- char *name;
- PGresult *result;
- struct descriptor *next;
- int count;
- struct descriptor_item *items;
-};
-
-struct descriptor_item
-{
- int num;
- char *data;
- int indicator;
- int length;
- int precision;
- int scale;
- int type;
- struct descriptor_item *next;
-};
-
-struct variable
-{
- enum ECPGttype type;
- void *value;
- void *pointer;
- long varcharsize;
- long arrsize;
- long offset;
- enum ECPGttype ind_type;
- void *ind_value;
- void *ind_pointer;
- long ind_varcharsize;
- long ind_arrsize;
- long ind_offset;
- struct variable *next;
-};
-
-struct var_list
-{
- int number;
- void *pointer;
- struct var_list *next;
-};
-
-extern struct var_list *ivlist;
-
-/* Here are some methods used by the lib. */
-
-bool ecpg_add_mem(void *ptr, int lineno);
-
-bool ecpg_get_data(const PGresult *, int, int, int, enum ECPGttype type,
- enum ECPGttype, char *, char *, long, long, long,
- enum ARRAY_TYPE, enum COMPAT_MODE, bool);
-
-#ifdef ENABLE_THREAD_SAFETY
-void ecpg_pthreads_init(void);
-#endif
-struct connection *ecpg_get_connection(const char *);
-char *ecpg_alloc(long, int);
-char *ecpg_auto_alloc(long, int);
-char *ecpg_realloc(void *, long, int);
-void ecpg_free(void *);
-bool ecpg_init(const struct connection *, const char *, const int);
-char *ecpg_strdup(const char *, int);
-const char *ecpg_type_name(enum ECPGttype);
-int ecpg_dynamic_type(Oid);
-int sqlda_dynamic_type(Oid, enum COMPAT_MODE);
-void ecpg_free_auto_mem(void);
-void ecpg_clear_auto_mem(void);
-
-struct descriptor *ecpggetdescp(int, char *);
-
-struct descriptor *ecpg_find_desc(int line, const char *name);
-
-struct prepared_statement *ecpg_find_prepared_statement(const char *,
- struct connection *, struct prepared_statement **);
-
-bool ecpg_store_result(const PGresult *results, int act_field,
- const struct statement *stmt, struct variable *var);
-bool ecpg_store_input(const int, const bool, const struct variable *, char **, bool);
-void ecpg_free_params(struct statement *stmt, bool print);
-bool ecpg_do_prologue(int, const int, const int, const char *, const bool,
- enum ECPG_statement_type, const char *, va_list,
- struct statement **);
-bool ecpg_build_params(struct statement *);
-bool ecpg_autostart_transaction(struct statement *stmt);
-bool ecpg_execute(struct statement *stmt);
-bool ecpg_process_output(struct statement *, bool);
-void ecpg_do_epilogue(struct statement *);
-bool ecpg_do(const int, const int, const int, const char *, const bool,
- const int, const char *, va_list);
-
-bool ecpg_check_PQresult(PGresult *, int, PGconn *, enum COMPAT_MODE);
-void ecpg_raise(int line, int code, const char *sqlstate, const char *str);
-void ecpg_raise_backend(int line, PGresult *result, PGconn *conn, int compat);
-char *ecpg_prepared(const char *, struct connection *);
-bool ecpg_deallocate_all_conn(int lineno, enum COMPAT_MODE c, struct connection *conn);
-void ecpg_log(const char *format,...) pg_attribute_printf(1, 2);
-bool ecpg_auto_prepare(int, const char *, const int, char **, const char *);
-void ecpg_init_sqlca(struct sqlca_t *sqlca);
-
-struct sqlda_compat *ecpg_build_compat_sqlda(int, PGresult *, int, enum COMPAT_MODE);
-void ecpg_set_compat_sqlda(int, struct sqlda_compat **, const PGresult *, int, enum COMPAT_MODE);
-struct sqlda_struct *ecpg_build_native_sqlda(int, PGresult *, int, enum COMPAT_MODE);
-void ecpg_set_native_sqlda(int, struct sqlda_struct **, const PGresult *, int, enum COMPAT_MODE);
-
-/* SQLSTATE values generated or processed by ecpglib (intentionally
- * not exported -- users should refer to the codes directly) */
-
-#define ECPG_SQLSTATE_NO_DATA "02000"
-#define ECPG_SQLSTATE_USING_CLAUSE_DOES_NOT_MATCH_PARAMETERS "07001"
-#define ECPG_SQLSTATE_USING_CLAUSE_DOES_NOT_MATCH_TARGETS "07002"
-#define ECPG_SQLSTATE_RESTRICTED_DATA_TYPE_ATTRIBUTE_VIOLATION "07006"
-#define ECPG_SQLSTATE_INVALID_DESCRIPTOR_INDEX "07009"
-#define ECPG_SQLSTATE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION "08001"
-#define ECPG_SQLSTATE_CONNECTION_DOES_NOT_EXIST "08003"
-#define ECPG_SQLSTATE_TRANSACTION_RESOLUTION_UNKNOWN "08007"
-#define ECPG_SQLSTATE_CARDINALITY_VIOLATION "21000"
-#define ECPG_SQLSTATE_NULL_VALUE_NO_INDICATOR_PARAMETER "22002"
-#define ECPG_SQLSTATE_ACTIVE_SQL_TRANSACTION "25001"
-#define ECPG_SQLSTATE_NO_ACTIVE_SQL_TRANSACTION "25P01"
-#define ECPG_SQLSTATE_INVALID_SQL_STATEMENT_NAME "26000"
-#define ECPG_SQLSTATE_INVALID_SQL_DESCRIPTOR_NAME "33000"
-#define ECPG_SQLSTATE_INVALID_CURSOR_NAME "34000"
-#define ECPG_SQLSTATE_SYNTAX_ERROR "42601"
-#define ECPG_SQLSTATE_DATATYPE_MISMATCH "42804"
-#define ECPG_SQLSTATE_DUPLICATE_CURSOR "42P03"
-
-/* implementation-defined internal errors of ecpg */
-#define ECPG_SQLSTATE_ECPG_INTERNAL_ERROR "YE000"
-#define ECPG_SQLSTATE_ECPG_OUT_OF_MEMORY "YE001"
-
-#endif /* _ECPG_LIB_EXTERN_H */