Clean improvements for Oracle (2nd try) #1573
The main goals of this PR are:
The full change is split into a chain of non-breaking smaller commits, so they could be reviewed easier.
The list of changes done:
These changes have been successfully tested on Oracle 10.2.0.1 XE, 10.2.0.5 EE, 18.104.22.168 EE. To be tested on 11 XE, 12 EE.
Originally I had intention to extend Clean method with more schema-owned object types:
and others that can be cleaned but ignored.
But now I see there's a flaw in SchemaObject's OO design, which should be fixed in a separate change. So I removed my refactoring changes from this PR (I didn't like them after a fresh morning look) and kept only those related to performance and bugs. So the goal of simplifying doClean() hasn't been achieved yet.
(cherry picked from commit 3dcb9c5)
Disabling of FBA can be done on another schema's objects. Edited some comments and variable/method names in order to avoid confusing with other Flashback features. Renamed Spatial to Locator whenever occurred. Spatial is a separate paid option, while Locator is free and available even on XE and is actually meant in the code (see Oracle white paper on Spatial). Only metadata is cleaned, and domain indexes should be dropped along with other objects. (cherry picked from commit d32fc97)
Fixed support for FBA tracked tables, queue tables, scheduler jobs in non-default schemas. Removed faulty filters on object names to exclude wrong objects - replaced with proper conditions, revised drop order and separate steps for MV logs and domain indexes. Merge remote-tracking branch 'remotes/origin/oracle-improve-clean' into oracle-improve-clean-2