Enhancements:
- Add table option
sample_percenttoANALYZEvery large tables
This can speed upANALYZEsignificantly.
Idea by @legrandlegrand. - Introduce a table option
prefetchfor the Oracle row prefetch count
This can speed up foreign table scans.
Per discussion with by @legrandlegrand and @3kkani. - Push down arbitrary
INandNOT INexpressions
Up to now, only lists with constants were considered.
Per request from @volkmarbuehringer. - Push down
ORDER BYexpressions 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_timestampand 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 SCHEMAsometimes 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 SCHEMAshould not tolerate missing remote schema
It used to cause a warning, but the SQL standard requires an error.
Report by @JMLessard.- Fix crash when
UPDATEing non-existent columns
If a foreign table has more columns than the underlying Oracle table, these additional columns are treated as containingNULLs.
However, oracle_fdw crashed on an attempt to change such a column with anUPDATEstatement, which should not happen.
Reported by @fnicollet. - Fetch all columns from Oracle when the whole row is referenced
This problem could lead to wrongNULLvalues in trigger functions or when the whole column is used in an expression.
Reported by @fnicollet.