#include <ecpglib.h>
#include <ecpgerrno.h>
#include <sqlca.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <pgtypes_date.h>
#include <pgtypes_timestamp.h>
#include <pgtypes_interval.h>
Go to the source code of this file.
Defines | |
#define | ECPGdebug(X, Y) ECPGdebug((X)+100,(Y)) |
Functions | |
int | main (void) |
#define ECPGdebug | ( | X, | ||
Y | ||||
) | ECPGdebug((X)+100,(Y)) |
Definition at line 7 of file pgtypeslib-dt_test.c.
int main | ( | void | ) |
Definition at line 29 of file pgtypeslib-dt_test.c.
References ECPGconnect(), ECPGdebug, ECPGdisconnect(), ECPGdo(), ECPGst_normal, ECPGt_date, ECPGt_EOIT, ECPGt_EORT, ECPGt_NO_INDICATOR, ECPGt_timestamp, ECPGtrans(), free, i, malloc, NULL, PGTYPESdate_dayofweek(), PGTYPESdate_defmt_asc(), PGTYPESdate_fmt_asc(), PGTYPESdate_from_asc(), PGTYPESdate_from_timestamp(), PGTYPESdate_julmdy(), PGTYPESdate_mdyjul(), PGTYPESdate_to_asc(), PGTYPESinterval_copy(), PGTYPESinterval_free(), PGTYPESinterval_from_asc(), PGTYPESinterval_to_asc(), PGTYPEStimestamp_current(), PGTYPEStimestamp_defmt_asc(), PGTYPEStimestamp_fmt_asc(), PGTYPEStimestamp_from_asc(), PGTYPEStimestamp_to_asc(), sqlca, and sqlprint().
{ /* exec sql begin declare section */ #line 14 "dt_test.pgc" date date1 ; #line 15 "dt_test.pgc" timestamp ts1 ; #line 16 "dt_test.pgc" interval * iv1 , iv2 ; #line 17 "dt_test.pgc" char * text ; /* exec sql end declare section */ #line 18 "dt_test.pgc" 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; ECPGdebug(1, stderr); /* exec sql whenever sqlerror do sqlprint ( ) ; */ #line 27 "dt_test.pgc" { ECPGconnect(__LINE__, 0, "regress1" , NULL, NULL , NULL, 0); #line 28 "dt_test.pgc" if (sqlca.sqlcode < 0) sqlprint ( );} #line 28 "dt_test.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table date_test ( d date , ts timestamp )", ECPGt_EOIT, ECPGt_EORT); #line 29 "dt_test.pgc" if (sqlca.sqlcode < 0) sqlprint ( );} #line 29 "dt_test.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "set datestyle to iso", ECPGt_EOIT, ECPGt_EORT); #line 30 "dt_test.pgc" if (sqlca.sqlcode < 0) sqlprint ( );} #line 30 "dt_test.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "set intervalstyle to postgres_verbose", ECPGt_EOIT, ECPGt_EORT); #line 31 "dt_test.pgc" if (sqlca.sqlcode < 0) sqlprint ( );} #line 31 "dt_test.pgc" date1 = PGTYPESdate_from_asc(d1, NULL); ts1 = PGTYPEStimestamp_from_asc(t1, NULL); { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into date_test ( d , ts ) values ( $1 , $2 )", ECPGt_date,&(date1),(long)1,(long)1,sizeof(date), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_timestamp,&(ts1),(long)1,(long)1,sizeof(timestamp), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); #line 36 "dt_test.pgc" if (sqlca.sqlcode < 0) sqlprint ( );} #line 36 "dt_test.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select * from date_test where d = $1 ", ECPGt_date,&(date1),(long)1,(long)1,sizeof(date), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_date,&(date1),(long)1,(long)1,sizeof(date), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_timestamp,&(ts1),(long)1,(long)1,sizeof(timestamp), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); #line 38 "dt_test.pgc" if (sqlca.sqlcode < 0) sqlprint ( );} #line 38 "dt_test.pgc" text = PGTYPESdate_to_asc(date1); printf ("Date: %s\n", text); free(text); text = PGTYPEStimestamp_to_asc(ts1); printf ("timestamp: %s\n", text); free(text); iv1 = PGTYPESinterval_from_asc("13556 days 12 hours 34 minutes 14 seconds ", NULL); PGTYPESinterval_copy(iv1, &iv2); text = PGTYPESinterval_to_asc(&iv2); printf ("interval: %s\n", text); PGTYPESinterval_free(iv1); 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); fmt = "(ddd), mmm. dd, yyyy, repeat: (ddd), mmm. dd, yyyy. end"; out = (char*) malloc(strlen(fmt) + 1); date1 = PGTYPESdate_from_timestamp(ts1); PGTYPESdate_fmt_asc(date1, fmt, out); printf("date_day of %s is %d\n", text, PGTYPESdate_dayofweek(date1)); printf("Above date in format \"%s\" is \"%s\"\n", fmt, out); free(text); free(out); /* rdate_defmt_asc() */ 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); /* can't output this in regression mode */ /* 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, NULL) = %s, error: %d\n", in, 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); in = "1234567890"; fmt = "%s"; 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); { ECPGtrans(__LINE__, NULL, "rollback"); #line 359 "dt_test.pgc" if (sqlca.sqlcode < 0) sqlprint ( );} #line 359 "dt_test.pgc" { ECPGdisconnect(__LINE__, "CURRENT"); #line 360 "dt_test.pgc" if (sqlca.sqlcode < 0) sqlprint ( );} #line 360 "dt_test.pgc" return (0); }