summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/ecpglib/descriptor.c
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2004-07-05 09:45:54 +0000
committerMichael Meskes <meskes@postgresql.org>2004-07-05 09:45:54 +0000
commit073f7312a4c0aff9030ccc52010095a260c6a7a6 (patch)
treebc64a74145ae3c68e0b6466b25610447d1db95f8 /src/interfaces/ecpg/ecpglib/descriptor.c
parentda09dea3e32fcc430102f6377caee24a2afe2101 (diff)
- Fixed indicator in SET DESCRIPTOR.
- Added special handling of descriptor header information. - Some code cleanup.
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)