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

Commit8902aaa

Browse files
author
Michael Meskes
committed
Fixed fetch into char * and added missing prototype for an Informix function.
1 parent4d9eede commit8902aaa

File tree

5 files changed

+85
-86
lines changed

5 files changed

+85
-86
lines changed

‎src/interfaces/ecpg/ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1496,6 +1496,11 @@ Sun Jun 15 11:18:58 CEST 2003
14961496
Tue Jun 17 08:45:14 CEST 2003
14971497

14981498
- Fixed several parsing bugs.
1499+
1500+
Thu Jun 19 10:08:26 CEST 2003
1501+
1502+
- Added missing rdayofweek function for Informix compatibility.
1503+
- Fixed fetch into char pointer.
14991504
- Set ecpg version to 3.0.0
15001505
- Set ecpg library to 4.0.0
15011506
- Set pgtypes library to 1.0.0

‎src/interfaces/ecpg/compatlib/informix.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,12 @@ rmdyjul (short mdy[3], Date *d)
343343
return0;
344344
}
345345

346+
int
347+
rdayofweek(Dated)
348+
{
349+
return(PGTYPESdate_dayofweek(d));
350+
}
351+
346352
/* And the datetime stuff */
347353

348354
void

‎src/interfaces/ecpg/ecpglib/data.c

Lines changed: 71 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.5 2003/06/15 04:07:58 momjian Exp $ */
1+
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.6 2003/06/19 09:52:11 meskes Exp $ */
22

33
#definePOSTGRES_ECPG_INTERNAL
44
#include"postgres_fe.h"
@@ -100,11 +100,11 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
100100
switch (type)
101101
{
102102
longres;
103-
unsigned longures;
103+
unsigned longures;
104104
doubledres;
105-
char*scan_length;
106-
Numeric*nres;
107-
Dateddres;
105+
char*scan_length;
106+
Numeric*nres;
107+
Dateddres;
108108
Timestamptres;
109109
Interval*ires;
110110

@@ -300,37 +300,45 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
300300
caseECPGt_char:
301301
caseECPGt_unsigned_char:
302302
{
303-
strncpy((char*) ((long)var+offset*act_tuple),pval,varcharsize);
304-
if (varcharsize&&varcharsize<strlen(pval))
303+
if (varcharsize==0)
304+
{
305+
strncpy((char*) ((long)var+offset*act_tuple),pval,strlen(pval));
306+
}
307+
else
305308
{
306-
/* truncation */
307-
switch (ind_type)
309+
strncpy((char*) ((long)var+offset*act_tuple),pval,varcharsize);
310+
311+
if (varcharsize<strlen(pval))
308312
{
309-
caseECPGt_short:
310-
caseECPGt_unsigned_short:
311-
/*((short *) ind)[act_tuple] = strlen(pval);*/
312-
*((short*) (ind+ind_offset*act_tuple))=strlen(pval);
313-
break;
314-
caseECPGt_int:
315-
caseECPGt_unsigned_int:
316-
/*((int *) ind)[act_tuple] = strlen(pval);*/
317-
*((int*) (ind+ind_offset*act_tuple))=strlen(pval);
318-
break;
319-
caseECPGt_long:
320-
caseECPGt_unsigned_long:
321-
/*((long *) ind)[act_tuple] = strlen(pval);*/
322-
*((long*) (ind+ind_offset*act_tuple))=strlen(pval);
323-
break;
313+
/* truncation */
314+
switch (ind_type)
315+
{
316+
caseECPGt_short:
317+
caseECPGt_unsigned_short:
318+
/*((short *) ind)[act_tuple] = strlen(pval);*/
319+
*((short*) (ind+ind_offset*act_tuple))=strlen(pval);
320+
break;
321+
caseECPGt_int:
322+
caseECPGt_unsigned_int:
323+
/*((int *) ind)[act_tuple] = strlen(pval);*/
324+
*((int*) (ind+ind_offset*act_tuple))=strlen(pval);
325+
break;
326+
caseECPGt_long:
327+
caseECPGt_unsigned_long:
328+
/*((long *) ind)[act_tuple] = strlen(pval);*/
329+
*((long*) (ind+ind_offset*act_tuple))=strlen(pval);
330+
break;
324331
#ifdefHAVE_LONG_LONG_INT_64
325-
caseECPGt_long_long:
326-
caseECPGt_unsigned_long_long:
327-
*((long longint*) (ind+ind_offset*act_tuple))=strlen(pval);
328-
break;
332+
caseECPGt_long_long:
333+
caseECPGt_unsigned_long_long:
334+
*((long longint*) (ind+ind_offset*act_tuple))=strlen(pval);
335+
break;
329336
#endif/* HAVE_LONG_LONG_INT_64 */
330-
default:
331-
break;
337+
default:
338+
break;
339+
}
340+
sqlca->sqlwarn[0]=sqlca->sqlwarn[1]='W';
332341
}
333-
sqlca->sqlwarn[0]=sqlca->sqlwarn[1]='W';
334342
}
335343
}
336344
break;
@@ -342,42 +350,46 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
342350

343351
variable->len=strlen(pval);
344352
if (varcharsize==0)
353+
{
345354
strncpy(variable->arr,pval,variable->len);
355+
}
346356
else
357+
{
347358
strncpy(variable->arr,pval,varcharsize);
348359

349-
if (varcharsize>0&&variable->len>varcharsize)
350-
{
351-
/* truncation */
352-
switch (ind_type)
360+
if (variable->len>varcharsize)
353361
{
354-
caseECPGt_short:
355-
caseECPGt_unsigned_short:
356-
/*((short *) ind)[act_tuple] = variable->len;*/
357-
*((short*) (ind+offset*act_tuple))=variable->len;
358-
break;
359-
caseECPGt_int:
360-
caseECPGt_unsigned_int:
361-
/*((int *) ind)[act_tuple] = variable->len;*/
362-
*((int*) (ind+offset*act_tuple))=variable->len;
363-
break;
364-
caseECPGt_long:
365-
caseECPGt_unsigned_long:
366-
/*((long *) ind)[act_tuple] = variable->len;*/
367-
*((long*) (ind+offset*act_tuple))=variable->len;
368-
break;
362+
/* truncation */
363+
switch (ind_type)
364+
{
365+
caseECPGt_short:
366+
caseECPGt_unsigned_short:
367+
/*((short *) ind)[act_tuple] = variable->len;*/
368+
*((short*) (ind+offset*act_tuple))=variable->len;
369+
break;
370+
caseECPGt_int:
371+
caseECPGt_unsigned_int:
372+
/*((int *) ind)[act_tuple] = variable->len;*/
373+
*((int*) (ind+offset*act_tuple))=variable->len;
374+
break;
375+
caseECPGt_long:
376+
caseECPGt_unsigned_long:
377+
/*((long *) ind)[act_tuple] = variable->len;*/
378+
*((long*) (ind+offset*act_tuple))=variable->len;
379+
break;
369380
#ifdefHAVE_LONG_LONG_INT_64
370-
caseECPGt_long_long:
371-
caseECPGt_unsigned_long_long:
372-
*((long longint*) (ind+ind_offset*act_tuple))=variable->len;
373-
break;
381+
caseECPGt_long_long:
382+
caseECPGt_unsigned_long_long:
383+
*((long longint*) (ind+ind_offset*act_tuple))=variable->len;
384+
break;
374385
#endif/* HAVE_LONG_LONG_INT_64 */
375-
default:
376-
break;
377-
}
378-
sqlca->sqlwarn[0]=sqlca->sqlwarn[1]='W';
386+
default:
387+
break;
388+
}
389+
sqlca->sqlwarn[0]=sqlca->sqlwarn[1]='W';
379390

380-
variable->len=varcharsize;
391+
variable->len=varcharsize;
392+
}
381393
}
382394
}
383395
break;

‎src/interfaces/ecpg/pgtypeslib/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
# Copyright (c) 1994, Regents of the University of California
66
#
7-
# $Header: /cvsroot/pgsql/src/interfaces/ecpg/pgtypeslib/Makefile,v 1.7 2003/05/10 02:05:50 momjian Exp $
7+
# $Header: /cvsroot/pgsql/src/interfaces/ecpg/pgtypeslib/Makefile,v 1.8 2003/06/19 09:52:11 meskes Exp $
88
#
99
#-------------------------------------------------------------------------
1010

@@ -16,7 +16,7 @@ NAME= pgtypes
1616
SO_MAJOR_VERSION= 1
1717
SO_MINOR_VERSION= 0.0
1818

19-
overrideCPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include -I$(top_srcdir)/src/include/utils$(CPPFLAGS)
19+
overrideCPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include -I$(top_srcdir)/src/include/utils$(CPPFLAGS) -g
2020

2121
OBJS= numeric.o datetime.o common.o dt_common.o timestamp.o interval.o\
2222
$(filter rint.o,$(LIBOBJS))

‎src/interfaces/ecpg/preproc/preproc.y

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.233 2003/06/17 07:28:22 meskes Exp $*/
1+
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.234 2003/06/19 09:52:11 meskes Exp $*/
22

33
/* Copyright comment*/
44
%{
@@ -5048,30 +5048,6 @@ variable: opt_pointer ECPGColLabelCommon opt_array_bounds opt_initializer
50485048
$$ = cat_str(4,$1, mm_strdup($2),$3.str,$4);
50495049
break;
50505050

5051-
/*case ECPGt_numeric:
5052-
if (atoi(dimension) < 0)
5053-
type = ECPGmake_simple_type(actual_type[struct_level].type_enum, length);
5054-
else
5055-
type = ECPGmake_array_type(ECPGmake_simple_type(actual_type[struct_level].type_enum, length), dimension);
5056-
5057-
if (atoi(dimension) < 0)
5058-
$$ = cat_str(4, mm_strdup(actual_storage[struct_level]), make_str("Numeric"), mm_strdup($2), $4);
5059-
else
5060-
$$ = cat_str(5, mm_strdup(actual_storage[struct_level]), make_str("Numeric"), mm_strdup($2), mm_strdup(dim), $4);
5061-
break;
5062-
5063-
case ECPGt_interval:
5064-
if (atoi(dimension) < 0)
5065-
type = ECPGmake_simple_type(actual_type[struct_level].type_enum, length);
5066-
else
5067-
type = ECPGmake_array_type(ECPGmake_simple_type(actual_type[struct_level].type_enum, length), dimension);
5068-
5069-
if (atoi(dimension) < 0)
5070-
$$ = cat_str(4, mm_strdup(actual_storage[struct_level]), make_str("Interval"), mm_strdup($2), $4);
5071-
else
5072-
$$ = cat_str(5, mm_strdup(actual_storage[struct_level]), make_str("Interval"), mm_strdup($2), mm_strdup(dim), $4);
5073-
break;*/
5074-
50755051
default:
50765052
if (atoi(dimension) <0)
50775053
type = ECPGmake_simple_type(actual_type[struct_level].type_enum, make_str("1"));

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp