Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
e576f71f
Commit
e576f71f
authored
Jun 30, 2020
by
Michael Meskes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix ecpg crash with bytea and cursor variables.
Author: Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
parent
aa90d995
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
201 additions
and
88 deletions
+201
-88
src/interfaces/ecpg/preproc/ecpg.header
src/interfaces/ecpg/preproc/ecpg.header
+6
-3
src/interfaces/ecpg/test/expected/sql-bytea.c
src/interfaces/ecpg/test/expected/sql-bytea.c
+99
-42
src/interfaces/ecpg/test/expected/sql-bytea.stderr
src/interfaces/ecpg/test/expected/sql-bytea.stderr
+83
-42
src/interfaces/ecpg/test/expected/sql-bytea.stdout
src/interfaces/ecpg/test/expected/sql-bytea.stdout
+1
-0
src/interfaces/ecpg/test/sql/bytea.pgc
src/interfaces/ecpg/test/sql/bytea.pgc
+12
-1
No files found.
src/interfaces/ecpg/preproc/ecpg.header
View file @
e576f71f
...
@@ -289,7 +289,8 @@ adjust_outofscope_cursor_vars(struct cursor *cur)
...
@@ -289,7 +289,8 @@ adjust_outofscope_cursor_vars(struct cursor *cur)
else if ((ptr->variable->type->type != ECPGt_varchar
else if ((ptr->variable->type->type != ECPGt_varchar
&& ptr->variable->type->type != ECPGt_char
&& ptr->variable->type->type != ECPGt_char
&& ptr->variable->type->type != ECPGt_unsigned_char
&& ptr->variable->type->type != ECPGt_unsigned_char
&& ptr->variable->type->type != ECPGt_string)
&& ptr->variable->type->type != ECPGt_string
&& ptr->variable->type->type != ECPGt_bytea)
&& atoi(ptr->variable->type->size) > 1)
&& atoi(ptr->variable->type->size) > 1)
{
{
newvar = new_variable(cat_str(4, mm_strdup("("),
newvar = new_variable(cat_str(4, mm_strdup("("),
...
@@ -305,7 +306,8 @@ adjust_outofscope_cursor_vars(struct cursor *cur)
...
@@ -305,7 +306,8 @@ adjust_outofscope_cursor_vars(struct cursor *cur)
else if ((ptr->variable->type->type == ECPGt_varchar
else if ((ptr->variable->type->type == ECPGt_varchar
|| ptr->variable->type->type == ECPGt_char
|| ptr->variable->type->type == ECPGt_char
|| ptr->variable->type->type == ECPGt_unsigned_char
|| ptr->variable->type->type == ECPGt_unsigned_char
|| ptr->variable->type->type == ECPGt_string)
|| ptr->variable->type->type == ECPGt_string
|| ptr->variable->type->type == ECPGt_bytea)
&& atoi(ptr->variable->type->size) > 1)
&& atoi(ptr->variable->type->size) > 1)
{
{
newvar = new_variable(cat_str(4, mm_strdup("("),
newvar = new_variable(cat_str(4, mm_strdup("("),
...
@@ -316,7 +318,8 @@ adjust_outofscope_cursor_vars(struct cursor *cur)
...
@@ -316,7 +318,8 @@ adjust_outofscope_cursor_vars(struct cursor *cur)
ptr->variable->type->size,
ptr->variable->type->size,
ptr->variable->type->counter),
ptr->variable->type->counter),
0);
0);
if (ptr->variable->type->type == ECPGt_varchar)
if (ptr->variable->type->type == ECPGt_varchar ||
ptr->variable->type->type == ECPGt_bytea)
var_ptr = true;
var_ptr = true;
}
}
else if (ptr->variable->type->type == ECPGt_struct
else if (ptr->variable->type->type == ECPGt_struct
...
...
src/interfaces/ecpg/test/expected/sql-bytea.c
View file @
e576f71f
...
@@ -51,7 +51,7 @@ main(void)
...
@@ -51,7 +51,7 @@ main(void)
#line 27 "bytea.pgc"
#line 27 "bytea.pgc"
struct
bytea_1
{
int
len
;
char
arr
[
DATA_SIZE
];
}
send_buf
[
2
]
;
struct
bytea_1
{
int
len
;
char
arr
[
512
];
}
send_buf
[
2
]
;
#line 28 "bytea.pgc"
#line 28 "bytea.pgc"
struct
bytea_2
{
int
len
;
char
arr
[
DATA_SIZE
];
}
recv_buf
[
2
]
;
struct
bytea_2
{
int
len
;
char
arr
[
DATA_SIZE
];
}
recv_buf
[
2
]
;
...
@@ -139,9 +139,9 @@ if (sqlca.sqlcode < 0) sqlprint();}
...
@@ -139,9 +139,9 @@ if (sqlca.sqlcode < 0) sqlprint();}
#line 68 "bytea.pgc"
#line 68 "bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"insert into test values ( $1 , $2 )"
,
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"insert into test values ( $1 , $2 )"
,
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_bytea
,
&
(
send_buf
[
1
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_bytea
,
&
(
send_buf
[
1
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line 69 "bytea.pgc"
#line 69 "bytea.pgc"
...
@@ -161,7 +161,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
...
@@ -161,7 +161,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
dump_binary
(
recv_buf
[
0
].
arr
,
recv_buf
[
0
].
len
,
ind
[
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
]);
dump_binary
(
recv_short_buf
.
arr
,
recv_short_buf
.
len
,
ind
[
1
]);
/* Test for
variable length array
*/
/* Test for
cursor
*/
init
();
init
();
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"truncate test"
,
ECPGt_EOIT
,
ECPGt_EORT
);
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"truncate test"
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line 76 "bytea.pgc"
#line 76 "bytea.pgc"
...
@@ -170,32 +170,89 @@ if (sqlca.sqlcode < 0) sqlprint();}
...
@@ -170,32 +170,89 @@ if (sqlca.sqlcode < 0) sqlprint();}
#line 76 "bytea.pgc"
#line 76 "bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"insert into test values ( $1 , $2 )"
,
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"insert into test values ( $1 , $2 )"
,
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_bytea
,
&
(
send_buf
[
1
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_bytea
,
&
(
send_buf
[
1
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line 77 "bytea.pgc"
#line 77 "bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 77 "bytea.pgc"
#line 77 "bytea.pgc"
ECPGset_var
(
0
,
&
(
send_buf
[
0
]
),
__LINE__
);
\
/* declare cursor1 cursor for select data1 from test where data1 = $1 */
#line 78 "bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();
#line 78 "bytea.pgc"
#line 78 "bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"declare cursor1 cursor for select data1 from test where data1 = $1 "
,
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line 79 "bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 79 "bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"fetch from cursor1"
,
ECPGt_EOIT
,
ECPGt_bytea
,
&
(
recv_buf
[
0
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_2
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EORT
);
#line 80 "bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 80 "bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"close cursor1"
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line 81 "bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 81 "bytea.pgc"
{
ECPGdeallocate
(
__LINE__
,
0
,
NULL
,
"cursor1"
);
#line 82 "bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 82 "bytea.pgc"
dump_binary
(
recv_buf
[
0
].
arr
,
recv_buf
[
0
].
len
,
0
);
/* Test for variable length array */
init
();
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"truncate test"
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line 87 "bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 87 "bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"insert into test values ( $1 , $2 )"
,
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"insert into test values ( $1 , $2 )"
,
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_bytea
,
&
(
send_buf
[
1
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_bytea
,
&
(
send_buf
[
1
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line
7
8 "bytea.pgc"
#line
8
8 "bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 78 "bytea.pgc"
#line 88 "bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"insert into test values ( $1 , $2 )"
,
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_bytea
,
&
(
send_buf
[
1
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line 89 "bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 89 "bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"select data1 from test"
,
ECPGt_EOIT
,
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"select data1 from test"
,
ECPGt_EOIT
,
ECPGt_bytea
,
&
(
recv_vlen_buf
),(
long
)
DATA_SIZE
,(
long
)
0
,
sizeof
(
struct
bytea_3
),
ECPGt_bytea
,
&
(
recv_vlen_buf
),(
long
)
DATA_SIZE
,(
long
)
0
,
sizeof
(
struct
bytea_3
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EORT
);
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EORT
);
#line
79
"bytea.pgc"
#line
90
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line
79
"bytea.pgc"
#line
90
"bytea.pgc"
dump_binary
(
recv_vlen_buf
[
0
].
arr
,
recv_vlen_buf
[
0
].
len
,
0
);
dump_binary
(
recv_vlen_buf
[
0
].
arr
,
recv_vlen_buf
[
0
].
len
,
0
);
dump_binary
(
recv_vlen_buf
[
1
].
arr
,
recv_vlen_buf
[
1
].
len
,
0
);
dump_binary
(
recv_vlen_buf
[
1
].
arr
,
recv_vlen_buf
[
1
].
len
,
0
);
...
@@ -204,30 +261,30 @@ if (sqlca.sqlcode < 0) sqlprint();}
...
@@ -204,30 +261,30 @@ if (sqlca.sqlcode < 0) sqlprint();}
/* Test for dynamic sql statement with normal host variable, indicator */
/* Test for dynamic sql statement with normal host variable, indicator */
init
();
init
();
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"truncate test"
,
ECPGt_EOIT
,
ECPGt_EORT
);
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"truncate test"
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line
86
"bytea.pgc"
#line
97
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line
86
"bytea.pgc"
#line
97
"bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_execute
,
"ins_stmt"
,
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_execute
,
"ins_stmt"
,
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_bytea
,
&
(
send_buf
[
1
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_bytea
,
&
(
send_buf
[
1
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line
87
"bytea.pgc"
#line
98
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line
87
"bytea.pgc"
#line
98
"bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_execute
,
"sel_stmt"
,
ECPGt_EOIT
,
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_execute
,
"sel_stmt"
,
ECPGt_EOIT
,
ECPGt_bytea
,
&
(
recv_buf
[
0
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_2
),
ECPGt_bytea
,
&
(
recv_buf
[
0
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_2
),
ECPGt_int
,
&
(
ind
[
0
]),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGt_int
,
&
(
ind
[
0
]),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGt_bytea
,
&
(
recv_short_buf
),(
long
)
DATA_SIZE
-
LACK_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_4
),
ECPGt_bytea
,
&
(
recv_short_buf
),(
long
)
DATA_SIZE
-
LACK_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_4
),
ECPGt_int
,
&
(
ind
[
1
]),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGt_EORT
);
ECPGt_int
,
&
(
ind
[
1
]),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGt_EORT
);
#line
88
"bytea.pgc"
#line
99
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line
88
"bytea.pgc"
#line
99
"bytea.pgc"
dump_binary
(
recv_buf
[
0
].
arr
,
recv_buf
[
0
].
len
,
ind
[
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
]);
dump_binary
(
recv_short_buf
.
arr
,
recv_short_buf
.
len
,
ind
[
1
]);
...
@@ -235,81 +292,81 @@ if (sqlca.sqlcode < 0) sqlprint();}
...
@@ -235,81 +292,81 @@ if (sqlca.sqlcode < 0) sqlprint();}
/* Test for dynamic sql statement with sql descriptor */
/* Test for dynamic sql statement with sql descriptor */
init
();
init
();
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"truncate test"
,
ECPGt_EOIT
,
ECPGt_EORT
);
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"truncate test"
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line
94
"bytea.pgc"
#line
105
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line
94
"bytea.pgc"
#line
105
"bytea.pgc"
{
ECPGset_desc
(
__LINE__
,
"idesc"
,
1
,
ECPGd_data
,
{
ECPGset_desc
(
__LINE__
,
"idesc"
,
1
,
ECPGd_data
,
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGd_EODT
);
ECPGt_bytea
,
&
(
send_buf
[
0
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGd_EODT
);
#line
95
"bytea.pgc"
#line
106
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line
95
"bytea.pgc"
#line
106
"bytea.pgc"
{
ECPGset_desc
(
__LINE__
,
"idesc"
,
2
,
ECPGd_data
,
{
ECPGset_desc
(
__LINE__
,
"idesc"
,
2
,
ECPGd_data
,
ECPGt_bytea
,
&
(
send_buf
[
1
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGd_EODT
);
ECPGt_bytea
,
&
(
send_buf
[
1
]),(
long
)
512
,(
long
)
1
,
sizeof
(
struct
bytea_1
),
ECPGd_EODT
);
#line
96
"bytea.pgc"
#line
107
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line
96
"bytea.pgc"
#line
107
"bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_execute
,
"ins_stmt"
,
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_execute
,
"ins_stmt"
,
ECPGt_descriptor
,
"idesc"
,
1L
,
1L
,
1L
,
ECPGt_descriptor
,
"idesc"
,
1L
,
1L
,
1L
,
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line
97
"bytea.pgc"
#line
108
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line
97
"bytea.pgc"
#line
108
"bytea.pgc"
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_execute
,
"sel_stmt"
,
ECPGt_EOIT
,
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_execute
,
"sel_stmt"
,
ECPGt_EOIT
,
ECPGt_descriptor
,
"odesc"
,
1L
,
1L
,
1L
,
ECPGt_descriptor
,
"odesc"
,
1L
,
1L
,
1L
,
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EORT
);
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_EORT
);
#line
98
"bytea.pgc"
#line
109
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line
98
"bytea.pgc"
#line
109
"bytea.pgc"
{
ECPGget_desc
(
__LINE__
,
"odesc"
,
1
,
ECPGd_indicator
,
{
ECPGget_desc
(
__LINE__
,
"odesc"
,
1
,
ECPGd_indicator
,
ECPGt_int
,
&
(
ind
[
0
]),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGd_data
,
ECPGt_int
,
&
(
ind
[
0
]),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGd_data
,
ECPGt_bytea
,
&
(
recv_buf
[
0
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_2
),
ECPGd_EODT
);
ECPGt_bytea
,
&
(
recv_buf
[
0
]),(
long
)
DATA_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_2
),
ECPGd_EODT
);
#line
99
"bytea.pgc"
#line
110
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line
99
"bytea.pgc"
#line
110
"bytea.pgc"
{
ECPGget_desc
(
__LINE__
,
"odesc"
,
2
,
ECPGd_indicator
,
{
ECPGget_desc
(
__LINE__
,
"odesc"
,
2
,
ECPGd_indicator
,
ECPGt_int
,
&
(
ind
[
1
]),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGd_data
,
ECPGt_int
,
&
(
ind
[
1
]),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGd_data
,
ECPGt_bytea
,
&
(
recv_short_buf
),(
long
)
DATA_SIZE
-
LACK_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_4
),
ECPGd_EODT
);
ECPGt_bytea
,
&
(
recv_short_buf
),(
long
)
DATA_SIZE
-
LACK_SIZE
,(
long
)
1
,
sizeof
(
struct
bytea_4
),
ECPGd_EODT
);
#line 1
00
"bytea.pgc"
#line 1
11
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 1
00
"bytea.pgc"
#line 1
11
"bytea.pgc"
dump_binary
(
recv_buf
[
0
].
arr
,
recv_buf
[
0
].
len
,
ind
[
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
]);
dump_binary
(
recv_short_buf
.
arr
,
recv_short_buf
.
len
,
ind
[
1
]);
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"drop table test"
,
ECPGt_EOIT
,
ECPGt_EORT
);
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
0
,
ECPGst_normal
,
"drop table test"
,
ECPGt_EOIT
,
ECPGt_EORT
);
#line 1
04
"bytea.pgc"
#line 1
15
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 1
04
"bytea.pgc"
#line 1
15
"bytea.pgc"
{
ECPGtrans
(
__LINE__
,
NULL
,
"commit"
);
{
ECPGtrans
(
__LINE__
,
NULL
,
"commit"
);
#line 1
05
"bytea.pgc"
#line 1
16
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 1
05
"bytea.pgc"
#line 1
16
"bytea.pgc"
{
ECPGdisconnect
(
__LINE__
,
"CURRENT"
);
{
ECPGdisconnect
(
__LINE__
,
"CURRENT"
);
#line 1
06
"bytea.pgc"
#line 1
17
"bytea.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
();}
#line 1
06
"bytea.pgc"
#line 1
17
"bytea.pgc"
return
0
;
return
0
;
...
...
src/interfaces/ecpg/test/expected/sql-bytea.stderr
View file @
e576f71f
This diff is collapsed.
Click to expand it.
src/interfaces/ecpg/test/expected/sql-bytea.stdout
View file @
e576f71f
...
@@ -3,6 +3,7 @@ len=499, ind=512, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e
...
@@ -3,6 +3,7 @@ len=499, ind=512, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e
len=512, ind=0, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
len=512, ind=0, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
len=512, ind=0, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
len=512, ind=0, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
len=512, ind=0, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
len=512, ind=0, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
len=512, ind=0, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
len=499, ind=512, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d
len=499, ind=512, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d
len=512, ind=0, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
len=512, ind=0, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
len=499, ind=512, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d
len=499, ind=512, data=0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0bfbebdbcbbbab9b8b7b6b5b4b3b2b1b0afaeadacabaaa9a8a7a6a5a4a3a2a1a09f9e9d9c9b9a999897969594939291908f8e8d8c8b8a898887868584838281807f7e7d7c7b7a797877767574737271706f6e6d6c6b6a696867666564636261605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363534333231302f2e2d2c2b2a292827262524232221201f1e1d1c1b1a191817161514131211100f0e0d
src/interfaces/ecpg/test/sql/bytea.pgc
View file @
e576f71f
...
@@ -24,7 +24,7 @@ int
...
@@ -24,7 +24,7 @@ int
main(void)
main(void)
{
{
exec sql begin declare section;
exec sql begin declare section;
bytea send_buf[2][
DATA_SIZE
];
bytea send_buf[2][
512
];
bytea recv_buf[2][DATA_SIZE];
bytea recv_buf[2][DATA_SIZE];
bytea recv_vlen_buf[][DATA_SIZE];
bytea recv_vlen_buf[][DATA_SIZE];
bytea recv_short_buf[DATA_SIZE - LACK_SIZE];
bytea recv_short_buf[DATA_SIZE - LACK_SIZE];
...
@@ -71,6 +71,17 @@ while (0)
...
@@ -71,6 +71,17 @@ while (0)
dump_binary(recv_buf[0].arr, recv_buf[0].len, ind[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]);
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 */
/* Test for variable length array */
init();
init();
exec sql truncate test;
exec sql truncate test;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment