|
| 1 | +2021 11 15 - v23.0 |
| 2 | + |
| 3 | +This release fix several issues reported since past five months and |
| 4 | +adds some new major features and improvements. |
| 5 | + |
| 6 | + * Add new option --blob_to_lo that can be used to export BLOB as large |
| 7 | + objects. It can only be used with action SHOW_COLUMN, TABLE and INSERT. |
| 8 | + When used with TABLE action, the BLOB column will be translated into oid |
| 9 | + PostgreSQL data type. When used with the INSERT export action BLOB data |
| 10 | + will be store as large object in the pg_largeobjects table and the oid |
| 11 | + referencing this large object will be stored in the main table instead |
| 12 | + of a bytea. |
| 13 | + It is not possible to use oid with COPY because this feature use function |
| 14 | + lo_from_bytea() that stores the large object in the external table and |
| 15 | + returns the oid. |
| 16 | + This feature works with or without the use of oracle_fdw to import the |
| 17 | + data and option -J can be used to improve the speed of the INSERT import |
| 18 | + provide that there is a numeric unique key on the table. |
| 19 | + Thanks to rodiq for the feature request. |
| 20 | + * Add command line option -W | --where clause to set the WHERE clauses to |
| 21 | + apply to the Oracle query to retrieve data. It can be used multiple time. |
| 22 | + It will override the WHERE configuration directive if there is a global |
| 23 | + WHERE clause or the same table WHERE clause definition. Otherwise the |
| 24 | + clause will be appended. |
| 25 | + * Add data validation feature consisting in comparing data retrieved from a |
| 26 | + foreign table pointing to the source Oracle table and a local PostgreSQL |
| 27 | + table resulting from the data export. By default Ora2Pg will extract 10000 |
| 28 | + rows from both side, you can change this value using DATA_VALIDATION_ROWS. |
| 29 | + When it is set to zero all rows of the tables will be compared. |
| 30 | + Data validation requires that the table has a primary key or unique index |
| 31 | + and that the key columns is not a LOB. |
| 32 | + Due to differences in sort behavior between Oracle and PostgreSQL, if the |
| 33 | + collation of unique key columns in PostgreSQL is not 'C', the sort order of |
| 34 | + is different compared to Oracle. In this case the data validation will fail. |
| 35 | + Ora2Pg will stop comparing two tables after 10 errors, result is dumped to |
| 36 | + an output file named data_validation.log. |
| 37 | + * Add DATA_VALIDATION_ORDERING configuration directive enabled by default. |
| 38 | + Order of rows between both sides are different once the data have been |
| 39 | + modified. In this case data must be ordered using a primary key or a |
| 40 | + unique index, that mean that a table without such object can not be |
| 41 | + compared. If the validation is done just after data import in mode single |
| 42 | + process and without any data modification the validation can be done on all |
| 43 | + tables without any ordering. |
| 44 | + * Add DATA_VALIDATION_ERROR to stop validating data from a table after a |
| 45 | + certain amount of row mismatch. Default is to stop after 10 rows |
| 46 | + validation errors. |
| 47 | + * Allow multiprocess for TEST_DATA action to validate data import. Use -P |
| 48 | + or PARALLEL_TABLES to set the number of parallel tables checked. Output |
| 49 | + is now done to a file named data_validation.log saved in the current |
| 50 | + directory. |
| 51 | + * Add replacement of UTL_RAW.CAST_TO_RAW with encode(). |
| 52 | + * Add rewrite of XMLTYPE() with xmlparse(DOCUMENT convert_from(..., 'utf-8')). |
| 53 | + * Add VARCHAR_TO_TEXT configuration directive. By default VARCHAR2 without |
| 54 | + size constraint are tranlated into text PG data type. If you want to use |
| 55 | + varchar instead, disable this directive. |
| 56 | + * Add detection of XML function for migration assessment cost. |
| 57 | + * Add DBMS_RANDOM to the list of Oraclism handled by Orafce. |
| 58 | + * Add support to mysql_fdw foreign data wrapper to export data |
| 59 | + PostgreSQL tables. Thanks to Yoni Sade for the feature request. |
| 60 | + * Allow to transform all NUMBER(*,scale) to an other data type by a |
| 61 | + redefinition like NUMBER(*\,2):decimal in the DATA_TYPE configuration |
| 62 | + directive. Thanks to Florent Jardin for the patch. |
| 63 | + * Add information on how to use SSL encrypted connection to documentation. |
| 64 | + * Add TEST_COUNT action to just report the row count diff between Oracle and |
| 65 | + |
| 66 | +Backward compatibility changes: |
| 67 | + |
| 68 | + - Add FORCE_PLSQL_ENCODING configuration directive. By default Ora2Pg |
| 69 | + encode all functions code to ut8, this sometime can generate double |
| 70 | + encoding. To change this behavior, disable this configuration directive. |
| 71 | + Thanks to rynerisraid and lee-jongbeom for the report. |
| 72 | + - Change behavior regarding RAW columns. Now RAW(16) and RAW(32) columns or |
| 73 | + RAW columns with "SYS_GUID()" as default value are now automatically |
| 74 | + translated into uuid. Data will be automatically migrated as PostgreSQL |
| 75 | + uuid data type provided by the "uuid-ossp" extension. To recover the old |
| 76 | + behavior to export data as bytea whatever is the precision, the following |
| 77 | + must be set with DATA_TYPE configuration: RAW(16):bytea,RAW(32):bytea |
| 78 | + |
| 79 | +Complete list of changes: |
| 80 | + |
| 81 | + - Fix USE_LOB_LOCATOR handling. |
| 82 | + - Fix data validation using oracle_fdw where zero after decimal is not strip |
| 83 | + unlike with PG. |
| 84 | + - Apply MODIFY_STRUCT redefinition to test actions |
| 85 | + - Fix PG filter when DATA_VALIDATION_ORDERING is disabled |
| 86 | + - Apply RAW to uuid transformation for data validation |
| 87 | + - Apply boolean transformation for data validation |
| 88 | + - Do not export data for virtual column for PG >= 13. |
| 89 | + - Fix wrong replacement function with name including a regexp_* function in |
| 90 | + his name. Thanks to Rui Pereira for the report. |
| 91 | + - Remove comments in the from clause before rewrite outer join (+), the entire |
| 92 | + FROM clause will be rewritten and we don't know where to restore. |
| 93 | + - Fix export of columns information for data verification. |
| 94 | + - Fix TEST_VIEW for row count returned by views to exclude views created in |
| 95 | + extensions. |
| 96 | + - Fix comment on procedures |
| 97 | + - Fix translation of MySQL type UNSIGNED |
| 98 | + - Fix test count of indexes for MySQL database. |
| 99 | + - Fix test MySQL sequence count. |
| 100 | + - Do not display error messages when user and db is first checked in the |
| 101 | + import_all.sh script |
| 102 | + - Fix ordering of check constraints |
| 103 | + - Fix mysql table scan when table name is using reserved word. Thanks to |
| 104 | + Stanley Sung for the report. |
| 105 | + - Fix double BOTH keyword in TRIM function. Thanks to Rui Pereira for the |
| 106 | + report. |
| 107 | + - Fix aliases placed in a wrong way. Thanks to Rui Pereira for the report. |
| 108 | + - Fix parsing of procedure broken on keyword RETURN. Thanks to Pavithra |
| 109 | + Jayasankar. |
| 110 | + - Fix case where default partition is taken as a value. Thanks to Karsten |
| 111 | + Lenz for the report. |
| 112 | + - Fix conversion of NUMBER without precision in PL/SQL code to respect |
| 113 | + settings PG_NUMERIC_TYPE, PG_INTEGER_TYPE and DEFAULT_NUMERIC. Fix |
| 114 | + translation of INTEGER/BINARY_INTEGER that was wrongly exported as |
| 115 | + numeric. Thanks to Philippe Beaudoin for the report. |
| 116 | + - Documentation fix. Thanks to mperdikeas for the patch. |
| 117 | + - Fix case where SQL%ROWCOUNT was not replaced by GET DIAGNOSTIC. Thanks to |
| 118 | + Awdotia Romanowna for the report. |
| 119 | + - Fix quote of unique constraints name. Thanks to Veka for the report. |
| 120 | + - Fix looking at package function metadata when there is a huge amount of |
| 121 | + package. |
| 122 | + - Fix error when trying to remove temporary files. |
| 123 | + - Fix wrong translation of a call to a procedure with PRAGMA AUTONOMOUS |
| 124 | + TRANSACTION through dblink. Thanks to Rui Pereira for the report. |
| 125 | + - Remove schema name in front of index name. Thanks to Menelaos Perdikeas |
| 126 | + for the report. |
| 127 | + - Fix virtual column generated from an other column of the table (supported |
| 128 | + in PG 12). Thanks to Veka for the report. |
| 129 | + - Fix case of columns names in boolean transformation when oracle_fdw is used |
| 130 | + to export data. Thanks to veka for the report. |
| 131 | + - Remove extra parenthesis with sub query and TABLE function. Thanks to Rui |
| 132 | + Pereira for the report. |
| 133 | + - Fix WHERE clause not removed in ROWNUM replacement. Thanks to Rui Pereira |
| 134 | + for the report. |
| 135 | + - Exclude extensions tables from table test count. Thanks to Yoni Sade for the |
| 136 | + report. |
| 137 | + - Fix pg_attribute column adsrc removed in PG 12. Thank to Thorsten Hochreuter |
| 138 | + for the patch. |
| 139 | + - Fix unwanted aliases after row_number() over(). Thanks to Rui Pereira for |
| 140 | + the report. |
| 141 | + - Fix several spelling issues. Thanks to Florian Eckert for the patch. |
| 142 | + - Fix wrong condition to import constraints in import_all.sh. Thanks to |
| 143 | + Thorsten Hochreuter for the report. |
| 144 | + - Fix BITMAP_AS_GIN detection. Thanks to Nishanth Bejgam for the patch. |
| 145 | + - Fix parsing of views from file and add PASSWORD, KEY and REF to the list |
| 146 | + of reserved keywords. |
| 147 | + - Fix replacement of CURSOR ... IS when there is comment after IS. |
| 148 | + - Fix comment in auto generated file global_variables.conf |
| 149 | + - Fix XML data export that was transformed by the call to function |
| 150 | + extract(/).getClobVal(), it is now replaced by a direct call to |
| 151 | + getClobVal(). |
| 152 | + - Improve COPY FREEZE data export when FILE_PER_TABLE is enabled, the |
| 153 | + transactions are now managed per individual file and not following |
| 154 | + the main file. Thanks to Yoni Sade for the report. |
| 155 | + - Fix addition to UNLOGGED keyword on foreign table when exporting |
| 156 | + data using oracle_fdw. Thanks to Veka for the report. |
| 157 | + - Fix FK error when using TRUNCATE before data export with oracle_fdw. |
| 158 | + - Fix export of user defined type. Actually type definitions are extracted |
| 159 | + from ALL_SOURCE which contain the original CREATE TYPE and eventually |
| 160 | + all the ALTER TYPE commands. Previously those type as considered as not |
| 161 | + supported by Ora2Pg. |
| 162 | + - replace date(n) by timestamp. |
| 163 | + - Always remove the fqdn SYS schema before functions call. |
| 164 | + - Add report of GTT in SHOW_TABLE action. |
| 165 | + - Fix empty partition values for Oracle 9i. |
| 166 | + - Add creation of schema in user defined type export when EXPORT_SCHEMA is |
| 167 | + enabled to fix an error when the schema has not already been created. |
| 168 | + - Fix some wordings and exclude from export user defined type starting |
| 169 | + with SYS_PLSQL_ found in a 9i export. It looks that they are internal |
| 170 | + to PL/SQL code. |
| 171 | + - Exclude DBMS_SQL from the DBMS count in migration assessment when |
| 172 | + USE_ORAFCE is enabled. |
| 173 | + - Handle case where indexes name include the schema at create time |
| 174 | + - Fix PL/SQL numeric datatype conversion |
| 175 | + |
| 176 | + |
1 | 177 | 2021 07 02 - v22.1 |
2 | 178 |
|
3 | 179 | This is a maintenance release to extend the feature of data export through the |
|
0 commit comments