mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-04 00:02:52 -05:00 
			
		
		
		
	Fix descriptor output in ECPG.
While working on most platforms the old way sometimes created alignment problems. This should fix it. Also the regresion tests were updated to test for the reported case. Report and fix by MauMau <maumau307@gmail.com>
This commit is contained in:
		
							parent
							
								
									c945af80cf
								
							
						
					
					
						commit
						d685e24249
					
				@ -368,7 +368,7 @@ ECPGdump_a_simple(FILE *o, const char *name, enum ECPGttype type,
 | 
				
			|||||||
		fprintf(o, "\n\tECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ");
 | 
							fprintf(o, "\n\tECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ");
 | 
				
			||||||
	else if (type == ECPGt_descriptor)
 | 
						else if (type == ECPGt_descriptor)
 | 
				
			||||||
		/* remember that name here already contains quotes (if needed) */
 | 
							/* remember that name here already contains quotes (if needed) */
 | 
				
			||||||
		fprintf(o, "\n\tECPGt_descriptor, %s, 0L, 0L, 0L, ", name);
 | 
							fprintf(o, "\n\tECPGt_descriptor, %s, 1L, 1L, 1L, ", name);
 | 
				
			||||||
	else if (type == ECPGt_sqlda)
 | 
						else if (type == ECPGt_sqlda)
 | 
				
			||||||
		fprintf(o, "\n\tECPGt_sqlda, &%s, 0L, 0L, 0L, ", name);
 | 
							fprintf(o, "\n\tECPGt_sqlda, &%s, 0L, 0L, 0L, ", name);
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
 | 
				
			|||||||
@ -174,12 +174,12 @@ if (sqlca.sqlcode < 0) exit (1);}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	strcpy(msg, "describe");
 | 
						strcpy(msg, "describe");
 | 
				
			||||||
	{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id1",
 | 
						{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id1",
 | 
				
			||||||
	ECPGt_descriptor, "desc1", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "desc1", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
				
			||||||
#line 60 "describe.pgc"
 | 
					#line 60 "describe.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id1",
 | 
						{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id1",
 | 
				
			||||||
	ECPGt_descriptor, "desc2", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "desc2", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
				
			||||||
#line 61 "describe.pgc"
 | 
					#line 61 "describe.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -336,12 +336,12 @@ if (sqlca.sqlcode < 0) exit (1);}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	strcpy(msg, "describe");
 | 
						strcpy(msg, "describe");
 | 
				
			||||||
	{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id2",
 | 
						{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id2",
 | 
				
			||||||
	ECPGt_descriptor, "desc1", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "desc1", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
				
			||||||
#line 146 "describe.pgc"
 | 
					#line 146 "describe.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id2",
 | 
						{ ECPGdescribe(__LINE__, 1, 0, NULL, "st_id2",
 | 
				
			||||||
	ECPGt_descriptor, "desc2", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "desc2", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
				
			||||||
#line 147 "describe.pgc"
 | 
					#line 147 "describe.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -134,7 +134,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo1", 
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo1", 
 | 
				
			||||||
	ECPGt_descriptor, "indesc", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "indesc", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
#line 35 "desc.pgc"
 | 
					#line 35 "desc.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -161,7 +161,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo1", 
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo1", 
 | 
				
			||||||
	ECPGt_descriptor, "indesc", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "indesc", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
#line 40 "desc.pgc"
 | 
					#line 40 "desc.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -188,7 +188,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "Foo-1", 
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "Foo-1", 
 | 
				
			||||||
	ECPGt_descriptor, "indesc", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "indesc", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
#line 45 "desc.pgc"
 | 
					#line 45 "desc.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -222,9 +222,9 @@ if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo2", 
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo2", 
 | 
				
			||||||
	ECPGt_descriptor, "indesc", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "indesc", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, 
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, 
 | 
				
			||||||
	ECPGt_descriptor, "outdesc", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "outdesc", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
 | 
				
			||||||
#line 52 "desc.pgc"
 | 
					#line 52 "desc.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -248,7 +248,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			|||||||
	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare c1 cursor for $1", 
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare c1 cursor for $1", 
 | 
				
			||||||
	ECPGt_char_variable,(ECPGprepared_statement(NULL, "foo2", __LINE__)),(long)1,(long)1,(1)*sizeof(char), 
 | 
						ECPGt_char_variable,(ECPGprepared_statement(NULL, "foo2", __LINE__)),(long)1,(long)1,(1)*sizeof(char), 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, 
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, 
 | 
				
			||||||
	ECPGt_descriptor, "indesc", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "indesc", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
#line 58 "desc.pgc"
 | 
					#line 58 "desc.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -298,7 +298,7 @@ if (sqlca.sqlcode < 0) sqlprint();}
 | 
				
			|||||||
	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare c2 cursor for $1", 
 | 
						{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare c2 cursor for $1", 
 | 
				
			||||||
	ECPGt_char_variable,(ECPGprepared_statement(NULL, "foo3", __LINE__)),(long)1,(long)1,(1)*sizeof(char), 
 | 
						ECPGt_char_variable,(ECPGprepared_statement(NULL, "foo3", __LINE__)),(long)1,(long)1,(1)*sizeof(char), 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, 
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, 
 | 
				
			||||||
	ECPGt_descriptor, "indesc", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "indesc", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
 | 
				
			||||||
#line 70 "desc.pgc"
 | 
					#line 70 "desc.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -172,12 +172,12 @@ if (sqlca.sqlcode < 0) exit (1);}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	strcpy(msg, "describe");
 | 
						strcpy(msg, "describe");
 | 
				
			||||||
	{ ECPGdescribe(__LINE__, 0, 0, NULL, "st_id1",
 | 
						{ ECPGdescribe(__LINE__, 0, 0, NULL, "st_id1",
 | 
				
			||||||
	ECPGt_descriptor, "desc1", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "desc1", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
				
			||||||
#line 60 "describe.pgc"
 | 
					#line 60 "describe.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ ECPGdescribe(__LINE__, 0, 0, NULL, "st_id1",
 | 
						{ ECPGdescribe(__LINE__, 0, 0, NULL, "st_id1",
 | 
				
			||||||
	ECPGt_descriptor, "desc2", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "desc2", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
				
			||||||
#line 61 "describe.pgc"
 | 
					#line 61 "describe.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -334,12 +334,12 @@ if (sqlca.sqlcode < 0) exit (1);}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	strcpy(msg, "describe");
 | 
						strcpy(msg, "describe");
 | 
				
			||||||
	{ ECPGdescribe(__LINE__, 0, 0, NULL, "st_id2",
 | 
						{ ECPGdescribe(__LINE__, 0, 0, NULL, "st_id2",
 | 
				
			||||||
	ECPGt_descriptor, "desc1", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "desc1", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
				
			||||||
#line 146 "describe.pgc"
 | 
					#line 146 "describe.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ ECPGdescribe(__LINE__, 0, 0, NULL, "st_id2",
 | 
						{ ECPGdescribe(__LINE__, 0, 0, NULL, "st_id2",
 | 
				
			||||||
	ECPGt_descriptor, "desc2", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "desc2", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
 | 
				
			||||||
#line 147 "describe.pgc"
 | 
					#line 147 "describe.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -210,7 +210,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );
 | 
				
			|||||||
#line 41 "dynalloc.pgc"
 | 
					#line 41 "dynalloc.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select a , b , c , d , e , f , g , h , i from test order by a", ECPGt_EOIT, 
 | 
					   { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select a , b , c , d , e , f , g , h , i from test order by a", ECPGt_EOIT, 
 | 
				
			||||||
	ECPGt_descriptor, "mydesc", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "mydesc", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
 | 
				
			||||||
#line 42 "dynalloc.pgc"
 | 
					#line 42 "dynalloc.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -188,7 +188,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );
 | 
				
			|||||||
#line 32 "dynalloc2.pgc"
 | 
					#line 32 "dynalloc2.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select * from test", ECPGt_EOIT, 
 | 
					   { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select * from test", ECPGt_EOIT, 
 | 
				
			||||||
	ECPGt_descriptor, "mydesc", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "mydesc", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
 | 
				
			||||||
#line 33 "dynalloc2.pgc"
 | 
					#line 33 "dynalloc2.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -273,7 +273,7 @@ if (sqlca.sqlcode < 0) error ( );}
 | 
				
			|||||||
  while (1)
 | 
					  while (1)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch in MYCURS", ECPGt_EOIT, 
 | 
					      { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch in MYCURS", ECPGt_EOIT, 
 | 
				
			||||||
	ECPGt_descriptor, "MYDESC", 0L, 0L, 0L, 
 | 
						ECPGt_descriptor, "MYDESC", 1L, 1L, 1L, 
 | 
				
			||||||
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
 | 
						ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
 | 
				
			||||||
#line 64 "dyntest.pgc"
 | 
					#line 64 "dyntest.pgc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user