diff options
Diffstat (limited to 'src/interfaces/ecpg/ecpglib/descriptor.c')
| -rw-r--r-- | src/interfaces/ecpg/ecpglib/descriptor.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/interfaces/ecpg/ecpglib/descriptor.c b/src/interfaces/ecpg/ecpglib/descriptor.c index e653203f89b..bc56b0222bc 100644 --- a/src/interfaces/ecpg/ecpglib/descriptor.c +++ b/src/interfaces/ecpg/ecpglib/descriptor.c @@ -1,6 +1,6 @@ /* dynamic SQL support routines * - * $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.10 2004/07/04 15:02:22 meskes Exp $ + * $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.11 2004/07/05 09:45:53 meskes Exp $ */ #define POSTGRES_ECPG_INTERNAL @@ -431,6 +431,27 @@ ECPGget_desc(int lineno, char *desc_name, int index,...) } bool +ECPGset_desc_header(int lineno, char *desc_name, int count) +{ + struct descriptor *desc; + + for (desc = all_descriptors; desc; desc = desc->next) + { + if (strcmp(desc_name, desc->name)==0) + break; + } + + if (desc == NULL) + { + ECPGraise(lineno, ECPG_UNKNOWN_DESCRIPTOR, ECPG_SQLSTATE_INVALID_SQL_DESCRIPTOR_NAME, desc_name); + return false; + } + + desc->count = count; + return true; +} + +bool ECPGset_desc(int lineno, char *desc_name, int index,...) { va_list args; @@ -581,6 +602,7 @@ ECPGallocate_desc(int line, const char *name) ECPGfree(new); return false; } + new->count = -1; new->items = NULL; new->result = PQmakeEmptyPGresult(NULL, 0); if (!new->result) |
