aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/test/sql
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2020-06-30 17:31:08 +0200
committerMichael Meskes <meskes@postgresql.org>2020-06-30 18:34:41 +0200
commite576f71fbe713d9357d1b480b4993043f7fcc73a (patch)
tree065258e01962c0369ed9f1b6992a6f5516bc66c8 /src/interfaces/ecpg/test/sql
parentaa90d9957bd2d9ce39f9078d15914a37d99af072 (diff)
downloadpostgresql-e576f71fbe713d9357d1b480b4993043f7fcc73a.tar.gz
postgresql-e576f71fbe713d9357d1b480b4993043f7fcc73a.zip
Fix ecpg crash with bytea and cursor variables.
Author: Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
Diffstat (limited to 'src/interfaces/ecpg/test/sql')
-rw-r--r--src/interfaces/ecpg/test/sql/bytea.pgc13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/interfaces/ecpg/test/sql/bytea.pgc b/src/interfaces/ecpg/test/sql/bytea.pgc
index e000c6ca4b7..e8741231194 100644
--- a/src/interfaces/ecpg/test/sql/bytea.pgc
+++ b/src/interfaces/ecpg/test/sql/bytea.pgc
@@ -24,7 +24,7 @@ int
main(void)
{
exec sql begin declare section;
- bytea send_buf[2][DATA_SIZE];
+ bytea send_buf[2][512];
bytea recv_buf[2][DATA_SIZE];
bytea recv_vlen_buf[][DATA_SIZE];
bytea recv_short_buf[DATA_SIZE - LACK_SIZE];
@@ -71,6 +71,17 @@ while (0)
dump_binary(recv_buf[0].arr, recv_buf[0].len, ind[0]);
dump_binary(recv_short_buf.arr, recv_short_buf.len, ind[1]);
+ /* Test for cursor */
+ init();
+ exec sql truncate test;
+ exec sql insert into test values(:send_buf[0], :send_buf[1]);
+ exec sql declare cursor1 cursor for select data1 from test where data1 = :send_buf[0];
+ exec sql open cursor1;
+ exec sql fetch from cursor1 INTO :recv_buf[0];
+ exec sql close cursor1;
+ exec sql free cursor1 ;
+ dump_binary(recv_buf[0].arr, recv_buf[0].len, 0);
+
/* Test for variable length array */
init();
exec sql truncate test;