activerecord-oracle_enhanced-adapter 6.1.1 → 6.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ab0a6ce6d92c52ebd933c12bca31954f9493fcdcf21c32afdc979bad671ed227
4
- data.tar.gz: d9b2710589287953fc425a86d04421d9b0e6eb6a3879984171c959ee12db84bf
3
+ metadata.gz: b17060d198e5da1dcccae49e4c50e114a2fc52c84d7a529271a8c7fc1948c8a4
4
+ data.tar.gz: fbc916077b37c9a31f2a3e315b7ddec8559aaaadd5eb4898d67703914586a1e9
5
5
  SHA512:
6
- metadata.gz: 7e8ef63fe7d7adc5af906fbf9d7494889e8a06ebda0c48e2837f17ef7164f0d7d520070b585c879127fca807c01b3970c48229d3c69551e07184b49bbd4d8b3b
7
- data.tar.gz: d009447a01baadcd254e1fc4bceb3a6733e6bd587818db8ad657594c32bf9a17635abcd64f6aec4db3a70a0c4036b0aaa29b08e7a6651745f9d09d23bf938222
6
+ metadata.gz: f1654bf5c9d946e7f795075ae030e8b46560c8f1f680cbe203e953f1d3a596d5f4d20395c56e4bfc0d137cd1adb712f7ceaa50bcedbacae83583f7796d98a6ad
7
+ data.tar.gz: cc75b8f1cd8e2abd4ffa8268ba62bba9bbc1fae23d20502226ec95d3c0f56a4a90837e77bf650160b6c5b940db6284608bb191fd7f5b12c0c96eaf07989b75c4
data/History.md CHANGED
@@ -1,3 +1,39 @@
1
+ ## 6.1.6 / 2022-01-21
2
+
3
+ * Changes and bug fixes
4
+ * Fix `columns_for_distinct` when using Rails 6.1 [#2249 #2252 rails/rails#31966]
5
+
6
+ ## 6.1.5 / 2021-12-07
7
+
8
+ * Changes and bug fixes
9
+ * get root cause if something went wrong with jdbc.OracleDriver [#2180 #2181]
10
+
11
+ * CI
12
+ * Bump CRuby versions at Travis CI for release61 branch [#2192]
13
+
14
+ ## 6.1.4 / 2021-04-01
15
+
16
+ * Changes and bug fixes
17
+ * Support use of ojdbc11.jar [#2155, #2168]
18
+ * Add missing default granted permission "ulimited tablespace" [#2156, #2167]
19
+ * Prevent from including ojdbc8.jar file to gem file [#2163, #2164, #2165]
20
+ * Oracle enhanced adapter 6.1.3 has been yanked since #2163
21
+
22
+ * CI
23
+ * Allow-failure CI against jruby-head for release61 branch [#2166]
24
+
25
+ ## 6.1.3 / 2021-03-31
26
+
27
+ * Changes and bug fixes
28
+ * Address FrozenError (can't modify frozen Hash): error [#2139 #2151 #2160]
29
+
30
+ * CI
31
+ * CI against JRuby 9.2.15.0 [#2150]
32
+
33
+ ## 6.1.2 / 2021-02-10
34
+ * Changes and bug fixes
35
+ * Fixed ORA-01935: missing user or role name with config read issue [#1943 #2135, #2142]
36
+
1
37
  ## 6.1.1 / 2021-01-14
2
38
 
3
39
  * Changes and bug fixes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.1.1
1
+ 6.1.6
@@ -17,19 +17,19 @@ module ActiveRecord
17
17
  print "Please provide the SYSTEM password for your Oracle installation (set ORACLE_SYSTEM_PASSWORD to avoid this prompt)\n>"
18
18
  $stdin.gets.strip
19
19
  }
20
- establish_connection(@config.merge("username" => "SYSTEM", "password" => system_password))
20
+ establish_connection(@config.merge(username: "SYSTEM", password: system_password))
21
21
  begin
22
- connection.execute "CREATE USER #{@config['username']} IDENTIFIED BY #{@config['password']}"
22
+ connection.execute "CREATE USER #{@config[:username]} IDENTIFIED BY #{@config[:password]}"
23
23
  rescue => e
24
24
  if /ORA-01920/.match?(e.message) # user name conflicts with another user or role name
25
- connection.execute "ALTER USER #{@config['username']} IDENTIFIED BY #{@config['password']}"
25
+ connection.execute "ALTER USER #{@config[:username]} IDENTIFIED BY #{@config[:password]}"
26
26
  else
27
27
  raise e
28
28
  end
29
29
  end
30
30
 
31
31
  OracleEnhancedAdapter.permissions.each do |permission|
32
- connection.execute "GRANT #{permission} TO #{@config['username']}"
32
+ connection.execute "GRANT #{permission} TO #{@config[:username]}"
33
33
  end
34
34
  end
35
35
 
@@ -46,7 +46,7 @@ module ActiveRecord
46
46
  def structure_dump(filename, extra_flags)
47
47
  establish_connection(@config)
48
48
  File.open(filename, "w:utf-8") { |f| f << connection.structure_dump }
49
- if @config["structure_dump"] == "db_stored_code"
49
+ if @config[:structure_dump] == "db_stored_code"
50
50
  File.open(filename, "a") { |f| f << connection.structure_dump_db_stored_code }
51
51
  end
52
52
  end
@@ -16,7 +16,8 @@ begin
16
16
  # Oracle 11g client ojdbc6.jar is also compatible with Java 1.7
17
17
  # Oracle 12c Release 1 client provides ojdbc7.jar
18
18
  # Oracle 12c Release 2 client provides ojdbc8.jar
19
- ojdbc_jars = %w(ojdbc8.jar ojdbc7.jar ojdbc6.jar)
19
+ # Oracle 21c provides ojdbc11.jar for Java 11 and above
20
+ ojdbc_jars = %w(ojdbc11.jar ojdbc8.jar ojdbc7.jar ojdbc6.jar)
20
21
 
21
22
  if !ENV_JAVA["java.class.path"]&.match?(Regexp.new(ojdbc_jars.join("|")))
22
23
  # On Unix environment variable should be PATH, on Windows it is sometimes Path
@@ -42,9 +43,9 @@ begin
42
43
  java.lang.System.set_property("oracle.net.tns_admin", ENV["TNS_ADMIN"])
43
44
  end
44
45
 
45
- rescue LoadError, NameError
46
+ rescue LoadError, NameError => e
46
47
  # JDBC driver is unavailable.
47
- raise LoadError, "ERROR: ActiveRecord oracle_enhanced adapter could not load Oracle JDBC driver. Please install #{ojdbc_jars.join(' or ') } library."
48
+ raise LoadError, "ERROR: ActiveRecord oracle_enhanced adapter could not load Oracle JDBC driver. Please install #{ojdbc_jars.join(' or ') } library.\n#{e.class}:#{e.message}"
48
49
  end
49
50
 
50
51
  module ActiveRecord
@@ -98,6 +99,8 @@ module ActiveRecord
98
99
  @raw_connection = @raw_connection.underlying_connection
99
100
  end
100
101
 
102
+ # Workaround FrozenError (can't modify frozen Hash):
103
+ config = config.dup
101
104
  config[:driver] ||= @raw_connection.meta_data.connection.java_class.name
102
105
  username = @raw_connection.meta_data.user_name
103
106
  else
@@ -10,14 +10,11 @@ module ActiveRecord
10
10
 
11
11
  def quote_column_name(name) #:nodoc:
12
12
  name = name.to_s
13
- self.class.quoted_column_names[name] ||= begin
14
- # if only valid lowercase column characters in name
15
- if /\A[a-z][a-z_0-9\$#]*\Z/.match?(name)
16
- "\"#{name.upcase}\""
17
- else
18
- # remove double quotes which cannot be used inside quoted identifier
19
- "\"#{name.gsub('"', '')}\""
20
- end
13
+ self.class.quoted_column_names[name] ||= if /\A[a-z][a-z_0-9\$#]*\Z/.match?(name)
14
+ "\"#{name.upcase}\""
15
+ else
16
+ # remove double quotes which cannot be used inside quoted identifier
17
+ "\"#{name.gsub('"', '')}\""
21
18
  end
22
19
  end
23
20
 
@@ -226,7 +226,7 @@ module ActiveRecord
226
226
  # ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.permissions =
227
227
  # ["create session", "create table", "create view", "create sequence", "create trigger", "ctxapp"]
228
228
  cattr_accessor :permissions
229
- self.permissions = ["create session", "create table", "create view", "create sequence"]
229
+ self.permissions = ["unlimited tablespace", "create session", "create table", "create view", "create sequence"]
230
230
 
231
231
  ##
232
232
  # :singleton-method:
@@ -661,7 +661,7 @@ module ActiveRecord
661
661
  }.reject(&:blank?).map.with_index { |column, i|
662
662
  "FIRST_VALUE(#{column}) OVER (PARTITION BY #{columns} ORDER BY #{column}) AS alias_#{i}__"
663
663
  }
664
- [super, *order_columns].join(", ")
664
+ (order_columns << super).join(", ")
665
665
  end
666
666
 
667
667
  def temporary_table?(table_name) #:nodoc:
@@ -16,11 +16,11 @@ describe "Oracle Enhanced adapter database tasks" do
16
16
  ActiveRecord::Tasks::DatabaseTasks.create(new_user_config)
17
17
  end
18
18
  end
19
- xit "creates user" do
19
+ it "creates user" do
20
20
  query = "SELECT COUNT(*) FROM dba_users WHERE UPPER(username) = '#{new_user_config[:username].upcase}'"
21
21
  expect(ActiveRecord::Base.connection.select_value(query)).to eq(1)
22
22
  end
23
- xit "grants permissions defined by OracleEnhancedAdapter.persmissions" do
23
+ it "grants permissions defined by OracleEnhancedAdapter.persmissions" do
24
24
  query = "SELECT COUNT(*) FROM DBA_SYS_PRIVS WHERE GRANTEE = '#{new_user_config[:username].upcase}'"
25
25
  permissions_count = ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.permissions.size
26
26
  expect(ActiveRecord::Base.connection.select_value(query)).to eq(permissions_count)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-oracle_enhanced-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.1
4
+ version: 6.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raimonds Simanovskis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-14 00:00:00.000000000 Z
11
+ date: 2022-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  - !ruby/object:Gem::Version
138
138
  version: 1.8.11
139
139
  requirements: []
140
- rubygems_version: 3.2.3
140
+ rubygems_version: 3.2.32
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: Oracle enhanced adapter for ActiveRecord