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

Commit9a4880a

Browse files
author
Michael Meskes
committed
Do not use the variable name when defining a varchar structure in ecpg.
With a unique counter being added anyway, there is no need anymore to have the variable name listed, too.
1 parent2132076 commit9a4880a

File tree

8 files changed

+29
-37
lines changed

8 files changed

+29
-37
lines changed

‎src/interfaces/ecpg/preproc/ecpg.trailer

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -877,8 +877,8 @@ variable: opt_pointer ECPGColLabel opt_array_bounds opt_bit_field opt_initialize
877877
mmerror(PARSE_ERROR, ET_ERROR, "pointers to varchar are not implemented");
878878

879879
/* make sure varchar struct name is unique by adding a unique counter to its definition */
880-
vcn = (char *) mm_alloc(strlen($2) +sizeof(int) * CHAR_BIT * 10 / 3);
881-
sprintf(vcn, "%s_%d", $2, varchar_counter);
880+
vcn = (char *) mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3);
881+
sprintf(vcn, "%d", varchar_counter);
882882
if (strcmp(dimension, "0") == 0)
883883
$$ = cat_str(7, make2_str(mm_strdup(" struct varchar_"), vcn), mm_strdup(" { int len; char arr["), mm_strdup(length), mm_strdup("]; } *"), mm_strdup($2), $4, $5);
884884
else

‎src/interfaces/ecpg/preproc/type.c

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -375,8 +375,6 @@ ECPGdump_a_simple(FILE *o, const char *name, enum ECPGttype type,
375375
{
376376
char*variable= (char*)mm_alloc(strlen(name)+ ((prefix==NULL) ?0 :strlen(prefix))+4);
377377
char*offset= (char*)mm_alloc(strlen(name)+strlen("sizeof(struct varchar_)")+1+strlen(varcharsize)+sizeof(int)*CHAR_BIT*10 /3);
378-
char*var_name,
379-
*ptr;
380378

381379
switch (type)
382380
{
@@ -398,16 +396,11 @@ ECPGdump_a_simple(FILE *o, const char *name, enum ECPGttype type,
398396
else
399397
sprintf(variable,"&(%s%s)",prefix ?prefix :"",name);
400398

401-
/* remove trailing [] is name is array element */
402-
var_name=mm_strdup(name);
403-
ptr=strchr(var_name,'[');
404-
if (ptr)
405-
*ptr='\0';
399+
/* If we created a varchar structure atomatically, counter is greater than 0. */
406400
if (counter)
407-
sprintf(offset,"sizeof(struct varchar_%s_%d)",var_name,counter);
401+
sprintf(offset,"sizeof(struct varchar_%d)",counter);
408402
else
409-
sprintf(offset,"sizeof(struct varchar_%s)",var_name);
410-
free(var_name);
403+
sprintf(offset,"sizeof(struct varchar)");
411404
break;
412405
caseECPGt_char:
413406
caseECPGt_unsigned_char:

‎src/interfaces/ecpg/preproc/type.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ struct ECPGtype
3636
/* Everything is malloced. */
3737
voidECPGmake_struct_member(char*,structECPGtype*,structECPGstruct_member**);
3838
structECPGtype*ECPGmake_simple_type(enumECPGttype,char*,int);
39-
structECPGtype*ECPGmake_varchar_type(enumECPGttype,long);
4039
structECPGtype*ECPGmake_array_type(structECPGtype*,char*);
4140
structECPGtype*ECPGmake_struct_type(structECPGstruct_member*,enumECPGttype,char*,char*);
4241
structECPGstruct_member*ECPGstruct_member_dup(structECPGstruct_member*);

‎src/interfaces/ecpg/test/expected/preproc-array_of_struct.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
typedefstruct {
3434
#line 12 "array_of_struct.pgc"
35-
structvarchar_name_1 {intlen;chararr[50 ]; }name ;
35+
structvarchar_1 {intlen;chararr[50 ]; }name ;
3636

3737
#line 13 "array_of_struct.pgc"
3838
intphone ;
@@ -61,7 +61,7 @@ int main()
6161

6262
typedefstruct {
6363
#line 30 "array_of_struct.pgc"
64-
structvarchar_name_2 {intlen;chararr[50 ]; }name ;
64+
structvarchar_2 {intlen;chararr[50 ]; }name ;
6565

6666
#line 31 "array_of_struct.pgc"
6767
intphone ;
@@ -95,7 +95,7 @@ int main()
9595
#line 38 "array_of_struct.pgc"
9696
structcustomer3 {
9797
#line 36 "array_of_struct.pgc"
98-
structvarchar_name_3 {intlen;chararr[50 ]; }name ;
98+
structvarchar_3 {intlen;chararr[50 ]; }name ;
9999

100100
#line 37 "array_of_struct.pgc"
101101
intphone ;
@@ -104,7 +104,7 @@ int main()
104104
#line 43 "array_of_struct.pgc"
105105
structcustomer4 {
106106
#line 41 "array_of_struct.pgc"
107-
structvarchar_name_4 {intlen;chararr[50 ]; }name ;
107+
structvarchar_4 {intlen;chararr[50 ]; }name ;
108108

109109
#line 42 "array_of_struct.pgc"
110110
intphone ;
@@ -114,7 +114,7 @@ int main()
114114
intr ;
115115

116116
#line 45 "array_of_struct.pgc"
117-
structvarchar_onlyname_5 {intlen;chararr[50 ]; }onlyname [2 ] ;
117+
structvarchar_5 {intlen;chararr[50 ]; }onlyname [2 ] ;
118118
/* exec sql end declare section */
119119
#line 46 "array_of_struct.pgc"
120120

@@ -235,7 +235,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
235235
}
236236

237237
{ECPGdo(__LINE__,0,1,NULL,0,ECPGst_normal,"select * from customers limit 1",ECPGt_EOIT,
238-
ECPGt_varchar,&(custs4.name),(long)50,(long)1,sizeof(structvarchar_name_4),
238+
ECPGt_varchar,&(custs4.name),(long)50,(long)1,sizeof(structvarchar_4),
239239
ECPGt_short,&(inds[0].name_ind),(long)1,(long)1,sizeof(short),
240240
ECPGt_int,&(custs4.phone),(long)1,(long)1,sizeof(int),
241241
ECPGt_short,&(inds[0].phone_ind),(long)1,(long)1,sizeof(short),ECPGt_EORT);
@@ -255,7 +255,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
255255
printf("phone - %d\n",custs4.phone );
256256

257257
{ECPGdo(__LINE__,0,1,NULL,0,ECPGst_normal,"select c from customers limit 2",ECPGt_EOIT,
258-
ECPGt_varchar,(onlyname),(long)50,(long)2,sizeof(structvarchar_onlyname_5),
258+
ECPGt_varchar,(onlyname),(long)50,(long)2,sizeof(structvarchar_5),
259259
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,ECPGt_EORT);
260260
#line 85 "array_of_struct.pgc"
261261

‎src/interfaces/ecpg/test/expected/preproc-cursor.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ main (void)
7575
char*curname3=CURNAME ;
7676

7777
#line 27 "cursor.pgc"
78-
structvarchar_curname4_1 {intlen;chararr[50 ]; }curname4 ;
78+
structvarchar_1 {intlen;chararr[50 ]; }curname4 ;
7979

8080
#line 28 "cursor.pgc"
8181
char*curname5=CURNAME ;
@@ -664,7 +664,7 @@ if (sqlca.sqlcode < 0) exit (1);}
664664

665665
strcpy(msg,"open");
666666
{ECPGdo(__LINE__,0,1,"test1",0,ECPGst_normal,"declare $0 cursor for $1",
667-
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_curname4_1),
667+
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_1),
668668
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,
669669
ECPGt_char_variable,(ECPGprepared_statement("test1","st_id2",__LINE__)),(long)1,(long)1,(1)*sizeof(char),
670670
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,ECPGt_EOIT,ECPGt_EORT);
@@ -676,7 +676,7 @@ if (sqlca.sqlcode < 0) exit (1);}
676676

677677
strcpy(msg,"fetch from");
678678
{ECPGdo(__LINE__,0,1,"test1",0,ECPGst_normal,"fetch from $0",
679-
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_curname4_1),
679+
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_1),
680680
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,ECPGt_EOIT,
681681
ECPGt_int,&(id),(long)1,(long)1,sizeof(int),
682682
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,
@@ -691,7 +691,7 @@ if (sqlca.sqlcode < 0) exit (1);}
691691

692692
strcpy(msg,"fetch");
693693
{ECPGdo(__LINE__,0,1,"test1",0,ECPGst_normal,"fetch $0",
694-
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_curname4_1),
694+
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_1),
695695
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,ECPGt_EOIT,
696696
ECPGt_int,&(id),(long)1,(long)1,sizeof(int),
697697
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,
@@ -706,7 +706,7 @@ if (sqlca.sqlcode < 0) exit (1);}
706706

707707
strcpy(msg,"fetch 1 from");
708708
{ECPGdo(__LINE__,0,1,"test1",0,ECPGst_normal,"fetch 1 from $0",
709-
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_curname4_1),
709+
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_1),
710710
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,ECPGt_EOIT,
711711
ECPGt_int,&(id),(long)1,(long)1,sizeof(int),
712712
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,
@@ -724,7 +724,7 @@ if (sqlca.sqlcode < 0) exit (1);}
724724
{ECPGdo(__LINE__,0,1,"test1",0,ECPGst_normal,"fetch $0 from $0",
725725
ECPGt_int,&(count),(long)1,(long)1,sizeof(int),
726726
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,
727-
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_curname4_1),
727+
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_1),
728728
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,ECPGt_EOIT,
729729
ECPGt_int,&(id),(long)1,(long)1,sizeof(int),
730730
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,
@@ -739,7 +739,7 @@ if (sqlca.sqlcode < 0) exit (1);}
739739

740740
strcpy(msg,"move");
741741
{ECPGdo(__LINE__,0,1,"test1",0,ECPGst_normal,"move absolute 0 $0",
742-
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_curname4_1),
742+
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_1),
743743
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,ECPGt_EOIT,ECPGt_EORT);
744744
#line 226 "cursor.pgc"
745745

@@ -749,7 +749,7 @@ if (sqlca.sqlcode < 0) exit (1);}
749749

750750
strcpy(msg,"fetch 1");
751751
{ECPGdo(__LINE__,0,1,"test1",0,ECPGst_normal,"fetch 1 $0",
752-
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_curname4_1),
752+
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_1),
753753
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,ECPGt_EOIT,
754754
ECPGt_int,&(id),(long)1,(long)1,sizeof(int),
755755
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,
@@ -767,7 +767,7 @@ if (sqlca.sqlcode < 0) exit (1);}
767767
{ECPGdo(__LINE__,0,1,"test1",0,ECPGst_normal,"fetch $0 $0",
768768
ECPGt_int,&(count),(long)1,(long)1,sizeof(int),
769769
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,
770-
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_curname4_1),
770+
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_1),
771771
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,ECPGt_EOIT,
772772
ECPGt_int,&(id),(long)1,(long)1,sizeof(int),
773773
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,
@@ -782,7 +782,7 @@ if (sqlca.sqlcode < 0) exit (1);}
782782

783783
strcpy(msg,"close");
784784
{ECPGdo(__LINE__,0,1,"test1",0,ECPGst_normal,"close $0",
785-
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_curname4_1),
785+
ECPGt_varchar,&(curname4),(long)50,(long)1,sizeof(structvarchar_1),
786786
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,ECPGt_EOIT,ECPGt_EORT);
787787
#line 238 "cursor.pgc"
788788

‎src/interfaces/ecpg/test/expected/preproc-type.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ main (void)
9393
cptr=NULL ;
9494

9595
#line 36 "type.pgc"
96-
structvarchar_vc {
96+
structvarchar {
9797
#line 34 "type.pgc"
9898
intlen ;
9999

@@ -150,7 +150,7 @@ main (void)
150150
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,
151151
ECPGt_char,&(ptr),(long)0,(long)1,(1)*sizeof(char),
152152
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,
153-
ECPGt_varchar,&(vc),(long)10,(long)1,sizeof(structvarchar_vc),
153+
ECPGt_varchar,&(vc),(long)10,(long)1,sizeof(structvarchar),
154154
ECPGt_NO_INDICATOR,NULL ,0L,0L,0L,ECPGt_EORT);}
155155
#line 68 "type.pgc"
156156

‎src/interfaces/ecpg/test/expected/preproc-variable.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ main (void)
7575
#line 27 "variable.pgc"
7676
structpersonal_struct {
7777
#line 25 "variable.pgc"
78-
structvarchar_name_1 {intlen;chararr[BUFFERSIZ ]; }name ;
78+
structvarchar_1 {intlen;chararr[BUFFERSIZ ]; }name ;
7979

8080
#line 26 "variable.pgc"
8181
structbirthinfobirth ;
@@ -94,10 +94,10 @@ main (void)
9494
indind_children ;
9595
structt1 {
9696
#line 32 "variable.pgc"
97-
structvarchar_name_2 {intlen;chararr[BUFFERSIZ ]; }name ;
97+
structvarchar_2 {intlen;chararr[BUFFERSIZ ]; }name ;
9898
} ;structt2 {
9999
#line 32 "variable.pgc"
100-
structvarchar_name_3 {intlen;chararr[BUFFERSIZ ]; }name ;
100+
structvarchar_3 {intlen;chararr[BUFFERSIZ ]; }name ;
101101
} ;/* exec sql end declare section */
102102
#line 33 "variable.pgc"
103103

@@ -207,7 +207,7 @@ if (sqlca.sqlcode < 0) exit (1);}
207207
while (1) {
208208
strcpy(msg,"fetch");
209209
{ECPGdo(__LINE__,0,1,NULL,0,ECPGst_normal,"fetch cur",ECPGt_EOIT,
210-
ECPGt_varchar,&(p->name),(long)BUFFERSIZ,(long)1,sizeof(structvarchar_name_1),
210+
ECPGt_varchar,&(p->name),(long)BUFFERSIZ,(long)1,sizeof(structvarchar_1),
211211
ECPGt_int,&(i->ind_name),(long)1,(long)1,sizeof(int),
212212
ECPGt_long,&(p->birth.born),(long)1,(long)1,sizeof(long),
213213
ECPGt_long,&(i->ind_birth.born),(long)1,(long)1,sizeof(long),

‎src/interfaces/ecpg/test/preproc/type.pgc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ main (void)
2929
struct TBempl empl;
3030
string str;
3131
c ptr = NULL;
32-
structvarchar_vc
32+
structvarchar
3333
{
3434
int len;
3535
char text[10];

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp