forked from darold/ora2pg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog
3276 lines (2928 loc) · 167 KB
/
changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2016 10 20 - v17.5
This is a maintenance release to fix several issues reported by users.
There is also some major improvement and new feature.
There is a new configuration directive or change default behavior:
* Fix export of CLOBs and NCLOB that was truncated to 64 Kb.
* PG_BACKGROUND : when enabled autonomous transactions will be
built using Robert Haas extension pg_background instead of dblink.
Default is to still used dblink as pg_background is available
only for PostgreSQL >= 9.5.
* All Perl I/O now use the open pragma instead of calling method
binmode(). This will force input and output to utf8 using the
Perl pragma:
use open ':encoding(utf8)';
when configuration directive BINMODE is not set or NLS_LANG is
set to UTF8.
* Ora2Pg will now export empty lob as empty string instead of NULL
when the source column has NOT NULL constraint and that directive
EMPTY_LOB_NULL is not activated.
* Improve and fix progress bar especially when using JOBS/-J option.
* Allow LOAD action to apply all settings defined in the input file
on each opened session, this allow to use LOAD with export schema
enabled. If settings are not set in the input file encoding and
search_path is set from the ora2pg configuration settings.
* NUMBER(*,0) is now exported as numeric(38) as well as a NUMBER
with DATA_SCALE set to 0, no DATA_PRECISION and a DATA_LENGTH
of 22. The last correspond to Oracle type INTEGER or INT.
* Allow conversion of type with precision in DATA_TYPE directive.
For example it is possible to transform all NUMBER(12,2) only
into numeric(12,2) by escaping the comma. Example:
DATA_TYPE NUMBER(12\,2):numeric(12\,2);...
* Write data exported into temporary files (prefixed by tmp_) and
renamed them at end of the export to be able to detect incomplete
export and override it at next export.
* Add export of type created in package declaration.
* Export foreign key when the referenced table is not in the
same schema.
* Enabled by default PG_SUPPORTS_CHECKOPTION assuming that your Pg
destination database is at least a 9.4 version.
* Add 12 units to migration assessment report per table/column
conflicting with a reserved word in PostgreSQL to reflect the
need of code rewriting.
* Output a warning when a column has the same name than a system
column (xmin,xmax,ctid,etc.)
* Replace SYSDATE by a call to clock_timestamp() instead of a call
to LOCALTIMESTAMP in plpgsql code.
* Add missing documentation about DISABLE_PARTITION directive used
to not reproduce partitioning into PostgreSQL and only export
partitioned data into the main table.
* Show partition name in progress bar instead of main table name.
Here is the complete list of other changes:
- Fix broken parallel table export (-P option).
- Fix export of CLOBs and NCLOB that was truncated to 64Kb. Thanks
to Paul Mzko for the patch.
- Fix database handle in error report.
- Fix use of wrong database handle to set search_path. Thanks to
Paul Mzko for the report.
- Ora2pg doesn't export schema ForeignKey constraint when connected
as different DBA user. Thanks to Paul Mzko for the patch.
- Fix Perl I/O encoding using open pragma instead of calling method
binmode(). Thanks to Gary Evans for the report.
- Force input to utf8 using Perl pragma: use open ':encoding(utf8)';
when BINMODE is not set or NLS_LANG is UTF8.
- Force ora2pg to export empty lob as empty string instead of NULL
when the source column has a NOT NULL constraint and directive
EMPTY_LOB_NULL is not activated. Thanks to Valeriy for the report.
- Fix missing CASCADE attribute on fkey creation during data export
when DROP_FKEY was enabled. Thanks to ilya makarov for the report.
- Fix issue on converting NUMBER(*,0) to numeric, should be ported
to numeric(38). Thanks to ilya makarov for the report.
- Correct query for ForeignKey export from oracle. Thanks to ilya
makarov for the patch.
- Fix schema change in direct import of data to PostgreSQL.
- Change query for foreign key extraction to keep the column order.
Thanks to ilya makarov for the report.
- Write data exported into temporary files (prefixed by tmp_) and
renamed them at end of the export to be able to detect incomplete
export and override it at next export. Thanks to Paul Mkzo for
the feature request.
- Fix infinite loop in blob extraction when error ORA-25408 occurs
during ora_lob_read() call. Thanks to Paul Mzko for the report.
- Fix order of columns in foreign keys definition. Thanks to ilya
makarov for the report.
- Fix export of partition by range on multicolumn. Thanks to Rupesh
Admane for the report.
- Update reserved keywords list. Thanks to Nicolas Gollet for the
report.
- Add ON DELETE NO ACTION on foreign key creation (DROP_FKEY) to
obtain the same output than during constraints export.
- Fix export of foreign key that was duplicating the columns in both
part, local and foreign. Thanks to ilya makarov for the report.
- Remove call to to_char(datecol, format) when exporting date and
timestamp. This formating is no more needed as we are now forcing
NLS_DATE_FORMAT and NLS_TIMESTAMP_FORMAT when opening a connection
to Oracle using:
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS
and
ALTER SESSION SET NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS
This may result on some speed improvment during data export.
- Fix parsing of packages from input file.
- Add export of type created in package declaration. Thanks to
dezdechado for the report.
- Fix converting of procedures with out arguments. Thanks to
dezdechado for the report.
- Update documentation about project management.
- Fix replacement of = NULL by IS NULL in update statement.
Thanks to dezdechado for the report.
- Fix parsing of trigger from file that was broken and new line
removed. Thanks to dezdechado for the report.
- Fix erasing of quotes from text in triggers. Thanks to dezdechado
for the report.
- Fix "return new" on trigger function when there is exception.
Thanks to dezdechado for the report and solution.
- Fix conversion of INTEGER and INT into numeric(38) instead of
numeric without precision. Thanks to dezdechado for the report.
- Fix export of foreign key when the referenced table is not in the
same schema. Thanks to Juju for the report.
- Fix ddl create schema when EXPORT_SCHEMA and CREATE_SCHEMA are
enabled but no schema is specified.
- Fix export of NCHAR that was converted as char but was loosing its
length definition. Thanks to lgerlandsen for the report.
- Fix parsing of views using WITH statements. Thank to dezdechado
for the report.
- Fix case that breaks views/triggers definition when a semicolon
is encountered in a string value when reading definition from
file. Thanks to dezdechado for the report.
- Fix included/excluded of sequences when using ALLOW/EXCLUDE
directives. Thanks to Roman Sindelar for the report.
- prepare options modified with some escaping improvements. Thanks
to ioxgrey for the patch.
- It seems that for a NUMBER with a DATA_SCALE set to 0, no
DATA_PRECISION and a DATA_LENGTH of 22 in ALL_TAB_COLUMNS, Oracle
use a NUMBER(38) instead. This correspond to Oracle type INTEGER
or INT. I don't really understand the reason of this behavior,
why not just using a data length of 38? ALL_TAB_COLUMNS and Ora2Pg
reports a data length of 22, now Ora2Pg will report NUMBER(38) like
the resulting type of the DESC command.
The following Oracle table:
CREATE TABLE TEST_TABLE ( FIELD_1 INTEGER, FIELD_2 NUMBER );
will be exported as follow by Ora2Pg:
[1] TABLE TEST_TABLE (owner: HR, 0 rows)
FIELD_1 : NUMBER(38) => numeric
FIELD_2 : NUMBER(22) => bigint
Oracle data type INTEGER and INT will be exported as numeric by
default instead of an integer.
- Fix parsing of function/procedure from file with comments after
BEGIN statement.
- Remove DEFERRABLE INITIALLY DEFERRED from CHECK constraints when
parsed from file. Thanks to Felipe Lavoura for the report.
- Fix double parenthesis in index definition when parsing index
creation from file. Thanks to Felipe Lavoura for the report.
- Fix parsing of COMMENT from file.
- Fix undetected native Oracle type bug. Thanks to kvnema for the
report.
- Fix unwanted text formatting with bind value in INSERT action
with direct import to PostgreSQL. Thanks to Oleg for the report.
- Fix inversion of UPDATE_RULE and DELETE_RULE in foreign key
creation for MySQL export. Thanks to Sebastian Albert for the
report.
- Update documentation about DEFER_FKEY and DROP_FKEY to report
the new behavior.
- Remove call to SET CONSTRAINTS ALL DEFERRED with direct import.
- Fix use of NULL value in bind parameter that should be undefined
(INSERT export mode only). Thanks to Oleg barabaka for the report.
- Remove replacement of direct call to functions with PERFORM, there
is too much false positive. Thanks to dezdechado for the reports.
- Fix a typo in SYSDATE replacement. Thank to dezdechado for report.
- Remove rewrite of concatenation in RAISE EXCEPTION. Thanks to
dezdechado for the report.
- Fix replacement of raise_application_error() when first argument
is a variable. Thanks to dezdechado for the report.
- Fix wrong insertion of PERFORM before some function calls. Thanks
to dezdechado for the report.
- Replace SYSDATE by a call to clock_timestamp() instead of call to
LOCALTIMESTAMP in plpgsql code. Thanks to aleksaan for the report.
- Allow use of comma for object name list separator instead of space
as workaround on Window OS.
- Fix documentation about MODIFY_TYPE. Thanks to Nicolas Gollet for
the report.
- Add missing documentation about DISABLE_PARTITION directive used
to not reproduce partitioning into PostgreSQL and only export
partitioned data into the main table. Thanks to Nicolas Gollet
for the report.
- Add information about how to export LONG RAW data type. They need
to be exported as BLOB before into Oracle to be exported as BYTEA.
- Fix case where select was wrongly replaced by perform in INSERT
INTO with SELECT statement. Thanks to dezdechado for the report.
- Fix links to ora2pg presentation. Thanks to Daniel Lenski for the
patch.
- Fix input parameters after one with a default value must also have
defaults. Thanks to v.agapov fot the patch.
- Fix debug mode that was interromping the last running table dump.
Thanks to calbiston for the report.
2016 04 21 - v17.5
Errata in first release attempt.
- Fix previous patch that does not handle blob case but just clob
- Forgot to change back the query when EMPTY_LOB_NULL is not activated.
- Put parenthesis around AT TIME ZONE expression
This is a maintenance release to fix several issues reported by users.
There is also some major data export speed improvement thanks to the
work of PostgreSQL Pro and a new RPM spec file provided by Devrim
Gündüz to be able to build RPM package for Ora2Pg.
There is a new configuration directive:
- EMPTY_LOB_NULL: when enabled force empty_clob() and empty_blob()
to be exported as NULL instead as empty string.
Here is the complete list of other changes:
- Add EMPTY_LOB_NULL directive to force empty_clob() and empty_blob()
to be exported as NULL instead as empty string. This might improve
data export speed if you have lot of empty lob. Thanks to Alex
Ignatov for the report.
- Fix import_all.sh script to import grant and tablespace separately
as postgres user and just after indexes and constraints creation.
- Add parsing of tablespace from "alter table ... add constraint"
with DDL input file. Thanks to Felipe Lavoura.
- Remove --single-transaction in import_all.sh script with TABLESPACE
import. Thanks to Guillaume Lelarge for the report.
- Fix Makefile.PL to used with latest spec file from Devrim Gündüz
and following the advice of calbiston.
- Update spec file to v17.5 and latest change to Makefile.PL
- Replace ora2pg.spec by postgressql.org spec file by Devrim Gunduz.
- Generate man page to avoids rpmbuild error.
- Fix Windows install. Thanks to Lorena Figueredo for the report.
- Remove "deferrability" call for mysql foreign keys. Thanks to
Jean-Eric Cuendet for the report.
- Fix issue in restoring foreign key for mysql data export. Thanks
to Jean-Eric Cuendet for the report.
- Remove connection test to PostgreSQL instance as postgres or any
superuser in import_all.sh
- Fix creation of configuration directory.
- Fix Makefile to dissociate CONFDIR and DOCDIR from PREFIX or
DESTDIR. Thanks to Stephane Schildknecht for the report.
- Fix date_trunc+add_month replacement issue. Thanks to Lorena
Figueredo for the report.
- Do not replace configuration directory in scripts/ora2pg if this
is a RPM build. Thanks to calbiston for the report.
- Return empty bytea when a LOB is empty and not NULL.
- Regular expressions and conditions checks improvement in method
format_data_type() to make it a bit faster on huge tables. Thanks
to Svetlana Shorina for the patch.
- Fix INSERT using on the fly data import with boolean values.
Thanks to jecuendet for the report.
- Allow MySQL data type to be converted into boolean. Thanks to
jecuendet for the report.
- Fix export of BIT mysql data type into bit bit varying. Thanks
to jecuendet for the report.
- Fix call to escape_copy/escape_insert function call.
2016 03 26 - v17.3
This release fix two regressions introduced in latest release.
* Fix major bug in data export. Thanks to Frederic Guiet for the report.
* Fix another regression with character data that was not escaped. Thanks
to Frederic Guiet for the report.
2016 03 24 - v17.2
This is a maintenance release to fix several issues reported in new
LOB extraction method. There is also some feature improvement:
* Allow NUMBER with precision to be replaced as boolean.
* Allow full relocation of Ora2Pg installation using for
example: perl Makefile.PL DESTDIR=/opt/ora2pg
Here is the complete list of other changes:
- Allow NUMBER with precision to be replaced as boolean. Thanks
to Silvan Auer for the report.
- Force empty LOB to be exported as NULL when NO_LOB_LOCATOR is
activated to have the same behavior.
- Fix case where a LOB is NULL and ora2pg reports error :
DBD::Oracle::db::ora_lob_read: locator is not of type OCILobLocatorPtr
LOB initialised with EMPTY_CLOB() are also exported as NULL
instead of \\x
- Fix replacement with PERFORM after MINUS. Thanks to Stephane
Tachoires for the report.
- Comment DBMS_OUTPUT.ENABLE calls. Thanks to Stephane Tachoire for
the report.
- Fix wrong replacement of SELECT by PERFORM after EXCEPT. Thanks
to Stephane Tachoire for the report.
- Apply ORACLE_COPIES automatic predicate on custom queries set with
REPLACE_QUERY if possible. Thanks to pawelbs for the report.
- Fix install of ora2pg.conf file in /etc/ instead of /etc/ora2pg/.
Thanks to pawelbs for the report.
- Add debug information before searching for custom type.
- Attempt to fix error "ORA-01002: fetch out of sequence" when exporting
data from a table with user defined types and ORACLE_COPIES. Thanks to
pawelbs and Alex Ignatov fir the report.
- Fix replacement of path to configuration file in scripts/ora2pg
- Remove report sample from documentation about migration assessment
report and replace it with a href link. Fix comment about export of
domain index.
- Always prefix table name with schema in Oracle row count, to prevent
failure when the schema is not the connexion default.
- Add pattern TOAD_PLAN_.* to the internal table exclusion list.
- Fix modification of database owner search_path in import_all.sh auto
generated script. Thanks to Stephane Tachoire for the report.
2016 02 29 - v17.1
This is a maintenance release to fix several issues reported in new
TEST action. There is also some feature improvement:
* Add OPTIONS (key 'true') on table FDW export when a column is
detected as a primary key.
* Add DELETE configuration directive that allow a similar feature
than the WHERE clause to replace TRUNCATE call by a "DELETE FROM
table WHERE condition". This feature can be useful with regular
"updates". Thanks to Sebastien Albert for the feature request.
Here is the complete list of other changes:
- Fix the counter of user defined types and sequences in TEST action
- Fix COPY import of data from column with user defined type with
NULL value.
- Fix DBD::Pg segmentation fault with direct INSERT import from
column with user defined type.
- Fix TEST action with multiple PG_SCHEMA export. Thanks to Michael
Vitale for the report.
- Fix documentation about PG_SCHEMA
2016 02 22 - v17.0
This new major release adds a new action type TEST to obtain a count
of all objects at both sides, Oracle and PostgreSQL, to perform a
diff between the two database and verify that everything have been
well imported. It also fixes several issues reported by users.
A new ora2pg command line option have been added to ora2pg script:
* Add --count_rows command line option to perform a real row count
on both side, Oracle and PostgreSQL, in TEST report.
Here is the complete list of changes and bugfixes:
- Prefix direct call to function with a call to PERFORM. Thanks to
Michael Vitale for the feature request.
- Fix revoke call on function with multiline parameters declaration.
- Fix auto setting of internal schema variable with mysql.
- Define ORACLE_HOME with the corresponding environment variable in
generic configuration when available and --init_project is used.
Thanks to Stephane Tachoires for the report.
- Fix documentation about exporting view as table.
- Remove some obsolete code and display information when a view is
exported as table.
- Fix empty LOB data export with Oracle Lob locator (NO_LOB_LOCATOR
set to 0).
- Fix data export of partitions with single process mode and when
FILE_PER_TABLE is enabled.
- Fix export of RAW data type.
- Fix missing $ to call to self variable. Thanks to NTLIS and Sirko
for the report.
- Force FKey to be initially immediate when deferred is not set.
Thanks to Stephane Tachoire for the report.
- Fix count of check constraint when a schema is forced.
- Allow TEST action on mysql database too with some improvements
and bug fix on the feature.
- Fix index column renaming in mysql export.
- Fix dblink extraction query when an exclusion is set.
- Fix sequence name auto generation for mysql serial number.
- Add --count_rows command line option to make optional the real
row count in TEST report. This is useful when you have lot of
data and do not want to loose time in call to count(*).
- Update documentation about the TEST action and usage, see
chapter "Test the migration".
- Apply schema context on PostgreSQL side with TEST action.
- Add TEST action type to ask Ora2Pg to count rows and all objects
at both sides, Oracle and PostgreSQL, to verify that everything
have been well imported.
- Fix missing export of foreign keys on multiple columns, ex:
ALTER TABLE products ADD CONSTRAINT fk_supplier_comp
FOREIGN KEY (supplier_id,supplier_name)
REFERENCES supplier(supplier_id,supplier_name)...
- Fix import of BLOB data using INSERT statements into the bytea.
Thanks to rballer for the patch.
- Fix missing export of FK when no schema is provided.
2016 01 13 - v16.2
This release fixes several issues, is more accurates on migration
assessment report and adds some new ora2pg command line options:
* Add --pg_dsn, --pg_user and --pg_pwd to be able to set the
connection to import directly into PostgreSQL at command line.
* Add -f option to script import_all.sh to force to not check
user/database existing and skip their creation.
Potential backward compatibility issues:
* PG_SUPPORTS_CHECKOPTION is now enabled by default, you may want
to migrate to PostgreSQL 9.4 or above.
* Remove modification of CLIENT_ENCODING in generic configuration
file with --init_project, use the default instead.
* Remove modification of directive NLS_LANG to AMERICAN_AMERICA.UTF8
in generic configuration file with --init_project, use the default
instead.
Here is the complete list of other changes:
- Adjust DBMS_OUTPUT calls to the migration assessment count.
- Fix migration assessment count of call to cursor%ISOPEN and
cursor%ROWCOUNT.
- Replace zero date also with prepared statement with online
PostgreSQL import and INSERT action. Thanks to Sebastian Albert
for the report.
- Remove REFERENCING clause in conditional triggers. Thanks to Raqua
for the report.
- Fix position of TG_OP condition when an exception is defined.
Thanks to Raqua for the report.
- Fix wrong replacement of SELECT with PERFORM when a comment was
found between an open parenthesis and the select statement.
Thanks to Raqua for the report.
- Fix procedure return type with OUT and INOUT parameter. Thanks to
Raqua for the report.
- Fix rewrite of triggers with referencing clause. Thanks to Raqua
for the report.
- Fix default number of --human_days_limit in usage.
- Fix replacement of placeholder %TEXTVALUE-d% to hide text string
in query during function call rewrite. Thanks to Lorena Figueredo
for the report.
- Fix progress bar when a WHERE clause is used to limit the number
of row to export.
- Fix error "DBD::Pg::db do failed: SSL error: decryption failed or
bad record mac" with pararellel table export (-P) and direct
import to PostgreSQL via a ssl connection. Thanks to pbe-axelor
for the report.
- Fix missing index name in indexes creation. Thanks to Raqua for
the report.
- Fix pg DSN in import_all.sh autogenerated script.
- Fix extraction of trigger. When the name of a column or something
contained INSERTING, DELETING or UPDATING was converted to TG_OP
= 'INSERT' or corresponding event. Thanks to Stanis¿aw Jankowski
for the patch.
- Fix multiple use of same column in check constraint and indexes
of partitions when there was several schema with the same objects.
- Fix default value for HUMAN_DAY_LIMIT to 5 when it is not defined
in ora2pg.conf.
- Fix double quote on column name in COPY export of partition tables
Thanks to Chris Brick for the report.
- Prevent case with several time same column in multicolumns unique
constraints. Fix typo in previous patch.
- Fix double quoted name with auto incremented sequence exported as
serial.
- Fix syntax error with MySQL data export with a WHERE clause using
LIMIT.
2015 11 30 - v16.1
This release fixes several issues and adds some very useful features:
* Generate automatically a new import_all.sh shell script when using option
--init_project to help automate all import into PostgreSQL.
See sh import_all.sh -? for more information.
* Export Oracle bitmap index as PostgreSQL btree_gin index. This require the
btree_gin extension and PostgreSQL >= 9.4. This is the default.
* Auto set DEFINED_PK to the first column of a table that have a unique key
defined that is a NUMBER. This allow data of any table with a numeric
unique key to be extracted using multiple connexions to Oracle using -J
option. Tables with no numeric unique key will be exported with a single
process.
* Improve BLOB export speed by using hex encoding instead of escape. This
might speed up be BLOB export by 10.
* Allow use of LOB locator to retrieve BLOB and CLOB data to prevent having
to set LONGREADLEN. Now LONGREADLEN is set to 8KB. Old behavior using
LONGREADLEN can still be enabled by setting NO_LOB_LOCATOR to 0, given
for backward compatibility. Default is to use LOB locator.
* Ora2Pg will also auto detect table with BLOB and automatically decrease
DATA_LIMIT to a value lower or equal to 1000. This is to prevent OOM.
* Improving indexes and constraints creation speed by using the LOAD action
and a file containing SQL orders to perform. It is possible to dispatch
those orders over multiple PostgreSQL connections. To be able to use this
feature, PG_DSN, PG_USER and PG_PWD must be set. Then:
ora2pg -t LOAD -c config/ora2pg.conf -i schema/tables/INDEXES_table.sql -j 4
will dispatch indexes creation over 4 simultaneous PostgreSQL connections.
This will considerably accelerate this part of the migration process with
huge data size.
* Domain indexes are now exported as b-tree but commented to let you know
where possible FTS are required.
* Add number of refresh ON COMMIT materialized view in detailed report.
* Allow redefinition of numeric type, ex: NUMBER(3)::bigint to fix wrong
original definition in Oracle.
* Allow export of all schemas from an Oracle Instance when SCHEMA directive
is empty and EXPORT_SCHEMA is enabled. All exported objects will be
prefixed with the name of their original Oracle schema or search_path will
be set to that schema name. Thanks to Magnus Hagander for the feature
request.
* Allow use of COPY FREEZE to export data when COPY_FREEZE is enabled. This
will only works with export to file and when -J or ORACLE_COPIES is not
set or default to 1. It can be used with direct import into PostgreSQL
under the same condition but -j or JOBS must be unset or default to 1.
Thanks to Magnus Hagander for the feature request.
Some new configuration directives:
* BITMAP_AS_GIN: enable it to use btree_gin extension to create bitmap
like index with pg >= 9.4. You will need to create the extension by
yourself: "create extension btree_gin;". Default is to create GIN index,
when disabled, a btree index will be created.
* NO_LOB_LOCATOR: to disable use of LOB locator and extract BLOB "inline"
using a less or more high value in LONGREADLEN.
* BLOB_LIMIT: to force the value of DATA_LIMIT for tables with BLOB. Default
is to automatically set this limit using the following code:
BLOB_LIMIT=DATA_LIMIT; while (BLOB_LIMIT > 1000) BLOB_LIMIT /= 10
* COPY_FREEZE: use it to use COPY FREEZE instead of simple COPY to speedup
import into PostgreSQL.
Here is the complete list of other changes:
- Limite package function name rewrite to call with parenthesis after the
function name to avoid rewriting names of other objects.
- Fix extra replacement of function name with package prefix. On some
condition it was done multiple time.
- Set REPLACE_ZERO_DATE to -INFINITY in generic configuration when --mysql
is enabled.
- Fix extraction of partition with MySQL that was not limited to a single
database.
- Do some replacement on ORACLE_DNS and SCHEMA into generic configuration
when --mysql is used for better understanding.
- Add call to round() on -J parallelization when the auto detected column
is a numeric with scale.
- Add COMMIT to the difficulties migration assessment keywords as it need
context analyzing.
- Add call to cursor's %ROWCOUNT, %ISOPEN and %NOTFOUND to difficulties
migration assessment keywords.
- Replace call to CURSOR%ROWTYPE by RECORD. Thanks to Marc Cousin for the
report.
- Fix ALTER FUNCTION ... OWNER TO ... and REVOKE statement where functions
parameters were missing.
- Add Get_Env to the Oracle functions list for migration assessment.
- Disable variable NO_LOB_LOCATOR and set LONGREADLEN to 8192 bytes to use
LOB locators to extract BLOB in generic configuration file.
- Fix call method "disconnect" on unblessed reference at line 9998. Thanks
to Stephane Tachoires for the report.
- Exclude from export objects name matching /.*\$JAVA\$.*/ and /^PROF\$.*/.
- Fix migration assessment report when created during the package export.
- Force writing Oracle package body in separate files when FILE_PER_FUNCTION
is enabled and PLSQL_PGSQL disable to obtain package source code.
- Fix case where sequence max value is lower than start value, in this case,
set max value = start value.
- Fix missing newline after each package file to import in global package.sql
file when FILE_PER_FUNCTION is enabled.
- Remove export of user PUBLIC in GRANT export.
- Set DISABLE_TRIGGERS to 1 in generic configuration file auto generated when
ora2pg option --init_project is used.
- Remove call to quote_reserved_words() with index column when it we detect
a function based index, too much false positive are rewritten with SQL code
like CASE...WHEN.
- Update export_schema.sh to remove .sql files when there is not such object
leaving export directory empty.
- Prevent creating TBSP_INDEXES_tablespace.sql when no tablespaces are found
- Update documentation on WHERE clause on how to limit the number of tuples
exported for Oracle and MySQL to test data import.
- Fix unlisted spatial indexes in assessment report.
- Fix double quote on index name with index renaming and reserved keyword.
- Do not try to export tablespaces, privileges and audited queries as non DBA
user when USER_GRANT is enabled.
- Remove carriage return from list file.
- Force SCHEMA to database name with MySQL migration.
- Fix missing declaration of _extract_sequence_info(). Thank to Yannick DEVOS
for the report.
- Add documentation about COPY_FREEZE directive and add a note about export
of all schema.
- Remove systematic schema name appended to table name on KETTLE export, this
must only be true when EXPORT_SCHEMA is enabled.
- Fix TO_NUMBER() wrong replacement when a function is called as a parameter.
- Fix non converted DECODE() when they was called in an XMLELEMENT function.
- Suppress MDSYS.SDO_* from MDSYS call in migration assessment cost.
- Remove use of DBMS_STANDARD called with raise_application_error function
- Fix STRING type replacement
- Recreate README as a text file, not a man page.
- Reformat changelog to 80 characters.
- Add -t | --test command line option to ora2pg_scanner to be able to test
all connections defined into the CVS list file.
2015 10 15 - v16.0
This major release improve PL/SQL code replacement, fixes several bugs and
adds some major new features:
* Full migration of MySQL database, it just work like with Oracle database.
* Full migration assessment report for MySQL database.
* New script, ora2pg_scanner, to perform a migration assessment of all
Oracle and MySQL instances on a network.
* Add technical difficulty level in migration assessment.
* Allow migration assessment on client queries extracted from AUDIT_TRAIL
(oracle) or general_log table (mysql).
* Ora2Pg has a "made in one night" brand new Web site (still need some work).
See http://ora2pg.darold.net/
Example of technical difficulty level assessment output for the sakila database
with some more difficulties:
Total 83.90 cost migration units means approximatively 1 man-day(s).
Migration level: B-5
Here are the explanation of the migration level code:
Migration levels:
A - Migration that might be run automatically
B - Migration with code rewrite and a human-days cost up to 10 days
C - Migration with code rewrite and a human-days cost above 10 days
Technical levels:
1 = trivial: no stored functions and no triggers
2 = easy: no stored functions but with triggers, no manual rewriting
3 = simple: stored functions and/or triggers, no manual rewriting
4 = manual: no stored functions but with triggers or views with code
rewriting
5 = difficult: stored functions and/or triggers with code rewriting
This is to help you to find the database that can be migrated first with small
efforts (A and B) and those who need to conduct a full migration project (C).
This release has also some new useful features:
* Export type SHOW_TABLE now shows additional information about table type
(FOREIGN, EXTERNAL or PARTITIONED with the number of partition).
* Connection's user and password can be passed through environment variables
ORA2PG_USER and ORA2PG_PASSWD to avoid setting them at ora2pg command line.
* Improve PL/SQL replacement on ADD_MONTH(), ADD_YEAR(), TRUNC(), INSTR() and
remove the replacement limitation on DECODE().
* Add detection of migration difficulties in views, was previously reserved
to functions, procedures, packages and triggers.
* Replace values in auto generated configuration file from command line
options -s, -n, -u and -p when --init_project is used.
* Adjust lot of scores following new functionalities in Ora2Pg, ex: dblink or
synomyms are now easy to migrate.
There is some new command line options to ora2pg script:
* -m | --mysql : to be used with --init_project and -i option to inform
ora2pg that we work with a MySQL format
* -T | --temp_dir : option to be able to set a distinct temporary directory
to run ora2pg in parallel.
* --audit_user : option to set the user used in audit filter and enable
migration assessment report on queries from AUDIT_TRAIL (oracle) or
general_log table (mysql).
* --dump_as_sheet and --print_header options to be able to compute a CSV
file with all migration assessment from a list of oracle database.
* --dump_as_csv option to report assessments into a csv file. It will not
include comments or details, just objects names, numbers and cost.
Backward compatibility:
- Change NULL_EQUAL_EMPTY to be disabled by default to force change in the
application instead of transforming the PL/SQL.
This release adds some new configuration directives:
* MYSQL_PIPES_AS_CONCAT: Enable it if double pipe and double ampersand
(|| and &&) should not be taken as equivalent to OR and AND.
* MYSQL_INTERNAL_EXTRACT_FORMAT: Enable it if you want EXTRACT() replacement
to use the internal format returned as an integer.
* AUDIT_USER: Set the comma separated list of user name that must be used
to filter from the DBA_AUDIT_TRAIL or general_log tables.
* REPLACE_ZERO_DATE: "zero" date: 0000-00-00 00:00:00 it is replaced by a
NULL by default, use it to use the date of your choice.
* INDEXES_RENAMING: force renaming of all indexes using tablename_columnsname
Very useful for database that have multiple time the same index name or
that use the same name than a table.
* HUMAN_DAYS_LIMIT: default to 5 days, used to set the number of human-days
limit for migration of type C.
Here is the full list of other changes:
- Remove list of acknowledgment that was not maintained anymore and some
person may feel injured. Acknowledgment for patches or bug reports are
always written to changelog, so this part reports to it now.
- Fix bad trigger export when objects was enclosed in double quote and fix
an additional bug in WHEN clause export. Thanks to Cyrille for the report.
- Update documentation.
- Update Makefile.PL with new script to install and new configuration
directives in auto generated configuration file.
- Update with new and missing files.
- Add a Perl Module dedicated to MySQL database object discovery and export,
lib/Ora2Pg/MySQL.pm.
- Fix function based index type replacement in previous commit.
- Do not report indexes with just DESC as function based index like Oracle
report it. Thanks to Marc Cousin for the report.
- Some excluded table was missing in the previous patch.
- Remove use of DBI InactiveDestroy call when a fork is done and replace it
to a single use AutoInactiveDestroy at connection. This require DBI>=1.614.
- Add SDO_* tables and OLS_DIR_BUSINESSES in table exclusion list to fix issue
#124 when no schema is provided. Thanks to Kenny Joseph for the report.
- Fix partition prefix.
- Remove UNIQUE keyword from spatial index.
- Fix alter triggers function with missing parenthesis. Thanks to Spike Hodge
MWEB for the report.
- Fix export of foreign keys when they was defined in lowercase. Thanks to
Spike for the report.
- Fix wrong offset when rewriting ROWNUM with LIMIT+OFFSET. Thanks to Marc
Cousin for the report.
- Allow -INFINITY to be used to replace zero date.
- Migration assessment in hour-day are now set to 1 man-day, we do not need
such a precision and it is easier to process csv report. Thanks to Stephane
Tachoire for the report.
- Fix some issue with FDW and WKT spatial export. Add migration assessment
of queries from the AUDIT_TRAIL table.
- Adjust assessment units of some objects and add QUERY migration weight.
- Rewrite information about migration levels.
- Fix speedometer in progress bar, it will now shows the current speed in
tuples/sec and the speed and time related to a table when export ended for
the object. Thanks to Alex Ignatov for the report.
- Fix break line when export data using INSERT mode. Thanks to Vu Bui for
the report.
- Do not display line about non existent objects in migration assessment
reports.
- Fix date default value for date when value is 0000-00-00 00:00:00
- Suppress display of title for function and trigger details when there is
no details.
- Remove INSTR() from the list of Oracle function that are not supported.
It is now replaced by position().
- Fix condition to call _get_largest_tables().
- Fix some minor issues in OUT/INOUT type returned by a function.
- Fix default value that may appears unquoted.
- Fix several issues on partition export: column with function, index on
default partition table and plsql to plpgsql translation in check condition.
- Fix some minor issues.
- Replace values from command line options -s, -n, -u and -p in --init_project
auto generated configuration file. Thanks to Stephane Tachoire for the
feature request.
- Fix wrong object count in SHOW_REPORT. Thanks to Stephane Tachoire for
the report.
- Use DBA_SEGMENTS to find database size when USER_GRANT is disable, aka user
is a DBA
- Remove report of Migration Level when --estimate_cost is not enabled.
- Add missing BINARY_INTEGER for type replacement.
- Always exclude function squirrel_get_error_offset() that is created by the
Squirrel Oracle plug-in.
- Adjust assessment scores following new functionalities in Ora2Pg, ex:
autonomous transaction, dblink or synomyms are now easy to migrate.
- Remove man page from source, it is auto generated by Makefile.PL and make.
- Fix unterminated DECODE replacement when there was more than 5 parameters
to DECODE() and remove the limitation to 10 parameters. There is no more
limit in the number of decode parameters. Thanks to Mael Rimbault for the
report.
- Remove inclusion of unwanted object when exporting a limited list of view
with ALLOW.
- Disable unsupported recursive query used to reorder views when Oracle
version is 11gR1. Thanks to Mael Rimbault for the patch.
- Add PLPGSQL replacement of INSTR() by POSITION(). Thanks to Mael Rimbault
for the report.
- Add difficulty level information in migration assessment, this include a
new configuration directive HUMAN_DAYS_LIMIT (default to 5 days) to set
the number of human-days limit for migration of type C.
- Add MERGE with a migration cost of 3, still need work be replaced by
ON CONFLICT.
- Remove some redundant regular expressions.
- Fix escaped commas not working properly in MODIFY_TYPE. A MODIFY_TYPE
value like `TABLE1:COL4:decimal(9\,6)` was leading to a column like
`col4 decimal(8#nosep#3)` in the SQL dump file that was generated. This
fixes the output to be `col4 decimal(8,3)`. Thanks to Nick Muerdter for
the patch.
- Strip default "empty_clob()" values from table dumps. This function does
not exist in Postgres and is not necessary. Thanks to Nick Muerdter for
the patch.
- Fix undesired double quoting of column name in function based indexes.
- Fix issue with Perl < 5.8 "Modification of a read-only value attempted"
- Fix retrieving of table size on Oracle 8i.
- Add auto double quoting of object name with unauthorized characters.
Thanks to Magnus Hagander for the feature request.
- Automatically double quote object name beginning with a number
- Fix missing DESC part in descending indexes. Thanks to Magnus Hagander
for the report.
- Fix case where a column name in oracle is just a number (e.g. the column
is called "7"), it will be created in postgres without quoted identifier,
which fails. Thanks to Magnus Hagander for the report.
- Fix "reqs/sec" display in debug mode. Thanks to Laurent Martelli for
the patch
- Fix export if Oracle procedure is created without a parameter. Thanks to
dirkgently007 for the report.
- Fix CSV report output.
- Fix triggers from file parser.
- Add a test on triggers return to handle case where it is triggered on
DELETE + other(s) event(s). In this case a test is done on the TG_OP to
return OLD if event is DELETE or NEW in other case. Thanks to Dominique
Legendre for the suggestion.
- Change NULL_EQUAL_EMPTY to be disabled by default to force change of the
application instead of transforming the PL/SQL.
- Change score of SYNONYM and DBLINK in the migration assessment.
- Add conversion of Oracle type STRING into varchar(n) or text.
- Add information about libaio1 requirement for instant client
- Remove extra space when calling ora2pg_get_efile() used to export BFILE
into EFILE. Thanks to Dominique Legendre for the export.
2015 06 01 - v15.3
This is a maintenance release only that fixes several minor bugs and typos.
The configuration file have been entirely rewritten to classify configuration
directives in section for better understanding.
Here is the full list of changes:
- Ora2Pg will use DEFAULT_SRID when call to sdo_cs.map_oracle_srid_to_epsg()
returns an ORA-01741 error. Mostly because there's no SRID defined for that
column in ALL_SDO_GEOM_METADATA. The error message will still be displayed
but a warning will explain the reason and ora2pg will continue with default
value. Thanks to kazam for the report.
- Add current setting for NLS_TIMESTAMP_FORMAT and NLS_DATE_FORMAT to the
SHOW_ENCODING report.
- Change default value for GEOMETRY_EXTRACT_TYPE to INTERNAL instead of WKT.
- Change generic configuration file behavior with BINMODE parameter commented
if it was previously uncommented. This will force to use the default value.
- Fix potential issue with max open file limit with unclosed temporary file.
Thanks to Marc Clement for the report.
- Fix use of SECURITY DEFINER in SYNONYM export.
- Fix parsing of editable function/procedure/package from input DML file.
- Fix case where variable $2 and $3 was null after a too early call of a new
substitution in read_view_from_file(). Thanks to Alex Ignatov for the patch.
- Add support to "create or replace editionable|noneditionable" from input DML
files. Thanks to Alex Ignatov for the report.
- Fix unknown column HIGH_VALUE from *_TAB_PARTITIONS in Oracle 8i. Thanks to
Sebastian Fischer for the patch.
- Fix call to ALL_MVIEW_LOGS object which not exists with Oracle 8i. Thanks to
Sebastian Fischer for the report.
- Fix Error ORA-22905 while Get the dimension of the geometry by looking at
number of element in the SDO_DIM_ARRAY. Thanks to jkutterer for the patch.
- Remove reordering export of view for Oracle database before 11g. Thanks to
kyiannis for the report.
- Fix several some typos and a bunch of misspelled. Thanks to Euler Taveira
for all the patches.
- Fix missing Oracle database version before looking at function security
definer. Thanks to kyiannis for the report.
2015 04 13 - v15.2
This new minor release fixes some issues and adds two new configuration
directives:
* ORA_INITIAL_COMMAND to be able to execute a custom command just after
the connection to Oracle, for example to unlock a security policy.
* INTERNAL_DATE_MAX to change the behavior of Ora2Pg with internal date
found in user defined types.
This version will also automatically re-order exported views taking into
account interdependencies.
Here is the full list of changes:
- Add INTERNAL_DATE_MAX configuration directive with default to 49 to be
used when reformatting internal date returned with a user defined type
and a timestamp column. DBD::Oracle only return the internal date format
01-JAN-77 12.00.00.000000 AM so it is difficult to know if the year value
must be added to 2000 or 1900. We takes the default behavior where date
are between 1950 and 2049.
- Remove extra CHAR and BYTE information from column type. Thanks to Magnus
Hagander for the report.
- Re-order views taking into account interdependencies. Thanks to Kuppusamy
Ravindran and Ulrike for the suggestion and the Oracle query.
- Fix case sensitivity in function based indexes. Thanks to Kuppusamy
Ravindran for the report.
- Fix PERFORM wrong replacement and infinite loop processing DECODE in some
condition. Thanks to Didier Brugat for the report.
- Fix replacement of boolean value in DEFAULT value at table creation.
Thanks to baul87 for the report.
- Add ORA_INITIAL_COMMAND configuration directive to be able to execute a
custom command just after the connection to Oracle, to unlock a policy for
example. Thanks to Didier BRUGAT for the feature request.
- Fix alias in from clause when an XML type is found. Thanks to Lance Jacob
for the record.
- Invert condition on excluding temporary file with Windows OS. Thanks to
kazam for the report.
- Remove start time and global number of rows from _dump_table() parameters
they are not used anymore.
- Remove use of temporary file on Windows operating system.
- Disable parallel table export when operating system is Windows.
- Fix export of objects with case sensitivity using ALLOW or EXCLUDE
directives. Thanks to Alexey Ignatov for the report.
- Fix export of triggers from recycle bin.
- Fix count of synonym in assessment report.
- Add list of tables created by OEM to the exclusion list.
- Fix look at default configuration file and set mode of export_schema.sh
to executable by default. Thanks to Kuppusamy Ravindran for the report.
- Add AUTHORIZATION to the list of PostgreSQL reserved word. Thanks to
Kuppusamy Ravindran for the report.
- Display a warning when an index has the same name as the table itself so
that you can renamed it before export. Thanks to Kuppusamy Ravindran for
the feature request.
- Fix export of function based indexes with multiple column. Thanks to
Kuppusamy Ravindran for the report.
- Modify ora2pg script to return 0 on success, 1 on any fatal error and 2
when a child process die is detected.
- Change the way the generic configuration file is handle during project
initialization. You can use -c option to copy your own into the project
directory. If the file has the .dist extension, ora2pg will apply the
generic configuration on it. Thanks to Kuppusamy Ravindran for the report
and features request.
- Add debug information when cloning the Oracle connection.
- Force return of OLD when the trigger is on DELETE event
2015 02 06 - v15.1
New minor release just to fix two annoying bugs in previous release.
- Fix replacement of function name which include SELECT in their name by
PERFORM. Thanks to Frederic Bamiere for the report.
- Fix creation of sources subdirectories when initializing a new migration project.
2015 02 04 - v15.0
This major release improve PL/SQL code replacement, fixes several bugs and
adds some new useful features:
- Add support to the PostgreSQL external_file extension to mimic BFILE
type from Oracle. See https://github.com/darold/external_file for
more information.
- Allow export of Oracle's DIRECTORY as external_file extension objects
This will also try to export read/write privilege on those directories.
- Allow export of Oracle's DATABASE LINK as Oracle foreign data wrapper
server using oracle_fdw.
- Allow function with PRAGMA AUTONOMOUS_TRANSACTION to be exported through
a dblink wrapper to achieve the autonomous transaction.
- Allow export of Oracle's SYNONYMS as views. Views can use foreign table
to create "synonym" on object of a remote database.
- Add trimming of data when DATA_TYPE is used to convert CHAR(n) Oracle
column into varchar(n) or text. Default is to trim both side any space
character. This behavior can be controlled using two new configuration
directives TRIM_TYPE and TRIM_CHAR.
- Add auto detection of geometry constraint type and dimensions through
spatial index parameters. This avoid the overhead of sequential scan
of the geometric column.
- Add support to export Oracle sub partition and create sub partition
for PostgreSQL with the corresponding trigger.
- ALLOW and EXCLUDE directives are now able to apply filter on the object
type. Backward compatibility can not be fully preserved, older definition
will apply to current export type only, this could change your export in
some conditions. See documentation update for more explanation.
- Add PACKAGE_AS_SCHEMA directive to change default behavior that use a
schema to emulate Oracle package function call. When disable, all calls
to package_name.function_name() will be turn into package_name_function_name()
just like a function call in current schema.
- Add FKEY_OPTIONS to force foreign keys options. List of supported options
are: ON DELETE|UPDATE CASCADE|RESTRICT|NO ACTION.
- Add rewriting of internal functions in package body, those functions will
be prefixed by the package name. Thanks to Dominique Legendre for the
feature request.
Some change can break backward compatibility and make configuration directives
obsolete:
- The ALLOW_PARTITION configuration directive has been removed. With new
extended filters in ALLOW/EXCLUDE directive, this one is obsolete.
Backward compatibility is preserved but may be removed in the future.
- ALLOW and EXCLUDE directives do not works as previously. Backward
compatibility may be preserved with some export type but may be broken
in most of them. See documentation.
- It is recommended now to leave the NLS_LANG and CLIENT_ENCODING commented
to let Ora2Pg handle automatically the encoding. Those directives may be
removed in the future.
Here is the full changelog of the release:
- Declares SYNONYM views as SECURITY DEFINER to be able to grant access to
objects in other schema.
- Fix wrong replacement of data type in function body. Thanks to Dominique
Legendre for the report.
- Fix missing column name replacement on trigger export when REPLACE_COLS
is defined. Thanks to Dominique Legendre for the report.
- Fix missing table replacement on trigger export when REPLACE_TABLES is
defined. Thanks to Dominique Legendre for the report.
- Fix case where IS NULL substitution was not working. Thanks to Dominique
Legendre for the report.
- Remove double exclusion clause when multiple export type is used with same
column name and no values defined.
- Allow parsing of DATABASE LINK and SYNONYM from a DDL file.
- Add DIRECTORY export type to export all Oracle directories as entries for
the external_file extension. This will also export read/write privilege
on those directories. Thanks to Dominique Legendre for the feature request.