summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/preproc/ecpg.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-08-11 18:33:37 +0000
committerBruce Momjian <bruce@momjian.us>1998-08-11 18:33:37 +0000
commitc6dd1e63a951ba4b529ed292f88fba28de70df78 (patch)
treefa342f405c3a3bacd02f038f6043b1f39d78f623 /src/interfaces/ecpg/preproc/ecpg.c
parent79c8d2e3a0966b49af2a2cab44628d2f963d46fd (diff)
downloadpostgresql-c6dd1e63a951ba4b529ed292f88fba28de70df78.tar.gz
This one cleans the cursor problems ecpg had so far. It is now able
to understand cursors with variables. Michael
Diffstat (limited to 'src/interfaces/ecpg/preproc/ecpg.c')
-rw-r--r--src/interfaces/ecpg/preproc/ecpg.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c
index f12b799850..1fe777845b 100644
--- a/src/interfaces/ecpg/preproc/ecpg.c
+++ b/src/interfaces/ecpg/preproc/ecpg.c
@@ -23,6 +23,7 @@ extern char *optarg;
struct _include_path *include_paths;
static int no_auto_trans = 0;
+struct cursor *cur = NULL;
static void
usage(char *progname)
@@ -138,6 +139,24 @@ main(int argc, char *const argv[])
{
struct cursor *ptr;
+ /* remove old cursor definitions if any are still there */
+ for (ptr = cur; ptr != NULL; ptr=ptr->next)
+ {
+ struct arguments *l1, *l2;
+
+ free(ptr->command);
+ free(ptr->name);
+ for (l1 = argsinsert; l1; l1 = l2)
+ {
+ l2 = l1->next;
+ free(l1);
+ }
+ for (l1 = argsresult; l1; l1 = l2)
+ {
+ l2 = l1->next;
+ free(l1);
+ }
+ }
/* initialize lex */
lex_init();