Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit524e9d6

Browse files
author
Michael Meskes
committed
Changes to the parser to accept new datatypes.
1 parent9a9719e commit524e9d6

File tree

12 files changed

+275
-50
lines changed

12 files changed

+275
-50
lines changed

‎src/interfaces/ecpg/ChangeLog

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1361,9 +1361,13 @@ Sun Mar 16 11:28:01 CET 2003
13611361
- Renamed lib directory to ecpglib.
13621362
- Added numerical functions to library and preprocessor.
13631363

1364-
Don Mar 20 16:53:40 CET 2003
1364+
Thu Mar 20 16:53:40 CET 2003
13651365

13661366
- Added date/timestamp to library and preprocessor.
1367+
1368+
Fri Mar 21 15:13:42 CET 2003
1369+
1370+
- Made sure preprocessor accepts new datatypes.
13671371
- Set ecpg version to 2.12.0.
13681372
- Set ecpg library to 3.4.2.
13691373
- Set pgtypes library to 1.0.0
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#include<pgtypes_timestamp.h>
2+
3+
#ifndefdtime_t
4+
#definedtime_t Timestamp
5+
#endif/* dtime_t */
6+
7+
#ifndefintrvl_t
8+
#warning needs interval here
9+
#defineintrvl_t Timestamp
10+
#endif/* intrvl_t */
11+
12+
externvoiddtcurrent (dtime_t*);
13+
externintdtcvasc (char*,dtime_t*);
14+
externintdtsub (dtime_t*,dtime_t*,intrvl_t*);
15+
externintdttoasc (dtime_t*,char*);
16+
externintdttofmtasc (dtime_t*,char*,int,char*);
17+
externintintoasc(intrvl_t*,char*);
18+

‎src/interfaces/ecpg/include/decimal.h

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,20 @@
22

33
#ifndefdec_t
44
#definedec_t NumericVar
5+
#endif/* dec_t */
56

6-
#defineCSHORTTYPE 0
7-
#defineCMONEYTYPE 0
8-
#defineCCHARTYPE 0
9-
#defineCDECIMALTYPE 0
10-
#defineCINTTYPE 0
11-
#defineCDATETYPE 0
12-
#defineCDOUBLETYPE 0
13-
#defineCLONGTYPE 0
7+
intdecadd(dec_t*,NumericVar*,NumericVar*);
8+
intdeccmp(dec_t*,NumericVar*);
9+
voiddeccopy(dec_t*,NumericVar*);
10+
intdeccvasc(char*,int,dec_t*);
11+
intdeccvdbl(double,dec_t*);
12+
intdeccvint(int,dec_t*);
13+
intdeccvlong(long,dec_t*);
14+
intdecdiv(dec_t*,NumericVar*,NumericVar*);
15+
intdecmul(dec_t*,NumericVar*,NumericVar*);
16+
intdecsub(dec_t*,NumericVar*,NumericVar*);
17+
intdectoasc(dec_t*,char*,int,int);
18+
intdectodbl(dec_t*,double*);
19+
intdectoint(dec_t*,int*);
20+
intdectolong(dec_t*,long*);
1421

15-
#endif/* dec_t */

‎src/interfaces/ecpg/include/ecpg_informix.h

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,25 @@
44

55
#defineSQLNOTFOUND 100
66

7+
#ifndefDate
8+
#defineDate long
9+
#endif/* ! Date */
10+
11+
externintrdatestr (Date,char*);
12+
externvoidrtoday (Date*);
13+
externintrjulmdy (Date,short*);
14+
externintrdefmtdate (Date*,char*,char*);
15+
externintrfmtdate (Date,char*,char*);
16+
externintrmdyjul (short*,Date*);
17+
externintrstrdate (char*,Date*);
18+
externintrdayofweek(Date);
19+
20+
externintrfmtlong(long,char*,char*);
21+
externintrgetmsg(int,char*,int);
22+
externintrisnull(int,char*);
23+
externintrsetnull(int,char*);
24+
externintrtypalign(int,int);
25+
externintrtypmsize(int,int);
26+
externvoidrupshift(char*);
27+
28+

‎src/interfaces/ecpg/include/pgtypes_numeric.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,4 @@ int PGTYPESnumeric_ntod(NumericVar *, double *);
3030
intPGTYPESnumeric_ntoi(NumericVar*,int*);
3131
intPGTYPESnumeric_ntol(NumericVar*,long*);
3232

33-
intdecadd(NumericVar*,NumericVar*,NumericVar*);
34-
intdeccmp(NumericVar*,NumericVar*);
35-
voiddeccopy(NumericVar*,NumericVar*);
36-
intdeccvasc(char*,int,NumericVar*);
37-
intdeccvdbl(double,NumericVar*);
38-
intdeccvint(int,NumericVar*);
39-
intdeccvlong(long,NumericVar*);
40-
intdecdiv(NumericVar*,NumericVar*,NumericVar*);
41-
intdecmul(NumericVar*,NumericVar*,NumericVar*);
42-
intdecsub(NumericVar*,NumericVar*,NumericVar*);
43-
intdectoasc(NumericVar*,char*,int,int);
44-
intdectodbl(NumericVar*,double*);
45-
intdectoint(NumericVar*,int*);
46-
intdectolong(NumericVar*,long*);
47-
4833
#endif/* PGTYPES_NUMERIC */

‎src/interfaces/ecpg/include/sqlda.h

Whitespace-only changes.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#defineCCHARTYPE100
2+
#defineCSHORTTYPE101
3+
#defineCINTTYPE102
4+
#defineCLONGTYPE103
5+
#defineCFLOATTYPE104
6+
#defineCDOUBLETYPE105
7+
#defineCDECIMALTYPE107
8+
#defineCFIXCHARTYPE108
9+
#defineCSTRINGTYPE109
10+
#defineCDATETYPE110
11+
#defineCMONEYTYPE111
12+
#defineCDTIMETYPE112
13+
#defineCLOCATORTYPE 113
14+
#defineCVCHARTYPE114
15+
#defineCINVTYPE115
16+
#defineCFILETYPE116
17+
#defineCINT8TYPE117
18+
#defineCCOLLTYPE 118
19+
#defineCLVCHARTYPE 119
20+
#defineCFIXBINTYPE 120
21+
#defineCVARBINTYPE 121
22+
#defineCBOOLTYPE 122
23+
#defineCROWTYPE 123
24+
#defineCLVCHARPTRTYPE 124
25+
#defineCTYPEMAX25

‎src/interfaces/ecpg/pgtypeslib/datetime.c

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include"extern.h"
1010
#include"pgtypes_error.h"
1111
#include"pgtypes_date.h"
12+
#include"ecpg_informix.h"
1213

1314
Date
1415
PGTYPESdate_atod(char*str,char**endptr)
@@ -103,3 +104,45 @@ PGTYPESdate_day(Date dDate)
103104
returnj2day(dDate);
104105
}
105106

107+
int
108+
rdatestr (Dated,char*str)
109+
{
110+
return0;
111+
}
112+
113+
void
114+
rtoday (Date*d)
115+
{
116+
return;
117+
}
118+
119+
int
120+
rjulmdy (Dated,shortmdy[3])
121+
{
122+
return0;
123+
}
124+
125+
int
126+
rdefmtdate (Date*d,char*fmt,char*str)
127+
{
128+
return0;
129+
}
130+
131+
int
132+
rfmtdate (Dated,char*fmt,char*str)
133+
{
134+
return0;
135+
}
136+
137+
int
138+
rmdyjul (shortmdy[3],Date*d)
139+
{
140+
return0;
141+
}
142+
143+
int
144+
rstrdate (char*str,Date*d)
145+
{
146+
return0;
147+
}
148+
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
int
2+
rfmtlong(longlvalue,char*format,char*outbuf)
3+
{
4+
return0;
5+
}
6+
7+
int
8+
rgetmsg(intmsgnum,char*s,intmaxsize)
9+
{
10+
return0;
11+
}
12+
13+
int
14+
risnull(intvtype,char*pcvar)
15+
{
16+
return0;
17+
}
18+
19+
int
20+
rsetnull(intvtype,char*pcvar)
21+
{
22+
return0;
23+
}
24+
25+
int
26+
rtypalign(intoffset,inttype)
27+
{
28+
return0;
29+
}
30+
31+
int
32+
rtypmsize(inttype,mintlen)
33+
{
34+
return0;
35+
}
36+
37+
void
38+
rupshift(char*s)
39+
{
40+
return;
41+
}
42+
43+
44+

‎src/interfaces/ecpg/pgtypeslib/numeric.c

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include"extern.h"
1111
#include"numeric.h"
1212
#include"pgtypes_error.h"
13+
#include"decimal.h"
1314

1415
#defineMax(x,y) ((x) > (y) ? (x) : (y))
1516
#defineMin(x,y) ((x) < (y) ? (x) : (y))
@@ -1040,9 +1041,6 @@ select_div_scale(NumericVar *var1, NumericVar *var2, int *rscale)
10401041
* NUMERIC_MIN_SIG_DIGITS significant digits, so that numeric gives a
10411042
* result no less accurate than float8; but use a scale not less than
10421043
* either input's display scale.
1043-
*
1044-
* The result scale is NUMERIC_EXTRA_DIGITS more than the display scale,
1045-
* to provide some guard digits in the calculation.
10461044
*/
10471045

10481046
/* Get the actual (normalized) weight and first digit of each input */
@@ -1087,19 +1085,11 @@ select_div_scale(NumericVar *var1, NumericVar *var2, int *rscale)
10871085
res_dscale=Min(res_dscale,NUMERIC_MAX_DISPLAY_SCALE);
10881086

10891087
/* Select result scale */
1090-
*rscale=res_rscale=res_dscale+NUMERIC_EXTRA_DIGITS;
1088+
*rscale=res_rscale=res_dscale+4;
10911089

10921090
returnres_dscale;
10931091
}
10941092

1095-
1096-
/* ----------
1097-
* div_var() -
1098-
*
1099-
*Division on variable level. Accuracy of result is determined by
1100-
*global_rscale.
1101-
* ----------
1102-
*/
11031093
int
11041094
PGTYPESnumeric_div(NumericVar*var1,NumericVar*var2,NumericVar*result)
11051095
{

‎src/interfaces/ecpg/pgtypeslib/timestamp.c

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include"extern.h"
1414
#include"pgtypes_error.h"
1515
#include"pgtypes_timestamp.h"
16+
#include"datetime.h"
1617

1718
#ifdefHAVE_INT64_TIMESTAMP
1819
staticint64
@@ -354,3 +355,39 @@ PGTYPEStimestamp_ttoa(Timestamp tstamp)
354355
returnpgtypes_strdup(buf);
355356
}
356357

358+
void
359+
dtcurrent (Timestamp*ts)
360+
{
361+
return;
362+
}
363+
364+
int
365+
dtcvasc (char*str,Timestamp*ts)
366+
{
367+
return0;
368+
}
369+
370+
int
371+
dtsub (Timestamp*ts1,Timestamp*ts2,Timestamp*iv)
372+
{
373+
return0;
374+
}
375+
376+
int
377+
dttoasc (Timestamp*ts,char*output)
378+
{
379+
return0;
380+
}
381+
382+
int
383+
dttofmtasc (Timestamp*ts,char*output,intstr_len,char*fmtstr)
384+
{
385+
return0;
386+
}
387+
388+
int
389+
intoasc(Timestamp*i,char*str)
390+
{
391+
return0;
392+
}
393+

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp