firebird_adapter 1.0.6 → 1.0.7

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
- SHA1:
3
- metadata.gz: 24dfef1450ce29ef361115a47e79f442aa8908dd
4
- data.tar.gz: 0a1787a99b62900b4448d1fcaad3ac7a139fe4ad
2
+ SHA256:
3
+ metadata.gz: 4f46cae1f98cb70fc48708f3601515888fcf7b9a8ddb653481f35abeed91944e
4
+ data.tar.gz: 5f1329081189c33a4666dafd7bdf5a5e78fdca673986291257ab1359f1e1eaf6
5
5
  SHA512:
6
- metadata.gz: ce562bc1109874c11cce96fc538d4abd8cbb139b0a31cb74d2db2bef59fcff54fe2f887802a2a32e6620ebd344d19c691ad48409ee493cfaffc280e67235b73c
7
- data.tar.gz: 90d5c2c991bd66901ba7f9ee52ae5e7a0ce1988ecd8ffcc311e401f4bf2e0a88f673e4089f95b7c8ea2cdde68a59e1e02a69eed957b5eeb5a22b2d79e6f2e539
6
+ metadata.gz: 7a2ebdc870225a7339e0ba4b872b2a29d27995885ef582c99f68a2690036ece3619f1dd4320a1c3b89b4155d5181f613478303b5c8dc56d91adeb5fc2e121b88
7
+ data.tar.gz: b0ef7b0c854b149ba7fb4041a7371c142cf02c75f3de701eaeb5b7c915ab75bcd8f8d3445fa04cabc7e81ba1034496c408f84520f0a60eb6c1b09d6c5700a054
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord::ConnectionAdapters::Firebird::DatabaseStatements
2
-
2
+
3
3
  def native_database_types
4
4
  {
5
5
  primary_key: 'integer not null primary key',
@@ -15,8 +15,10 @@ module ActiveRecord::ConnectionAdapters::Firebird::DatabaseStatements
15
15
  boolean: { name: 'smallint' }
16
16
  }
17
17
  end
18
-
18
+
19
19
  def execute(sql, name = nil)
20
+ sql = sql.encode(encoding, 'UTF-8')
21
+
20
22
  log(sql, name) do
21
23
  ActiveSupport::Dependencies.interlock.permit_concurrent_loads do
22
24
  @connection.query(sql)
@@ -25,8 +27,9 @@ module ActiveRecord::ConnectionAdapters::Firebird::DatabaseStatements
25
27
  end
26
28
 
27
29
  def exec_query(sql, name = 'SQL', binds = [], prepare: false)
30
+ sql = sql.encode(encoding, 'UTF-8')
31
+
28
32
  type_casted_binds = type_casted_binds(binds).map do |value|
29
- encoding = ActiveRecord::Base.connection_config[:encoding] || ActiveRecord::ConnectionAdapters::FirebirdAdapter::DEFAULT_ENCODING
30
33
  value.encode(encoding) rescue value
31
34
  end
32
35
 
@@ -89,7 +92,7 @@ module ActiveRecord::ConnectionAdapters::Firebird::DatabaseStatements
89
92
  def drop_sequence(sequence_name)
90
93
  execute("DROP SEQUENCE #{sequence_name}") rescue nil
91
94
  end
92
-
95
+
93
96
  def sequence_exists?(sequence_name)
94
97
  @connection.generator_names.include?(sequence_name)
95
98
  end
@@ -46,18 +46,18 @@ class ActiveRecord::ConnectionAdapters::FirebirdAdapter < ActiveRecord::Connecti
46
46
  def reset!
47
47
  reconnect!
48
48
  end
49
-
49
+
50
50
  def primary_keys(table_name)
51
51
  raise ArgumentError unless table_name.present?
52
52
 
53
53
  names = query_values(<<~SQL, "SCHEMA")
54
- SELECT
54
+ SELECT
55
55
  s.rdb$field_name
56
- FROM
56
+ FROM
57
57
  rdb$indices i
58
58
  JOIN rdb$index_segments s ON i.rdb$index_name = s.rdb$index_name
59
59
  LEFT JOIN rdb$relation_constraints c ON i.rdb$index_name = c.rdb$index_name
60
- WHERE
60
+ WHERE
61
61
  i.rdb$relation_name = '#{table_name.upcase}'
62
62
  AND c.rdb$constraint_type = 'PRIMARY KEY';
63
63
  SQL
@@ -65,6 +65,15 @@ class ActiveRecord::ConnectionAdapters::FirebirdAdapter < ActiveRecord::Connecti
65
65
  names.map(&:strip).map(&:downcase)
66
66
  end
67
67
 
68
+ def encoding
69
+ ActiveRecord::Base.connection_config[:encoding] || ActiveRecord::ConnectionAdapters::FirebirdAdapter::DEFAULT_ENCODING
70
+ end
71
+
72
+ def log(sql, name = "SQL", binds = [], type_casted_binds = [], statement_name = nil) # :doc:
73
+ sql = sql.encode('UTF-8', encoding) if sql.encoding.to_s == encoding
74
+ super
75
+ end
76
+
68
77
  protected
69
78
 
70
79
  def translate_exception(e, message)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firebird_adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fábio Rodrigues
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-25 00:00:00.000000000 Z
11
+ date: 2019-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -142,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  version: '0'
143
143
  requirements: []
144
144
  rubyforge_project:
145
- rubygems_version: 2.5.2.3
145
+ rubygems_version: 2.7.7
146
146
  signing_key:
147
147
  specification_version: 4
148
148
  summary: ActiveRecord Firebird Adapter for Rails 5.