*** ecpg.sgml Wed Jul 29 08:57:13 1998 --- /home/postgres/pg-mm/ecpg.sgml Fri Sep 18 09:10:29 1998 *************** *** 45,59 **** from variables in your C program. Many RDBMS packages support this embedded language. ! ! There is an ANSI-standard describing how the embedded language should ! work. Most embedded SQL preprocessors I have seen and heard of make ! extensions so it is difficult to obtain portability between them ! anyway. I have not read the standard but I hope that my implementation ! does not deviate too much and that it would be possible to port programs ! with embedded SQL written for other RDBMS packages ! to Postgres and thus ! promoting the spirit of free software. The Concept --- 45,56 ---- from variables in your C program. Many RDBMS packages support this embedded language. ! There is an ANSI-standard describing how the embedded language should ! work. ecpg was designed to meet this standard as much as possible. So it is ! possible to port programs with embedded SQL written for ! other RDBMS packages to ! Postgres and thus promoting the spirit of free ! software. The Concept *************** *** 432,456 **** - Preprocessor output - - - The variables should be static. - - - - - - Preprocessor cannot do syntax checking on your SQL statements - - - Whatever you write is copied more or less exactly to the Postgres and - you will not be able to locate your errors until run-time. - - - - - no restriction to strings only --- 429,434 ---- *************** *** 485,535 **** records ! Possibility to define records or structures in the declare section ! in a way that the record can be filled from one row in the database. - - This is a simpler way to handle an entire row at a time. - ! array operations ! Oracle has array operations that enhances speed. When implementing it in ! ecpg it is done for compatibility reasons only. For them to ! improve speed would require a lot more insight in the Postgres internal ! mechanisms than I possess. ! indicator variables ! Oracle has indicator variables that tell if a value is null or if ! it is empty. This largely simplifies array operations and provides for a ! way to hack around some design flaws in the handling of VARCHAR2 ! (like that an empty string isn't distinguishable from a ! null value). I am not sure if this is an Oracle extension or part ! of the ANSI standard. ! typedefs ! As well as complex types like records and arrays, typedefs would be ! a good thing to take care of. - conversion of scripts --- 463,521 ---- records ! Records or structures have to be defined in the declare section. ! missing statements ! The following statements are not implemented thus far: ! ! ! exec sql type ! ! ! exec sql prepare ! ! ! exec sql allocate ! ! ! exec sql free ! ! ! exec sql whenever sqlwarning ! ! ! SQLSTATE ! ! ! message īno data foundī ! The error message for "no data" in an exec sql insert select from statement ! has to be 100. ! sqlwanr[6] ! sqlwarn[6] should be 'W' if the PRECISION or SCALE value specified in a SET ! DESCRIPTOR statement will be ignored. conversion of scripts