Skip to content

Commit 64f3425

Browse files
committed
Update changelog and version to 23.0
1 parent 09e280e commit 64f3425

File tree

11 files changed

+191
-15
lines changed

11 files changed

+191
-15
lines changed

changelog

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,179 @@
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+
1177
2021 07 02 - v22.1
2178

3179
This is a maintenance release to extend the feature of data export through the

lib/Ora2Pg.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ use Encode;
4343
#set locale to LC_NUMERIC C
4444
setlocale(LC_NUMERIC,"C");
4545

46-
$VERSION = '22.1';
46+
$VERSION = '23.0';
4747
$PSQL = $ENV{PLSQL} || 'psql';
4848

4949
$| = 1;

lib/Ora2Pg/GEOM.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ use vars qw($VERSION);
4040

4141
use strict;
4242

43-
$VERSION = '22.1';
43+
$VERSION = '23.0';
4444

4545
# SDO_ETYPE
4646
# Second element of triplet in SDO_ELEM_INFO

lib/Ora2Pg/MySQL.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use POSIX qw(locale_h);
99
setlocale(LC_NUMERIC,"C");
1010

1111

12-
$VERSION = '22.1';
12+
$VERSION = '23.0';
1313

1414
# Some function might be excluded from export and assessment.
1515
our @EXCLUDED_FUNCTION = ('SQUIRREL_GET_ERROR_OFFSET');

lib/Ora2Pg/PLSQL.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use POSIX qw(locale_h);
3131
setlocale(LC_NUMERIC,"C");
3232

3333

34-
$VERSION = '22.1';
34+
$VERSION = '23.0';
3535

3636
#----------------------------------------------------
3737
# Cost scores used when converting PLSQL to PLPGSQL

packaging/README

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ RPM/
1212

1313
The binary package may be found here:
1414

15-
~/rpmbuild/RPMS/noarch/ora2pg-22.1-1.noarch.rpm
15+
~/rpmbuild/RPMS/noarch/ora2pg-23.0-1.noarch.rpm
1616
or
17-
/usr/src/redhat/RPMS/i386/ora2pg-22.1-1.noarch.rpm
17+
/usr/src/redhat/RPMS/i386/ora2pg-23.0-1.noarch.rpm
1818

1919
To install run:
2020

21-
rpm -i ~/rpmbuild/RPMS/noarch/ora2pg-22.1-1.noarch.rpm
21+
rpm -i ~/rpmbuild/RPMS/noarch/ora2pg-23.0-1.noarch.rpm
2222

2323

2424
slackbuild/
@@ -30,11 +30,11 @@ slackbuild/
3030
then take a look at /tmp/build/ to find the Slackware package.
3131
To install run the following command:
3232

33-
installpkg /tmp/build/ora2pg-22.1-i386-1gda.tgz
33+
installpkg /tmp/build/ora2pg-23.0-i386-1gda.tgz
3434

3535
or
3636

37-
installpkg /tmp/build/ora2pg-22.1-x86_64-1gda.tgz
37+
installpkg /tmp/build/ora2pg-23.0-x86_64-1gda.tgz
3838

3939
following the architecture.
4040

packaging/debian/ora2pg/DEBIAN/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: ora2pg
2-
Version: 22.1
2+
Version: 23.0
33
Priority: optional
44
Architecture: all
55
Essential: no

packaging/slackbuild/Ora2Pg.SlackBuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
## Fill these variables to your needs ##
1414
NAMESRC=${NAMESRC:-ora2pg}
15-
VERSION=${VERSION:-22.1}
15+
VERSION=${VERSION:-23.0}
1616
EXT=${EXT:-tar.bz2}
1717
NAMEPKG=${NAMEPKG:-ora2pg}
1818
PKGEXT=${PKGEXT:-tgz/txz}

packaging/slackbuild/Ora2Pg.info

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PRGNAM="Ora2Pg"
2-
VERSION="22.1"
2+
VERSION="23.0"
33
HOMEPAGE="http://ora2pg.darold.net/"
4-
DOWNLOAD="http://downloads.sourceforge.net/ora2pg/ora2pg-22.1.tar.gz"
4+
DOWNLOAD="http://downloads.sourceforge.net/ora2pg/ora2pg-23.0.tar.gz"
55
MD5SUM=""
66
DOWNLOAD_x86_64="UNTESTED"
77
MD5SUM_x86_64=""

scripts/ora2pg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use POSIX qw(locale_h sys_wait_h _exit);
3131
setlocale(LC_NUMERIC, '');
3232
setlocale(LC_ALL, 'C');
3333

34-
my $VERSION = '22.1';
34+
my $VERSION = '23.0';
3535

3636
$| = 1;
3737

0 commit comments

Comments
 (0)