Version 0.9.10 (beta), released 2013-12-24 Enhancements: - Add support for INSERT, DELETE and UPDATE. This is a major rewrite that might cause some destabilization in existing functionality. - Add new column option "key" to indicate primary key columns. This is needed for UPDATE and DELETE. - Add new table option "readonly" to forbid data modifying statements. Queries against such tables will use READ ONLY transactions. - Improved transaction handling for data modifying statements. COMMIT, ROLLBACK and SAVEPOINT will work as expected. - Add paths for Oracle 12.1 to the Makefile. Patch by Guillaume Lelarge. Bugfixes: - Don't try to push down the division operator. That would produce incorrect results for numeric data types. Version 0.9.9 (beta), released 2013-08-07 Enhancements: - Enable build with PostgreSQL 9.3. Bugfixes: - Fix error "ORA-01406: fetched column value was truncated" caused by timestamps with precision greater than 6. Per report from David E. Wheeler. - Fix crash with IN lists that do not entirely consist of constants. Per report from Wang Dong. - Fix handling of parameters during pushdown of WHERE conditions. The previous implementation returned incorrect results for certain queries like SELECT ... WHERE colname = (SELECT ...) ATTENTION: Since correct handling of parameters is not possible before PostgreSQL 9.2, query parameters will not be pushed down in PostgreSQL 9.1. This is a regression for cases where this happened to work. - Fix a logical error that can lead to incorrect Oracle WHERE clauses. - Fix a bug that can lead to the incorrect omission of a scan clause, leading to wrong results. Version 0.9.8 (beta), released 2012-10-16 Enhancements: - Add support for pushdown of IN and NOT IN clauses in WHERE conditions. As suggested by Wang Dong. Bugfixes: - Add check to make sure that character string data are properly encoded. This is necessary because Oracle does not check this properly. Per report from David E. Wheeler. Version 0.9.7 (beta), released 2012-09-07 Bugfixes: - Avoid failure to describe synonyms under certain conditions. ATTENTION: This constitutes a compatibility break: table and schema names now have to be exactly as they are in Oracle's catalogs, i.e. without double quotes and normally in uppercase. Per report from Bry Lo. - Add paths to Makefile so that we can build with Instant Client RPMs. Noticed by Andrew Theaker. - Fix a memory corruption bug that can lead to crashes, errors and wrong results. - Improve bad performance of "SELECT count(*)" on foreign tables. This is a simple workaround for the (not yet confirmed) Oracle bug 14562530. Version 0.9.6 (beta), released 2012-06-25 Enhancements: - Support Oracle types LONG and LONG RAW. Introduce table option "max_long" (default 32767) to set the maximal length of such columns. Bugfixes: - Fix a bug that causes a server crash when the PostgreSQL session is terminated if the only statements involving oracle_fdw during that session were CREATE statements. Per report from Bry Lo. Version 0.9.5 (beta), released 2012-05-11 Enhancements: - Support ANALYZE on foreign tables (from PostgreSQL 9.2 on). Bugfixes: - Fix a bug that leads to warnings and sometimes bad results if system columns of the foreign table are referenced. - Fix wrong column width estimates of plan_costs=on. Version 0.9.4 (beta), released 2012-03-19 Enhancements: - Support the new foreign data wrapper API introduced in 9.2. In PostgreSQL 9.2 and above, WHERE conditions that get pushed down to Oracle will not be checked a second time. - Improve error messages for errors during conversion of Oracle data so that the problem can be diagnosed. Bugfixes: - Fix uninitialized value that caused intermittent server crashes. Per report from Bruno Voigt. - Rework the handling of errors and transactions. Now an error should not be able to cause an Oracle transaction to be left open. This also fixes a bug introduced in 0.9.3 that prevented Oracle errors from being reported as DETAIL message. Also, all foreign scans in one local query will now be executed within one Oracle transaction if they belong to the same Oracle session. - Rework memory management to exclude memory leaks under all circumstances. Version 0.9.3 (beta), released 2012-02-07 Enhancements: - Add support for PostgreSQL data type "uuid". Bugfixes: - After an error message, calls to the foreign server result in this error: error connecting to Oracle: OCITransStart failed to start a transaction ORA-01453: SET TRANSACTION must be first statement of transaction The problem is that the previous transaction was not closed. This used to go unnoticed, the problem now becomes manifest because we explicitly start a serializable transaction. Per reports from Keith Fiske and Bruno Voigt. Version 0.9.2 (beta), released 2011-12-30 Bugfixes: - Fix handling of Oracle BFILE columns. This was totally broken; attempts to select such columns resulted in the error message 'ORA-00932: inconsistent datatypes: expected %s got %s'. Bug report and patch by Dominique Legendre. - Use a serializable transaction in Oracle to make sure that consistent data are retrieved during a rescan. Version 0.9.1 (beta), released 2011-09-14 Bugfixes: - Fix incorrect use of an automatic variable for binding timestamp parameters in Oracle. - Remove unnecessary lvalue casts. These violate the C standard and cause errors on gcc 4. Per report from Dominique Legendre. - Fix lack of support for dropped columns in foreign table. oracle_fdw incorrectly assumed that the n-th PostgreSQL column corresponds to the n-th Oracle column. This leads to confusion in the presence of dropped columns, which retain an entry in pg_attribute. Per report from Dominique Legendre. - Fix typo that caused wrong and negative sizes being assumed for longer Oracle columns. This led to palloc() errors and Oracle fetch errors. Per report from Dominique Legendre. Version 0.9 (beta), released 2011-08-25 - initial release