Enhancements:
- Add table option
sample_percent
toANALYZE
very large tables
This can speed upANALYZE
significantly.
Idea by @legrandlegrand. - Introduce a table option
prefetch
for the Oracle row prefetch count
This can speed up foreign table scans.
Per discussion with by @legrandlegrand and @3kkani. - Push down arbitrary
IN
andNOT IN
expressions
Up to now, only lists with constants were considered.
Per request from @volkmarbuehringer. - Push down
ORDER BY
expressions to Oracle from PostgreSQL 9.2 on
Only expressions of numeric, date and timestamp datatypes are pushed down, since the string collations in PostgreSQL and Oracle cannot be guaranteed to be the same.
Courtesy of NTT OSS Center, patch by @yamatattsu.
Bugfixes:
- Fix errors with
now()
and date/timestamp parameters in queries
This bug was introduced in 1.3.0 and caused errors like
ERROR: error executing query: OCIDateTimeFromText failed to convert parameter
DETAIL: ORA-01843: not a valid month
whennow()
orcurrent_timestamp
and friends or date/timestamp parameters were used.
Report by Li Hailong. - Fix errors when updating date/timestamp columns
This bug was also introduced in 1.3.0 and caused errors like
ORA-01856: BC/B.C. or AD/A.D. required
if the Oracle and PostgreSQL types were different.
Report by @sttachoires. IMPORT FOREIGN SCHEMA
sometimes didn't import primary keys
Report by @JMLessard, fix by @legrandlegrand.- Fix memory leaks during
ANALYZE
This caused out of memory errors when large tables were analyzed.
Report by @acheccuc. IMPORT FOREIGN SCHEMA
should not tolerate missing remote schema
It used to cause a warning, but the SQL standard requires an error.
Report by @JMLessard.- Fix crash when
UPDATE
ing non-existent columns
If a foreign table has more columns than the underlying Oracle table, these additional columns are treated as containingNULL
s.
However, oracle_fdw crashed on an attempt to change such a column with anUPDATE
statement, which should not happen.
Reported by @fnicollet. - Fetch all columns from Oracle when the whole row is referenced
This problem could lead to wrongNULL
values in trigger functions or when the whole column is used in an expression.
Reported by @fnicollet.