Hi, please apply patch below to correct the EXEC SQL CREATE SCHEMA
construct in ECPG. Currently (versions 7.3.x, 7.4) the preprocessor
emmits "create scheme" in error, rather than "create schema".

A workaround also exists for those who require it (but I guess no-one
apart from me does since it's went unreported through 7.3), rather
than (checking omitted):

 EXEC SQL CREATE SCHEMA foo;

you can use:

 EXEC SQL BEGIN DECLARE SECTION;
 char l_cmd[50];
 EXEC SQL END DECLARE SECTION;

 snprintf(l_cmd, sizeof(l_cmd), "CREATE SCHEMA foo");
 EXEC SQL EXECUTE IMMEDIATE :l_cmd;

Thanks, L.

*** src/interfaces/ecpg/preproc/preproc.y.orig  2003-11-19 10:52:25.000000000 +0000
--- src/interfaces/ecpg/preproc/preproc.y       2003-11-19 10:52:30.000000000 +0000
***************
*** 966,974 ****
   *****************************************************************************/
  
  CreateSchemaStmt:  CREATE SCHEMA UserId OptSchemaName AUTHORIZATION UserId 
OptSchemaEltList
!                       { $$ = cat_str(6, make_str("create scheme"), $3, $4, 
make_str("authorization"), $6, $7); }
                | CREATE SCHEMA ColId OptSchemaEltList
!                       { $$ = cat_str(3, make_str("create scheme"), $3, $4); }
                ;
  
  OptSchemaName: ColId          { $$ = $1; }
--- 966,974 ----
   *****************************************************************************/
  
  CreateSchemaStmt:  CREATE SCHEMA UserId OptSchemaName AUTHORIZATION UserId 
OptSchemaEltList
!                       { $$ = cat_str(6, make_str("create schema"), $3, $4, 
make_str("authorization"), $6, $7); }
                | CREATE SCHEMA ColId OptSchemaEltList
!                       { $$ = cat_str(3, make_str("create schema"), $3, $4); }
                ;
  
  OptSchemaName: ColId          { $$ = $1; }
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to