activerecord-cubrid2-adapter 0.0.2 → 0.0.4
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 +4 -4
- data/.gitignore +1 -0
- data/VERSION +1 -1
- data/activerecord-cubrid2-adapter.gemspec +2 -2
- data/lib/active_record/connection_adapters/abstract_cubrid2_adapter.rb +8 -3
- data/lib/active_record/connection_adapters/cubrid2/database_statements.rb +2 -1
- data/lib/active_record/connection_adapters/cubrid2/quoting.rb +15 -6
- data/lib/active_record/connection_adapters/cubrid2_adapter.rb +6 -9
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 66a82d90a133133ed00cd25820b12a40df63021603d080cf1670e9d440b20e78
|
4
|
+
data.tar.gz: 22a8b40fa849ed6bba01660a850a6603b1914e183357367d3d44f60f13862a13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e52dd2b5fb04ac6da7b6dd34cf251a0fecfeb415e1675f1979316eee291f3570579bfeb624a00eaead3184af9b79bf5a4d46bd4bf2a1e813ba11a5887312007
|
7
|
+
data.tar.gz: 07d2b7cbdde814f729cbf8e2559bb1797985f844f5598eb5bbc85cfffad8f9546bf991f70afd4ae07d841c78cbf59d602e22657421f9da4acfa4b7efb51931c0
|
data/.gitignore
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
@@ -21,6 +21,6 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
22
|
spec.require_paths = ['lib']
|
23
23
|
|
24
|
-
spec.
|
25
|
-
spec.
|
24
|
+
spec.add_runtime_dependency 'activerecord', '>= 6.0', '< 8'
|
25
|
+
spec.add_runtime_dependency 'cubrid', '>= 10.0'
|
26
26
|
end
|
@@ -199,7 +199,6 @@ module ActiveRecord
|
|
199
199
|
materialize_transactions
|
200
200
|
|
201
201
|
stmt = nil
|
202
|
-
|
203
202
|
log(sql, name) do
|
204
203
|
ActiveSupport::Dependencies.interlock.permit_concurrent_loads do
|
205
204
|
stmt = @connection.query(sql)
|
@@ -282,7 +281,7 @@ module ActiveRecord
|
|
282
281
|
WHERE owner_name = 'PUBLIC'
|
283
282
|
AND class_type = 'CLASS'
|
284
283
|
AND is_system_class = 'NO'
|
285
|
-
AND class_name = #{
|
284
|
+
AND class_name = #{quote(table_name)}
|
286
285
|
SQL
|
287
286
|
end
|
288
287
|
|
@@ -326,7 +325,12 @@ module ActiveRecord
|
|
326
325
|
if supports_rename_index?
|
327
326
|
validate_index_length!(table_name, new_name)
|
328
327
|
|
329
|
-
|
328
|
+
# NOTE: Renaming table index SQL would not work.
|
329
|
+
# See: https://www.cubrid.org/manual/ko/10.2/sql/schema/index_stmt.html#alter-index
|
330
|
+
# https://www.cubrid.com/index.php?mid=qna&document_srl=3802148
|
331
|
+
_query = "ALTER INDEX #{quote_table_name(old_name)} ON #{quote_table_name(table_name)} RENAME TO #{quote_table_name(new_name)}"
|
332
|
+
puts "Warning: renaming index not work as manual. Ignoring: #{_query}"
|
333
|
+
# execute _query
|
330
334
|
else
|
331
335
|
super
|
332
336
|
end
|
@@ -542,6 +546,7 @@ module ActiveRecord
|
|
542
546
|
register_integer_type m, /^bigint/i, limit: 8
|
543
547
|
register_integer_type m, /^int/i, limit: 4
|
544
548
|
register_integer_type m, /^smallint/i, limit: 2
|
549
|
+
register_integer_type m, /^short/i, limit: 2
|
545
550
|
|
546
551
|
m.register_type(/^smallint\(1\)/i, Type::Boolean.new) if emulate_booleans
|
547
552
|
m.alias_type(/year/i, 'integer')
|
@@ -127,7 +127,8 @@ module ActiveRecord
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def execute_batch(statements, name = nil)
|
130
|
-
combine_multi_statements(statements)
|
130
|
+
# ss = combine_multi_statements(statements)
|
131
|
+
statements.each do |statement|
|
131
132
|
execute(statement, name)
|
132
133
|
end
|
133
134
|
end
|
@@ -4,6 +4,15 @@ module ActiveRecord
|
|
4
4
|
module ConnectionAdapters
|
5
5
|
module Cubrid2
|
6
6
|
module Quoting # :nodoc:
|
7
|
+
def quote(value) # :nodoc:
|
8
|
+
case value
|
9
|
+
when ActiveRecord::ConnectionAdapters::ColumnDefinition
|
10
|
+
quote(value.name)
|
11
|
+
else
|
12
|
+
super
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
7
16
|
# def quote_string(s)
|
8
17
|
# super
|
9
18
|
# end
|
@@ -13,7 +22,7 @@ module ActiveRecord
|
|
13
22
|
end
|
14
23
|
|
15
24
|
def quote_table_name(name)
|
16
|
-
self.class.quoted_table_names[name] ||= super.gsub(
|
25
|
+
self.class.quoted_table_names[name] ||= super.gsub('.', '`.`').freeze
|
17
26
|
end
|
18
27
|
|
19
28
|
# def quote_table_name(name) # :nodoc:
|
@@ -32,11 +41,11 @@ module ActiveRecord
|
|
32
41
|
end
|
33
42
|
|
34
43
|
# Quotes column names for use in SQL queries.
|
35
|
-
#def quote_column_name(name) # :nodoc:
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
#end
|
44
|
+
# def quote_column_name(name) # :nodoc:
|
45
|
+
# self.class.quoted_column_names[name] ||= quote(super).freeze
|
46
|
+
# pp "## quote_column_name: #{name}"
|
47
|
+
# self.class.quoted_column_names[name] ||= quote_string(name).freeze
|
48
|
+
# end
|
40
49
|
|
41
50
|
# def visit_Arel_Attributes_Attribute(o, collector)
|
42
51
|
# join_name = o.relation.table_alias || o.relation.name
|
@@ -16,11 +16,9 @@ module ActiveRecord
|
|
16
16
|
client = Cubrid2::Client.new(config)
|
17
17
|
ConnectionAdapters::Cubrid2Adapter.new(client, logger, nil, config)
|
18
18
|
rescue Cubrid2::Error => e
|
19
|
-
if e.error_number == ER_DATABASE_CONNECTION_ERROR
|
20
|
-
|
21
|
-
|
22
|
-
raise
|
23
|
-
end
|
19
|
+
raise ActiveRecord::NoDatabaseError if e.error_number == ER_DATABASE_CONNECTION_ERROR
|
20
|
+
|
21
|
+
raise
|
24
22
|
end
|
25
23
|
end
|
26
24
|
|
@@ -72,7 +70,7 @@ module ActiveRecord
|
|
72
70
|
stmt = result.is_a?(Array) ? result.first : result
|
73
71
|
if block_given?
|
74
72
|
if result && stmt
|
75
|
-
while row = stmt.fetch_hash
|
73
|
+
while (row = stmt.fetch_hash)
|
76
74
|
yield row.symbolize_keys
|
77
75
|
end
|
78
76
|
end
|
@@ -92,8 +90,7 @@ module ActiveRecord
|
|
92
90
|
def quote_string(string)
|
93
91
|
# escaping with backslash is only allowed when 'no_backslash_escapes' == 'yes' in cubrid config, default is yes.
|
94
92
|
# See: https://www.cubrid.org/manual/ko/11.2/sql/literal.html#id5
|
95
|
-
|
96
|
-
string
|
93
|
+
"#{string.gsub("'", "''")}"
|
97
94
|
end
|
98
95
|
|
99
96
|
#--
|
@@ -120,7 +117,7 @@ module ActiveRecord
|
|
120
117
|
|
121
118
|
def discard! # :nodoc:
|
122
119
|
super
|
123
|
-
|
120
|
+
# @connection.automatic_close = false
|
124
121
|
@connection = nil
|
125
122
|
end
|
126
123
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-cubrid2-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eui-Taik Na
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-01-
|
11
|
+
date: 2023-01-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -17,6 +17,9 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '6.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '8'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -24,6 +27,9 @@ dependencies:
|
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '6.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '8'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: cubrid
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
102
|
- !ruby/object:Gem::Version
|
97
103
|
version: '0'
|
98
104
|
requirements: []
|
99
|
-
rubygems_version: 3.
|
105
|
+
rubygems_version: 3.3.7
|
100
106
|
signing_key:
|
101
107
|
specification_version: 4
|
102
108
|
summary: ActiveRecord Cubrid Adapter.
|