aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2000-02-15 19:23:20 +0000
committerMichael Meskes <meskes@postgresql.org>2000-02-15 19:23:20 +0000
commit30f16e72a4951c1e8c70a2d33822d2f64d4a1806 (patch)
tree61165a901807983cea9a189c11460f15159c0ffc /src
parent6124c674cea1aceea855b4372d9c417fb576615d (diff)
downloadpostgresql-30f16e72a4951c1e8c70a2d33822d2f64d4a1806.tar.gz
postgresql-30f16e72a4951c1e8c70a2d33822d2f64d4a1806.zip
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/ecpg/include/sqlca.h4
-rw-r--r--src/interfaces/ecpg/lib/ecpglib.c23
-rw-r--r--src/interfaces/ecpg/test/Makefile10
3 files changed, 21 insertions, 16 deletions
diff --git a/src/interfaces/ecpg/include/sqlca.h b/src/interfaces/ecpg/include/sqlca.h
index 44e7908f598..0fa4a624181 100644
--- a/src/interfaces/ecpg/include/sqlca.h
+++ b/src/interfaces/ecpg/include/sqlca.h
@@ -1,6 +1,8 @@
#ifndef POSTGRES_SQLCA_H
#define POSTGRES_SQLCA_H
+#define SQLERRMC_LEN 70
+
#ifdef __cplusplus
extern "C"
{
@@ -14,7 +16,7 @@ extern "C"
struct
{
int sqlerrml;
- char sqlerrmc[70];
+ char sqlerrmc[SQLERRMC_LEN];
} sqlerrm;
char sqlerrp[8];
long sqlerrd[6];
diff --git a/src/interfaces/ecpg/lib/ecpglib.c b/src/interfaces/ecpg/lib/ecpglib.c
index 15440d09d9d..205a051a1e7 100644
--- a/src/interfaces/ecpg/lib/ecpglib.c
+++ b/src/interfaces/ecpg/lib/ecpglib.c
@@ -109,7 +109,7 @@ register_error(long code, char *fmt,...)
sqlca.sqlcode = code;
va_start(args, fmt);
- vsprintf(sqlca.sqlerrm.sqlerrmc, fmt, args);
+ vsnprintf(sqlca.sqlerrm.sqlerrmc, SQLERRMC_LEN, fmt, args);
va_end(args);
sqlca.sqlerrm.sqlerrml = strlen(sqlca.sqlerrm.sqlerrmc);
@@ -649,7 +649,8 @@ ECPGexecute(struct statement * stmt)
int nfields,
ntuples,
act_tuple,
- act_field;
+ act_field,
+ isarray;
case PGRES_TUPLES_OK:
nfields = PQnfields(results);
@@ -678,6 +679,16 @@ ECPGexecute(struct statement * stmt)
return (false);
}
+ array_query = (char *)ecpg_alloc(strlen("select typelem from pg_type where oid=") + 11, stmt -> lineno);
+ sprintf(array_query, "select typelem from pg_type where oid=%d", PQftype(results, act_field));
+ query = PQexec(stmt->connection->connection, array_query);
+ isarray = 0;
+ if (PQresultStatus(query) == PGRES_TUPLES_OK) {
+ isarray = atol((char *)PQgetvalue(query, 0, 0));
+ ECPGlog("ECPGexecute line %d: TYPE database: %d C: %d array: %s\n", stmt->lineno, PQftype(results, act_field), var->type, isarray ? "yes" : "no");
+ }
+ PQclear(query);
+
/*
* if we don't have enough space, we cannot read all
* tuples
@@ -726,14 +737,6 @@ ECPGexecute(struct statement * stmt)
add_mem(var->value, stmt->lineno);
}
-#if 0
- array_query = (char *)ecpg_alloc(strlen("select typelem from pg_type where oid=") + 11, stmt -> lineno);
- sprintf(array_query, "select typelem from pg_type where oid=%d", PQftype(results, act_field));
- query = PQexec(stmt->connection->connection, array_query);
- if (PQresultStatus(query) == PGRES_TUPLES_OK)
- ECPGlog("ECPGexecute line %d: TYPE database: %d C: %d array OID: %s\n", stmt->lineno, PQftype(results, act_field), var->type, (char *)PQgetvalue(query, 0, 0));
- PQclear(query);
-#endif
for (act_tuple = 0; act_tuple < ntuples && status; act_tuple++)
{
pval = (char *)PQgetvalue(results, act_tuple, act_field);
diff --git a/src/interfaces/ecpg/test/Makefile b/src/interfaces/ecpg/test/Makefile
index fb7ba0d25ac..c6b5621acfb 100644
--- a/src/interfaces/ecpg/test/Makefile
+++ b/src/interfaces/ecpg/test/Makefile
@@ -1,12 +1,12 @@
all: stp.so test1 test2 test3 test4 test5 perftest
#LDFLAGS=-g -I /usr/local/pgsql/include -L/usr/local/pgsql/lib -lecpg -lpq -lcrypt
-#LDFLAGS=-g -I../include -I/usr/include/postgresql -L/usr/lib/postgresql -L../lib -lecpg -lpq -lcrypt
-LDFLAGS=-g -I/usr/include/postgresql -lecpg -lpq -lcrypt
+LDFLAGS=-g -I../include -I/usr/include/postgresql -L/usr/lib/postgresql -L../lib -lecpg -lpq -lcrypt
+#LDFLAGS=-g -I/usr/include/postgresql -lecpg -lpq -lcrypt
#ECPG=/usr/local/pgsql/bin/ecpg
-#ECPG=../preproc/ecpg -I../include
-ECPG=/usr/bin/ecpg -I/usr/include/postgresql
+ECPG=../preproc/ecpg -I../include
+#ECPG=/usr/bin/ecpg -I/usr/include/postgresql
.SUFFIXES: .pgc .c
@@ -22,7 +22,7 @@ perftest: perftest.c
stp.so: stp.c
cc -fPIC -I../include -I/usr/include/postgresql -c -o stp.o stp.c
- ld -Bdynamic -shared -soname stp.so -o stp.so stp.o -lpq -lecpg
+ ld -Bdynamic -shared -soname stp.so -o stp.so stp.o -lpq -lecpg -lc
clean: