From: Michael Meskes Date: Wed, 2 Aug 2006 13:51:32 +0000 (+0000) Subject: Removed old test files X-Git-Tag: REL8_2_BETA1~430 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=36e8d4e7807505891fa463cc66c2223d845374a9;p=postgresql Removed old test files --- diff --git a/src/interfaces/ecpg/test/dt_test.pgc b/src/interfaces/ecpg/test/dt_test.pgc deleted file mode 100644 index 053c14e81b..0000000000 --- a/src/interfaces/ecpg/test/dt_test.pgc +++ /dev/null @@ -1,363 +0,0 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/test/dt_test.pgc,v 1.10 2006/06/21 10:24:41 meskes Exp $ */ - -#include -#include -#include -#include -#include -#include - -int -main(void) -{ - exec sql begin declare section; - date date1; - timestamp ts1; - interval iv1; - char *text; - exec sql end declare section; - date date2; - int mdy[3] = { 4, 19, 1998 }; - char *fmt, *out, *in; - char *d1 = "Mon Jan 17 1966"; - char *t1 = "2000-7-12 17:34:29"; - int i; - FILE *dbgs; - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - exec sql whenever sqlerror do sqlprint(); - exec sql connect to mm; - exec sql create table date_test (d date, ts timestamp, iv interval); - exec sql set datestyle to iso; - - date1 = PGTYPESdate_from_asc(d1, NULL); - ts1 = PGTYPEStimestamp_from_asc(t1, NULL); - - exec sql insert into date_test(d, ts, iv) values (:date1, :ts1, now()-'Mon Jan 17 1966'); - - exec sql select * into :date1, :ts1 , :iv1 from date_test where d=:date1; - - text = PGTYPESdate_to_asc(date1); - printf ("Date: %s\n", text); - free(text); - - text = PGTYPEStimestamp_to_asc(ts1); - printf ("timestamp: %s\n", text); - free(text); - - text = PGTYPESinterval_to_asc(&iv1); - printf ("interval: %s\n", text); - free(text); - - PGTYPESdate_mdyjul(mdy, &date2); - printf("m: %d, d: %d, y: %d\n", mdy[0], mdy[1], mdy[2]); - /* reset */ - mdy[0] = mdy[1] = mdy[2] = 0; - - printf("date seems to get encoded to julian %ld\n", date2); - - PGTYPESdate_julmdy(date2, mdy); - printf("m: %d, d: %d, y: %d\n", mdy[0], mdy[1], mdy[2]); - - 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); - - PGTYPESdate_today(&date1); - text = PGTYPESdate_to_asc(date1); - printf("today is %s\n", text); - free(text); - - fmt = "(ddd), mmm. dd, yyyy, repeat: (ddd), mmm. dd, yyyy. end"; - out = (char*) malloc(strlen(fmt) + 1); - - PGTYPESdate_fmt_asc(date1, fmt, out); - printf("Today in format \"%s\" is \"%s\"\n", fmt, out); - free(out); - - /* rdate_defmt_asc() */ - - date1 = 0; text = ""; - fmt = "yy/mm/dd"; - in = "In the year 1995, the month of December, it is the 25th day"; - /* 0123456789012345678901234567890123456789012345678901234567890 - * 0 1 2 3 4 5 6 - */ - PGTYPESdate_defmt_asc(&date1, fmt, in); - text = PGTYPESdate_to_asc(date1); - printf("date_defmt_asc1: %s\n", text); - free(text); - - date1 = 0; text = ""; - fmt = "mmmm. dd. yyyy"; - in = "12/25/95"; - PGTYPESdate_defmt_asc(&date1, fmt, in); - text = PGTYPESdate_to_asc(date1); - printf("date_defmt_asc2: %s\n", text); - free(text); - - date1 = 0; text = ""; - fmt = "yy/mm/dd"; - in = "95/12/25"; - PGTYPESdate_defmt_asc(&date1, fmt, in); - text = PGTYPESdate_to_asc(date1); - printf("date_defmt_asc3: %s\n", text); - free(text); - - date1 = 0; text = ""; - fmt = "yy/mm/dd"; - in = "1995, December 25th"; - PGTYPESdate_defmt_asc(&date1, fmt, in); - text = PGTYPESdate_to_asc(date1); - printf("date_defmt_asc4: %s\n", text); - free(text); - - date1 = 0; text = ""; - fmt = "dd-mm-yy"; - in = "This is 25th day of December, 1995"; - PGTYPESdate_defmt_asc(&date1, fmt, in); - text = PGTYPESdate_to_asc(date1); - printf("date_defmt_asc5: %s\n", text); - free(text); - - date1 = 0; text = ""; - fmt = "mmddyy"; - in = "Dec. 25th, 1995"; - PGTYPESdate_defmt_asc(&date1, fmt, in); - text = PGTYPESdate_to_asc(date1); - printf("date_defmt_asc6: %s\n", text); - free(text); - - date1 = 0; text = ""; - fmt = "mmm. dd. yyyy"; - in = "dec 25th 1995"; - PGTYPESdate_defmt_asc(&date1, fmt, in); - text = PGTYPESdate_to_asc(date1); - printf("date_defmt_asc7: %s\n", text); - free(text); - - date1 = 0; text = ""; - fmt = "mmm. dd. yyyy"; - in = "DEC-25-1995"; - PGTYPESdate_defmt_asc(&date1, fmt, in); - text = PGTYPESdate_to_asc(date1); - printf("date_defmt_asc8: %s\n", text); - free(text); - - date1 = 0; text = ""; - fmt = "mm yy dd."; - in = "12199525"; - PGTYPESdate_defmt_asc(&date1, fmt, in); - text = PGTYPESdate_to_asc(date1); - printf("date_defmt_asc9: %s\n", text); - free(text); - - date1 = 0; text = ""; - fmt = "yyyy fierj mm dd."; - in = "19951225"; - PGTYPESdate_defmt_asc(&date1, fmt, in); - text = PGTYPESdate_to_asc(date1); - printf("date_defmt_asc10: %s\n", text); - free(text); - - date1 = 0; text = ""; - fmt = "mm/dd/yy"; - in = "122595"; - PGTYPESdate_defmt_asc(&date1, fmt, in); - text = PGTYPESdate_to_asc(date1); - printf("date_defmt_asc12: %s\n", text); - free(text); - - PGTYPEStimestamp_current(&ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_current: Now: %s\n", text); - free(text); - - ts1 = PGTYPEStimestamp_from_asc("96-02-29", NULL); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_to_asc1: %s\n", text); - free(text); - - ts1 = PGTYPEStimestamp_from_asc("1994-02-11 3:10:35", NULL); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_to_asc2: %s\n", text); - free(text); - - ts1 = PGTYPEStimestamp_from_asc("1994-02-11 26:10:35", NULL); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_to_asc3: %s\n", text); - free(text); - -/* abc-03:10:35-def-02/11/94-gh */ -/* 12345678901234567890123456789 */ - - out = (char*) malloc(32); - i = PGTYPEStimestamp_fmt_asc(&ts1, out, 31, "abc-%X-def-%x-ghi%%"); - printf("timestamp_fmt_asc: %d: %s\n", i, out); - free(out); - - fmt = "This is a %m/%d/%y %H-%Ml%Stest"; - in = "This is a 4/12/80 3-39l12test"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - fmt = "%a %b %d %H:%M:%S %z %Y"; - in = "Tue Jul 22 17:28:44 +0200 2003"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - fmt = "%a %b %d %H:%M:%S %z %Y"; - in = "Tue Feb 29 17:28:44 +0200 2000"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - fmt = "%a %b %d %H:%M:%S %z %Y"; - in = "Tue Feb 29 17:28:44 +0200 1900"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); - - fmt = "%a %b %d %H:%M:%S %z %Y"; - in = "Tue Feb 29 17:28:44 +0200 1996"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - fmt = "%b %d %H:%M:%S %z %Y"; - in = " Jul 31 17:28:44 +0200 1996"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - fmt = "%b %d %H:%M:%S %z %Y"; - in = " Jul 32 17:28:44 +0200 1996"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); - - fmt = "%a %b %d %H:%M:%S %z %Y"; - in = "Tue Feb 29 17:28:44 +0200 1997"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); - - fmt = "%"; - in = "Tue Jul 22 17:28:44 +0200 2003"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); - - fmt = "a %"; - in = "Tue Jul 22 17:28:44 +0200 2003"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); - - fmt = "%b, %d %H_%M`%S %z %Y"; - in = " Jul, 22 17_28 `44 +0200 2003 "; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - fmt = "%a %b %%%d %H:%M:%S %Z %Y"; - in = "Tue Jul %22 17:28:44 CEST 2003"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - fmt = "%a %b %%%d %H:%M:%S %Z %Y"; - in = "Tue Jul %22 17:28:44 CEST 2003"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - fmt = "abc%n %C %B %%%d %H:%M:%S %Z %Y"; - in = "abc\n 19 October %22 17:28:44 CEST 2003"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - fmt = "abc%n %C %B %%%d %H:%M:%S %Z %y"; - in = "abc\n 18 October %34 17:28:44 CEST 80"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); - - fmt = ""; - in = "abc\n 18 October %34 17:28:44 CEST 80"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); - - fmt = NULL; - in = "1980-04-12 3:49:44 "; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - fmt = "%B %d, %Y. Time: %I:%M%p"; - in = "July 14, 1988. Time: 9:15am"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - in = "September 6 at 01:30 pm in the year 1983"; - fmt = "%B %d at %I:%M %p in the year %Y"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - in = " 1976, July 14. Time: 9:15am"; - fmt = "%Y, %B %d. Time: %I:%M %p"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - in = " 1976, July 14. Time: 9:15 am"; - fmt = "%Y, %B %d. Time: %I:%M%p"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - - in = " 1976, P.M. July 14. Time: 9:15"; - fmt = "%Y, %P %B %d. Time: %I:%M"; - i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); - text = PGTYPEStimestamp_to_asc(ts1); - printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); - exec sql rollback; - exec sql disconnect; - - if (dbgs != NULL) - fclose(dbgs); - - return (0); -} - diff --git a/src/interfaces/ecpg/test/dyntest.pgc b/src/interfaces/ecpg/test/dyntest.pgc deleted file mode 100644 index 0561e44db1..0000000000 --- a/src/interfaces/ecpg/test/dyntest.pgc +++ /dev/null @@ -1,192 +0,0 @@ -/* dynamic SQL test program - * - * $PostgreSQL: pgsql/src/interfaces/ecpg/test/dyntest.pgc,v 1.12 2006/03/11 16:57:43 momjian Exp $ - */ - -#include -#include -#include - -exec sql include sql3types; -exec sql include sqlca; - -static void error(void) -{ printf("#%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - exit(1); -} - -int main(int argc,char **argv) -{ exec sql begin declare section; - int COUNT; - int INTVAR; - int INDEX; - int INDICATOR; - bool BOOLVAR; - int TYPE,LENGTH,OCTET_LENGTH,PRECISION,SCALE,NULLABLE,RETURNED_OCTET_LENGTH; - int DATETIME_INTERVAL_CODE; - char NAME[120]; - char STRINGVAR[1024]; - float FLOATVAR; - double DOUBLEVAR; - char QUERY[1024]; - char DB[1024]; - exec sql end declare section; - int done=0; - FILE *dbgs; - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - - snprintf(QUERY,sizeof QUERY,"select * from %s",argc>1 && argv[1][0]?argv[1]:"pg_tables"); - - exec sql whenever sqlerror do error(); - - exec sql allocate descriptor MYDESC; - - strncpy(DB,argc>2?argv[2]:"mm",sizeof DB); - exec sql connect to :DB; - - exec sql prepare MYQUERY from :QUERY; - exec sql declare MYCURS cursor for MYQUERY; - - exec sql open MYCURS; - - while (1) - { exec sql fetch in MYCURS into sql descriptor MYDESC; - - if (sqlca.sqlcode) break; - - exec sql get descriptor MYDESC :COUNT = count; - if (!done) - { printf("%d Columns\n",COUNT); - for (INDEX=1;INDEX<=COUNT;++INDEX) - { exec sql get descriptor MYDESC value :INDEX - :TYPE = type, - :LENGTH = length, :OCTET_LENGTH=octet_length, - :PRECISION = precision, :SCALE=scale, - :NULLABLE=nullable, :NAME=name, - :RETURNED_OCTET_LENGTH=returned_octet_length; - printf("%s ",NAME); - switch (TYPE) - { case SQL3_BOOLEAN: - printf("bool "); - break; - case SQL3_NUMERIC: - printf("numeric(%d,%d) ",PRECISION,SCALE); - break; - case SQL3_DECIMAL: - printf("decimal(%d,%d) ",PRECISION,SCALE); - break; - case SQL3_INTEGER: - printf("integer "); - break; - case SQL3_SMALLINT: - printf("smallint "); - break; - case SQL3_FLOAT: - printf("float(%d,%d) ",PRECISION,SCALE); - break; - case SQL3_REAL: - printf("real "); - break; - case SQL3_DOUBLE_PRECISION: - printf("double precision "); - break; - case SQL3_DATE_TIME_TIMESTAMP: - exec sql get descriptor MYDESC value :INDEX - :DATETIME_INTERVAL_CODE=datetime_interval_code; - switch(DATETIME_INTERVAL_CODE) - { case SQL3_DDT_DATE: - printf("date "); break; - case SQL3_DDT_TIME: - printf("time "); break; - case SQL3_DDT_TIMESTAMP: - printf("timestamp "); break; - case SQL3_DDT_TIME_WITH_TIME_ZONE: - printf("time with time zone "); break; - case SQL3_DDT_TIMESTAMP_WITH_TIME_ZONE: - printf("timestamp with time zone "); break; - } - break; - case SQL3_INTERVAL: - printf("interval "); - break; - case SQL3_CHARACTER: - if (LENGTH>0) printf("char(%d) ",LENGTH); - else printf("char(?) "); - break; - case SQL3_CHARACTER_VARYING: - if (LENGTH>0) printf("varchar(%d) ",LENGTH); - else printf("varchar() "); - break; - default: - if (TYPE<0) printf(" ",-TYPE); - else printf(" ",TYPE); - break; - } - if (!NULLABLE) printf("not null "); - if (OCTET_LENGTH>0) printf("[%d bytes]",OCTET_LENGTH); - putchar('\n'); - } - putchar('\n'); - done=1; - } - - for (INDEX=1;INDEX<=COUNT;++INDEX) - { exec sql get descriptor MYDESC value :INDEX - :TYPE = type, :SCALE=scale, :PRECISION = precision, - :INDICATOR=indicator; - if (INDICATOR==-1) printf("NULL"); - else switch (TYPE) - { case SQL3_BOOLEAN: - exec sql get descriptor MYDESC value :INDEX :BOOLVAR=data; - printf(BOOLVAR?"true":"false"); - break; - case SQL3_NUMERIC: - case SQL3_DECIMAL: - if (SCALE==0) /* we might even print leading zeros "%0*d" */ - { exec sql get descriptor MYDESC value :INDEX :INTVAR=data; - printf("%*d",PRECISION,INTVAR); - } - else - { exec sql get descriptor MYDESC value :INDEX :FLOATVAR=data; - printf("%*.*f",PRECISION+1,SCALE,FLOATVAR); - } - break; - case SQL3_INTEGER: - case SQL3_SMALLINT: - exec sql get descriptor MYDESC value :INDEX :INTVAR=data; - printf("%d",INTVAR); - break; - case SQL3_FLOAT: - case SQL3_REAL: - exec sql get descriptor MYDESC value :INDEX :FLOATVAR=data; - printf("%f",FLOATVAR); - break; - case SQL3_DOUBLE_PRECISION: - exec sql get descriptor MYDESC value :INDEX :DOUBLEVAR=data; - printf("%f",DOUBLEVAR); - break; - case SQL3_DATE_TIME_TIMESTAMP: - case SQL3_INTERVAL: - case SQL3_CHARACTER: - case SQL3_CHARACTER_VARYING: - default: - exec sql get descriptor MYDESC value :INDEX :STRINGVAR=data; - printf("'%s'",STRINGVAR); - break; - } - putchar('|'); - } - putchar('\n'); - } - - exec sql close MYCURS; - - exec sql deallocate descriptor MYDESC; - - if (dbgs != NULL) - fclose(dbgs); - - return 0; -} diff --git a/src/interfaces/ecpg/test/dyntest2.pgc b/src/interfaces/ecpg/test/dyntest2.pgc deleted file mode 100644 index c578bce72b..0000000000 --- a/src/interfaces/ecpg/test/dyntest2.pgc +++ /dev/null @@ -1,140 +0,0 @@ -/* dynamic SQL test program - * - * $PostgreSQL: pgsql/src/interfaces/ecpg/test/dyntest2.pgc,v 1.7 2006/03/11 16:57:44 momjian Exp $ - */ - -#include -#include - -exec sql include sql3types; -exec sql include sqlca; - -static void error(void) -{ - printf("\n#%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - exit(1); -} - -int main(int argc,char **argv) -{ -exec sql begin declare section; - int COUNT; - int INTVAR, BOOLVAR; - int INDEX; - int INDICATOR; - int TYPE,LENGTH,OCTET_LENGTH,PRECISION,SCALE,NULLABLE,RETURNED_OCTET_LENGTH; - int DATETIME_INTERVAL_CODE; - char NAME[120]; - char STRINGVAR[1024]; - float FLOATVAR; - double DOUBLEVAR; - char QUERY[1024]; -exec sql end declare section; - int done=0; - FILE *dbgs; - - exec sql var BOOLVAR is bool; - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - - snprintf(QUERY,sizeof QUERY,"select * from %s",argc>1?argv[1]:"pg_tables"); - - exec sql whenever sqlerror do error(); - - exec sql allocate descriptor MYDESC; - - exec sql connect to mm; - - exec sql prepare MYQUERY from :QUERY; - exec sql declare MYCURS cursor for MYQUERY; - - exec sql open MYCURS; - - while (1) - { exec sql fetch in MYCURS into sql descriptor MYDESC; - - if (sqlca.sqlcode) break; - - exec sql get descriptor MYDESC :COUNT = count; - if (!done) - { printf("Count %d\n",COUNT); - done=1; - } - - for (INDEX=1;INDEX<=COUNT;++INDEX) - { exec sql get descriptor MYDESC value :INDEX - :TYPE = type, - :LENGTH = length, :OCTET_LENGTH=octet_length, - :RETURNED_OCTET_LENGTH=returned_octet_length, - :PRECISION = precision, :SCALE=scale, - :NULLABLE=nullable, :NAME=name, - :INDICATOR=indicator; - printf("%2d\t%s (type: %d length: %d precision: %d scale: %d\n" - "\toctet_length: %d returned_octet_length: %d nullable: %d)\n\t= " - ,INDEX,NAME,TYPE,LENGTH,PRECISION,SCALE - ,OCTET_LENGTH,RETURNED_OCTET_LENGTH,NULLABLE); - if (INDICATOR==-1) printf("NULL\n"); - else switch (TYPE) - { - case SQL3_BOOLEAN: - exec sql get descriptor MYDESC value :INDEX :BOOLVAR=data; - printf("%s\n",BOOLVAR ? "true":"false"); - break; - case SQL3_NUMERIC: - case SQL3_DECIMAL: - if (SCALE==0) - { exec sql get descriptor MYDESC value :INDEX :INTVAR=data; - printf("%d\n",INTVAR); - } - else - { exec sql get descriptor MYDESC value :INDEX :FLOATVAR=data; - printf("%.*f\n",SCALE,FLOATVAR); - } - break; - case SQL3_INTEGER: - case SQL3_SMALLINT: - exec sql get descriptor MYDESC value :INDEX :INTVAR=data; - printf("%d\n",INTVAR); - break; - case SQL3_FLOAT: - case SQL3_REAL: - exec sql get descriptor MYDESC value :INDEX :FLOATVAR=data; - printf("%.*f\n",PRECISION,FLOATVAR); - break; - case SQL3_DOUBLE_PRECISION: - exec sql get descriptor MYDESC value :INDEX :DOUBLEVAR=data; - printf("%.*f\n",PRECISION,DOUBLEVAR); - break; - case SQL3_DATE_TIME_TIMESTAMP: - exec sql get descriptor MYDESC value :INDEX - :DATETIME_INTERVAL_CODE=datetime_interval_code, - :STRINGVAR=data; - printf("%d \"%s\"\n",DATETIME_INTERVAL_CODE,STRINGVAR); - break; - case SQL3_INTERVAL: - exec sql get descriptor MYDESC value :INDEX :STRINGVAR=data; - printf("\"%s\"\n",STRINGVAR); - break; - case SQL3_CHARACTER: - case SQL3_CHARACTER_VARYING: - exec sql get descriptor MYDESC value :INDEX :STRINGVAR=data; - printf("\"%s\"\n",STRINGVAR); - break; - default: - exec sql get descriptor MYDESC value :INDEX :STRINGVAR=data; - printf("<\"%s\">\n",STRINGVAR); - break; - } - } - } - - exec sql close MYCURS; - - exec sql deallocate descriptor MYDESC; - - if (dbgs != NULL) - fclose(dbgs); - - return 0; -} diff --git a/src/interfaces/ecpg/test/num_test.pgc b/src/interfaces/ecpg/test/num_test.pgc deleted file mode 100644 index 030d2dcfda..0000000000 --- a/src/interfaces/ecpg/test/num_test.pgc +++ /dev/null @@ -1,67 +0,0 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/test/num_test.pgc,v 1.11 2006/03/11 04:38:40 momjian Exp $ */ - -#include -#include -#include - -int -main(void) -{ - char *text="error\n"; - numeric *value1, *value2, *res; - exec sql begin declare section; - numeric(14,7) des = {0, 0, 0, 0, 0, NULL, NULL} ; - exec sql end declare section; - double d; - FILE *dbgs; - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - exec sql whenever sqlerror do sqlprint(); - - exec sql connect to mm; - exec sql create table test (text char(5), num numeric(14,7)); - - value1 = PGTYPESnumeric_new(); - PGTYPESnumeric_from_int(1407, value1); - text = PGTYPESnumeric_to_asc(value1, -1); - printf("long = %s\n", text); - - value1 = PGTYPESnumeric_from_asc("2369.7", NULL); - value2 = PGTYPESnumeric_from_asc("10.0", NULL); - res = PGTYPESnumeric_new(); - PGTYPESnumeric_add(value1, value2, res); - text = PGTYPESnumeric_to_asc(res, -1); - printf("add = %s\n", text); - - PGTYPESnumeric_sub(res, value2, res); - text = PGTYPESnumeric_to_asc(res, -1); - printf("sub = %s\n", text); - - PGTYPESnumeric_copy(res, &des); - exec sql insert into test (text, num) values ('test', :des); - - value2 = PGTYPESnumeric_from_asc("2369.7", NULL); - PGTYPESnumeric_mul(value1, value2, res); - - exec sql select num into :des from test where text = 'test'; - - PGTYPESnumeric_mul(res, &des, res); - text = PGTYPESnumeric_to_asc(res, -1); - printf("mul = %s\n", text); - - value2 = PGTYPESnumeric_from_asc("10000", NULL); - PGTYPESnumeric_div(res, value2, res); - text = PGTYPESnumeric_to_asc(res, -1); - PGTYPESnumeric_to_double(res, &d); - printf("div = %s %e\n", text, d); - - exec sql rollback; - exec sql disconnect; - - if (dbgs != NULL) - fclose(dbgs); - - return (0); -} - diff --git a/src/interfaces/ecpg/test/perftest.pgc b/src/interfaces/ecpg/test/perftest.pgc deleted file mode 100644 index 1ff59d60a4..0000000000 --- a/src/interfaces/ecpg/test/perftest.pgc +++ /dev/null @@ -1,145 +0,0 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/test/perftest.pgc,v 1.11 2006/03/11 04:38:40 momjian Exp $ */ - -#include -#include -#include - -exec sql include sqlca; - -exec sql whenever sqlerror sqlprint; -exec sql whenever not found sqlprint; - -static void -print_result(long sec, long usec, char *text) -{ - if (usec < 0) - { - sec--; - usec+=1000000; - } - printf("%ld seconds and %ld microseconds for test %s\n", sec, usec, text); - exec sql vacuum; - sleep(1); -} - -int -main (void) -{ -exec sql begin declare section; - long i; -exec sql end declare section; - struct timeval tvs, tve; - - exec sql connect to mm; - - exec sql create table perftest1(number int4, ascii char(16)); - - exec sql create unique index number1 on perftest1(number); - - exec sql create table perftest2(number int4, next_number int4); - - exec sql create unique index number2 on perftest2(number); - - exec sql commit; - - exec sql set autocommit to on; - - exec sql begin transaction; - - gettimeofday(&tvs, NULL); - - for (i = 0;i < 1407; i++) - { - exec sql begin declare section; - char text[16]; - exec sql end declare section; - - sprintf(text, "%ld", i); - exec sql insert into perftest1(number, ascii) values (:i, :text); - exec sql insert into perftest2(number, next_number) values (:i, :i+1); - } - - exec sql commit; - - gettimeofday(&tve, NULL); - - print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "insert"); - - exec sql begin transaction; - - gettimeofday(&tvs, NULL); - - for (i = 0;i < 1407; i++) - { - exec sql begin declare section; - char text[16]; - exec sql end declare section; - - exec sql select ascii into :text from perftest1 where number = :i; - } - - exec sql commit; - - gettimeofday(&tve, NULL); - - print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "selection&projection"); - - exec sql begin transaction; - - gettimeofday(&tvs, NULL); - - for (i = 0;i < 1407; i++) - { - exec sql begin declare section; - char text[16]; - exec sql end declare section; - - exec sql select perftest1.ascii into :text from perftest1, perftest2 where perftest1.number = perftest2.number and perftest2.number = :i; - } - - exec sql commit; - - gettimeofday(&tve, NULL); - - print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "join"); - - exec sql begin transaction; - - gettimeofday(&tvs, NULL); - - exec sql update perftest2 set next_number = next_number + 1; - - exec sql commit; - - gettimeofday(&tve, NULL); - - print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "update"); - - exec sql begin transaction; - - gettimeofday(&tvs, NULL); - - exec sql delete from perftest2; - - exec sql commit; - - gettimeofday(&tve, NULL); - - print_result(tve.tv_sec - tvs.tv_sec, tve.tv_usec - tvs.tv_usec, "delete"); - - exec sql set autocommit = off; - - exec sql drop index number2; - - exec sql drop table perftest2; - - exec sql drop index number1; - - exec sql drop table perftest1; - - exec sql commit; - - exec sql disconnect; - - return (0); -} diff --git a/src/interfaces/ecpg/test/test1.pgc b/src/interfaces/ecpg/test/test1.pgc deleted file mode 100644 index 2aa40ab15e..0000000000 --- a/src/interfaces/ecpg/test/test1.pgc +++ /dev/null @@ -1,206 +0,0 @@ -#include -#include -#include -#include - -/* just a test comment */ exec sql whenever sqlerror do PrintAndStop(msg); -exec sql whenever sqlwarning do warn(); - -static void PrintAndStop(char *msg) -{ - fprintf(stderr, "Error in statement '%s':\n", msg); - sqlprint(); - exit(-1); -} - -static void warn(void) -{ - fprintf(stderr, "Warning: At least one column was truncated\n"); -} - -/* comment */ -exec sql define AMOUNT 6; -exec sql define NAMELEN 8; - -exec sql type intarray is int[AMOUNT]; - -typedef int intarray[AMOUNT]; - -int -main(void) -{ -exec sql begin declare section; -exec sql ifdef NAMELEN; - typedef char string[NAMELEN]; - intarray amount; - int increment=100; - char name[AMOUNT][NAMELEN]; - char letter[AMOUNT][1]; - struct name_letter_struct - { - char name[NAMELEN]; - int amount; - char letter; - } name_letter[AMOUNT]; -#if 0 - int not_used; -#endif -exec sql endif; - struct ind_struct - { - short a; - short b; - short c; - } ind[AMOUNT]; - char command[128]; - char *connection="pm"; - int how_many; - char *user="postgres"; -exec sql end declare section; - exec sql var name is string[AMOUNT]; - char msg[128]; - FILE *dbgs; - int i,j; - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - - strcpy(msg, "connect"); - exec sql connect to mm as main; - - strcpy(msg, "connect"); - exec sql connect to pm user :user; - - strcpy(msg, "create"); - exec sql at main create table "Test" (name char(NAMELEN), amount int, letter char(1)); - exec sql create table "Test" (name char(NAMELEN), amount int, letter char(1)); - - strcpy(msg, "commit"); - exec sql at main commit; - exec sql commit; - - strcpy(msg, "set connection"); - exec sql set connection to main; - - strcpy(msg, "execute insert 1"); - sprintf(command, "insert into \"Test\" (name, amount, letter) values ('db: ''mm''', 1, 'f')"); - exec sql execute immediate :command; - printf("New tuple got OID = %ld\n", sqlca.sqlerrd[1]); - - sprintf(command, "insert into \"Test\" (name, amount, letter) values ('db: ''mm''', 2, 't')"); - exec sql execute immediate :command; - - strcpy(msg, "execute insert 2"); - sprintf(command, "insert into \"Test\" (name, amount, letter) values ('db: ''pm''', 1, 'f')"); - exec sql at pm execute immediate :command; - - strcpy(msg, "execute insert 3"); - sprintf(command, "insert into \"Test\" (name, amount, letter) select name, amount+10, letter from \"Test\""); - exec sql execute immediate :command; - - printf("Inserted %ld tuples via execute immediate\n", sqlca.sqlerrd[2]); - - strcpy(msg, "execute insert 4"); - sprintf(command, "insert into \"Test\" (name, amount, letter) select name, amount+?, letter from \"Test\""); - exec sql prepare I from :command; - exec sql at pm execute I using :increment; - - printf("Inserted %ld tuples via prepared execute\n", sqlca.sqlerrd[2]); - - strcpy(msg, "commit"); - exec sql commit; - - /* Start automatic transactioning for connection pm. */ - exec sql at pm set autocommit to on; - exec sql at pm begin transaction; - - strcpy(msg, "select"); - exec sql select * into :name, :amount, :letter from "Test"; - - printf("Database: mm\n"); - for (i=0, how_many=j=sqlca.sqlerrd[2]; i -#include - -exec sql include header_test; - -exec sql type c is char reference; -typedef char* c; - -exec sql type ind is union { int integer; short smallint; }; -typedef union { int integer; short smallint; } ind; - -#define BUFFERSIZ 8 -exec sql type str is varchar[BUFFERSIZ]; - -exec sql declare cur cursor for - select name, born, age, married, children from meskes; - -int -main (void) -{ - exec sql struct birthinfo { long born; short age; }; -exec sql begin declare section; - struct personal_struct { str name; - struct birthinfo birth; - } personal, *p; - struct personal_indicator { int ind_name; - struct birthinfo ind_birth; - } ind_personal, *i; - ind ind_children; - char *query="select name, born, age, married, children from meskes where name = :var1"; -exec sql end declare section; - - exec sql char *married = NULL; - exec sql float ind_married; - exec sql ind children; - - exec sql var ind_married is long; - - char msg[128]; - FILE *dbgs; - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - - strcpy(msg, "connect"); - exec sql connect to tcp:postgresql://127.0.0.1:5432/mm; - - strcpy(msg, "create"); - exec sql create table meskes(name char(8), born integer, age smallint, married date, children integer); - - strcpy(msg, "insert"); - exec sql insert into meskes(name, married, children) values ('Petra', '19900404', 3); - exec sql insert into meskes(name, born, age, married, children) values ('Michael', 19660117, 35, '19900404', 3); - exec sql insert into meskes(name, born, age) values ('Carsten', 19910103,10); - exec sql insert into meskes(name, born, age) values ('Marc', 19930907, 8); - exec sql insert into meskes(name, born, age) values ('Chris', 19970923, 4); - - strcpy(msg, "commit"); - exec sql commit; - - strcpy(msg, "open"); - exec sql open cur; - - exec sql whenever not found do break; - - p=&personal; - i=&ind_personal; - memset(i, 0, sizeof(ind_personal)); - while (1) { - strcpy(msg, "fetch"); - exec sql fetch cur into :p:i, :married:ind_married, :children.integer:ind_children.smallint; - printf("%8.8s", personal.name.arr); - if (i->ind_birth.born >= 0) - printf(", born %ld", personal.birth.born); - if (i->ind_birth.age >= 0) - printf(", age = %d", personal.birth.age); - if ((long)ind_married >= 0) - printf(", married %s", married); - if (ind_children.smallint >= 0) - printf(", children = %d", children.integer); - putchar('\n'); - - free(married); - married = NULL; - } - - strcpy(msg, "close"); - exec sql close cur; - - /* and now a same query with prepare */ - exec sql prepare MM from :query; - exec sql declare prep cursor for MM; - - strcpy(msg, "open"); - exec sql open prep using 'Petra'; - - exec sql whenever not found do break; - - while (1) { - strcpy(msg, "fetch"); - exec sql fetch in prep into :personal:ind_personal, :married:ind_married, :children.integer:ind_children.smallint; - printf("%8.8s", personal.name.arr); - if (ind_personal.ind_birth.born >= 0) - printf(", born %ld", personal.birth.born); - if (ind_personal.ind_birth.age >= 0) - printf(", age = %d", personal.birth.age); - if ((long)ind_married >= 0) - printf(", married %s", married); - if (ind_children.smallint >= 0) - printf(", children = %d", children.integer); - putchar('\n'); - } - - free(married); - - strcpy(msg, "close"); - exec sql close prep; - - strcpy(msg, "drop"); - exec sql drop table meskes; - - strcpy(msg, "commit"); - exec sql commit; - - strcpy(msg, "disconnect"); - exec sql disconnect; - - if (dbgs != NULL) - fclose(dbgs); - - return (0); -} diff --git a/src/interfaces/ecpg/test/test3.pgc b/src/interfaces/ecpg/test/test3.pgc deleted file mode 100644 index 0d2a76e47b..0000000000 --- a/src/interfaces/ecpg/test/test3.pgc +++ /dev/null @@ -1,126 +0,0 @@ -/****************************************************************************/ -/* Test comment */ -/*--------------------------------------------------------------------------*/ -exec sql include header_test; - -exec sql type str is varchar[10]; - -#include -#include - -int -main (void) -{ -exec sql begin declare section; - typedef struct { long born; short age; } birthinfo; - struct personal_struct { str name; - birthinfo birth; - } personal; - struct personal_indicator { int ind_name; - birthinfo ind_birth; - } ind_personal; - int *ind_married = NULL; - int children, movevalue = 2; - int ind_children; - str *married = NULL; - char *wifesname="Petra"; - char *query="select * from meskes where name = ?"; -exec sql end declare section; - - exec sql declare cur cursor for - select name, born, age, married, children from meskes; - - char msg[128]; - FILE *dbgs; - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - - strcpy(msg, "connect"); - exec sql connect to unix:postgresql://localhost:5432/mm; - - strcpy(msg, "create"); - exec sql create table meskes(name char(8), born integer, age smallint, married date, children integer); - - strcpy(msg, "insert"); - exec sql insert into meskes(name, married, children) values (:wifesname, '19900404', 3); - exec sql insert into meskes(name, born, age, married, children) values ('Michael', 19660117, 35, '19900404', 3); - exec sql insert into meskes(name, born, age) values ('Carsten', 19910103, 10); - exec sql insert into meskes(name, born, age) values ('Marc', 19930907, 8); - exec sql insert into meskes(name, born, age) values ('Chris', 19970923, 4); - - strcpy(msg, "commit"); - exec sql commit; - - strcpy(msg, "open"); - exec sql open cur; - - strcpy(msg, "move"); - exec sql move :movevalue in cur; - - exec sql whenever not found do break; - - while (1) { - strcpy(msg, "fetch"); - exec sql fetch from cur into :personal:ind_personal, :married:ind_married, :children:ind_children; - printf("%8.8s", personal.name.arr); - if (ind_personal.ind_birth.born >= 0) - printf(", born %ld", personal.birth.born); - if (ind_personal.ind_birth.age >= 0) - printf(", age = %d", personal.birth.age); - if (*ind_married >= 0) - printf(", married %10.10s", married->arr); - if (ind_children >= 0) - printf(", children = %d", children); - putchar('\n'); - - free(married); - married = NULL; - } - - strcpy(msg, "close"); - exec sql close cur; - - /* and now a query with prepare */ - exec sql prepare MM from :query; - exec sql declare prep cursor for MM; - - strcpy(msg, "open"); - exec sql open prep using :wifesname; - - exec sql whenever not found do break; - - while (1) { - strcpy(msg, "fetch"); - exec sql fetch in prep into :personal:ind_personal, :married:ind_married, :children:ind_children; - printf("%8.8s", personal.name.arr); - if (ind_personal.ind_birth.born >= 0) - printf(", born %ld", personal.birth.born); - if (ind_personal.ind_birth.age >= 0) - printf(", age = %d", personal.birth.age); - if (*ind_married >= 0) - printf(", married %10.10s", married->arr); - if (ind_children >= 0) - printf(", children = %d", children); - putchar('\n'); - } - - free(married); - - strcpy(msg, "close"); - exec sql close prep; - - strcpy(msg, "drop"); - exec sql drop table meskes; - - strcpy(msg, "commit"); - exec sql commit; - - strcpy(msg, "disconnect"); - exec sql disconnect; - - if (dbgs != NULL) - fclose(dbgs); - - return (0); -} diff --git a/src/interfaces/ecpg/test/test4.pgc b/src/interfaces/ecpg/test/test4.pgc deleted file mode 100644 index ae7d90a91f..0000000000 --- a/src/interfaces/ecpg/test/test4.pgc +++ /dev/null @@ -1,101 +0,0 @@ -#include -#include -#include - -exec sql whenever sqlerror sqlprint; - -exec sql include sqlca; - -EXEC SQL type errtype is enum -{ - OK = 0, - ERR = 1, - WARN = 2 -}; - -int -main (void) -{ -EXEC SQL BEGIN DECLARE SECTION; - struct - { - errtype e :2; - int code :14; - } error = {1, 147}; - int i = 1; - int *did = &i; - int a[10] = {9,8,7,6,5,4,3,2,1,0}; - char text[25] = "klmnopqrst"; - char *t = (char *)malloc(10); - double f; - bool b = true; - varchar database[3]; -EXEC SQL END DECLARE SECTION; - FILE *dbgs; - - strcpy(t, "0123456789"); - setlocale(LC_ALL, "de_DE"); - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - - strcpy(database.arr, "mm"); - EXEC SQL CONNECT TO :database; - - EXEC SQL SET AUTOCOMMIT = ON; - - EXEC SQL BEGIN WORK; - - EXEC SQL CREATE TABLE test (f float, i int, a int[10], text char(10), b bool, t int, err int); - - EXEC SQL INSERT INTO test(f,i,a,text,b,t,err) VALUES(404.90,3,'{0,1,2,3,4,5,6,7,8,9}','abcdefghij','f',0,0); - - EXEC SQL INSERT INTO test(f,i,a,text,b,t,err) VALUES(140787.0,2,:a,:text,'t',2,14); - -EXEC SQL IFDEF BIT_FIELD_IS_NOT_ACCESSIBLE; - EXEC SQL INSERT INTO test(f,i,a,text,b,t,err) VALUES(14.07,:did,:a,:t,:b,:error); -EXEC SQL ELSE; - EXEC SQL INSERT INTO test(f,i,a,text,b,t,err) VALUES(14.07,:did,:a,:t,:b,1,147); - error.code=0; -EXEC SQL ENDIF; - - EXEC SQL COMMIT; - - EXEC SQL BEGIN WORK; - - EXEC SQL SELECT f,text,b - INTO :f,:text,:b - FROM test - WHERE i = 1; - - printf("Found f=%f text=%10.10s b=%d\n", f, text, b); - - f=140787; - EXEC SQL SELECT a,text - INTO :a,:t - FROM test - WHERE f = :f; - - for (i = 0; i < 10; i++) - printf("Found a[%d] = %d\n", i, a[i]); - - printf("Found text=%10.10s\n", t); - - EXEC SQL SELECT a - INTO :text - FROM test - WHERE f = :f; - - printf("Found text=%s\n", text); - - EXEC SQL DROP TABLE test; - - EXEC SQL COMMIT; - - EXEC SQL DISCONNECT; - - if (dbgs != NULL) - fclose(dbgs); - - return (0); -} diff --git a/src/interfaces/ecpg/test/test5.pgc b/src/interfaces/ecpg/test/test5.pgc deleted file mode 100644 index 841b0e379f..0000000000 --- a/src/interfaces/ecpg/test/test5.pgc +++ /dev/null @@ -1,109 +0,0 @@ -#include -#include - -EXEC SQL typedef long mmInteger; -EXEC SQL typedef char mmChar; -EXEC SQL typedef short mmSmallInt; - -EXEC SQL BEGIN DECLARE SECTION; -struct TBempl -{ - mmInteger idnum; - mmChar name[21]; - mmSmallInt accs; - mmChar byte[20]; -}; -EXEC SQL END DECLARE SECTION; - -int -main (void) -{ - EXEC SQL BEGIN DECLARE SECTION; - struct TBempl empl; - char *data = "\\001\\155\\000\\212"; - union - { - mmSmallInt accs; - char t[2]; - } a; - EXEC SQL END DECLARE SECTION; - FILE *dbgs; - int i; - - if ((dbgs = fopen ("log", "w")) != NULL) - ECPGdebug (1, dbgs); - - empl.idnum = 1; - EXEC SQL connect to mm; - if (sqlca.sqlcode) - { - printf ("connect error = %ld\n", sqlca.sqlcode); - exit (sqlca.sqlcode); - } - - EXEC SQL create table empl - (idnum integer, name char (20), accs smallint, byte bytea); - if (sqlca.sqlcode) - { - printf ("create error = %ld\n", sqlca.sqlcode); - exit (sqlca.sqlcode); - } - - EXEC SQL insert into empl values (1, 'first user', 320,:data); - if (sqlca.sqlcode) - { - printf ("insert error = %ld\n", sqlca.sqlcode); - exit (sqlca.sqlcode); - } - - EXEC SQL select name, accs, byte - into :empl.name, :empl.accs, :empl.byte - from empl - where idnum =:empl.idnum; - if (sqlca.sqlcode) - { - printf ("select error = %ld\n", sqlca.sqlcode); - exit (sqlca.sqlcode); - } - printf ("name=%s, accs=%d byte=%s\n", empl.name, empl.accs, empl.byte); - - EXEC SQL DECLARE C CURSOR FOR select name, accs, byte from empl where idnum =:empl.idnum; - EXEC SQL OPEN C; - EXEC SQL FETCH C INTO:empl.name,:empl.accs,:empl.byte; - if (sqlca.sqlcode) - { - printf ("fetch error = %ld\n", sqlca.sqlcode); - exit (sqlca.sqlcode); - } - - printf ("name=%s, accs=%d byte=%s\n", empl.name, empl.accs, empl.byte); - - memset(empl.name, 0, 21L); - memset(empl.byte, '#', 20L); - EXEC SQL DECLARE B BINARY CURSOR FOR select name, accs, byte from empl where idnum =:empl.idnum; - EXEC SQL OPEN B; - EXEC SQL FETCH B INTO :empl.name,:a.accs,:empl.byte; - if (sqlca.sqlcode) - { - printf ("fetch error = %ld\n", sqlca.sqlcode); - exit (sqlca.sqlcode); - } - - EXEC SQL CLOSE B; - - i=a.t[0]; - a.t[0]=a.t[1]; - a.t[1]=i; - - printf ("name=%s, accs=%d byte=", empl.name, a.accs); - for (i=0; i<20; i++) - { - if (empl.byte[i] == '#') - break; - printf("(%o)", (unsigned char)empl.byte[i]); - } - printf("\n"); - EXEC SQL disconnect; - fclose (dbgs); - exit (0); -} diff --git a/src/interfaces/ecpg/test/test_code100.pgc b/src/interfaces/ecpg/test/test_code100.pgc deleted file mode 100644 index 1307abeab7..0000000000 --- a/src/interfaces/ecpg/test/test_code100.pgc +++ /dev/null @@ -1,51 +0,0 @@ -// $PostgreSQL: pgsql/src/interfaces/ecpg/test/test_code100.pgc,v 1.3 2003/11/29 22:41:18 pgsql Exp $ - -exec sql include sqlca; -#include - -int main(int argc, char **argv) -{ exec sql begin declare section; - int index; - exec sql end declare section; - - - // ECPGdebug(1,stdout); - - exec sql connect to mm; - if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql create table test ( - "index" numeric(3) primary key, - "payload" int4 NOT NULL); - if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - exec sql commit work; - if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - for (index=0;index<10;++index) - { exec sql insert into test - (payload, index) - values (0, :index); - if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - } - exec sql commit work; - if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql update test - set payload=payload+1 where index=-1; - if (sqlca.sqlcode!=100) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql delete from test where index=-1; - if (sqlca.sqlcode!=100) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql insert into test (select * from test where index=-1); - if (sqlca.sqlcode!=100) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql drop table test; - if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - exec sql commit work; - if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql disconnect; - if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - return 0; -} diff --git a/src/interfaces/ecpg/test/test_desc.pgc b/src/interfaces/ecpg/test/test_desc.pgc deleted file mode 100644 index 6d70a6496c..0000000000 --- a/src/interfaces/ecpg/test/test_desc.pgc +++ /dev/null @@ -1,81 +0,0 @@ -EXEC SQL WHENEVER SQLERROR SQLPRINT; - -int -main(void) -{ - EXEC SQL BEGIN DECLARE SECTION; - char *stmt1 = "INSERT INTO test1 VALUES (?, ?)"; - char *stmt2 = "SELECT * from test1 where a = ? and b = ?"; - char *stmt3 = "SELECT * from test1 where a = ?"; - - int val1 = 1; - char val2[] = "one", val2output[] = "AAA"; - int val1output = 2, val2i = 0; - int val2null = -1; - EXEC SQL END DECLARE SECTION; - FILE *dbgs; - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - - EXEC SQL ALLOCATE DESCRIPTOR indesc; - EXEC SQL ALLOCATE DESCRIPTOR outdesc; - - EXEC SQL SET DESCRIPTOR indesc VALUE 1 DATA = :val1; - EXEC SQL SET DESCRIPTOR indesc VALUE 2 INDICATOR = :val2i, DATA = :val2; - - EXEC SQL CONNECT TO mm; - - EXEC SQL CREATE TABLE test1 (a int, b text); - EXEC SQL PREPARE foo1 FROM :stmt1; - EXEC SQL PREPARE foo2 FROM :stmt2; - EXEC SQL PREPARE foo3 FROM :stmt3; - - EXEC SQL EXECUTE foo1 USING DESCRIPTOR indesc; - - EXEC SQL SET DESCRIPTOR indesc VALUE 1 DATA = 2; - EXEC SQL SET DESCRIPTOR indesc VALUE 2 INDICATOR = :val2null, DATA = :val2; - - 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; - - EXEC SQL EXECUTE foo2 USING DESCRIPTOR indesc INTO DESCRIPTOR outdesc; - - EXEC SQL GET DESCRIPTOR outdesc VALUE 1 :val2output = DATA; - printf("output = %s\n", val2output); - - EXEC SQL DECLARE c1 CURSOR FOR foo2; - EXEC SQL OPEN c1 USING DESCRIPTOR indesc; - - EXEC SQL FETCH next FROM c1 INTO :val1output, :val2output; - printf("val1=%d val2=%s\n", val1output, val2output); - - EXEC SQL CLOSE c1; - - EXEC SQL SET DESCRIPTOR indesc COUNT = 1; - EXEC SQL SET DESCRIPTOR indesc VALUE 1 DATA = 2; - - EXEC SQL DECLARE c2 CURSOR FOR foo3; - EXEC SQL OPEN c2 USING DESCRIPTOR indesc; - - EXEC SQL FETCH next FROM c2 INTO :val1output, :val2output :val2i; - printf("val1=%d val2=%s\n", val1output, val2i ? "null" : val2output); - - 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 DROP TABLE test1; - EXEC SQL DISCONNECT; - - EXEC SQL DEALLOCATE DESCRIPTOR indesc; - EXEC SQL DEALLOCATE DESCRIPTOR outdesc; - - if (dbgs != NULL) - fclose(dbgs); - - return 0; -} diff --git a/src/interfaces/ecpg/test/test_func.pgc b/src/interfaces/ecpg/test/test_func.pgc deleted file mode 100644 index 12350d220e..0000000000 --- a/src/interfaces/ecpg/test/test_func.pgc +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include -#include - -int main(int argc, char* argv[]) { - FILE *dbgs; - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - EXEC SQL CONNECT TO mm; - - EXEC SQL SET AUTOCOMMIT TO ON; - EXEC SQL WHENEVER SQLWARNING SQLPRINT; - EXEC SQL WHENEVER SQLERROR SQLPRINT; - - EXEC SQL CREATE TABLE My_Table ( Item1 int, Item2 text ); - - EXEC SQL CREATE FUNCTION My_Table_Check() RETURNS trigger - AS $test$ - BEGIN - RAISE NOTICE 'TG_NAME=%, TG WHEN=%', TG_NAME, TG_WHEN; - RETURN NEW; - END; $test$ - LANGUAGE plpgsql; - - EXEC SQL CREATE TRIGGER My_Table_Check_Trigger - BEFORE INSERT - ON My_Table - FOR EACH ROW - EXECUTE PROCEDURE My_Table_Check(); - - EXEC SQL INSERT INTO My_Table VALUES (1234, 'Some random text'); - EXEC SQL INSERT INTO My_Table VALUES (5678, 'The Quick Brown'); - - EXEC SQL DROP TRIGGER My_Table_Check_Trigger ON My_Table; - EXEC SQL DROP FUNCTION My_Table_Check(); - EXEC SQL DROP TABLE My_Table; - - EXEC SQL DISCONNECT ALL; - if (dbgs != NULL) - fclose(dbgs); - - - return 0; -} diff --git a/src/interfaces/ecpg/test/test_informix.pgc b/src/interfaces/ecpg/test/test_informix.pgc deleted file mode 100644 index 1c27c6e7a8..0000000000 --- a/src/interfaces/ecpg/test/test_informix.pgc +++ /dev/null @@ -1,80 +0,0 @@ -#include "sqltypes.h" - -static void openit(void); - -int main(void) -{ - $int i = 14; - $decimal j, m, n; - FILE *dbgs; - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - - $connect to mm; - - $create table test(i int primary key, j int); - - rsetnull(CDECIMALTYPE, (char *)&j); - $insert into test (i, j) values (7, :j); - $commit; - - $insert into test (i, j) values (7, 2); - printf("INSERT: %ld=%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc); - if (sqlca.sqlcode != 0) $rollback; - - $insert into test (i, j) values (:i, 1); - $commit; - - $select i from test where j=(select j from test); - printf("SELECT: %ld=%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc); - if (sqlca.sqlcode != 0) $rollback; - - $declare c cursor for select * from test where i <= :i; - openit(); - - deccvint(0, &j); - - while (1) - { - $fetch forward c into :i, :j; - if (sqlca.sqlcode == 100) break; - else if (sqlca.sqlcode != 0) printf ("Error: %ld\n", sqlca.sqlcode); - - if (risnull(CDECIMALTYPE, (char *)&j)) - printf("%d NULL\n", i); - else - { - int a; - - dectoint(&j, &a); - printf("%d %d\n", i, a); - } - } - - deccvint(7, &j); - deccvint(14, &m); - decadd(&j, &m, &n); - $delete from test where i=:n; - printf("DELETE: %ld\n", sqlca.sqlcode); - - $select 1 from test where i=14; - printf("Exists: %ld\n", sqlca.sqlcode); - - $select 1 from test where i=147; - printf("Does not exist: %ld\n", sqlca.sqlcode); - - $commit; - $drop table test; - $commit; - - $close database; - - return 0; -} - -static void openit(void) -{ - $open c; -} - diff --git a/src/interfaces/ecpg/test/test_informix2.pgc b/src/interfaces/ecpg/test/test_informix2.pgc deleted file mode 100644 index b95ea5076f..0000000000 --- a/src/interfaces/ecpg/test/test_informix2.pgc +++ /dev/null @@ -1,123 +0,0 @@ -#include -#include -#include "sqltypes.h" - -EXEC SQL include sqlca.h; - -/* Check SQLCODE, and produce a "standard error" if it's wrong! */ -static void sql_check(char *fn, char *caller, int ignore) -{ - char errorstring[255]; - - if (SQLCODE == ignore) - return; - else - { - if (SQLCODE != 0) - { - - sprintf(errorstring, "**SQL error %ld doing '%s' in function '%s'. [%s]", - SQLCODE, caller, fn, sqlca.sqlerrm.sqlerrmc); - fprintf(stderr, "%s", errorstring); - printf("%s\n", errorstring); - - /* attempt a ROLLBACK */ - EXEC SQL rollback; - - if (SQLCODE == 0) - { - sprintf(errorstring, "Rollback successful.\n"); - } else { - sprintf(errorstring, "Rollback failed with code %ld.\n", SQLCODE); - } - - fprintf(stderr, "%s", errorstring); - printf("%s\n", errorstring); - - exit(1); - } - } -} - - - -int main(void) -{ - EXEC SQL BEGIN DECLARE SECTION; - int c; - timestamp d; - timestamp maxd; - char dbname[30]; - EXEC SQL END DECLARE SECTION; - - EXEC SQL whenever sqlerror sqlprint; - - strcpy(dbname, "mm"); - EXEC SQL connect to :dbname; - sql_check("main", "connect", 0); - - EXEC SQL create table history (customerid integer, timestamp timestamp without time zone, action_taken char(5), narrative varchar(100)); - sql_check("main", "create", 0); - - EXEC SQL insert into history - (customerid, timestamp, action_taken, narrative) - values(1, now(), 'test', 'test'); - sql_check("main", "insert", 0); - - EXEC SQL select max(timestamp) - into :maxd - from history; - sql_check("main", "select max", 100); - - if (risnull(CDTIMETYPE, (char *) &maxd)) - { - printf("Nothing on the history table\n\n"); - exit(0); - } - - EXEC SQL select customerid, timestamp - into :c, :d - from history - where timestamp = :maxd - limit 1; - sql_check("main", "select", 0); - - printf("Read in customer %d\n", c); - - /* Adding 1 to d adds 1 second. So: - 60 1 minute - 3600 1 hour - 86400 1 day */ - d=d+86400; - c++; - - EXEC SQL insert into history - (customerid, timestamp, action_taken, narrative) - values(:c, :d, 'test', 'test'); - sql_check("main", "update", 0); - - EXEC SQL commit; - - EXEC SQL drop table history; - sql_check("main", "drop", 0); - - EXEC SQL commit; - - EXEC SQL disconnect; - sql_check("main", "disconnect", 0); - - printf("All OK!\n"); - - exit(0); - -/* - Table "public.history" - Column | Type | Modifiers ---------------+-----------------------------+----------- - customerid | integer | not null - timestamp | timestamp without time zone | not null - action_taken | character(5) | not null - narrative | character varying(100) | -*/ - -} diff --git a/src/interfaces/ecpg/test/test_init.pgc b/src/interfaces/ecpg/test/test_init.pgc deleted file mode 100644 index 2248636218..0000000000 --- a/src/interfaces/ecpg/test/test_init.pgc +++ /dev/null @@ -1,64 +0,0 @@ -exec sql include sqlca; - -int fa(void) { return 2; } -int fb(int x) { return x; } -int fc(const char *x) { return *x; } -int fd(const char *x,int i) { return (*x)*i; } -enum e { ENUM0, ENUM1 }; -int fe(enum e x) { return (int)x; } -struct sa { int member; }; - -void sqlmeldung(char *meldung, short trans) -{ -} - -exec sql define NONO 0; - -#define YES 1 - -#ifdef _cplusplus -namespace N -{ static const int i=2; -}; -#endif - -int main(void) -{ struct sa x,*y=&x; -exec sql begin declare section; -int a=(int)2; -int b=2+2; -int b2=(14*7); -int d=x.member; -int g=fb(2); -int i=3^1; -int j=1?1:2; - -int e=y->member; -int c=10>>2; -bool h=2||1; -long iay /* = 1L */ ; -long long iax /* = 40000000000LL */ ; -exec sql end declare section; - -int f=fa(); - -#ifdef _cplusplus -exec sql begin declare section; -int k=N::i; /* compile error */ -exec sql end declare section; -#endif - -exec sql whenever sqlerror do fa(); -exec sql select now(); -exec sql whenever sqlerror do fb(20); -exec sql select now(); -exec sql whenever sqlerror do fc("50"); -exec sql select now(); -exec sql whenever sqlerror do fd("50",1); -exec sql select now(); -exec sql whenever sqlerror do fe(ENUM0); -exec sql select now(); -exec sql whenever sqlerror do sqlmeldung(NULL, NONO); -exec sql select now(); -return 0; -} diff --git a/src/interfaces/ecpg/test/test_notice.pgc b/src/interfaces/ecpg/test/test_notice.pgc deleted file mode 100644 index 9f568e623a..0000000000 --- a/src/interfaces/ecpg/test/test_notice.pgc +++ /dev/null @@ -1,94 +0,0 @@ -// $PostgreSQL: pgsql/src/interfaces/ecpg/test/test_notice.pgc,v 1.4 2003/11/29 22:41:18 pgsql Exp $ - -exec sql include sqlca; - -#include - -static void printwarning(void) -{ - if (sqlca.sqlwarn[0]) printf("sqlca.sqlwarn: %c",sqlca.sqlwarn[0]); - else return; - - if (sqlca.sqlwarn[1]) putchar('1'); - if (sqlca.sqlwarn[2]) putchar('2'); - - putchar('\n'); -} - -int main(int argc, char **argv) -{ - exec sql begin declare section; - int payload; - exec sql end declare section; - FILE *dbgs; - - /* actually this will print 'sql error' if a warning occurs */ - exec sql whenever sqlwarning do printwarning(); - - if ((dbgs = fopen("log", "w")) != NULL) - ECPGdebug(1, dbgs); - - exec sql connect to mm; - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql create table test ( - "index" numeric(3) primary key, - "payload" int4 NOT NULL); - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql commit work; - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql begin work; - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql begin work; - if (sqlca.sqlcode!=ECPG_WARNING_IN_TRANSACTION) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql commit; - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql commit; - if (sqlca.sqlcode!=ECPG_WARNING_NO_TRANSACTION) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql rollback; - if (sqlca.sqlcode!=ECPG_WARNING_NO_TRANSACTION) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - sqlca.sqlcode=0; - exec sql declare x cursor for select * from test; - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql open x; - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql open x; - if (sqlca.sqlcode!=ECPG_WARNING_PORTAL_EXISTS) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql close x; - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql close x; - if (sqlca.sqlcode!=ECPG_WARNING_UNKNOWN_PORTAL) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql update test set nonexistent=2; - if (sqlca.sqlcode!=ECPG_PGSQL) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql select payload into :payload from test where index=1; - if (sqlca.sqlcode!=ECPG_WARNING_QUERY_IGNORED) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql rollback; - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - // this will raise a warning - exec sql drop table test; - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - exec sql commit work; - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - exec sql disconnect; - if (sqlca.sqlcode) printf("%d %ld:%s\n",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc); - - if (dbgs != NULL) - fclose(dbgs); - return 0; -} diff --git a/src/interfaces/ecpg/test/test_thread.pgc b/src/interfaces/ecpg/test/test_thread.pgc deleted file mode 100644 index bf977cc937..0000000000 --- a/src/interfaces/ecpg/test/test_thread.pgc +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Thread test program - * by Philip Yarra & Lee Kindness. - */ - -/* #define ECPGDEBUG */ - -#include -#include - -void *test_thread(void *arg); - -EXEC SQL BEGIN DECLARE SECTION; -char *l_dbname; -EXEC SQL END DECLARE SECTION; -int nthreads = 2; -int iterations = 10; - -int main(int argc, char *argv[]) -{ -#ifdef ECPGDEBUG - char debugfilename[] = "thread_test.log"; - FILE *debugfile; -#endif - pthread_t *threads; - int n; - EXEC SQL BEGIN DECLARE SECTION; - int l_rows; - EXEC SQL END DECLARE SECTION; - - /* parse command line arguments */ - if( (argc < 2) || (argc > 4) ) - { - fprintf(stderr, "Usage: %s dbname [threads] [iterations_per_thread]\n", argv[0]); - return( 1 ); - } - l_dbname = argv[1]; - if( argc >= 3 ) - nthreads = atoi(argv[2]); - if( argc == 4 ) - iterations = atoi(argv[3]); - - /* open ECPG debug log? */ -#ifdef ECPGDEBUG - debugfile = fopen(debugfilename, "w"); - if( debugfile != NULL ) - ECPGdebug(1, debugfile); - else - fprintf(stderr, "Cannot open ECPG debug log: %s\n", debugfilename); -#endif - - /* setup test_thread table */ - EXEC SQL CONNECT TO :l_dbname; - EXEC SQL DROP TABLE test_thread; /* DROP might fail */ - EXEC SQL COMMIT; - EXEC SQL CREATE TABLE - test_thread(tstamp TIMESTAMP NOT NULL DEFAULT CAST(timeofday() AS TIMESTAMP), - thread TEXT NOT NULL, - iteration INTEGER NOT NULL, - PRIMARY KEY(thread, iteration)); - EXEC SQL COMMIT; - EXEC SQL DISCONNECT; - - /* create, and start, threads */ - threads = calloc(nthreads, sizeof(pthread_t)); - if( threads == NULL ) - { - fprintf(stderr, "Cannot alloc memory\n"); - return( 1 ); - } - for( n = 0; n < nthreads; n++ ) - { - pthread_create(&threads[n], NULL, test_thread, (void *) (n + 1)); - } - - /* wait for thread completion */ - for( n = 0; n < nthreads; n++ ) - { - pthread_join(threads[n], NULL); - } - free(threads); - - /* and check results */ - EXEC SQL CONNECT TO :l_dbname; - EXEC SQL SELECT COUNT(*) INTO :l_rows FROM test_thread; - EXEC SQL COMMIT; - EXEC SQL DISCONNECT; - if( l_rows == (nthreads * iterations) ) - printf("\nSuccess.\n"); - else - printf("\nERROR: Failure - expecting %d rows, got %d.\n", nthreads * iterations, l_rows); - - /* close ECPG debug log? */ -#ifdef ECPGDEBUG - if( debugfile != NULL ) - { - ECPGdebug(0, debugfile); - fclose(debugfile); - } -#endif - - return( 0 ); -} - -void *test_thread(void *arg) -{ - long threadnum = (long)arg; - EXEC SQL BEGIN DECLARE SECTION; - int l_i; - char l_connection[128]; - EXEC SQL END DECLARE SECTION; - - /* build up connection name, and connect to database */ - snprintf(l_connection, sizeof(l_connection), "thread_%03ld", threadnum); - EXEC SQL WHENEVER sqlerror sqlprint; - EXEC SQL CONNECT TO :l_dbname AS :l_connection; - if( sqlca.sqlcode != 0 ) - { - printf("%s: ERROR: cannot connect to database!\n", l_connection); - return( NULL ); - } - EXEC SQL AT :l_connection BEGIN; - - /* insert into test_thread table */ - for( l_i = 1; l_i <= iterations; l_i++ ) - { - printf("%s: inserting %d\n", l_connection, l_i); - EXEC SQL AT :l_connection INSERT INTO test_thread(thread, iteration) VALUES(:l_connection, :l_i); - if( sqlca.sqlcode == 0 ) - printf("%s: insert done\n", l_connection); - else - printf("%s: ERROR: insert failed!\n", l_connection); - } - - /* all done */ - EXEC SQL AT :l_connection COMMIT; - EXEC SQL DISCONNECT :l_connection; - printf("%s: done!\n", l_connection); - return( NULL ); -} diff --git a/src/interfaces/ecpg/test/test_thread_implicit.pgc b/src/interfaces/ecpg/test/test_thread_implicit.pgc deleted file mode 100644 index 475afaa600..0000000000 --- a/src/interfaces/ecpg/test/test_thread_implicit.pgc +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Thread test program - * by Lee Kindness. - */ - -/* #define ECPGDEBUG */ - -#include -#include - -void *test_thread(void *arg); - -EXEC SQL BEGIN DECLARE SECTION; -char *l_dbname; -EXEC SQL END DECLARE SECTION; -int nthreads = 2; -int iterations = 10; - -int main(int argc, char *argv[]) -{ -#ifdef ECPGDEBUG - char debugfilename[] = "thread_test_implicit.log"; - FILE *debugfile; -#endif - pthread_t *threads; - int n; - EXEC SQL BEGIN DECLARE SECTION; - int l_rows; - EXEC SQL END DECLARE SECTION; - - /* parse command line arguments */ - if( (argc < 2) || (argc > 4) ) - { - fprintf(stderr, "Usage: %s dbname [threads] [iterations_per_thread]\n", argv[0]); - return( 1 ); - } - l_dbname = argv[1]; - if( argc >= 3 ) - nthreads = atoi(argv[2]); - if( argc == 4 ) - iterations = atoi(argv[3]); - - /* open ECPG debug log? */ -#ifdef ECPGDEBUG - debugfile = fopen(debugfilename, "w"); - if( debugfile != NULL ) - ECPGdebug(1, debugfile); - else - fprintf(stderr, "Cannot open ECPG debug log: %s\n", debugfilename); -#endif - - /* setup test_thread table */ - EXEC SQL CONNECT TO:l_dbname; - EXEC SQL DROP TABLE test_thread; /* DROP might fail */ - EXEC SQL COMMIT; - EXEC SQL CREATE TABLE - test_thread(tstamp TIMESTAMP NOT NULL DEFAULT CAST(timeofday() AS TIMESTAMP), - thread TEXT NOT NULL, - iteration INTEGER NOT NULL, - PRIMARY KEY(thread, iteration)); - EXEC SQL COMMIT; - EXEC SQL DISCONNECT; - - /* create, and start, threads */ - threads = calloc(nthreads, sizeof(pthread_t)); - if( threads == NULL ) - { - fprintf(stderr, "Cannot alloc memory\n"); - return( 1 ); - } - for( n = 0; n < nthreads; n++ ) - { - pthread_create(&threads[n], NULL, test_thread, (void *) (n + 1)); - } - - /* wait for thread completion */ - for( n = 0; n < nthreads; n++ ) - { - pthread_join(threads[n], NULL); - } - free(threads); - - /* and check results */ - EXEC SQL CONNECT TO :l_dbname; - EXEC SQL SELECT COUNT(*) INTO :l_rows FROM test_thread; - EXEC SQL COMMIT; - EXEC SQL DISCONNECT; - if( l_rows == (nthreads * iterations) ) - printf("\nSuccess.\n"); - else - printf("\nERROR: Failure - expecting %d rows, got %d.\n", nthreads * iterations, l_rows); - - /* close ECPG debug log? */ -#ifdef ECPGDEBUG - if( debugfile != NULL ) - { - ECPGdebug(0, debugfile); - fclose(debugfile); - } -#endif - - return( 0 ); -} - -void *test_thread(void *arg) -{ - long threadnum = (long)arg; - EXEC SQL BEGIN DECLARE SECTION; - int l_i; - char l_connection[128]; - EXEC SQL END DECLARE SECTION; - - /* build up connection name, and connect to database */ - snprintf(l_connection, sizeof(l_connection), "thread_%03ld", threadnum); - EXEC SQL WHENEVER sqlerror sqlprint; - EXEC SQL CONNECT TO :l_dbname AS :l_connection; - if( sqlca.sqlcode != 0 ) - { - printf("%s: ERROR: cannot connect to database!\n", l_connection); - return( NULL ); - } - EXEC SQL BEGIN; - - /* insert into test_thread table */ - for( l_i = 1; l_i <= iterations; l_i++ ) - { - printf("%s: inserting %d\n", l_connection, l_i); - EXEC SQL INSERT INTO test_thread(thread, iteration) VALUES(:l_connection, :l_i); - if( sqlca.sqlcode == 0 ) - printf("%s: insert done\n", l_connection); - else - printf("%s: ERROR: insert failed!\n", l_connection); - } - - /* all done */ - EXEC SQL COMMIT; - EXEC SQL DISCONNECT :l_connection; - printf("%s: done!\n", l_connection); - return( NULL ); -} diff --git a/src/interfaces/ecpg/test/testdynalloc.pgc b/src/interfaces/ecpg/test/testdynalloc.pgc deleted file mode 100644 index a859b5f810..0000000000 --- a/src/interfaces/ecpg/test/testdynalloc.pgc +++ /dev/null @@ -1,33 +0,0 @@ -#include -exec sql include sqlca; -#include - -int main(void) -{ - exec sql begin declare section; - char **cpp=0; - int *ipointer=0; - exec sql end declare section; - int i; - - if (getenv("SQLOPT")) ECPGdebug(1,stderr); - - exec sql whenever sqlerror do sqlprint(); - exec sql connect to postgres; - - exec sql allocate descriptor mydesc; - exec sql select tablename into descriptor mydesc from pg_tables; - exec sql get descriptor mydesc value 1 :cpp=DATA, :ipointer=INDICATOR; - - printf("Result "); - for (i=0;i