mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Replaced double-quote-fix with a hopefully better version.
Use initializer string length as size for character strings. Added ecpg_config.h file that is created via configure.
This commit is contained in:
@ -101,21 +101,6 @@ main(void)
|
||||
r = dectodbl(dec, &dbl);
|
||||
if (r) check_errno();
|
||||
printf("dec[%d,10]: %2.7f (r: %d)\n", i, r?0.0:dbl, r);
|
||||
if (r == 0)
|
||||
{
|
||||
r = deccvdbl(dbl, din);
|
||||
if (r)
|
||||
{
|
||||
check_errno();
|
||||
printf("dec[%d,11(f)]: - (r: %d)\n", i, r);
|
||||
}
|
||||
else
|
||||
{
|
||||
dectoasc(din, buf, BUFSIZE-1, 2);
|
||||
q = deccmp(dec, din);
|
||||
printf("dec[%d,11]: %s (r: %d - cmp: %d)\n", i, buf, r, q);
|
||||
}
|
||||
}
|
||||
|
||||
PGTYPESdecimal_free(din);
|
||||
printf("\n");
|
||||
|
@ -121,21 +121,6 @@ main(void)
|
||||
r = dectodbl(dec, &dbl);
|
||||
if (r) check_errno();
|
||||
printf("dec[%d,10]: %2.7f (r: %d)\n", i, r?0.0:dbl, r);
|
||||
if (r == 0)
|
||||
{
|
||||
r = deccvdbl(dbl, din);
|
||||
if (r)
|
||||
{
|
||||
check_errno();
|
||||
printf("dec[%d,11(f)]: - (r: %d)\n", i, r);
|
||||
}
|
||||
else
|
||||
{
|
||||
dectoasc(din, buf, BUFSIZE-1, 2);
|
||||
q = deccmp(dec, din);
|
||||
printf("dec[%d,11]: %s (r: %d - cmp: %d)\n", i, buf, r, q);
|
||||
}
|
||||
}
|
||||
|
||||
PGTYPESdecimal_free(din);
|
||||
printf("\n");
|
||||
|
@ -17,7 +17,6 @@ dec[1,7]: -2.00 (r: 0 - cmp: 0)
|
||||
dec[1,8]: -2 (r: 0)
|
||||
dec[1,9]: -2.00 (r: 0 - cmp: 0)
|
||||
dec[1,10]: -2.0000000 (r: 0)
|
||||
dec[1,11]: -2.00 (r: 0 - cmp: 0)
|
||||
|
||||
dec[2,1]: r: 0, 0.794
|
||||
dec[2,2]: r: 0, 1
|
||||
@ -29,7 +28,6 @@ dec[2,7]: 1.00 (r: 0 - cmp: -1)
|
||||
dec[2,8]: 1 (r: 0)
|
||||
dec[2,9]: 1.00 (r: 0 - cmp: -1)
|
||||
dec[2,10]: 0.7940000 (r: 0)
|
||||
dec[2,11]: 0.79 (r: 0 - cmp: 0)
|
||||
|
||||
dec[3,1]: r: 0, 3.44
|
||||
dec[3,2]: r: 0, 3
|
||||
@ -41,7 +39,6 @@ dec[3,7]: 3.00 (r: 0 - cmp: 1)
|
||||
dec[3,8]: 3 (r: 0)
|
||||
dec[3,9]: 3.00 (r: 0 - cmp: 1)
|
||||
dec[3,10]: 3.4400000 (r: 0)
|
||||
dec[3,11]: 3.44 (r: 0 - cmp: 0)
|
||||
|
||||
dec[4,1]: r: 0, 592490000000000000000000
|
||||
dec[4,2]: r: 0, 592490000000000000000000
|
||||
@ -51,7 +48,6 @@ dec[4,5]: r: 0, 0.00
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - dec[4,6]: 0 (r: -1)
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - dec[4,8]: 0 (r: -1)
|
||||
dec[4,10]: 592490000000000009961472.0000000 (r: 0)
|
||||
dec[4,11]: 592490000000000009961472.00 (r: 0 - cmp: -1)
|
||||
|
||||
dec[5,1]: r: 0, -328400
|
||||
dec[5,2]: r: 0, -328400
|
||||
@ -63,7 +59,6 @@ dec[5,7]: -328400.00 (r: 0 - cmp: 0)
|
||||
dec[5,8]: -328400 (r: 0)
|
||||
dec[5,9]: -328400.00 (r: 0 - cmp: 0)
|
||||
dec[5,10]: -328400.0000000 (r: 0)
|
||||
dec[5,11]: -328400.00 (r: 0 - cmp: 0)
|
||||
|
||||
(no errno set) - dec[6,1]: r: -1, *
|
||||
dec[6,2]: r: 0, 0
|
||||
@ -86,7 +81,6 @@ dec[7,7]: 0.00 (r: 0 - cmp: 1)
|
||||
dec[7,8]: 0 (r: 0)
|
||||
dec[7,9]: 0.00 (r: 0 - cmp: 1)
|
||||
dec[7,10]: 0.0010000 (r: 0)
|
||||
dec[7,11]: 0.00 (r: 0 - cmp: 0)
|
||||
|
||||
dec[8,1]: r: 0, 0.0
|
||||
dec[8,2]: r: 0, 0
|
||||
@ -98,7 +92,6 @@ dec[8,7]: 0.00 (r: 0 - cmp: 0)
|
||||
dec[8,8]: 0 (r: 0)
|
||||
dec[8,9]: 0.00 (r: 0 - cmp: 0)
|
||||
dec[8,10]: 0.0000000 (r: 0)
|
||||
dec[8,11]: 0.00 (r: 0 - cmp: 0)
|
||||
|
||||
dec[9,1]: r: 0, -0.000059249
|
||||
dec[9,2]: r: 0, -0
|
||||
@ -110,7 +103,6 @@ dec[9,7]: 0.00 (r: 0 - cmp: -1)
|
||||
dec[9,8]: 0 (r: 0)
|
||||
dec[9,9]: 0.00 (r: 0 - cmp: -1)
|
||||
dec[9,10]: -0.0000592 (r: 0)
|
||||
dec[9,11]: -0.00 (r: 0 - cmp: -1)
|
||||
|
||||
dec[10,1]: r: 0, 0.003284
|
||||
dec[10,2]: r: 0, 0
|
||||
@ -122,7 +114,6 @@ dec[10,7]: 0.00 (r: 0 - cmp: 1)
|
||||
dec[10,8]: 0 (r: 0)
|
||||
dec[10,9]: 0.00 (r: 0 - cmp: 1)
|
||||
dec[10,10]: 0.0032840 (r: 0)
|
||||
dec[10,11]: 0.00 (r: 0 - cmp: 0)
|
||||
|
||||
dec[11,1]: r: 0, 0.500001
|
||||
dec[11,2]: r: 0, 1
|
||||
@ -134,7 +125,6 @@ dec[11,7]: 1.00 (r: 0 - cmp: -1)
|
||||
dec[11,8]: 1 (r: 0)
|
||||
dec[11,9]: 1.00 (r: 0 - cmp: -1)
|
||||
dec[11,10]: 0.5000010 (r: 0)
|
||||
dec[11,11]: 0.50 (r: 0 - cmp: 0)
|
||||
|
||||
dec[12,1]: r: 0, -0.5000001
|
||||
dec[12,2]: r: 0, -1
|
||||
@ -146,7 +136,6 @@ dec[12,7]: -1.00 (r: 0 - cmp: 1)
|
||||
dec[12,8]: -1 (r: 0)
|
||||
dec[12,9]: -1.00 (r: 0 - cmp: 1)
|
||||
dec[12,10]: -0.5000001 (r: 0)
|
||||
dec[12,11]: -0.50 (r: 0 - cmp: -1)
|
||||
|
||||
dec[13,1]: r: 0, 1234567890123456789012345678.91
|
||||
dec[13,2]: r: 0, 1234567890123456789012345679
|
||||
@ -156,7 +145,6 @@ dec[13,5]: r: 0, 0.00
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - dec[13,6]: 0 (r: -1)
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - dec[13,8]: 0 (r: -1)
|
||||
dec[13,10]: 1234567890123456850245451776.0000000 (r: 0)
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - dec[13,11(f)]: - (r: -1)
|
||||
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - dec[14,0]: r: -1200
|
||||
(errno == PGTYPES_NUM_BAD_NUMERIC) - dec[15,0]: r: -1213
|
||||
|
@ -119,7 +119,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
|
||||
|
||||
|
||||
{ ECPGdo(__LINE__, 1, 0, NULL, "insert into test ( id , c , s , i , b , f , l , dbl ) values( 1 , ? , ? , ? , ? , ? , ? , ? ) ",
|
||||
ECPGt_char,&(c),(long)-1,(long)1,(-1)*sizeof(char),
|
||||
ECPGt_char,(c),(long)sizeof("abc ")+1,(long)1,(sizeof("abc ")+1)*sizeof(char),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
@ -157,7 +157,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
|
||||
rsetnull(CDTIMETYPE, (char *) &tmp);
|
||||
|
||||
{ ECPGdo(__LINE__, 1, 0, NULL, "insert into test ( id , c , s , i , b , f , l , dbl , dec , dat , tmp ) values( 2 , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? ) ",
|
||||
ECPGt_char,&(c),(long)-1,(long)1,(-1)*sizeof(char),
|
||||
ECPGt_char,(c),(long)sizeof("abc ")+1,(long)1,(sizeof("abc ")+1)*sizeof(char),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
@ -192,7 +192,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
|
||||
printf("first select\n");
|
||||
|
||||
{ ECPGdo(__LINE__, 1, 0, NULL, "select c , s , i , b , f , l , dbl , dec , dat , tmp from test where id = 1 ", ECPGt_EOIT,
|
||||
ECPGt_char,&(c),(long)-1,(long)1,(-1)*sizeof(char),
|
||||
ECPGt_char,(c),(long)sizeof("abc ")+1,(long)1,(sizeof("abc ")+1)*sizeof(char),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
@ -232,7 +232,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
|
||||
printf("second select\n");
|
||||
|
||||
{ ECPGdo(__LINE__, 1, 0, NULL, "select c , s , i , b , f , l , dbl , dec , dat , tmp from test where id = 2 ", ECPGt_EOIT,
|
||||
ECPGt_char,&(c),(long)-1,(long)1,(-1)*sizeof(char),
|
||||
ECPGt_char,(c),(long)sizeof("abc ")+1,(long)1,(sizeof("abc ")+1)*sizeof(char),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
|
@ -113,30 +113,25 @@ main(void)
|
||||
|
||||
r = PGTYPESnumeric_to_double(num, &d);
|
||||
if (r) check_errno();
|
||||
printf("num[%d,10]: %2.7f (r: %d)\n", i, r?0.0:d, r);
|
||||
if (r == 0)
|
||||
{
|
||||
r = PGTYPESnumeric_from_double(d, nin);
|
||||
if (r) check_errno();
|
||||
text = PGTYPESnumeric_to_asc(nin, 2);
|
||||
q = PGTYPESnumeric_cmp(num, nin);
|
||||
printf("num[%d,11]: %s (r: %d - cmp: %d)\n", i, text, r, q);
|
||||
free(text);
|
||||
}
|
||||
printf("num[%d,10]: %g (r: %d)\n", i, r?0.0:d, r);
|
||||
/* do not test double to numeric because
|
||||
* - extra digits are different on different architectures
|
||||
* - PGTYPESnumeric_from_double internally calls PGTYPESnumeric_from_asc anyway
|
||||
*/
|
||||
|
||||
dec = PGTYPESdecimal_new();
|
||||
r = PGTYPESnumeric_to_decimal(num, dec);
|
||||
if (r) check_errno();
|
||||
/* we have no special routine for outputting decimal, it would
|
||||
* convert to a numeric anyway */
|
||||
printf("num[%d,12]: - (r: %d)\n", i, r);
|
||||
printf("num[%d,11]: - (r: %d)\n", i, r);
|
||||
if (r == 0)
|
||||
{
|
||||
r = PGTYPESnumeric_from_decimal(dec, nin);
|
||||
if (r) check_errno();
|
||||
text = PGTYPESnumeric_to_asc(nin, 2);
|
||||
q = PGTYPESnumeric_cmp(num, nin);
|
||||
printf("num[%d,13]: %s (r: %d - cmp: %d)\n", i, text, r, q);
|
||||
printf("num[%d,12]: %s (r: %d - cmp: %d)\n", i, text, r, q);
|
||||
free(text);
|
||||
}
|
||||
|
||||
|
@ -6,9 +6,9 @@ num[0,4]: 2000000000000000000000000000000000000000000000000000000000000000000000
|
||||
num[0,5]: 0.00
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[0,6]: 0 (r: -1)
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[0,8]: 0 (r: -1)
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[0,10]: 0.0000000 (r: -1)
|
||||
num[0,12]: - (r: 0)
|
||||
num[0,13]: 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00 (r: 0 - cmp: 0)
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[0,10]: 0 (r: -1)
|
||||
num[0,11]: - (r: 0)
|
||||
num[0,12]: 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 1 is not NULL
|
||||
num[1,1]: -2
|
||||
@ -20,10 +20,9 @@ num[1,6]: -2 (r: 0)
|
||||
num[1,7]: -2.00 (r: 0 - cmp: 0)
|
||||
num[1,8]: -2 (r: 0)
|
||||
num[1,9]: -2.00 (r: 0 - cmp: 0)
|
||||
num[1,10]: -2.0000000 (r: 0)
|
||||
num[1,11]: -2.00 (r: 0 - cmp: 0)
|
||||
num[1,12]: - (r: 0)
|
||||
num[1,13]: -2.00 (r: 0 - cmp: 0)
|
||||
num[1,10]: -2 (r: 0)
|
||||
num[1,11]: - (r: 0)
|
||||
num[1,12]: -2.00 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 2 is not NULL
|
||||
num[2,1]: 0.794
|
||||
@ -35,10 +34,9 @@ num[2,6]: 1 (r: 0)
|
||||
num[2,7]: 1.00 (r: 0 - cmp: -1)
|
||||
num[2,8]: 1 (r: 0)
|
||||
num[2,9]: 1.00 (r: 0 - cmp: -1)
|
||||
num[2,10]: 0.7940000 (r: 0)
|
||||
num[2,11]: 0.79 (r: 0 - cmp: 0)
|
||||
num[2,12]: - (r: 0)
|
||||
num[2,13]: 0.79 (r: 0 - cmp: 0)
|
||||
num[2,10]: 0.794 (r: 0)
|
||||
num[2,11]: - (r: 0)
|
||||
num[2,12]: 0.79 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 3 is not NULL
|
||||
num[3,1]: 3.44
|
||||
@ -50,10 +48,9 @@ num[3,6]: 3 (r: 0)
|
||||
num[3,7]: 3.00 (r: 0 - cmp: 1)
|
||||
num[3,8]: 3 (r: 0)
|
||||
num[3,9]: 3.00 (r: 0 - cmp: 1)
|
||||
num[3,10]: 3.4400000 (r: 0)
|
||||
num[3,11]: 3.44 (r: 0 - cmp: 0)
|
||||
num[3,12]: - (r: 0)
|
||||
num[3,13]: 3.44 (r: 0 - cmp: 0)
|
||||
num[3,10]: 3.44 (r: 0)
|
||||
num[3,11]: - (r: 0)
|
||||
num[3,12]: 3.44 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 4 is not NULL
|
||||
num[4,1]: 592490000000000000000000
|
||||
@ -63,10 +60,9 @@ num[4,4]: 592490000000000000000000.00
|
||||
num[4,5]: 0.00
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[4,6]: 0 (r: -1)
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[4,8]: 0 (r: -1)
|
||||
num[4,10]: 592490000000000009961472.0000000 (r: 0)
|
||||
num[4,11]: 592490000000000009961472.00 (r: 0 - cmp: -1)
|
||||
num[4,12]: - (r: 0)
|
||||
num[4,13]: 592490000000000000000000.00 (r: 0 - cmp: 0)
|
||||
num[4,10]: 5.9249e+23 (r: 0)
|
||||
num[4,11]: - (r: 0)
|
||||
num[4,12]: 592490000000000000000000.00 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 5 is not NULL
|
||||
num[5,1]: -328400
|
||||
@ -78,10 +74,9 @@ num[5,6]: -328400 (r: 0)
|
||||
num[5,7]: -328400.00 (r: 0 - cmp: 0)
|
||||
num[5,8]: -328400 (r: 0)
|
||||
num[5,9]: -328400.00 (r: 0 - cmp: 0)
|
||||
num[5,10]: -328400.0000000 (r: 0)
|
||||
num[5,11]: -328400.00 (r: 0 - cmp: 0)
|
||||
num[5,12]: - (r: 0)
|
||||
num[5,13]: -328400.00 (r: 0 - cmp: 0)
|
||||
num[5,10]: -328400 (r: 0)
|
||||
num[5,11]: - (r: 0)
|
||||
num[5,12]: -328400.00 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 6 is not NULL
|
||||
num[6,1]: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002
|
||||
@ -93,9 +88,9 @@ num[6,6]: 0 (r: 0)
|
||||
num[6,7]: 0.00 (r: 0 - cmp: 1)
|
||||
num[6,8]: 0 (r: 0)
|
||||
num[6,9]: 0.00 (r: 0 - cmp: 1)
|
||||
(errno == PGTYPES_NUM_UNDERFLOW) - num[6,10]: 0.0000000 (r: -1)
|
||||
num[6,12]: - (r: 0)
|
||||
num[6,13]: 0.00 (r: 0 - cmp: 0)
|
||||
(errno == PGTYPES_NUM_UNDERFLOW) - num[6,10]: 0 (r: -1)
|
||||
num[6,11]: - (r: 0)
|
||||
num[6,12]: 0.00 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 7 is not NULL
|
||||
num[7,1]: 0.001
|
||||
@ -107,10 +102,9 @@ num[7,6]: 0 (r: 0)
|
||||
num[7,7]: 0.00 (r: 0 - cmp: 1)
|
||||
num[7,8]: 0 (r: 0)
|
||||
num[7,9]: 0.00 (r: 0 - cmp: 1)
|
||||
num[7,10]: 0.0010000 (r: 0)
|
||||
num[7,11]: 0.00 (r: 0 - cmp: 0)
|
||||
num[7,12]: - (r: 0)
|
||||
num[7,13]: 0.00 (r: 0 - cmp: 0)
|
||||
num[7,10]: 0.001 (r: 0)
|
||||
num[7,11]: - (r: 0)
|
||||
num[7,12]: 0.00 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 8 is not NULL
|
||||
num[8,1]: 0.0
|
||||
@ -122,10 +116,9 @@ num[8,6]: 0 (r: 0)
|
||||
num[8,7]: 0.00 (r: 0 - cmp: 0)
|
||||
num[8,8]: 0 (r: 0)
|
||||
num[8,9]: 0.00 (r: 0 - cmp: 0)
|
||||
num[8,10]: 0.0000000 (r: 0)
|
||||
num[8,11]: 0.00 (r: 0 - cmp: 0)
|
||||
num[8,12]: - (r: 0)
|
||||
num[8,13]: 0.00 (r: 0 - cmp: 0)
|
||||
num[8,10]: 0 (r: 0)
|
||||
num[8,11]: - (r: 0)
|
||||
num[8,12]: 0.00 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 9 is not NULL
|
||||
num[9,1]: -0.000059249
|
||||
@ -137,10 +130,9 @@ num[9,6]: 0 (r: 0)
|
||||
num[9,7]: 0.00 (r: 0 - cmp: -1)
|
||||
num[9,8]: 0 (r: 0)
|
||||
num[9,9]: 0.00 (r: 0 - cmp: -1)
|
||||
num[9,10]: -0.0000592 (r: 0)
|
||||
num[9,11]: -0.00 (r: 0 - cmp: -1)
|
||||
num[9,12]: - (r: 0)
|
||||
num[9,13]: -0.00 (r: 0 - cmp: 0)
|
||||
num[9,10]: -5.9249e-05 (r: 0)
|
||||
num[9,11]: - (r: 0)
|
||||
num[9,12]: -0.00 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 10 is not NULL
|
||||
num[10,1]: 0.003284
|
||||
@ -152,10 +144,9 @@ num[10,6]: 0 (r: 0)
|
||||
num[10,7]: 0.00 (r: 0 - cmp: 1)
|
||||
num[10,8]: 0 (r: 0)
|
||||
num[10,9]: 0.00 (r: 0 - cmp: 1)
|
||||
num[10,10]: 0.0032840 (r: 0)
|
||||
num[10,11]: 0.00 (r: 0 - cmp: 0)
|
||||
num[10,12]: - (r: 0)
|
||||
num[10,13]: 0.00 (r: 0 - cmp: 0)
|
||||
num[10,10]: 0.003284 (r: 0)
|
||||
num[10,11]: - (r: 0)
|
||||
num[10,12]: 0.00 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 11 is not NULL
|
||||
num[11,1]: 0.500001
|
||||
@ -167,10 +158,9 @@ num[11,6]: 1 (r: 0)
|
||||
num[11,7]: 1.00 (r: 0 - cmp: -1)
|
||||
num[11,8]: 1 (r: 0)
|
||||
num[11,9]: 1.00 (r: 0 - cmp: -1)
|
||||
num[11,10]: 0.5000010 (r: 0)
|
||||
num[11,11]: 0.50 (r: 0 - cmp: 0)
|
||||
num[11,12]: - (r: 0)
|
||||
num[11,13]: 0.50 (r: 0 - cmp: 0)
|
||||
num[11,10]: 0.500001 (r: 0)
|
||||
num[11,11]: - (r: 0)
|
||||
num[11,12]: 0.50 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 12 is not NULL
|
||||
num[12,1]: -0.5000001
|
||||
@ -182,10 +172,9 @@ num[12,6]: -1 (r: 0)
|
||||
num[12,7]: -1.00 (r: 0 - cmp: 1)
|
||||
num[12,8]: -1 (r: 0)
|
||||
num[12,9]: -1.00 (r: 0 - cmp: 1)
|
||||
num[12,10]: -0.5000001 (r: 0)
|
||||
num[12,11]: -0.50 (r: 0 - cmp: -1)
|
||||
num[12,12]: - (r: 0)
|
||||
num[12,13]: -0.50 (r: 0 - cmp: 0)
|
||||
num[12,10]: -0.5 (r: 0)
|
||||
num[12,11]: - (r: 0)
|
||||
num[12,12]: -0.50 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 13 is not NULL
|
||||
num[13,1]: 1234567890123456789012345678.91
|
||||
@ -195,10 +184,9 @@ num[13,4]: 1234567890123456789012345678.91
|
||||
num[13,5]: 0.00
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[13,6]: 0 (r: -1)
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[13,8]: 0 (r: -1)
|
||||
num[13,10]: 1234567890123456850245451776.0000000 (r: 0)
|
||||
num[13,11]: 1234567890123456850245451776.00 (r: 0 - cmp: -1)
|
||||
num[13,12]: - (r: 0)
|
||||
num[13,13]: 1234567890123456789012345678.91 (r: 0 - cmp: 0)
|
||||
num[13,10]: 1.23457e+27 (r: 0)
|
||||
num[13,11]: - (r: 0)
|
||||
num[13,12]: 1234567890123456789012345678.91 (r: 0 - cmp: 0)
|
||||
|
||||
endptr of 14 is not NULL
|
||||
num[14,1]: 1234567890123456789012345678.921
|
||||
@ -208,9 +196,8 @@ num[14,4]: 1234567890123456789012345678.92
|
||||
num[14,5]: 0.00
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[14,6]: 0 (r: -1)
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[14,8]: 0 (r: -1)
|
||||
num[14,10]: 1234567890123456850245451776.0000000 (r: 0)
|
||||
num[14,11]: 1234567890123456850245451776.00 (r: 0 - cmp: -1)
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[14,12]: - (r: -1)
|
||||
num[14,10]: 1.23457e+27 (r: 0)
|
||||
(errno == PGTYPES_NUM_OVERFLOW) - num[14,11]: - (r: -1)
|
||||
|
||||
(errno == PGTYPES_NUM_BAD_NUMERIC) - endptr of 15 is not NULL
|
||||
*endptr of 15 is not \0
|
||||
|
@ -48,7 +48,7 @@ main(void)
|
||||
int val1 = 1 ;
|
||||
|
||||
#line 13 "desc.pgc"
|
||||
char val2 [ 4 ] = "one" , val2output [ 4 ] = "AAA" ;
|
||||
char val2 [ 4 ] = "one" , val2output [] = "AAA" ;
|
||||
|
||||
#line 14 "desc.pgc"
|
||||
int val1output = 2 , val2i = 0 ;
|
||||
@ -168,7 +168,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
|
||||
|
||||
|
||||
{ ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
|
||||
ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
|
||||
ECPGt_const,"3",(long)1,(long)1,strlen("3"), ECPGd_EODT);
|
||||
|
||||
#line 41 "desc.pgc"
|
||||
|
||||
@ -176,8 +176,8 @@ if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 41 "desc.pgc"
|
||||
|
||||
{ ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
|
||||
ECPGt_char,(val2),(long)4,(long)1,(4)*sizeof(char), ECPGd_indicator,
|
||||
ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGd_EODT);
|
||||
ECPGt_const,"this is a long test",(long)19,(long)1,strlen("this is a long test"), ECPGd_indicator,
|
||||
ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
|
||||
|
||||
#line 42 "desc.pgc"
|
||||
|
||||
@ -185,6 +185,35 @@ if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 42 "desc.pgc"
|
||||
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, "?",
|
||||
ECPGt_char_variable,(ECPGprepared_statement("foo1")),(long)1,(long)1,(1)*sizeof(char),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
ECPGt_descriptor, "indesc", 0L, 0L, 0L,
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
|
||||
#line 44 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 44 "desc.pgc"
|
||||
|
||||
|
||||
{ ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
|
||||
ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
|
||||
|
||||
#line 46 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 46 "desc.pgc"
|
||||
|
||||
{ ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
|
||||
ECPGt_char,(val2),(long)4,(long)1,(4)*sizeof(char), ECPGd_indicator,
|
||||
ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGd_EODT);
|
||||
|
||||
#line 47 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 47 "desc.pgc"
|
||||
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, "?",
|
||||
ECPGt_char_variable,(ECPGprepared_statement("foo2")),(long)1,(long)1,(1)*sizeof(char),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
@ -192,141 +221,141 @@ if (sqlca.sqlcode < 0) sqlprint();}
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
|
||||
ECPGt_descriptor, "outdesc", 0L, 0L, 0L,
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
|
||||
#line 44 "desc.pgc"
|
||||
#line 49 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 44 "desc.pgc"
|
||||
#line 49 "desc.pgc"
|
||||
|
||||
|
||||
{ ECPGget_desc(__LINE__, "outdesc", 1,ECPGd_data,
|
||||
ECPGt_char,(val2output),(long)4,(long)1,(4)*sizeof(char), ECPGd_EODT);
|
||||
ECPGt_char,(val2output),(long)sizeof("AAA")+1,(long)1,(sizeof("AAA")+1)*sizeof(char), ECPGd_EODT);
|
||||
|
||||
#line 46 "desc.pgc"
|
||||
#line 51 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 46 "desc.pgc"
|
||||
#line 51 "desc.pgc"
|
||||
|
||||
printf("output = %s\n", val2output);
|
||||
|
||||
/* declare c1 cursor for ? */
|
||||
#line 49 "desc.pgc"
|
||||
#line 54 "desc.pgc"
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, "declare c1 cursor for ?",
|
||||
ECPGt_char_variable,(ECPGprepared_statement("foo2")),(long)1,(long)1,(1)*sizeof(char),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
ECPGt_descriptor, "indesc", 0L, 0L, 0L,
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
|
||||
#line 50 "desc.pgc"
|
||||
#line 55 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 50 "desc.pgc"
|
||||
#line 55 "desc.pgc"
|
||||
|
||||
|
||||
{ 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)4,(long)1,(4)*sizeof(char),
|
||||
ECPGt_char,(val2output),(long)sizeof("AAA")+1,(long)1,(sizeof("AAA")+1)*sizeof(char),
|
||||
ECPGt_int,&(ind2),(long)1,(long)1,sizeof(int), ECPGt_EORT);
|
||||
#line 52 "desc.pgc"
|
||||
#line 57 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 52 "desc.pgc"
|
||||
#line 57 "desc.pgc"
|
||||
|
||||
printf("val1=%d (ind1: %d) val2=%s (ind2: %d)\n",
|
||||
val1output, ind1, val2output, ind2);
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, "close c1", ECPGt_EOIT, ECPGt_EORT);
|
||||
#line 56 "desc.pgc"
|
||||
#line 61 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 56 "desc.pgc"
|
||||
#line 61 "desc.pgc"
|
||||
|
||||
|
||||
{ ECPGset_desc_header(__LINE__, "indesc", (int)(1));
|
||||
|
||||
#line 58 "desc.pgc"
|
||||
#line 63 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 58 "desc.pgc"
|
||||
#line 63 "desc.pgc"
|
||||
|
||||
{ ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
|
||||
ECPGt_const,"2",(long)1,(long)1,strlen("2"), ECPGd_EODT);
|
||||
|
||||
#line 59 "desc.pgc"
|
||||
#line 64 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 59 "desc.pgc"
|
||||
#line 64 "desc.pgc"
|
||||
|
||||
|
||||
/* declare c2 cursor for ? */
|
||||
#line 61 "desc.pgc"
|
||||
#line 66 "desc.pgc"
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, "declare c2 cursor for ?",
|
||||
ECPGt_char_variable,(ECPGprepared_statement("foo3")),(long)1,(long)1,(1)*sizeof(char),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
ECPGt_descriptor, "indesc", 0L, 0L, 0L,
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
|
||||
#line 62 "desc.pgc"
|
||||
#line 67 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 62 "desc.pgc"
|
||||
#line 67 "desc.pgc"
|
||||
|
||||
|
||||
{ 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)4,(long)1,(4)*sizeof(char),
|
||||
ECPGt_char,(val2output),(long)sizeof("AAA")+1,(long)1,(sizeof("AAA")+1)*sizeof(char),
|
||||
ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGt_EORT);
|
||||
#line 64 "desc.pgc"
|
||||
#line 69 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 64 "desc.pgc"
|
||||
#line 69 "desc.pgc"
|
||||
|
||||
printf("val1=%d val2=%s\n", val1output, val2i ? "null" : val2output);
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, "close c2", ECPGt_EOIT, ECPGt_EORT);
|
||||
#line 67 "desc.pgc"
|
||||
#line 72 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 67 "desc.pgc"
|
||||
#line 72 "desc.pgc"
|
||||
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, "select * from test1 where a = 2 ", ECPGt_EOIT,
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, "select * from test1 where a = 3 ", ECPGt_EOIT,
|
||||
ECPGt_int,&(val1output),(long)1,(long)1,sizeof(int),
|
||||
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
|
||||
ECPGt_char,(val2output),(long)4,(long)1,(4)*sizeof(char),
|
||||
ECPGt_char,(val2output),(long)sizeof("AAA")+1,(long)1,(sizeof("AAA")+1)*sizeof(char),
|
||||
ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGt_EORT);
|
||||
#line 69 "desc.pgc"
|
||||
#line 74 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 69 "desc.pgc"
|
||||
#line 74 "desc.pgc"
|
||||
|
||||
printf("val1=%d val2=%s\n", val1output, val2i ? "null" : val2output);
|
||||
printf("val1=%d val2=%c%c%c%c warn=%c truncate=%d\n", val1output, val2output[0], val2output[1], val2output[2], val2output[3], sqlca.sqlwarn[0], val2i);
|
||||
|
||||
{ ECPGdo(__LINE__, 0, 1, NULL, "drop table test1 ", ECPGt_EOIT, ECPGt_EORT);
|
||||
#line 72 "desc.pgc"
|
||||
#line 77 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 72 "desc.pgc"
|
||||
#line 77 "desc.pgc"
|
||||
|
||||
{ ECPGdisconnect(__LINE__, "CURRENT");
|
||||
#line 73 "desc.pgc"
|
||||
#line 78 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();}
|
||||
#line 73 "desc.pgc"
|
||||
#line 78 "desc.pgc"
|
||||
|
||||
|
||||
ECPGdeallocate_desc(__LINE__, "indesc");
|
||||
#line 75 "desc.pgc"
|
||||
#line 80 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();
|
||||
#line 75 "desc.pgc"
|
||||
#line 80 "desc.pgc"
|
||||
|
||||
ECPGdeallocate_desc(__LINE__, "outdesc");
|
||||
#line 76 "desc.pgc"
|
||||
#line 81 "desc.pgc"
|
||||
|
||||
if (sqlca.sqlcode < 0) sqlprint();
|
||||
#line 76 "desc.pgc"
|
||||
#line 81 "desc.pgc"
|
||||
|
||||
|
||||
return 0;
|
||||
|
@ -20,49 +20,41 @@
|
||||
[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: INSERT INTO test1 VALUES ('3', 'this is a long test') on connection regress1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 44: Correctly got 1 tuples with 2 fields
|
||||
[NO_PID]: ECPGexecute line 44 Ok: INSERT 0 1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 49: QUERY: SELECT * from test1 where a = '1' and b = 'one' on connection regress1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 49: Correctly got 1 tuples with 2 fields
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute putting result (1 tuples) into descriptor 'outdesc'
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGget_desc: reading items for tuple 1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGget_data line 46: RESULT: 1 offset: -1 array: Yes
|
||||
[NO_PID]: ECPGget_data line 51: 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 55: 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]: ECPGexecute line 55 Ok: DECLARE CURSOR
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 52: QUERY: fetch next from c1 on connection regress1
|
||||
[NO_PID]: ECPGexecute line 57: QUERY: fetch next from c1 on connection regress1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 52: Correctly got 1 tuples with 2 fields
|
||||
[NO_PID]: ECPGexecute line 57: Correctly got 1 tuples with 2 fields
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGget_data line 52: RESULT: 1 offset: -1 array: Yes
|
||||
[NO_PID]: ECPGget_data line 57: 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 57: 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]: ECPGexecute line 61: QUERY: close c1 on connection regress1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 56 Ok: CLOSE CURSOR
|
||||
[NO_PID]: ECPGexecute line 61 Ok: CLOSE CURSOR
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 62: QUERY: declare c2 cursor for SELECT * from test1 where a = '2' on connection regress1
|
||||
[NO_PID]: ECPGexecute line 67: QUERY: declare c2 cursor for SELECT * from test1 where a = '2' on connection regress1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 62 Ok: DECLARE CURSOR
|
||||
[NO_PID]: ECPGexecute line 67 Ok: DECLARE CURSOR
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 64: QUERY: fetch next from c2 on connection regress1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 64: Correctly got 1 tuples with 2 fields
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGget_data line 64: RESULT: 2 offset: -1 array: Yes
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGget_data line 64: RESULT: offset: -1 array: Yes
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 67: QUERY: close c2 on connection regress1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 67 Ok: CLOSE CURSOR
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 69: QUERY: select * from test1 where a = 2 on connection regress1
|
||||
[NO_PID]: ECPGexecute line 69: QUERY: fetch next from c2 on connection regress1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 69: Correctly got 1 tuples with 2 fields
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
@ -70,9 +62,21 @@
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGget_data line 69: RESULT: offset: -1 array: Yes
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 72: QUERY: drop table test1 on connection regress1
|
||||
[NO_PID]: ECPGexecute line 72: QUERY: close c2 on connection regress1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 72 Ok: DROP TABLE
|
||||
[NO_PID]: ECPGexecute line 72 Ok: CLOSE CURSOR
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 74: QUERY: select * from test1 where a = 3 on connection regress1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 74: Correctly got 1 tuples with 2 fields
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGget_data line 74: RESULT: 3 offset: -1 array: Yes
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGget_data line 74: RESULT: this is a long test offset: -1 array: Yes
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 77: QUERY: drop table test1 on connection regress1
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ECPGexecute line 77 Ok: DROP TABLE
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
[NO_PID]: ecpg_finish: Connection regress1 closed.
|
||||
[NO_PID]: sqlca: code: 0, state: 00000
|
||||
|
@ -1,4 +1,4 @@
|
||||
output = 1
|
||||
val1=1 (ind1: 0) val2=one (ind2: 0)
|
||||
val1=2 val2=null
|
||||
val1=2 val2=null
|
||||
val1=3 val2=this warn=W truncate=19
|
||||
|
@ -95,30 +95,25 @@ main(void)
|
||||
|
||||
r = PGTYPESnumeric_to_double(num, &d);
|
||||
if (r) check_errno();
|
||||
printf("num[%d,10]: %2.7f (r: %d)\n", i, r?0.0:d, r);
|
||||
if (r == 0)
|
||||
{
|
||||
r = PGTYPESnumeric_from_double(d, nin);
|
||||
if (r) check_errno();
|
||||
text = PGTYPESnumeric_to_asc(nin, 2);
|
||||
q = PGTYPESnumeric_cmp(num, nin);
|
||||
printf("num[%d,11]: %s (r: %d - cmp: %d)\n", i, text, r, q);
|
||||
free(text);
|
||||
}
|
||||
printf("num[%d,10]: %g (r: %d)\n", i, r?0.0:d, r);
|
||||
/* do not test double to numeric because
|
||||
* - extra digits are different on different architectures
|
||||
* - PGTYPESnumeric_from_double internally calls PGTYPESnumeric_from_asc anyway
|
||||
*/
|
||||
|
||||
dec = PGTYPESdecimal_new();
|
||||
r = PGTYPESnumeric_to_decimal(num, dec);
|
||||
if (r) check_errno();
|
||||
/* we have no special routine for outputting decimal, it would
|
||||
* convert to a numeric anyway */
|
||||
printf("num[%d,12]: - (r: %d)\n", i, r);
|
||||
printf("num[%d,11]: - (r: %d)\n", i, r);
|
||||
if (r == 0)
|
||||
{
|
||||
r = PGTYPESnumeric_from_decimal(dec, nin);
|
||||
if (r) check_errno();
|
||||
text = PGTYPESnumeric_to_asc(nin, 2);
|
||||
q = PGTYPESnumeric_cmp(num, nin);
|
||||
printf("num[%d,13]: %s (r: %d - cmp: %d)\n", i, text, r, q);
|
||||
printf("num[%d,12]: %s (r: %d - cmp: %d)\n", i, text, r, q);
|
||||
free(text);
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@ main(void)
|
||||
char *stmt3 = "SELECT * from test1 where a = ?";
|
||||
|
||||
int val1 = 1;
|
||||
char val2[4] = "one", val2output[4] = "AAA";
|
||||
char val2[4] = "one", val2output[] = "AAA";
|
||||
int val1output = 2, val2i = 0;
|
||||
int val2null = -1;
|
||||
int ind1, ind2;
|
||||
@ -38,6 +38,11 @@ main(void)
|
||||
|
||||
EXEC SQL EXECUTE foo1 USING DESCRIPTOR indesc;
|
||||
|
||||
EXEC SQL SET DESCRIPTOR indesc VALUE 1 DATA = 3;
|
||||
EXEC SQL SET DESCRIPTOR indesc VALUE 2 INDICATOR = :val1, DATA = 'this is a long test';
|
||||
|
||||
EXEC SQL EXECUTE foo1 USING DESCRIPTOR indesc;
|
||||
|
||||
EXEC SQL SET DESCRIPTOR indesc VALUE 1 DATA = :val1;
|
||||
EXEC SQL SET DESCRIPTOR indesc VALUE 2 INDICATOR = :val2i, DATA = :val2;
|
||||
|
||||
@ -66,8 +71,8 @@ main(void)
|
||||
|
||||
EXEC SQL CLOSE c2;
|
||||
|
||||
EXEC SQL SELECT * INTO :val1output, :val2output :val2i FROM test1 where a = 2;
|
||||
printf("val1=%d val2=%s\n", val1output, val2i ? "null" : val2output);
|
||||
EXEC SQL SELECT * INTO :val1output, :val2output:val2i FROM test1 where a = 3;
|
||||
printf("val1=%d val2=%c%c%c%c warn=%c truncate=%d\n", val1output, val2output[0], val2output[1], val2output[2], val2output[3], sqlca.sqlwarn[0], val2i);
|
||||
|
||||
EXEC SQL DROP TABLE test1;
|
||||
EXEC SQL DISCONNECT;
|
||||
|
Reference in New Issue
Block a user