Skip to content

Commit d5e619d

Browse files
committed
Remove OPTIMIZER_FEATURES_ENABLE('11.2.0.2') hint take 2
There were some unremoved hints via #2337
1 parent 3edd04c commit d5e619d

File tree

4 files changed

+37
-37
lines changed

4 files changed

+37
-37
lines changed

lib/active_record/connection_adapters/oracle_enhanced/schema_dumper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def default_primary_key?(column)
181181
def extract_expression_for_virtual_column(column)
182182
column_name = column.name
183183
@connection.select_value(<<~SQL.squish, "SCHEMA", [bind_string("table_name", table_name.upcase), bind_string("column_name", column_name.upcase)]).inspect
184-
select /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ data_default from all_tab_columns
184+
select data_default from all_tab_columns
185185
where owner = SYS_CONTEXT('userenv', 'current_schema')
186186
and table_name = :table_name
187187
and column_name = :column_name

lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ module SchemaStatements
1212

1313
def tables # :nodoc:
1414
select_values(<<~SQL.squish, "SCHEMA")
15-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */
15+
SELECT
1616
DECODE(table_name, UPPER(table_name), LOWER(table_name), table_name)
1717
FROM all_tables
1818
WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
@@ -45,7 +45,7 @@ def table_exists?(table_name)
4545
end
4646

4747
select_values(<<~SQL.squish, "SCHEMA", [bind_string("owner", table_owner), bind_string("table_name", table_name)]).any?
48-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ owner, table_name
48+
SELECT owner, table_name
4949
FROM all_tables
5050
WHERE owner = :owner
5151
AND table_name = :table_name
@@ -61,14 +61,14 @@ def data_source_exists?(table_name)
6161

6262
def views # :nodoc:
6363
select_values(<<~SQL.squish, "SCHEMA")
64-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */
64+
SELECT
6565
LOWER(view_name) FROM all_views WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
6666
SQL
6767
end
6868

6969
def materialized_views # :nodoc:
7070
select_values(<<~SQL.squish, "SCHEMA")
71-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */
71+
SELECT
7272
LOWER(mview_name) FROM all_mviews WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
7373
SQL
7474
end
@@ -91,7 +91,7 @@ def indexes(table_name) # :nodoc:
9191
default_tablespace_name = default_tablespace
9292

9393
result = select_all(<<~SQL.squish, "SCHEMA", [bind_string("table_name", table_name)])
94-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ LOWER(i.table_name) AS table_name, LOWER(i.index_name) AS index_name, i.uniqueness,
94+
SELECT LOWER(i.table_name) AS table_name, LOWER(i.index_name) AS index_name, i.uniqueness,
9595
i.index_type, i.ityp_owner, i.ityp_name, i.parameters,
9696
LOWER(i.tablespace_name) AS tablespace_name,
9797
LOWER(c.column_name) AS column_name, e.column_expression,
@@ -121,7 +121,7 @@ def indexes(table_name) # :nodoc:
121121
if row["index_type"] == "DOMAIN" && row["ityp_owner"] == "CTXSYS" && row["ityp_name"] == "CONTEXT"
122122
procedure_name = default_datastore_procedure(row["index_name"])
123123
source = select_values(<<~SQL.squish, "SCHEMA", [bind_string("procedure_name", procedure_name.upcase)]).join
124-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ text
124+
SELECT text
125125
FROM all_source
126126
WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
127127
AND name = :procedure_name
@@ -370,7 +370,7 @@ def index_name(table_name, options) # :nodoc:
370370
def index_name_exists?(table_name, index_name)
371371
(_owner, table_name) = @raw_connection.describe(table_name)
372372
result = select_value(<<~SQL.squish, "SCHEMA", [bind_string("table_name", table_name), bind_string("index_name", index_name.to_s.upcase)])
373-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ 1 FROM all_indexes i
373+
SELECT 1 FROM all_indexes i
374374
WHERE i.owner = SYS_CONTEXT('userenv', 'current_schema')
375375
AND i.table_owner = SYS_CONTEXT('userenv', 'current_schema')
376376
AND i.table_name = :table_name
@@ -513,7 +513,7 @@ def table_comment(table_name) # :nodoc:
513513
# TODO
514514
(_owner, table_name) = @raw_connection.describe(table_name)
515515
select_value(<<~SQL.squish, "SCHEMA", [bind_string("table_name", table_name)])
516-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ comments FROM all_tab_comments
516+
SELECT comments FROM all_tab_comments
517517
WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
518518
AND table_name = :table_name
519519
SQL
@@ -529,7 +529,7 @@ def column_comment(table_name, column_name) # :nodoc:
529529
# TODO: it does not exist in Abstract adapter
530530
(_owner, table_name) = @raw_connection.describe(table_name)
531531
select_value(<<~SQL.squish, "SCHEMA", [bind_string("table_name", table_name), bind_string("column_name", column_name.upcase)])
532-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ comments FROM all_col_comments
532+
SELECT comments FROM all_col_comments
533533
WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
534534
AND table_name = :table_name
535535
AND column_name = :column_name
@@ -546,7 +546,7 @@ def type_to_sql(type, limit: nil, precision: nil, scale: nil, **) # :nodoc:
546546

547547
def tablespace(table_name)
548548
select_value(<<~SQL.squish, "SCHEMA")
549-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ tablespace_name
549+
SELECT tablespace_name
550550
FROM all_tables
551551
WHERE table_name='#{table_name.to_s.upcase}'
552552
AND owner = SYS_CONTEXT('userenv', 'current_schema')
@@ -558,7 +558,7 @@ def foreign_keys(table_name) # :nodoc:
558558
(_owner, desc_table_name) = @raw_connection.describe(table_name)
559559

560560
fk_info = select_all(<<~SQL.squish, "SCHEMA", [bind_string("desc_table_name", desc_table_name)])
561-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ r.table_name to_table
561+
SELECT r.table_name to_table
562562
,rc.column_name references_column
563563
,cc.column_name
564564
,c.constraint_name name
@@ -600,7 +600,7 @@ def extract_foreign_key_action(specifier) # :nodoc:
600600

601601
def disable_referential_integrity(&block) # :nodoc:
602602
old_constraints = select_all(<<~SQL.squish, "SCHEMA")
603-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ constraint_name, owner, table_name
603+
SELECT constraint_name, owner, table_name
604604
FROM all_constraints
605605
WHERE constraint_type = 'R'
606606
AND status = 'ENABLED'
@@ -715,7 +715,7 @@ def rebuild_primary_key_index_to_default_tablespace(table_name, options)
715715
return unless tablespace
716716

717717
index_name = select_value(<<~SQL.squish, "Index name for primary key", [bind_string("table_name", table_name.upcase)])
718-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ index_name FROM all_constraints
718+
SELECT index_name FROM all_constraints
719719
WHERE table_name = :table_name
720720
AND constraint_type = 'P'
721721
AND owner = SYS_CONTEXT('userenv', 'current_schema')

lib/active_record/connection_adapters/oracle_enhanced/structure_dump.rb

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ module StructureDump # :nodoc:
99

1010
def structure_dump # :nodoc:
1111
sequences = select(<<~SQL.squish, "SCHEMA")
12-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */
12+
SELECT
1313
sequence_name, min_value, max_value, increment_by, order_flag, cycle_flag
1414
FROM all_sequences
1515
where sequence_owner = SYS_CONTEXT('userenv', 'current_schema') ORDER BY 1
@@ -19,7 +19,7 @@ def structure_dump # :nodoc:
1919
"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"}"
2020
end
2121
tables = select_values(<<~SQL.squish, "SCHEMA")
22-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ table_name FROM all_tables t
22+
SELECT table_name FROM all_tables t
2323
WHERE owner = SYS_CONTEXT('userenv', 'current_schema') AND secondary = 'N'
2424
AND NOT EXISTS (SELECT mv.mview_name FROM all_mviews mv
2525
WHERE mv.owner = t.owner AND mv.mview_name = t.table_name)
@@ -31,7 +31,7 @@ def structure_dump # :nodoc:
3131
virtual_columns = virtual_columns_for(table_name) if supports_virtual_columns?
3232
ddl = +"CREATE#{ ' GLOBAL TEMPORARY' if temporary_table?(table_name)} TABLE \"#{table_name}\" (\n"
3333
columns = select_all(<<~SQL.squish, "SCHEMA", [bind_string("table_name", table_name)])
34-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ column_name, data_type, data_length, char_used, char_length,
34+
SELECT column_name, data_type, data_length, char_used, char_length,
3535
data_precision, data_scale, data_default, nullable
3636
FROM all_tab_columns
3737
WHERE table_name = :table_name
@@ -92,7 +92,7 @@ def structure_dump_virtual_column(column, data_default) # :nodoc:
9292
def structure_dump_primary_key(table) # :nodoc:
9393
opts = { name: "", cols: [] }
9494
pks = select_all(<<~SQL.squish, "SCHEMA")
95-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ a.constraint_name, a.column_name, a.position
95+
SELECT a.constraint_name, a.column_name, a.position
9696
FROM all_cons_columns a
9797
JOIN all_constraints c
9898
ON a.constraint_name = c.constraint_name
@@ -111,7 +111,7 @@ def structure_dump_primary_key(table) # :nodoc:
111111
def structure_dump_unique_keys(table) # :nodoc:
112112
keys = {}
113113
uks = select_all(<<~SQL.squish, "SCHEMA")
114-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ a.constraint_name, a.column_name, a.position
114+
SELECT a.constraint_name, a.column_name, a.position
115115
FROM all_cons_columns a
116116
JOIN all_constraints c
117117
ON a.constraint_name = c.constraint_name
@@ -147,7 +147,7 @@ def structure_dump_indexes(table_name) # :nodoc:
147147

148148
def structure_dump_fk_constraints # :nodoc:
149149
foreign_keys = select_all(<<~SQL.squish, "SCHEMA")
150-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ table_name FROM all_tables
150+
SELECT table_name FROM all_tables
151151
WHERE owner = SYS_CONTEXT('userenv', 'current_schema') ORDER BY 1
152152
SQL
153153
fks = foreign_keys.map do |table|
@@ -175,7 +175,7 @@ def structure_dump_table_comments(table_name)
175175
def structure_dump_column_comments(table_name)
176176
comments = []
177177
columns = select_values(<<~SQL.squish, "SCHEMA", [bind_string("table_name", table_name)])
178-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ column_name FROM all_tab_columns
178+
SELECT column_name FROM all_tab_columns
179179
WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
180180
AND table_name = :table_name ORDER BY column_id
181181
SQL
@@ -210,7 +210,7 @@ def foreign_key_definition(to_table, options = {}) # :nodoc:
210210
def structure_dump_db_stored_code # :nodoc:
211211
structure = []
212212
all_source = select_all(<<~SQL.squish, "SCHEMA")
213-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ DISTINCT name, type
213+
SELECT DISTINCT name, type
214214
FROM all_source
215215
WHERE type IN ('PROCEDURE', 'PACKAGE', 'PACKAGE BODY', 'FUNCTION', 'TRIGGER', 'TYPE')
216216
AND name NOT LIKE 'BIN$%'
@@ -219,7 +219,7 @@ def structure_dump_db_stored_code # :nodoc:
219219
all_source.each do |source|
220220
ddl = +"CREATE OR REPLACE \n"
221221
texts = select_all(<<~SQL.squish, "all source at structure dump", [bind_string("source_name", source["name"]), bind_string("source_type", source["type"])])
222-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ text
222+
SELECT text
223223
FROM all_source
224224
WHERE name = :source_name
225225
AND type = :source_type
@@ -242,7 +242,7 @@ def structure_dump_db_stored_code # :nodoc:
242242
def structure_dump_views # :nodoc:
243243
structure = []
244244
views = select_all(<<~SQL.squish, "SCHEMA")
245-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ view_name, text FROM all_views
245+
SELECT view_name, text FROM all_views
246246
WHERE owner = SYS_CONTEXT('userenv', 'current_schema') ORDER BY view_name ASC
247247
SQL
248248
views.each do |view|
@@ -254,7 +254,7 @@ def structure_dump_views # :nodoc:
254254
def structure_dump_synonyms # :nodoc:
255255
structure = []
256256
synonyms = select_all(<<~SQL.squish, "SCHEMA")
257-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ owner, synonym_name, table_name, table_owner
257+
SELECT owner, synonym_name, table_name, table_owner
258258
FROM all_synonyms
259259
WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
260260
SQL
@@ -267,14 +267,14 @@ def structure_dump_synonyms # :nodoc:
267267

268268
def structure_drop # :nodoc:
269269
sequences = select_values(<<~SQL.squish, "SCHEMA")
270-
SELECT/*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */
270+
SELECT
271271
sequence_name FROM all_sequences where sequence_owner = SYS_CONTEXT('userenv', 'current_schema') ORDER BY 1
272272
SQL
273273
statements = sequences.map do |seq|
274274
"DROP SEQUENCE \"#{seq}\""
275275
end
276276
tables = select_values(<<~SQL.squish, "SCHEMA")
277-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ table_name from all_tables t
277+
SELECT table_name from all_tables t
278278
WHERE owner = SYS_CONTEXT('userenv', 'current_schema') AND secondary = 'N'
279279
AND NOT EXISTS (SELECT mv.mview_name FROM all_mviews mv
280280
WHERE mv.owner = t.owner AND mv.mview_name = t.table_name)
@@ -290,7 +290,7 @@ def structure_drop # :nodoc:
290290

291291
def temp_table_drop # :nodoc:
292292
temporary_tables = select_values(<<~SQL.squish, "SCHEMA")
293-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ table_name FROM all_tables
293+
SELECT table_name FROM all_tables
294294
WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
295295
AND secondary = 'N' AND temporary = 'Y' ORDER BY 1
296296
SQL
@@ -324,7 +324,7 @@ def execute_structure_dump(string)
324324
# return [{'column_name' => 'FOOS', 'data_default' => '...'}, ...]
325325
def virtual_columns_for(table)
326326
select_all(<<~SQL.squish, "SCHEMA", [bind_string("table_name", table.upcase)])
327-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ column_name, data_default
327+
SELECT column_name, data_default
328328
FROM all_tab_cols
329329
WHERE virtual_column = 'YES'
330330
AND owner = SYS_CONTEXT('userenv', 'current_schema')
@@ -335,7 +335,7 @@ def virtual_columns_for(table)
335335
def drop_sql_for_feature(type)
336336
short_type = type == "materialized view" ? "mview" : type
337337
features = select_values(<<~SQL.squish, "SCHEMA")
338-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ #{short_type}_name FROM all_#{short_type.tableize}
338+
SELECT #{short_type}_name FROM all_#{short_type.tableize}
339339
where owner = SYS_CONTEXT('userenv', 'current_schema')
340340
SQL
341341
statements = features.map do |name|
@@ -346,7 +346,7 @@ def drop_sql_for_feature(type)
346346

347347
def drop_sql_for_object(type)
348348
objects = select_values(<<~SQL.squish, "SCHEMA")
349-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ object_name FROM all_objects
349+
SELECT object_name FROM all_objects
350350
WHERE object_type = '#{type.upcase}' and owner = SYS_CONTEXT('userenv', 'current_schema')
351351
SQL
352352
statements = objects.map do |name|

lib/active_record/connection_adapters/oracle_enhanced_adapter.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ def current_schema
571571
# Default tablespace name of current user
572572
def default_tablespace
573573
select_value(<<~SQL.squish, "SCHEMA")
574-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ LOWER(default_tablespace) FROM user_users
574+
SELECT LOWER(default_tablespace) FROM user_users
575575
WHERE username = SYS_CONTEXT('userenv', 'current_schema')
576576
SQL
577577
end
@@ -580,7 +580,7 @@ def column_definitions(table_name)
580580
(owner, desc_table_name) = @raw_connection.describe(table_name)
581581

582582
select_all(<<~SQL.squish, "SCHEMA", [bind_string("owner", owner), bind_string("table_name", desc_table_name)])
583-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ cols.column_name AS name, cols.data_type AS sql_type,
583+
SELECT cols.column_name AS name, cols.data_type AS sql_type,
584584
cols.data_default, cols.nullable, cols.virtual_column, cols.hidden_column,
585585
cols.data_type_owner AS sql_type_owner,
586586
DECODE(cols.data_type, 'NUMBER', data_precision,
@@ -612,15 +612,15 @@ def pk_and_sequence_for(table_name, owner = nil, desc_table_name = nil) # :nodoc
612612
(owner, desc_table_name) = @raw_connection.describe(table_name)
613613

614614
seqs = select_values_forcing_binds(<<~SQL.squish, "SCHEMA", [bind_string("owner", owner), bind_string("sequence_name", default_sequence_name(desc_table_name))])
615-
select /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ us.sequence_name
615+
select us.sequence_name
616616
from all_sequences us
617617
where us.sequence_owner = :owner
618618
and us.sequence_name = upper(:sequence_name)
619619
SQL
620620

621621
# changed back from user_constraints to all_constraints for consistency
622622
pks = select_values_forcing_binds(<<~SQL.squish, "SCHEMA", [bind_string("owner", owner), bind_string("table_name", desc_table_name)])
623-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ cc.column_name
623+
SELECT cc.column_name
624624
FROM all_constraints c, all_cons_columns cc
625625
WHERE c.owner = :owner
626626
AND c.table_name = :table_name
@@ -654,7 +654,7 @@ def primary_keys(table_name) # :nodoc:
654654
(_owner, desc_table_name) = @raw_connection.describe(table_name)
655655

656656
pks = select_values_forcing_binds(<<~SQL.squish, "SCHEMA", [bind_string("table_name", desc_table_name)])
657-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ cc.column_name
657+
SELECT cc.column_name
658658
FROM all_constraints c, all_cons_columns cc
659659
WHERE c.owner = SYS_CONTEXT('userenv', 'current_schema')
660660
AND c.table_name = :table_name
@@ -684,7 +684,7 @@ def columns_for_distinct(columns, orders) # :nodoc:
684684

685685
def temporary_table?(table_name) # :nodoc:
686686
select_value_forcing_binds(<<~SQL.squish, "SCHEMA", [bind_string("table_name", table_name.upcase)]) == "Y"
687-
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */
687+
SELECT
688688
temporary FROM all_tables WHERE table_name = :table_name and owner = SYS_CONTEXT('userenv', 'current_schema')
689689
SQL
690690
end

0 commit comments

Comments
 (0)