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
54f55276
Commit
54f55276
authored
Aug 22, 2006
by
Michael Meskes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Descriptor values were quoted twice.
Fixed some regression test problems.
parent
a3132359
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
46 additions
and
33 deletions
+46
-33
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/ChangeLog
+4
-1
src/interfaces/ecpg/ecpglib/execute.c
src/interfaces/ecpg/ecpglib/execute.c
+17
-5
src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c
src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c
+7
-8
src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.stderr
src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.stderr
+2
-2
src/interfaces/ecpg/test/expected/sql-desc.c
src/interfaces/ecpg/test/expected/sql-desc.c
+8
-8
src/interfaces/ecpg/test/expected/sql-desc.stderr
src/interfaces/ecpg/test/expected/sql-desc.stderr
+4
-4
src/interfaces/ecpg/test/expected/sql-desc.stdout
src/interfaces/ecpg/test/expected/sql-desc.stdout
+1
-1
src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc
src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc
+2
-3
src/interfaces/ecpg/test/sql/desc.pgc
src/interfaces/ecpg/test/sql/desc.pgc
+1
-1
No files found.
src/interfaces/ecpg/ChangeLog
View file @
54f55276
...
...
@@ -2095,7 +2095,6 @@ Mo Aug 14 10:39:59 CEST 2006
- Fixed broken newline on Windows.
- Fixed a nasty buffer underrun that only occured when using Informix
no_indicator NULL setting on timestamps and intervals.
<<<<<<< ChangeLog
Fr 18. Aug 17:32:54 CEST 2006
...
...
@@ -2107,5 +2106,9 @@ Fr 18. Aug 17:32:54 CEST 2006
Sa 19. Aug 14:11:32 CEST 2006
- More SoC stuff.
Tu 22. Aug 13:54:08 CEST 2006
- Descriptor values were quoted twice.
- Set ecpg library version to 5.2.
- Set ecpg version to 4.2.1.
src/interfaces/ecpg/ecpglib/execute.c
View file @
54f55276
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.
59 2006/08/18 16:30:53
meskes Exp $ */
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.
60 2006/08/22 12:46:17
meskes Exp $ */
/*
* The aim is to get a simpler inteface to the database routines.
...
...
@@ -39,9 +39,8 @@ static char *
quote_postgres
(
char
*
arg
,
int
lineno
)
{
char
*
res
=
(
char
*
)
ECPGalloc
(
2
*
strlen
(
arg
)
+
3
,
lineno
);
int
i
,
int
i
,
quoted
=
false
,
ri
=
0
;
if
(
!
res
)
return
(
res
);
...
...
@@ -51,16 +50,29 @@ quote_postgres(char *arg, int lineno)
*/
if
(
strchr
(
arg
,
'\\'
)
!=
NULL
)
res
[
ri
++
]
=
ESCAPE_STRING_SYNTAX
;
i
=
0
;
res
[
ri
++
]
=
'\''
;
/* do not quote the string if it is already quoted */
if
(
*
arg
==
'\''
&&
arg
[
strlen
(
arg
)
-
1
]
==
'\''
)
{
quoted
=
true
;
i
=
1
;
}
for
(
i
=
0
;
arg
[
i
];
i
++
,
ri
++
)
for
(;
arg
[
i
];
i
++
,
ri
++
)
{
if
(
SQL_STR_DOUBLE
(
arg
[
i
],
true
))
res
[
ri
++
]
=
arg
[
i
];
res
[
ri
]
=
arg
[
i
];
}
/* do not quote the string if it is already quoted */
if
(
quoted
)
ri
--
;
else
res
[
ri
++
]
=
'\''
;
res
[
ri
]
=
'\0'
;
ECPGfree
(
arg
);
...
...
src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c
View file @
54f55276
...
...
@@ -81,7 +81,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
date1
=
PGTYPESdate_from_asc
(
d1
,
NULL
);
ts1
=
PGTYPEStimestamp_from_asc
(
t1
,
NULL
);
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
"insert into date_test ( d , ts ) values( ? , ? )"
,
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
"insert into date_test ( d , ts ) values( ? , ? )
"
,
ECPGt_date
,
&
(
date1
),(
long
)
1
,(
long
)
1
,
sizeof
(
date
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_timestamp
,
&
(
ts1
),(
long
)
1
,(
long
)
1
,
sizeof
(
timestamp
),
...
...
@@ -131,14 +131,13 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
ts1
=
PGTYPEStimestamp_from_asc
(
"2003-12-04 17:34:29"
,
NULL
);
text
=
PGTYPEStimestamp_to_asc
(
ts1
);
printf
(
"date_day of %s is %d
\n
"
,
text
,
PGTYPESdate_dayofweek
(
ts1
));
free
(
text
);
fmt
=
"(ddd), mmm. dd, yyyy, repeat: (ddd), mmm. dd, yyyy. end"
;
out
=
(
char
*
)
malloc
(
strlen
(
fmt
)
+
1
);
date1
=
PGTYPESdate_from_timestamp
(
ts1
);
PGTYPESdate_fmt_asc
(
date1
,
fmt
,
out
);
printf
(
"date_day of %s is %d
\n
"
,
text
,
PGTYPESdate_dayofweek
(
date1
));
printf
(
"Above date in format
\"
%s
\"
is
\"
%s
\"\n
"
,
fmt
,
out
);
free
(
text
);
free
(
out
);
/* rdate_defmt_asc() */
...
...
@@ -418,16 +417,16 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
free
(
text
);
{
ECPGtrans
(
__LINE__
,
NULL
,
"rollback"
);
#line 35
1
"dt_test.pgc"
#line 35
0
"dt_test.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
(
);}
#line 35
1
"dt_test.pgc"
#line 35
0
"dt_test.pgc"
{
ECPGdisconnect
(
__LINE__
,
"CURRENT"
);
#line 35
2
"dt_test.pgc"
#line 35
1
"dt_test.pgc"
if
(
sqlca
.
sqlcode
<
0
)
sqlprint
(
);}
#line 35
2
"dt_test.pgc"
#line 35
1
"dt_test.pgc"
return
(
0
);
...
...
src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.stderr
View file @
54f55276
...
...
@@ -22,7 +22,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGget_data line 37: RESULT: 2000-07-12 17:34:29 offset: -1 array: Yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGtrans line 35
1
action = rollback connection = regress1
[NO_PID]: ECPGtrans line 35
0
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
src/interfaces/ecpg/test/expected/sql-desc.c
View file @
54f55276
...
...
@@ -48,7 +48,7 @@ main(void)
int
val1
=
1
;
#line 13 "desc.pgc"
char
val2
[
]
=
"one"
,
val2output
[
]
=
"AAA"
;
char
val2
[
4
]
=
"one"
,
val2output
[
4
]
=
"AAA"
;
#line 14 "desc.pgc"
int
val1output
=
2
,
val2i
=
0
;
...
...
@@ -86,7 +86,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
#line 24 "desc.pgc"
{
ECPGset_desc
(
__LINE__
,
"indesc"
,
2
,
ECPGd_data
,
ECPGt_char
,
&
(
val2
),(
long
)
-
1
,(
long
)
1
,(
-
1
)
*
sizeof
(
char
),
ECPGd_indicator
,
ECPGt_char
,
(
val2
),(
long
)
4
,(
long
)
1
,(
4
)
*
sizeof
(
char
),
ECPGd_indicator
,
ECPGt_int
,
&
(
val2i
),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGd_EODT
);
#line 25 "desc.pgc"
...
...
@@ -147,7 +147,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
#line 36 "desc.pgc"
{
ECPGset_desc
(
__LINE__
,
"indesc"
,
2
,
ECPGd_data
,
ECPGt_char
,
&
(
val2
),(
long
)
-
1
,(
long
)
1
,(
-
1
)
*
sizeof
(
char
),
ECPGd_indicator
,
ECPGt_char
,
(
val2
),(
long
)
4
,(
long
)
1
,(
4
)
*
sizeof
(
char
),
ECPGd_indicator
,
ECPGt_int
,
&
(
val2null
),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGd_EODT
);
#line 37 "desc.pgc"
...
...
@@ -176,7 +176,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
#line 41 "desc.pgc"
{
ECPGset_desc
(
__LINE__
,
"indesc"
,
2
,
ECPGd_data
,
ECPGt_char
,
&
(
val2
),(
long
)
-
1
,(
long
)
1
,(
-
1
)
*
sizeof
(
char
),
ECPGd_indicator
,
ECPGt_char
,
(
val2
),(
long
)
4
,(
long
)
1
,(
4
)
*
sizeof
(
char
),
ECPGd_indicator
,
ECPGt_int
,
&
(
val2i
),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGd_EODT
);
#line 42 "desc.pgc"
...
...
@@ -199,7 +199,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
{
ECPGget_desc
(
__LINE__
,
"outdesc"
,
1
,
ECPGd_data
,
ECPGt_char
,
&
(
val2output
),(
long
)
-
1
,(
long
)
1
,(
-
1
)
*
sizeof
(
char
),
ECPGd_EODT
);
ECPGt_char
,
(
val2output
),(
long
)
4
,(
long
)
1
,(
4
)
*
sizeof
(
char
),
ECPGd_EODT
);
#line 46 "desc.pgc"
...
...
@@ -225,7 +225,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
"fetch next from c1"
,
ECPGt_EOIT
,
ECPGt_int
,
&
(
val1output
),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGt_int
,
&
(
ind1
),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGt_char
,
&
(
val2output
),(
long
)
-
1
,(
long
)
1
,(
-
1
)
*
sizeof
(
char
),
ECPGt_char
,
(
val2output
),(
long
)
4
,(
long
)
1
,(
4
)
*
sizeof
(
char
),
ECPGt_int
,
&
(
ind2
),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGt_EORT
);
#line 52 "desc.pgc"
...
...
@@ -275,7 +275,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
"fetch next from c2"
,
ECPGt_EOIT
,
ECPGt_int
,
&
(
val1output
),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_char
,
&
(
val2output
),(
long
)
-
1
,(
long
)
1
,(
-
1
)
*
sizeof
(
char
),
ECPGt_char
,
(
val2output
),(
long
)
4
,(
long
)
1
,(
4
)
*
sizeof
(
char
),
ECPGt_int
,
&
(
val2i
),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGt_EORT
);
#line 64 "desc.pgc"
...
...
@@ -294,7 +294,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
{
ECPGdo
(
__LINE__
,
0
,
1
,
NULL
,
"select * from test1 where a = 2 "
,
ECPGt_EOIT
,
ECPGt_int
,
&
(
val1output
),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGt_NO_INDICATOR
,
NULL
,
0L
,
0L
,
0L
,
ECPGt_char
,
&
(
val2output
),(
long
)
-
1
,(
long
)
1
,(
-
1
)
*
sizeof
(
char
),
ECPGt_char
,
(
val2output
),(
long
)
4
,(
long
)
1
,(
4
)
*
sizeof
(
char
),
ECPGt_int
,
&
(
val2i
),(
long
)
1
,(
long
)
1
,
sizeof
(
int
),
ECPGt_EORT
);
#line 69 "desc.pgc"
...
...
src/interfaces/ecpg/test/expected/sql-desc.stderr
View file @
54f55276
...
...
@@ -12,7 +12,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGprepare line 32: QUERY: SELECT * from test1 where a = ?
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 34: QUERY: INSERT INTO test1 VALUES ('1', '
''one''
') on connection regress1
[NO_PID]: ECPGexecute line 34: QUERY: INSERT INTO test1 VALUES ('1', '
one
') on connection regress1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 34 Ok: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
...
...
@@ -20,7 +20,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 39 Ok: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 44: QUERY: SELECT * from test1 where a = '1' and b = '
''one''
' on connection regress1
[NO_PID]: ECPGexecute line 44: QUERY: SELECT * from test1 where a = '1' and b = '
one
' on connection regress1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 44: Correctly got 1 tuples with 2 fields
[NO_PID]: sqlca: code: 0, state: 00000
...
...
@@ -30,7 +30,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGget_data line 46: RESULT: 1 offset: -1 array: Yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 50: QUERY: declare c1 cursor for SELECT * from test1 where a = '1' and b = '
''one''
' on connection regress1
[NO_PID]: ECPGexecute line 50: QUERY: declare c1 cursor for SELECT * from test1 where a = '1' and b = '
one
' on connection regress1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 50 Ok: DECLARE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000
...
...
@@ -40,7 +40,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGget_data line 52: RESULT: 1 offset: -1 array: Yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGget_data line 52: RESULT:
'one'
offset: -1 array: Yes
[NO_PID]: ECPGget_data line 52: RESULT:
one
offset: -1 array: Yes
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGexecute line 56: QUERY: close c1 on connection regress1
[NO_PID]: sqlca: code: 0, state: 00000
...
...
src/interfaces/ecpg/test/expected/sql-desc.stdout
View file @
54f55276
output = 1
val1=1 (ind1: 0) val2=
'one'
(ind2: 0)
val1=1 (ind1: 0) val2=
one
(ind2: 0)
val1=2 val2=null
val1=2 val2=null
src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc
View file @
54f55276
...
...
@@ -62,14 +62,13 @@ main(void)
ts1 = PGTYPEStimestamp_from_asc("2003-12-04 17:34:29", NULL);
text = PGTYPEStimestamp_to_asc(ts1);
printf("date_day of %s is %d\n", text, PGTYPESdate_dayofweek(ts1));
free(text);
fmt = "(ddd), mmm. dd, yyyy, repeat: (ddd), mmm. dd, yyyy. end";
out = (char*) malloc(strlen(fmt) + 1);
date1 = PGTYPESdate_from_timestamp(ts1);
PGTYPESdate_fmt_asc(date1, fmt, out);
printf("date_day of %s is %d\n", text, PGTYPESdate_dayofweek(date1));
printf("Above date in format \"%s\" is \"%s\"\n", fmt, out);
free(text);
free(out);
/* rdate_defmt_asc() */
...
...
src/interfaces/ecpg/test/sql/desc.pgc
View file @
54f55276
...
...
@@ -10,7 +10,7 @@ main(void)
char *stmt3 = "SELECT * from test1 where a = ?";
int val1 = 1;
char val2[
] = "one", val2output[
] = "AAA";
char val2[
4] = "one", val2output[4
] = "AAA";
int val1output = 2, val2i = 0;
int val2null = -1;
int ind1, ind2;
...
...
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