summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/ecpglib/ecpglib_extern.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/ecpglib/ecpglib_extern.h')
-rw-r--r--src/interfaces/ecpg/ecpglib/ecpglib_extern.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/ecpglib/ecpglib_extern.h b/src/interfaces/ecpg/ecpglib/ecpglib_extern.h
index ae2dcfc6172..f3e41d3eec6 100644
--- a/src/interfaces/ecpg/ecpglib/ecpglib_extern.h
+++ b/src/interfaces/ecpg/ecpglib/ecpglib_extern.h
@@ -78,6 +78,15 @@ struct statement
PGresult *results;
};
+/* structure to store declared statements */
+struct declared_statement
+{
+ char *name; /* declared name */
+ char *connection_name;
+ char *cursor_name;
+ struct declared_statement *next;
+};
+
/* structure to store prepared statements for a connection */
struct prepared_statement
{
@@ -87,6 +96,12 @@ struct prepared_statement
struct prepared_statement *next;
};
+struct cursor_statement
+{
+ char *name; /*cursor name*/
+ struct cursor_statement *next;
+};
+
/* structure to store connections */
struct connection
{
@@ -95,6 +110,7 @@ struct connection
bool autocommit;
struct ECPGtype_information_cache *cache_head;
struct prepared_statement *prep_stmts;
+ struct cursor_statement *cursor_stmts;
struct connection *next;
};
@@ -177,6 +193,11 @@ struct descriptor *ecpg_find_desc(int line, const char *name);
struct prepared_statement *ecpg_find_prepared_statement(const char *,
struct connection *, struct prepared_statement **);
+void ecpg_update_declare_statement(const char *, const char *, const int);
+char *ecpg_get_con_name_by_declared_name(const char *);
+const char *ecpg_get_con_name_by_cursor_name(const char *);
+void ecpg_release_declared_statement(const char *);
+
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);