summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/ecpglib/descriptor.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/ecpglib/descriptor.c')
-rw-r--r--src/interfaces/ecpg/ecpglib/descriptor.c24
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)