PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
pgtypeslib-dt_test.c File Reference
#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>
Include dependency graph for pgtypeslib-dt_test.c:

Go to the source code of this file.

Macros

#define ECPGdebug(X, Y)   ECPGdebug((X)+100,(Y))
 

Functions

int main (void)
 

Macro Definition Documentation

#define ECPGdebug (   X,
 
)    ECPGdebug((X)+100,(Y))

Definition at line 7 of file pgtypeslib-dt_test.c.

Referenced by main().

Function Documentation

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, 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().

30 {
31  /* exec sql begin declare section */
32 
33 
34 
35 
36 
37 #line 14 "dt_test.pgc"
38  date date1 ;
39 
40 #line 15 "dt_test.pgc"
41  timestamp ts1 ;
42 
43 #line 16 "dt_test.pgc"
44  interval * iv1 , iv2 ;
45 
46 #line 17 "dt_test.pgc"
47  char * text ;
48 /* exec sql end declare section */
49 #line 18 "dt_test.pgc"
50 
51  date date2;
52  int mdy[3] = { 4, 19, 1998 };
53  char *fmt, *out, *in;
54  char *d1 = "Mon Jan 17 1966";
55  char *t1 = "2000-7-12 17:34:29";
56  int i;
57 
58  ECPGdebug(1, stderr);
59  /* exec sql whenever sqlerror do sqlprint ( ) ; */
60 #line 27 "dt_test.pgc"
61 
62  { ECPGconnect(__LINE__, 0, "ecpg1_regression" , NULL, NULL , NULL, 0);
63 #line 28 "dt_test.pgc"
64 
65 if (sqlca.sqlcode < 0) sqlprint ( );}
66 #line 28 "dt_test.pgc"
67 
68  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table date_test ( d date , ts timestamp )", ECPGt_EOIT, ECPGt_EORT);
69 #line 29 "dt_test.pgc"
70 
71 if (sqlca.sqlcode < 0) sqlprint ( );}
72 #line 29 "dt_test.pgc"
73 
74  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "set datestyle to iso", ECPGt_EOIT, ECPGt_EORT);
75 #line 30 "dt_test.pgc"
76 
77 if (sqlca.sqlcode < 0) sqlprint ( );}
78 #line 30 "dt_test.pgc"
79 
80  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "set intervalstyle to postgres_verbose", ECPGt_EOIT, ECPGt_EORT);
81 #line 31 "dt_test.pgc"
82 
83 if (sqlca.sqlcode < 0) sqlprint ( );}
84 #line 31 "dt_test.pgc"
85 
86 
87  date1 = PGTYPESdate_from_asc(d1, NULL);
88  ts1 = PGTYPEStimestamp_from_asc(t1, NULL);
89 
90  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into date_test ( d , ts ) values ( $1 , $2 )",
91  ECPGt_date,&(date1),(long)1,(long)1,sizeof(date),
92  ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
93  ECPGt_timestamp,&(ts1),(long)1,(long)1,sizeof(timestamp),
94  ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
95 #line 36 "dt_test.pgc"
96 
97 if (sqlca.sqlcode < 0) sqlprint ( );}
98 #line 36 "dt_test.pgc"
99 
100 
101  { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select * from date_test where d = $1 ",
102  ECPGt_date,&(date1),(long)1,(long)1,sizeof(date),
103  ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
104  ECPGt_date,&(date1),(long)1,(long)1,sizeof(date),
105  ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
106  ECPGt_timestamp,&(ts1),(long)1,(long)1,sizeof(timestamp),
107  ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
108 #line 38 "dt_test.pgc"
109 
110 if (sqlca.sqlcode < 0) sqlprint ( );}
111 #line 38 "dt_test.pgc"
112 
113 
114  text = PGTYPESdate_to_asc(date1);
115  printf ("Date: %s\n", text);
116  free(text);
117 
118  text = PGTYPEStimestamp_to_asc(ts1);
119  printf ("timestamp: %s\n", text);
120  free(text);
121 
122  iv1 = PGTYPESinterval_from_asc("13556 days 12 hours 34 minutes 14 seconds ", NULL);
123  PGTYPESinterval_copy(iv1, &iv2);
124  text = PGTYPESinterval_to_asc(&iv2);
125  printf ("interval: %s\n", text);
127  free(text);
128 
129  PGTYPESdate_mdyjul(mdy, &date2);
130  printf("m: %d, d: %d, y: %d\n", mdy[0], mdy[1], mdy[2]);
131  /* reset */
132  mdy[0] = mdy[1] = mdy[2] = 0;
133 
134  printf("date seems to get encoded to julian %ld\n", date2);
135 
136  PGTYPESdate_julmdy(date2, mdy);
137  printf("m: %d, d: %d, y: %d\n", mdy[0], mdy[1], mdy[2]);
138 
139  ts1 = PGTYPEStimestamp_from_asc("2003-12-04 17:34:29", NULL);
140  text = PGTYPEStimestamp_to_asc(ts1);
141  fmt = "(ddd), mmm. dd, yyyy, repeat: (ddd), mmm. dd, yyyy. end";
142  out = (char*) malloc(strlen(fmt) + 1);
143  date1 = PGTYPESdate_from_timestamp(ts1);
144  PGTYPESdate_fmt_asc(date1, fmt, out);
145  printf("date_day of %s is %d\n", text, PGTYPESdate_dayofweek(date1));
146  printf("Above date in format \"%s\" is \"%s\"\n", fmt, out);
147  free(text);
148  free(out);
149 
150  out = (char*) malloc(48);
151  i = PGTYPEStimestamp_fmt_asc(&ts1, out, 47, "Which is day number %j in %Y.");
152  printf("%s\n", out);
153  free(out);
154 
155 
156  /* rdate_defmt_asc() */
157 
158  date1 = 0;
159  fmt = "yy/mm/dd";
160  in = "In the year 1995, the month of December, it is the 25th day";
161  /* 0123456789012345678901234567890123456789012345678901234567890
162  * 0 1 2 3 4 5 6
163  */
164  PGTYPESdate_defmt_asc(&date1, fmt, in);
165  text = PGTYPESdate_to_asc(date1);
166  printf("date_defmt_asc1: %s\n", text);
167  free(text);
168 
169  date1 = 0;
170  fmt = "mmmm. dd. yyyy";
171  in = "12/25/95";
172  PGTYPESdate_defmt_asc(&date1, fmt, in);
173  text = PGTYPESdate_to_asc(date1);
174  printf("date_defmt_asc2: %s\n", text);
175  free(text);
176 
177  date1 = 0;
178  fmt = "yy/mm/dd";
179  in = "95/12/25";
180  PGTYPESdate_defmt_asc(&date1, fmt, in);
181  text = PGTYPESdate_to_asc(date1);
182  printf("date_defmt_asc3: %s\n", text);
183  free(text);
184 
185  date1 = 0;
186  fmt = "yy/mm/dd";
187  in = "1995, December 25th";
188  PGTYPESdate_defmt_asc(&date1, fmt, in);
189  text = PGTYPESdate_to_asc(date1);
190  printf("date_defmt_asc4: %s\n", text);
191  free(text);
192 
193  date1 = 0;
194  fmt = "dd-mm-yy";
195  in = "This is 25th day of December, 1995";
196  PGTYPESdate_defmt_asc(&date1, fmt, in);
197  text = PGTYPESdate_to_asc(date1);
198  printf("date_defmt_asc5: %s\n", text);
199  free(text);
200 
201  date1 = 0;
202  fmt = "mmddyy";
203  in = "Dec. 25th, 1995";
204  PGTYPESdate_defmt_asc(&date1, fmt, in);
205  text = PGTYPESdate_to_asc(date1);
206  printf("date_defmt_asc6: %s\n", text);
207  free(text);
208 
209  date1 = 0;
210  fmt = "mmm. dd. yyyy";
211  in = "dec 25th 1995";
212  PGTYPESdate_defmt_asc(&date1, fmt, in);
213  text = PGTYPESdate_to_asc(date1);
214  printf("date_defmt_asc7: %s\n", text);
215  free(text);
216 
217  date1 = 0;
218  fmt = "mmm. dd. yyyy";
219  in = "DEC-25-1995";
220  PGTYPESdate_defmt_asc(&date1, fmt, in);
221  text = PGTYPESdate_to_asc(date1);
222  printf("date_defmt_asc8: %s\n", text);
223  free(text);
224 
225  date1 = 0;
226  fmt = "mm yy dd.";
227  in = "12199525";
228  PGTYPESdate_defmt_asc(&date1, fmt, in);
229  text = PGTYPESdate_to_asc(date1);
230  printf("date_defmt_asc9: %s\n", text);
231  free(text);
232 
233  date1 = 0;
234  fmt = "yyyy fierj mm dd.";
235  in = "19951225";
236  PGTYPESdate_defmt_asc(&date1, fmt, in);
237  text = PGTYPESdate_to_asc(date1);
238  printf("date_defmt_asc10: %s\n", text);
239  free(text);
240 
241  date1 = 0;
242  fmt = "mm/dd/yy";
243  in = "122595";
244  PGTYPESdate_defmt_asc(&date1, fmt, in);
245  text = PGTYPESdate_to_asc(date1);
246  printf("date_defmt_asc12: %s\n", text);
247  free(text);
248 
250  text = PGTYPEStimestamp_to_asc(ts1);
251  /* can't output this in regression mode */
252  /* printf("timestamp_current: Now: %s\n", text); */
253  free(text);
254 
255  ts1 = PGTYPEStimestamp_from_asc("96-02-29", NULL);
256  text = PGTYPEStimestamp_to_asc(ts1);
257  printf("timestamp_to_asc1: %s\n", text);
258  free(text);
259 
260  ts1 = PGTYPEStimestamp_from_asc("1994-02-11 3:10:35", NULL);
261  text = PGTYPEStimestamp_to_asc(ts1);
262  printf("timestamp_to_asc2: %s\n", text);
263  free(text);
264 
265  ts1 = PGTYPEStimestamp_from_asc("1994-02-11 26:10:35", NULL);
266  text = PGTYPEStimestamp_to_asc(ts1);
267  printf("timestamp_to_asc3: %s\n", text);
268  free(text);
269 
270 /* abc-03:10:35-def-02/11/94-gh */
271 /* 12345678901234567890123456789 */
272 
273  out = (char*) malloc(32);
274  i = PGTYPEStimestamp_fmt_asc(&ts1, out, 31, "abc-%X-def-%x-ghi%%");
275  printf("timestamp_fmt_asc: %d: %s\n", i, out);
276  free(out);
277 
278  fmt = "This is a %m/%d/%y %H-%Ml%Stest";
279  in = "This is a 4/12/80 3-39l12test";
280  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
281  text = PGTYPEStimestamp_to_asc(ts1);
282  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
283  free(text);
284 
285  fmt = "%a %b %d %H:%M:%S %z %Y";
286  in = "Tue Jul 22 17:28:44 +0200 2003";
287  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
288  text = PGTYPEStimestamp_to_asc(ts1);
289  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
290  free(text);
291 
292  fmt = "%a %b %d %H:%M:%S %z %Y";
293  in = "Tue Feb 29 17:28:44 +0200 2000";
294  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
295  text = PGTYPEStimestamp_to_asc(ts1);
296  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
297  free(text);
298 
299  fmt = "%a %b %d %H:%M:%S %z %Y";
300  in = "Tue Feb 29 17:28:44 +0200 1900";
301  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
302  text = PGTYPEStimestamp_to_asc(ts1);
303  printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
304  free(text);
305 
306  fmt = "%a %b %d %H:%M:%S %z %Y";
307  in = "Tue Feb 29 17:28:44 +0200 1996";
308  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
309  text = PGTYPEStimestamp_to_asc(ts1);
310  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
311  free(text);
312 
313  fmt = "%b %d %H:%M:%S %z %Y";
314  in = " Jul 31 17:28:44 +0200 1996";
315  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
316  text = PGTYPEStimestamp_to_asc(ts1);
317  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
318  free(text);
319 
320  fmt = "%b %d %H:%M:%S %z %Y";
321  in = " Jul 32 17:28:44 +0200 1996";
322  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
323  text = PGTYPEStimestamp_to_asc(ts1);
324  printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
325  free(text);
326 
327  fmt = "%a %b %d %H:%M:%S %z %Y";
328  in = "Tue Feb 29 17:28:44 +0200 1997";
329  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
330  text = PGTYPEStimestamp_to_asc(ts1);
331  printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
332  free(text);
333 
334  fmt = "%";
335  in = "Tue Jul 22 17:28:44 +0200 2003";
336  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
337  text = PGTYPEStimestamp_to_asc(ts1);
338  printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
339  free(text);
340 
341  fmt = "a %";
342  in = "Tue Jul 22 17:28:44 +0200 2003";
343  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
344  text = PGTYPEStimestamp_to_asc(ts1);
345  printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
346  free(text);
347 
348  fmt = "%b, %d %H_%M`%S %z %Y";
349  in = " Jul, 22 17_28 `44 +0200 2003 ";
350  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
351  text = PGTYPEStimestamp_to_asc(ts1);
352  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
353  free(text);
354 
355  fmt = "%a %b %%%d %H:%M:%S %Z %Y";
356  in = "Tue Jul %22 17:28:44 CEST 2003";
357  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
358  text = PGTYPEStimestamp_to_asc(ts1);
359  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
360  free(text);
361 
362  fmt = "%a %b %%%d %H:%M:%S %Z %Y";
363  in = "Tue Jul %22 17:28:44 CEST 2003";
364  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
365  text = PGTYPEStimestamp_to_asc(ts1);
366  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
367  free(text);
368 
369  fmt = "abc%n %C %B %%%d %H:%M:%S %Z %Y";
370  in = "abc\n 19 October %22 17:28:44 CEST 2003";
371  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
372  text = PGTYPEStimestamp_to_asc(ts1);
373  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
374  free(text);
375 
376  fmt = "abc%n %C %B %%%d %H:%M:%S %Z %y";
377  in = "abc\n 18 October %34 17:28:44 CEST 80";
378  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
379  text = PGTYPEStimestamp_to_asc(ts1);
380  printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
381  free(text);
382 
383  fmt = "";
384  in = "abc\n 18 October %34 17:28:44 CEST 80";
385  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
386  text = PGTYPEStimestamp_to_asc(ts1);
387  printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
388  free(text);
389 
390  fmt = NULL;
391  in = "1980-04-12 3:49:44 ";
392  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
393  text = PGTYPEStimestamp_to_asc(ts1);
394  printf("timestamp_defmt_asc(%s, NULL) = %s, error: %d\n", in, text, i);
395  free(text);
396 
397  fmt = "%B %d, %Y. Time: %I:%M%p";
398  in = "July 14, 1988. Time: 9:15am";
399  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
400  text = PGTYPEStimestamp_to_asc(ts1);
401  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
402  free(text);
403 
404  in = "September 6 at 01:30 pm in the year 1983";
405  fmt = "%B %d at %I:%M %p in the year %Y";
406  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
407  text = PGTYPEStimestamp_to_asc(ts1);
408  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
409  free(text);
410 
411  in = " 1976, July 14. Time: 9:15am";
412  fmt = "%Y, %B %d. Time: %I:%M %p";
413  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
414  text = PGTYPEStimestamp_to_asc(ts1);
415  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
416  free(text);
417 
418  in = " 1976, July 14. Time: 9:15 am";
419  fmt = "%Y, %B %d. Time: %I:%M%p";
420  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
421  text = PGTYPEStimestamp_to_asc(ts1);
422  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
423  free(text);
424 
425  in = " 1976, P.M. July 14. Time: 9:15";
426  fmt = "%Y, %P %B %d. Time: %I:%M";
427  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
428  text = PGTYPEStimestamp_to_asc(ts1);
429  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
430  free(text);
431 
432  in = "1234567890";
433  fmt = "%s";
434  i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
435  text = PGTYPEStimestamp_to_asc(ts1);
436  printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
437  free(text);
438 
439  { ECPGtrans(__LINE__, NULL, "rollback");
440 #line 365 "dt_test.pgc"
441 
442 if (sqlca.sqlcode < 0) sqlprint ( );}
443 #line 365 "dt_test.pgc"
444 
445  { ECPGdisconnect(__LINE__, "CURRENT");
446 #line 366 "dt_test.pgc"
447 
448 if (sqlca.sqlcode < 0) sqlprint ( );}
449 #line 366 "dt_test.pgc"
450 
451 
452  return 0;
453 }
date PGTYPESdate_from_asc(char *, char **)
Definition: datetime.c:48
bool ECPGdisconnect(int lineno, const char *connection_name)
Definition: connect.c:669
void PGTYPESdate_julmdy(date, int *)
Definition: datetime.c:116
int PGTYPESinterval_copy(interval *, interval *)
Definition: interval.c:1104
#define sqlca
Definition: sqlca.h:59
int64 timestamp
bool ECPGdo(const int lineno, const int compat, const int force_indicator, const char *connection_name, const bool questionmarks, const int st, const char *query,...)
Definition: execute.c:2030
int PGTYPEStimestamp_defmt_asc(char *, const char *, timestamp *)
Definition: timestamp.c:818
long date
Definition: pgtypes_date.h:8
char * PGTYPESdate_to_asc(date)
Definition: datetime.c:102
int PGTYPESdate_fmt_asc(date, const char *, char *)
Definition: datetime.c:170
#define malloc(a)
Definition: header.h:50
void PGTYPESdate_mdyjul(int *, date *)
Definition: datetime.c:129
void PGTYPESinterval_free(interval *)
Definition: interval.c:1015
int PGTYPESdate_dayofweek(date)
Definition: datetime.c:139
int PGTYPEStimestamp_fmt_asc(timestamp *, char *, int, const char *)
Definition: timestamp.c:790
void PGTYPEStimestamp_current(timestamp *)
Definition: timestamp.c:301
bool ECPGconnect(int lineno, int c, const char *name, const char *user, const char *passwd, const char *connection_name, int autocommit)
Definition: connect.c:271
interval * PGTYPESinterval_from_asc(char *, char **)
Definition: interval.c:1021
int PGTYPESdate_defmt_asc(date *, const char *, char *)
Definition: datetime.c:332
struct varlena text
Definition: c.h:447
#define ECPGdebug(X, Y)
void sqlprint(void)
Definition: error.c:336
#define free(a)
Definition: header.h:65
char * PGTYPEStimestamp_to_asc(timestamp)
Definition: timestamp.c:279
bool ECPGtrans(int lineno, const char *connection_name, const char *transaction)
Definition: misc.c:199
char * PGTYPESinterval_to_asc(interval *)
Definition: interval.c:1080
int i
date PGTYPESdate_from_timestamp(timestamp)
Definition: datetime.c:32
timestamp PGTYPEStimestamp_from_asc(char *, char **)
Definition: timestamp.c:209