$Id: README 10142 2004-09-20 01:01:07Z rafa $ Universal Embedded SQL Compiler (UESQLC) ======================================== This compiler provides a common way for accessing heterogeneous databases. UESQLC is based on Structured Query Language (SQL) as the standard query language for accessing data. This interface provides a high level of interoperability: a single application can access different SQL Database Management Systems (DBMS) through a common set of embedded SQL code (UESQL). This enables a developer to build and distribute a client/server application without targetting a specific DBMS. Database drivers can be added just creating a Code Description Mark-up Language (CDML) document (based on SGML) with the code corresponding to the new DBMS. Read README.uesql for more information about UESQL. We impose no restriction on the use of the UESQLC compiler output. The code produced by UESQLC is not considered a derived work of it. See COPYING for more information about the compiler license (GPL). See COPYING.LIB for more information about the libraries license (LGPL). Benefits ======== * Independence. Applications using UESQL code are not tied to any proprietary vendor solution. * Extensibility. Anybody can extend the available DBMS target translations. * Portability. Guaranteed portability of applications. Platforms ========= Requires full support for name-spaces and exceptions. The compiler has been compiled and tested on the following platforms (maybe not recently): Architecture GNU canonical name ------------ -------------------- i586 i586-pc-linux-gnu i686 i686-pc-linux-gnu sun4u sparc-sun-solaris2.6 Tools used on platform: i586-pc-linux-gnu ----------------------------------------- autoconf 2.53 GNU autoconf automake 1.6.1 GNU automake bison 1.28 GNU parser generator gcc 3.1 GNU C compiler gcc-c++ 3.1 GNU C++ support for gcc flex 2.5.4a GNU fast lexical analyzer generator libtool 1.4.2 GNU libtool m4 1.4.1 GNU macro processor make 3.79.1 GNU make Tools used on platform: i686-pc-linux-gnu ----------------------------------------- autoconf 2.53 GNU autoconf automake 1.6.1 GNU automake bison 1.28 GNU parser generator egcs 3.1 GNU Experimental C compiler egcs-c++ 3.1 GNU Experimental C++ support for gcc flex 2.5.4a GNU fast lexical analyzer generator libtool 1.4.2 GNU libtool m4 1.4.1 GNU macro processor make 3.79.1 GNU make Tools used on platform: sparc-sun-solaris2.6 -------------------------------------------- autoconf 2.12 GNU autoconf automake 1.3 GNU automake flex 2.5.4a GNU fast lexical analyzer generator gcc 2.7.2.1 GNU C compiler gcc-g++ 2.7.2.1 GNU C++ support for gcc libtool 1.2 GNU libtool m4 1.4 GNU macro processor make 3.76.1 GNU make yacc 1.16 Sun parser generator When building the compiler you must pay attention to the compilation flags when using --with-comp-mode=optimize because it uses an huge amount of memory and processing power. Available Target Translations ============================= The next target translations are available: Target (CDML file name) DBMS API API Version ----------------------- -------------- ------ ----------- oracle-oci-7.x Oracle Server OCI >= 7.0 postgresql-jdbc-3.0 PostgreSQL JDBC >= 3.0 postgresql-libpq-7.3.x PostgreSQL LIBPQ >= 7.3.0 odbc-3.x Any ODBC >= 3.0 Test Environment ================ To prepare the appropriate environment for testing the supported targets, you must have the next elements: * A valid user in the DBMS named 'test' with password 'test' (it doesn't have to be a real user of the system, and even, it is advisable that it doesn't be). Warning!, this user must have permissions to create tables and catalogs. * A catalog owned by such user and named 'test'. Issues specific to Target postgresql-libpq-7.3.x ------------------------------------------------ This is an example of using PostgreSQL as the SQL server for tests. First, you have to connect to the SQL server as user 'postgres' (or whoever the server was installed by). Next, execute the following commands (in the next example, it will be used the user name 'test' and the SQL server host name 'sql_server_name'): $ psql -h sql_server_name Welcome to the POSTGRESQL interactive sql monitor: Please read the file COPYRIGHT for copyright terms of POSTGRESQL [PostgreSQL 6.5.3 on i686-pc-linux-gnu, compiled by gcc egcs-2.91.66] type \? for help on slash commands type \q to quit type \g or terminate with semicolon to execute query You are currently connected to the database: test postgres=> create user test with password test createdb nocreateuser; Then the user 'test' has been created. Now, he must own a catalog (named 'test', so do this: $ createdb -h sql_server_name -u test Username: test Password: test So now, the environment is ready to run tests on the PostgreSQL server. Finally, to run the tests, do this in the source root directory: $ make check DBMS_SERVER_NAME=sql_server_name