ecpg-fix-leaks.patch
text/x-patch
Filename: ecpg-fix-leaks.patch
Type: text/x-patch
Part: 1
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: context
| File | + | − |
|---|---|---|
| src/interfaces/ecpg/pgtypeslib/numeric.c | 5 | 2 |
| src/interfaces/ecpg/test/compat_informix/dec_test.pgc | 4 | 0 |
| src/interfaces/ecpg/test/expected/compat_informix-dec_test.c | 4 | 0 |
| src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c | 2 | 0 |
| src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c | 5 | 4 |
| src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.stderr | 1 | 1 |
| src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c | 6 | 4 |
| src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.stderr | 1 | 1 |
| src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c | 7 | 0 |
| src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c | 7 | 4 |
| src/interfaces/ecpg/test/expected/pgtypeslib-num_test.stderr | 1 | 1 |
| src/interfaces/ecpg/test/expected/sql-array.c | 2 | 0 |
| src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc | 2 | 0 |
| src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc | 1 | 0 |
| src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc | 2 | 0 |
| src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc | 7 | 0 |
| src/interfaces/ecpg/test/pgtypeslib/num_test.pgc | 3 | 0 |
| src/interfaces/ecpg/test/preproc/autoprep.stdout | 320 | 0 |
| src/interfaces/ecpg/test/sql/array.pgc | 2 | 0 |
diff -dcrpN pgsql.orig/src/interfaces/ecpg/pgtypeslib/numeric.c pgsql-wherecurrentof/src/interfaces/ecpg/pgtypeslib/numeric.c
*** pgsql.orig/src/interfaces/ecpg/pgtypeslib/numeric.c 2010-02-02 17:09:12.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/pgtypeslib/numeric.c 2010-08-03 17:50:58.000000000 +0200
*************** PGTYPESnumeric_from_asc(char *str, char
*** 417,423 ****
ret = set_var_from_str(str, ptr, value);
if (ret)
{
! free(value);
return (NULL);
}
--- 417,423 ----
ret = set_var_from_str(str, ptr, value);
if (ret)
{
! PGTYPESnumeric_free(value);
return (NULL);
}
*************** PGTYPESnumeric_to_long(numeric *nv, long
*** 1602,1609 ****
--- 1602,1613 ----
errno = 0;
*lp = strtol(s, &endptr, 10);
if (endptr == s)
+ {
/* this should not happen actually */
+ free(s);
return -1;
+ }
+ free(s);
if (errno == ERANGE)
{
if (*lp == LONG_MIN)
*************** PGTYPESnumeric_to_long(numeric *nv, long
*** 1612,1618 ****
errno = PGTYPES_NUM_OVERFLOW;
return -1;
}
- free(s);
return 0;
}
--- 1616,1621 ----
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/compat_informix/dec_test.pgc pgsql-wherecurrentof/src/interfaces/ecpg/test/compat_informix/dec_test.pgc
*** pgsql.orig/src/interfaces/ecpg/test/compat_informix/dec_test.pgc 2007-08-14 12:01:53.000000000 +0200
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/compat_informix/dec_test.pgc 2010-08-03 18:10:22.000000000 +0200
*************** main(void)
*** 60,65 ****
--- 60,66 ----
{
check_errno();
printf("dec[%d,0]: r: %d\n", i, r);
+ PGTYPESdecimal_free(dec);
continue;
}
decarr = realloc(decarr, sizeof(decimal *) * (count + 1));
*************** main(void)
*** 200,206 ****
--- 201,210 ----
{
dectoasc(decarr[i], buf, BUFSIZE-1, -1);
printf("%d: %s\n", i, buf);
+
+ PGTYPESdecimal_free(decarr[i]);
}
+ free(decarr);
return (0);
}
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/expected/compat_informix-dec_test.c pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/compat_informix-dec_test.c
*** pgsql.orig/src/interfaces/ecpg/test/expected/compat_informix-dec_test.c 2008-02-17 19:14:29.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/compat_informix-dec_test.c 2010-08-03 18:30:05.000000000 +0200
*************** main(void)
*** 80,85 ****
--- 80,86 ----
{
check_errno();
printf("dec[%d,0]: r: %d\n", i, r);
+ PGTYPESdecimal_free(dec);
continue;
}
decarr = realloc(decarr, sizeof(decimal *) * (count + 1));
*************** main(void)
*** 220,226 ****
--- 221,230 ----
{
dectoasc(decarr[i], buf, BUFSIZE-1, -1);
printf("%d: %s\n", i, buf);
+
+ PGTYPESdecimal_free(decarr[i]);
}
+ free(decarr);
return (0);
}
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c
*** pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c 2008-12-29 18:07:06.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c 2010-08-03 18:31:46.000000000 +0200
*************** main(void)
*** 139,144 ****
--- 139,145 ----
printf("TS[%d,%d]: %s\n",
i, j, errno ? "-" : text);
free(text);
+ free(t);
}
}
}
*************** main(void)
*** 169,174 ****
--- 170,176 ----
printf("interval_copy[%d]: %s\n", i, text ? text : "-");
free(text);
PGTYPESinterval_free(ic);
+ PGTYPESinterval_free(i1);
}
return (0);
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c
*** pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c 2009-02-02 16:35:28.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c 2010-08-03 18:30:27.000000000 +0200
*************** if (sqlca.sqlcode < 0) sqlprint ( );}
*** 123,128 ****
--- 123,129 ----
PGTYPESinterval_copy(iv1, &iv2);
text = PGTYPESinterval_to_asc(&iv2);
printf ("interval: %s\n", text);
+ PGTYPESinterval_free(iv1);
free(text);
PGTYPESdate_mdyjul(mdy, &date2);
*************** if (sqlca.sqlcode < 0) sqlprint ( );}
*** 430,445 ****
free(text);
{ ECPGtrans(__LINE__, NULL, "rollback");
! #line 358 "dt_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 358 "dt_test.pgc"
{ ECPGdisconnect(__LINE__, "CURRENT");
! #line 359 "dt_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 359 "dt_test.pgc"
return (0);
--- 431,446 ----
free(text);
{ ECPGtrans(__LINE__, NULL, "rollback");
! #line 359 "dt_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 359 "dt_test.pgc"
{ ECPGdisconnect(__LINE__, "CURRENT");
! #line 360 "dt_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 360 "dt_test.pgc"
return (0);
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.stderr pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.stderr
*** pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.stderr 2010-02-04 10:41:35.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.stderr 2010-08-03 18:30:20.000000000 +0200
***************
*** 42,48 ****
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 38: RESULT: 2000-07-12 17:34:29 offset: -1; array: no
[NO_PID]: sqlca: code: 0, state: 00000
! [NO_PID]: ECPGtrans on line 358: action "rollback"; connection "regress1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_finish: connection regress1 closed
[NO_PID]: sqlca: code: 0, state: 00000
--- 42,48 ----
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 38: RESULT: 2000-07-12 17:34:29 offset: -1; array: no
[NO_PID]: sqlca: code: 0, state: 00000
! [NO_PID]: ECPGtrans on line 359: action "rollback"; connection "regress1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_finish: connection regress1 closed
[NO_PID]: sqlca: code: 0, state: 00000
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c
*** pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c 2010-02-27 22:56:16.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c 2010-08-03 18:32:36.000000000 +0200
*************** if (sqlca.sqlcode < 0) sqlprint ( );}
*** 252,268 ****
#line 84 "nan_test.pgc"
{ ECPGtrans(__LINE__, NULL, "rollback");
! #line 86 "nan_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 86 "nan_test.pgc"
{ ECPGdisconnect(__LINE__, "CURRENT");
! #line 87 "nan_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 87 "nan_test.pgc"
return (0);
--- 252,270 ----
#line 84 "nan_test.pgc"
+ PGTYPESnumeric_free(num);
+
{ ECPGtrans(__LINE__, NULL, "rollback");
! #line 88 "nan_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 88 "nan_test.pgc"
{ ECPGdisconnect(__LINE__, "CURRENT");
! #line 89 "nan_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 89 "nan_test.pgc"
return (0);
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.stderr pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.stderr
*** pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.stderr 2010-02-09 09:57:13.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.stderr 2010-08-03 18:32:27.000000000 +0200
***************
*** 354,360 ****
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 84: OK: CLOSE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000
! [NO_PID]: ECPGtrans on line 86: action "rollback"; connection "regress1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_finish: connection regress1 closed
[NO_PID]: sqlca: code: 0, state: 00000
--- 354,360 ----
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 84: OK: CLOSE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000
! [NO_PID]: ECPGtrans on line 88: action "rollback"; connection "regress1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_finish: connection regress1 closed
[NO_PID]: sqlca: code: 0, state: 00000
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c
*** pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c 2008-02-17 19:14:29.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c 2010-08-03 18:32:16.000000000 +0200
*************** main(void)
*** 211,216 ****
--- 211,221 ----
printf("num[d,%d,%d]: %s\n", i, j, text);
free(text);
}
+
+ PGTYPESnumeric_free(a);
+ PGTYPESnumeric_free(s);
+ PGTYPESnumeric_free(m);
+ PGTYPESnumeric_free(d);
}
}
*************** main(void)
*** 219,225 ****
--- 224,232 ----
text = PGTYPESnumeric_to_asc(numarr[i], -1);
printf("%d: %s\n", i, text);
free(text);
+ PGTYPESnumeric_free(numarr[i]);
}
+ free(numarr);
return (0);
}
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c
*** pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c 2008-12-29 18:07:06.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c 2010-08-03 18:31:59.000000000 +0200
*************** if (sqlca.sqlcode < 0) sqlprint ( );}
*** 131,136 ****
--- 131,139 ----
PGTYPESnumeric_to_double(res, &d);
printf("div = %s %e\n", text, d);
+ PGTYPESnumeric_free(value1);
+ PGTYPESnumeric_free(value2);
+
value1 = PGTYPESnumeric_from_asc("2E7", NULL);
value2 = PGTYPESnumeric_from_asc("14", NULL);
i = PGTYPESnumeric_to_long(value1, &l1) | PGTYPESnumeric_to_long(value2, &l2);
*************** if (sqlca.sqlcode < 0) sqlprint ( );}
*** 142,157 ****
PGTYPESnumeric_free(res);
{ ECPGtrans(__LINE__, NULL, "rollback");
! #line 90 "num_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 90 "num_test.pgc"
{ ECPGdisconnect(__LINE__, "CURRENT");
! #line 91 "num_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 91 "num_test.pgc"
return (0);
--- 145,160 ----
PGTYPESnumeric_free(res);
{ ECPGtrans(__LINE__, NULL, "rollback");
! #line 93 "num_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 93 "num_test.pgc"
{ ECPGdisconnect(__LINE__, "CURRENT");
! #line 94 "num_test.pgc"
if (sqlca.sqlcode < 0) sqlprint ( );}
! #line 94 "num_test.pgc"
return (0);
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.stderr pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.stderr
*** pgsql.orig/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.stderr 2010-02-04 10:41:35.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.stderr 2010-08-03 18:32:05.000000000 +0200
***************
*** 26,32 ****
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 66: RESULT: 2369.7000000 offset: -1; array: no
[NO_PID]: sqlca: code: 0, state: 00000
! [NO_PID]: ECPGtrans on line 90: action "rollback"; connection "regress1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_finish: connection regress1 closed
[NO_PID]: sqlca: code: 0, state: 00000
--- 26,32 ----
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_get_data on line 66: RESULT: 2369.7000000 offset: -1; array: no
[NO_PID]: sqlca: code: 0, state: 00000
! [NO_PID]: ECPGtrans on line 93: action "rollback"; connection "regress1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_finish: connection regress1 closed
[NO_PID]: sqlca: code: 0, state: 00000
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/expected/sql-array.c pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/sql-array.c
*** pgsql.orig/src/interfaces/ecpg/test/expected/sql-array.c 2008-12-29 18:07:06.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/expected/sql-array.c 2010-08-03 18:28:32.000000000 +0200
*************** if (sqlca.sqlcode < 0) sqlprint();}
*** 273,277 ****
--- 273,279 ----
#line 74 "array.pgc"
+ free(t);
+
return (0);
}
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc pgsql-wherecurrentof/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc
*** pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc 2006-11-23 05:38:01.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc 2010-08-03 17:56:44.000000000 +0200
*************** main(void)
*** 104,109 ****
--- 104,110 ----
printf("TS[%d,%d]: %s\n",
i, j, errno ? "-" : text);
free(text);
+ free(t);
}
}
}
*************** main(void)
*** 134,139 ****
--- 135,141 ----
printf("interval_copy[%d]: %s\n", i, text ? text : "-");
free(text);
PGTYPESinterval_free(ic);
+ PGTYPESinterval_free(i1);
}
return (0);
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc pgsql-wherecurrentof/src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc
*** pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc 2009-02-02 16:35:28.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc 2010-08-03 17:54:19.000000000 +0200
*************** main(void)
*** 49,54 ****
--- 49,55 ----
PGTYPESinterval_copy(iv1, &iv2);
text = PGTYPESinterval_to_asc(&iv2);
printf ("interval: %s\n", text);
+ PGTYPESinterval_free(iv1);
free(text);
PGTYPESdate_mdyjul(mdy, &date2);
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc pgsql-wherecurrentof/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc
*** pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc 2010-02-27 22:56:16.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc 2010-08-03 17:58:26.000000000 +0200
*************** main(void)
*** 83,88 ****
--- 83,90 ----
}
exec sql close cur1;
+ PGTYPESnumeric_free(num);
+
exec sql rollback;
exec sql disconnect;
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc pgsql-wherecurrentof/src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc
*** pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc 2007-01-25 17:45:25.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc 2010-08-03 18:16:35.000000000 +0200
*************** main(void)
*** 193,198 ****
--- 193,203 ----
printf("num[d,%d,%d]: %s\n", i, j, text);
free(text);
}
+
+ PGTYPESnumeric_free(a);
+ PGTYPESnumeric_free(s);
+ PGTYPESnumeric_free(m);
+ PGTYPESnumeric_free(d);
}
}
*************** main(void)
*** 201,207 ****
--- 206,214 ----
text = PGTYPESnumeric_to_asc(numarr[i], -1);
printf("%d: %s\n", i, text);
free(text);
+ PGTYPESnumeric_free(numarr[i]);
}
+ free(numarr);
return (0);
}
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/num_test.pgc pgsql-wherecurrentof/src/interfaces/ecpg/test/pgtypeslib/num_test.pgc
*** pgsql.orig/src/interfaces/ecpg/test/pgtypeslib/num_test.pgc 2006-09-26 09:56:57.000000000 +0200
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/pgtypeslib/num_test.pgc 2010-08-03 18:05:21.000000000 +0200
*************** main(void)
*** 77,82 ****
--- 77,85 ----
PGTYPESnumeric_to_double(res, &d);
printf("div = %s %e\n", text, d);
+ PGTYPESnumeric_free(value1);
+ PGTYPESnumeric_free(value2);
+
value1 = PGTYPESnumeric_from_asc("2E7", NULL);
value2 = PGTYPESnumeric_from_asc("14", NULL);
i = PGTYPESnumeric_to_long(value1, &l1) | PGTYPESnumeric_to_long(value2, &l2);
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/preproc/autoprep.stdout pgsql-wherecurrentof/src/interfaces/ecpg/test/preproc/autoprep.stdout
*** pgsql.orig/src/interfaces/ecpg/test/preproc/autoprep.stdout 1970-01-01 01:00:00.000000000 +0100
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/preproc/autoprep.stdout 2010-08-03 17:06:02.000000000 +0200
***************
*** 0 ****
--- 1,320 ----
+ [NO_PID]: ECPGdebug: set to 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ECPGconnect: opening database regress1 on <DEFAULT> port <DEFAULT>
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 21: query: create table T ( Item1 int , Item2 int ); with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 21: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 21: OK: CREATE TABLE
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_auto_prepare on line 23: statement not in cache; inserting
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: prepare_common on line 23: name ecpg1; query: "insert into T values ( 1 , null )"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 23: query: insert into T values ( 1 , null ); with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 23: using PQexecPrepared for "insert into T values ( 1 , null )"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 23: OK: INSERT 0 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_auto_prepare on line 24: statement not in cache; inserting
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: prepare_common on line 24: name ecpg2; query: "insert into T values ( 1 , $1 )"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 24: query: insert into T values ( 1 , $1 ); with 1 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 24: using PQexecPrepared for "insert into T values ( 1 , $1 )"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: free_params on line 24: parameter 1 = 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 24: OK: INSERT 0 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_auto_prepare on line 26: statement found in cache; entry 1640
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 26: query: insert into T values ( 1 , $1 ); with 1 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 26: using PQexecPrepared for "insert into T values ( 1 , $1 )"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: free_params on line 26: parameter 1 = 2
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: prepare_common on line 27: name i; query: " insert into T values ( 1 , 2 ) "
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 28: query: insert into T values ( 1 , 2 ) ; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 28: using PQexecPrepared for " insert into T values ( 1 , 2 ) "
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 28: OK: INSERT 0 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_auto_prepare on line 30: statement not in cache; inserting
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: prepare_common on line 30: name ecpg3; query: "select Item2 from T order by Item2 nulls last"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 30: query: select Item2 from T order by Item2 nulls last; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 30: using PQexecPrepared for "select Item2 from T order by Item2 nulls last"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 30: correctly got 4 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 30: RESULT: 1 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 30: RESULT: 2 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 30: RESULT: 2 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 30: RESULT: offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 37: query: declare C cursor for select Item1 from T; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 37: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 37: OK: DECLARE CURSOR
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 39: query: fetch 1 in C; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 39: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 39: correctly got 1 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 39: RESULT: 1 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 42: query: close C; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 42: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 42: OK: CLOSE CURSOR
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: prepare_common on line 44: name stmt1; query: "SELECT item2 FROM T ORDER BY item2 NULLS LAST"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 48: query: declare cur1 cursor for SELECT item2 FROM T ORDER BY item2 NULLS LAST; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 48: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 48: OK: DECLARE CURSOR
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: query: fetch cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: correctly got 1 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 55: RESULT: 1 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: query: fetch cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: correctly got 1 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 55: RESULT: 2 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: query: fetch cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: correctly got 1 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 55: RESULT: 2 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: query: fetch cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: correctly got 1 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 55: RESULT: offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: query: fetch cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: correctly got 0 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: raising sqlcode 100 on line 55: no data found on line 55
+ [NO_PID]: sqlca: code: 100, state: 02000
+ [NO_PID]: ecpg_execute on line 60: query: close cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 60: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 60: OK: CLOSE CURSOR
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 62: query: drop table T; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 62: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 62: OK: DROP TABLE
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: deallocate_one on line 0: name stmt1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: deallocate_one on line 0: name ecpg3
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: deallocate_one on line 0: name i
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: deallocate_one on line 0: name ecpg2
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: deallocate_one on line 0: name ecpg1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_finish: connection regress1 closed
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ECPGdebug: set to 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ECPGconnect: opening database regress1 on <DEFAULT> port <DEFAULT>
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 21: query: create table T ( Item1 int , Item2 int ); with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 21: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 21: OK: CREATE TABLE
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_auto_prepare on line 23: statement found in cache; entry 15328
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: prepare_common on line 23: name ecpg1; query: "insert into T values ( 1 , null )"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 23: query: insert into T values ( 1 , null ); with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 23: using PQexecPrepared for "insert into T values ( 1 , null )"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 23: OK: INSERT 0 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_auto_prepare on line 24: statement found in cache; entry 1640
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: prepare_common on line 24: name ecpg2; query: "insert into T values ( 1 , $1 )"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 24: query: insert into T values ( 1 , $1 ); with 1 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 24: using PQexecPrepared for "insert into T values ( 1 , $1 )"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: free_params on line 24: parameter 1 = 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 24: OK: INSERT 0 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_auto_prepare on line 26: statement found in cache; entry 1640
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 26: query: insert into T values ( 1 , $1 ); with 1 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 26: using PQexecPrepared for "insert into T values ( 1 , $1 )"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: free_params on line 26: parameter 1 = 2
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: prepare_common on line 27: name i; query: " insert into T values ( 1 , 2 ) "
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 28: query: insert into T values ( 1 , 2 ) ; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 28: using PQexecPrepared for " insert into T values ( 1 , 2 ) "
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 28: OK: INSERT 0 1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_auto_prepare on line 30: statement found in cache; entry 13056
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: prepare_common on line 30: name ecpg3; query: "select Item2 from T order by Item2 nulls last"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 30: query: select Item2 from T order by Item2 nulls last; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 30: using PQexecPrepared for "select Item2 from T order by Item2 nulls last"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 30: correctly got 4 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 30: RESULT: 1 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 30: RESULT: 2 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 30: RESULT: 2 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 30: RESULT: offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 37: query: declare C cursor for select Item1 from T; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 37: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 37: OK: DECLARE CURSOR
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 39: query: fetch 1 in C; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 39: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 39: correctly got 1 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 39: RESULT: 1 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 42: query: close C; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 42: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 42: OK: CLOSE CURSOR
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: prepare_common on line 44: name stmt1; query: "SELECT item2 FROM T ORDER BY item2 NULLS LAST"
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 48: query: declare cur1 cursor for SELECT item2 FROM T ORDER BY item2 NULLS LAST; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 48: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 48: OK: DECLARE CURSOR
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: query: fetch cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: correctly got 1 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 55: RESULT: 1 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: query: fetch cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: correctly got 1 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 55: RESULT: 2 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: query: fetch cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: correctly got 1 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 55: RESULT: 2 offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: query: fetch cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: correctly got 1 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_get_data on line 55: RESULT: offset: -1; array: no
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: query: fetch cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 55: correctly got 0 tuples with 1 fields
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: raising sqlcode 100 on line 55: no data found on line 55
+ [NO_PID]: sqlca: code: 100, state: 02000
+ [NO_PID]: ecpg_execute on line 60: query: close cur1; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 60: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 60: OK: CLOSE CURSOR
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 62: query: drop table T; with 0 parameter(s) on connection regress1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 62: using PQexec
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_execute on line 62: OK: DROP TABLE
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: deallocate_one on line 0: name stmt1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: deallocate_one on line 0: name ecpg3
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: deallocate_one on line 0: name i
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: deallocate_one on line 0: name ecpg2
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: deallocate_one on line 0: name ecpg1
+ [NO_PID]: sqlca: code: 0, state: 00000
+ [NO_PID]: ecpg_finish: connection regress1 closed
+ [NO_PID]: sqlca: code: 0, state: 00000
diff -dcrpN pgsql.orig/src/interfaces/ecpg/test/sql/array.pgc pgsql-wherecurrentof/src/interfaces/ecpg/test/sql/array.pgc
*** pgsql.orig/src/interfaces/ecpg/test/sql/array.pgc 2007-08-14 12:01:54.000000000 +0200
--- pgsql-wherecurrentof/src/interfaces/ecpg/test/sql/array.pgc 2010-08-03 18:19:15.000000000 +0200
*************** EXEC SQL END DECLARE SECTION;
*** 73,77 ****
--- 73,79 ----
EXEC SQL DISCONNECT;
+ free(t);
+
return (0);
}