@@ -9,7 +9,8 @@ module StructureDump #:nodoc:
99
1010 def structure_dump #:nodoc:
1111 sequences = select ( <<~SQL . squish , "SCHEMA" )
12- SELECT sequence_name, min_value, max_value, increment_by, order_flag, cycle_flag
12+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */
13+ sequence_name, min_value, max_value, increment_by, order_flag, cycle_flag
1314 FROM all_sequences
1415 where sequence_owner = SYS_CONTEXT('userenv', 'current_schema') ORDER BY 1
1516 SQL
@@ -18,7 +19,7 @@ def structure_dump #:nodoc:
1819 "CREATE SEQUENCE #{ quote_table_name ( result [ "sequence_name" ] ) } MINVALUE #{ result [ "min_value" ] } MAXVALUE #{ result [ "max_value" ] } INCREMENT BY #{ result [ "increment_by" ] } #{ result [ "order_flag" ] == 'Y' ? "ORDER" : "NOORDER" } #{ result [ "cycle_flag" ] == 'Y' ? "CYCLE" : "NOCYCLE" } "
1920 end
2021 tables = select_values ( <<~SQL . squish , "SCHEMA" )
21- SELECT table_name FROM all_tables t
22+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ table_name FROM all_tables t
2223 WHERE owner = SYS_CONTEXT('userenv', 'current_schema') AND secondary = 'N'
2324 AND NOT EXISTS (SELECT mv.mview_name FROM all_mviews mv
2425 WHERE mv.owner = t.owner AND mv.mview_name = t.table_name)
@@ -30,7 +31,7 @@ def structure_dump #:nodoc:
3031 virtual_columns = virtual_columns_for ( table_name ) if supports_virtual_columns?
3132 ddl = +"CREATE#{ ' GLOBAL TEMPORARY' if temporary_table? ( table_name ) } TABLE \" #{ table_name } \" (\n "
3233 columns = select_all ( <<~SQL . squish , "SCHEMA" )
33- SELECT column_name, data_type, data_length, char_used, char_length,
34+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ column_name, data_type, data_length, char_used, char_length,
3435 data_precision, data_scale, data_default, nullable
3536 FROM all_tab_columns
3637 WHERE table_name = '#{ table_name } '
@@ -90,7 +91,7 @@ def structure_dump_virtual_column(column, data_default) #:nodoc:
9091 def structure_dump_primary_key ( table ) #:nodoc:
9192 opts = { name : "" , cols : [ ] }
9293 pks = select_all ( <<~SQL . squish , "SCHEMA" )
93- SELECT a.constraint_name, a.column_name, a.position
94+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ a.constraint_name, a.column_name, a.position
9495 FROM all_cons_columns a
9596 JOIN all_constraints c
9697 ON a.constraint_name = c.constraint_name
@@ -109,7 +110,7 @@ def structure_dump_primary_key(table) #:nodoc:
109110 def structure_dump_unique_keys ( table ) #:nodoc:
110111 keys = { }
111112 uks = select_all ( <<~SQL . squish , "SCHEMA" )
112- SELECT a.constraint_name, a.column_name, a.position
113+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ a.constraint_name, a.column_name, a.position
113114 FROM all_cons_columns a
114115 JOIN all_constraints c
115116 ON a.constraint_name = c.constraint_name
@@ -145,7 +146,7 @@ def structure_dump_indexes(table_name) #:nodoc:
145146
146147 def structure_dump_fk_constraints #:nodoc:
147148 foreign_keys = select_all ( <<~SQL . squish , "SCHEMA" )
148- SELECT table_name FROM all_tables
149+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ table_name FROM all_tables
149150 WHERE owner = SYS_CONTEXT('userenv', 'current_schema') ORDER BY 1
150151 SQL
151152 fks = foreign_keys . map do |table |
@@ -173,7 +174,7 @@ def structure_dump_table_comments(table_name)
173174 def structure_dump_column_comments ( table_name )
174175 comments = [ ]
175176 columns = select_values ( <<~SQL . squish , "SCHEMA" )
176- SELECT column_name FROM user_tab_columns
177+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ column_name FROM user_tab_columns
177178 WHERE table_name = '#{ table_name } ' ORDER BY column_id
178179 SQL
179180
@@ -207,7 +208,7 @@ def foreign_key_definition(to_table, options = {}) #:nodoc:
207208 def structure_dump_db_stored_code #:nodoc:
208209 structure = [ ]
209210 all_source = select_all ( <<~SQL . squish , "SCHEMA" )
210- SELECT DISTINCT name, type
211+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ DISTINCT name, type
211212 FROM all_source
212213 WHERE type IN ('PROCEDURE', 'PACKAGE', 'PACKAGE BODY', 'FUNCTION', 'TRIGGER', 'TYPE')
213214 AND name NOT LIKE 'BIN$%'
@@ -216,7 +217,7 @@ def structure_dump_db_stored_code #:nodoc:
216217 all_source . each do |source |
217218 ddl = +"CREATE OR REPLACE \n "
218219 texts = select_all ( <<~SQL . squish , "all source at structure dump" )
219- SELECT text
220+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ text
220221 FROM all_source
221222 WHERE name = '#{ source [ 'name' ] } '
222223 AND type = '#{ source [ 'type' ] } '
@@ -239,7 +240,7 @@ def structure_dump_db_stored_code #:nodoc:
239240 def structure_dump_views #:nodoc:
240241 structure = [ ]
241242 views = select_all ( <<~SQL . squish , "SCHEMA" )
242- SELECT view_name, text FROM all_views
243+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ view_name, text FROM all_views
243244 WHERE owner = SYS_CONTEXT('userenv', 'current_schema') ORDER BY view_name ASC
244245 SQL
245246 views . each do |view |
@@ -251,7 +252,7 @@ def structure_dump_views #:nodoc:
251252 def structure_dump_synonyms #:nodoc:
252253 structure = [ ]
253254 synonyms = select_all ( <<~SQL . squish , "SCHEMA" )
254- SELECT owner, synonym_name, table_name, table_owner
255+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ owner, synonym_name, table_name, table_owner
255256 FROM all_synonyms
256257 WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
257258 SQL
@@ -264,13 +265,14 @@ def structure_dump_synonyms #:nodoc:
264265
265266 def structure_drop #:nodoc:
266267 sequences = select_values ( <<~SQL . squish , "SCHEMA" )
267- SELECT sequence_name FROM all_sequences where sequence_owner = SYS_CONTEXT('userenv', 'current_schema') ORDER BY 1
268+ SELECT/*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */
269+ sequence_name FROM all_sequences where sequence_owner = SYS_CONTEXT('userenv', 'current_schema') ORDER BY 1
268270 SQL
269271 statements = sequences . map do |seq |
270272 "DROP SEQUENCE \" #{ seq } \" "
271273 end
272274 tables = select_values ( <<~SQL . squish , "SCHEMA" )
273- SELECT table_name from all_tables t
275+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ table_name from all_tables t
274276 WHERE owner = SYS_CONTEXT('userenv', 'current_schema') AND secondary = 'N'
275277 AND NOT EXISTS (SELECT mv.mview_name FROM all_mviews mv
276278 WHERE mv.owner = t.owner AND mv.mview_name = t.table_name)
@@ -286,7 +288,7 @@ def structure_drop #:nodoc:
286288
287289 def temp_table_drop #:nodoc:
288290 temporary_tables = select_values ( <<~SQL . squish , "SCHEMA" )
289- SELECT table_name FROM all_tables
291+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ table_name FROM all_tables
290292 WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
291293 AND secondary = 'N' AND temporary = 'Y' ORDER BY 1
292294 SQL
@@ -320,7 +322,7 @@ def execute_structure_dump(string)
320322 # return [{'column_name' => 'FOOS', 'data_default' => '...'}, ...]
321323 def virtual_columns_for ( table )
322324 select_all ( <<~SQL . squish , "SCHEMA" )
323- SELECT column_name, data_default
325+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ column_name, data_default
324326 FROM all_tab_cols
325327 WHERE virtual_column = 'YES'
326328 AND owner = SYS_CONTEXT('userenv', 'current_schema')
@@ -331,7 +333,7 @@ def virtual_columns_for(table)
331333 def drop_sql_for_feature ( type )
332334 short_type = type == "materialized view" ? "mview" : type
333335 features = select_values ( <<~SQL . squish , "SCHEMA" )
334- SELECT #{ short_type } _name FROM all_#{ short_type . tableize }
336+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ #{ short_type } _name FROM all_#{ short_type . tableize }
335337 where owner = SYS_CONTEXT('userenv', 'current_schema')
336338 SQL
337339 statements = features . map do |name |
@@ -342,7 +344,7 @@ def drop_sql_for_feature(type)
342344
343345 def drop_sql_for_object ( type )
344346 objects = select_values ( <<~SQL . squish , "SCHEMA" )
345- SELECT object_name FROM all_objects
347+ SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ object_name FROM all_objects
346348 WHERE object_type = '#{ type . upcase } ' and owner = SYS_CONTEXT('userenv', 'current_schema')
347349 SQL
348350 statements = objects . map do |name |
0 commit comments