activerecord-cubrid2-adapter 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a4def5956cfad3d9c280869241d377182f2007624ff1ba2e9c90eb2ea456423
4
- data.tar.gz: 21f100c281de6bb731613f8c2846c222330bd1044fd8785ba48b35611a6658b9
3
+ metadata.gz: 9e8634b1c39dd11d4694db73f13bf36b5f94a3a976f9d326dbffc5ce8e9145c2
4
+ data.tar.gz: aad71acada082d9f3ddd1d7e339d4db8d6d6a7644824705daebed134d5c0f104
5
5
  SHA512:
6
- metadata.gz: 35f826c22d9adec406b63ef687ca5ac12757fe59ffa2a7ebb534cbfa3ad6e28a45f154adcb809d1181f537b055e6569b0bb53abc33c49b63c1bc4b3e4b476651
7
- data.tar.gz: c64e3974cfd3f960fa12d3e1fd8c3348f41a976d1f3d8797544fc128f01f299edd1c1bedf00790e2b5f8ce20e06a19ec669590f060a5c9ce9eedad3e6fbf679b
6
+ metadata.gz: ec45cc833218ea9b5193fecbeb27a3aacb85795a7a4a5495fb53ec7f73f8ebeb71a4589e55625222c5c69fe5d9684a964b86d9081c0353fe88e4581d5713f095
7
+ data.tar.gz: 96882f548af718500348c060af3ab9563f04a504af3414304965e109abd7ab7896e442c815a7166c169298ae71eb62872bbb4d7f7e27d12a4267d26e572aca59
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.5
@@ -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.add_runtime_dependency 'activerecord', '~> 6.0', '>= 6.0'
25
- spec.add_runtime_dependency 'cubrid', '~> 10.0', '>= 10.0'
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 = #{quote_table_name(table_name)}
284
+ AND class_name = #{quote(table_name)}
286
285
  SQL
287
286
  end
288
287
 
@@ -547,6 +546,7 @@ module ActiveRecord
547
546
  register_integer_type m, /^bigint/i, limit: 8
548
547
  register_integer_type m, /^int/i, limit: 4
549
548
  register_integer_type m, /^smallint/i, limit: 2
549
+ register_integer_type m, /^short/i, limit: 2
550
550
 
551
551
  m.register_type(/^smallint\(1\)/i, Type::Boolean.new) if emulate_booleans
552
552
  m.alias_type(/year/i, 'integer')
@@ -80,7 +80,10 @@ module ActiveRecord
80
80
  def _build_stmt_result(stmt)
81
81
  columns = stmt.column_info.map { |col| col['name'] }
82
82
  rows = is_conn_utf8? ? _extract_rows_from_stmt__utf8(stmt) : _extract_rows_from_stmt__raw(stmt)
83
- build_result(columns: columns, rows: rows)
83
+
84
+ # build_result(columns: columns, rows: rows)
85
+ # for activerecord <= 6.0
86
+ ActiveRecord::Result.new(columns, rows, column_types = {})
84
87
  end
85
88
 
86
89
  def _extract_rows_from_stmt__raw(stmt, as_hash: false)
@@ -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(".", "`.`").freeze
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
- #self.class.quoted_column_names[name] ||= quote(super).freeze
37
- #pp "## quote_column_name: #{name}"
38
- #self.class.quoted_column_names[name] ||= quote_string(name).freeze
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
@@ -26,22 +26,21 @@ module ActiveRecord
26
26
  end
27
27
 
28
28
  def visit_CreateIndexDefinition(o)
29
- sql = visit_IndexDefinition(o.index, true)
30
- sql
29
+ visit_IndexDefinition(o.index, true)
31
30
  end
32
31
 
33
32
  def visit_IndexDefinition(o, create = false)
34
- index_type = o.type&.to_s&.upcase || o.unique && "UNIQUE"
33
+ index_type = o.type&.to_s&.upcase || o.unique && 'UNIQUE'
35
34
 
36
- sql = create ? ["CREATE"] : []
35
+ sql = create ? ['CREATE'] : []
37
36
  sql << index_type if index_type
38
- sql << "INDEX"
37
+ sql << 'INDEX'
39
38
  sql << quote_column_name(o.name)
40
- #sql << "USING #{o.using}" if o.using
39
+ # sql << "USING #{o.using}" if o.using
41
40
  sql << "ON #{quote_table_name(o.table)}" if create
42
41
  sql << "(#{quoted_columns(o)})"
43
42
 
44
- add_sql_comment!(sql.join(" "), o.comment)
43
+ add_sql_comment!(sql.join(' '), o.comment)
45
44
  end
46
45
 
47
46
  def add_table_options!(create_sql, options)
@@ -57,15 +56,15 @@ module ActiveRecord
57
56
  sql << ' NULL'
58
57
  end
59
58
 
60
- if charset = options[:charset]
59
+ if (charset = options[:charset])
61
60
  sql << " CHARSET #{charset}"
62
61
  end
63
62
 
64
- if collation = options[:collation]
63
+ if (collation = options[:collation])
65
64
  sql << " COLLATE #{collation}"
66
65
  end
67
66
 
68
- if as = options[:as]
67
+ if (as = options[:as])
69
68
  sql << " AS (#{as})"
70
69
  end
71
70
 
@@ -83,14 +82,21 @@ module ActiveRecord
83
82
  end
84
83
 
85
84
  def index_in_create(table_name, column_name, options)
86
- index_def, algorithm, if_not_exists = @conn.add_index_options(table_name, column_name, **options)
87
- index_name = index_def.name
88
- index_columns = index_def.columns.map { |x| quote_column_name(x) }.join(', ')
89
- index_type = index_def.unique ? 'UNIQUE' : ''
90
- comment = index_def.comment
91
- add_sql_comment!(
92
- +"#{index_type} INDEX #{quote_column_name(index_name)} (#{index_columns})", comment
93
- )
85
+ if ActiveRecord.version.to_s >= '6.1.0'
86
+ # for activerecord >= 6.1
87
+ index_def, algorithm, if_not_exists = @conn.add_index_options(table_name, column_name, **options)
88
+
89
+ index_name = index_def.name
90
+ index_columns = index_def.columns.map { |x| quote_column_name(x) }.join(', ')
91
+ index_type = index_def.unique ? 'UNIQUE' : ''
92
+ comment = index_def.comment
93
+ else
94
+ # for activerecord == 6.0
95
+ index_name, index_type, index_columns, _, _, index_using, comment =
96
+ @conn.add_index_options(table_name, column_name, **options)
97
+ end
98
+
99
+ add_sql_comment!(+"#{index_type} INDEX #{quote_column_name(index_name)} (#{index_columns})", comment)
94
100
  end
95
101
  end
96
102
  end
metadata CHANGED
@@ -1,42 +1,39 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-cubrid2-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
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-26 00:00:00.000000000 Z
11
+ date: 2023-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '6.0'
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
19
  version: '6.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '8'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '6.0'
30
27
  - - ">="
31
28
  - !ruby/object:Gem::Version
32
29
  version: '6.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '8'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: cubrid
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '10.0'
40
37
  - - ">="
41
38
  - !ruby/object:Gem::Version
42
39
  version: '10.0'
@@ -44,9 +41,6 @@ dependencies:
44
41
  prerelease: false
45
42
  version_requirements: !ruby/object:Gem::Requirement
46
43
  requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '10.0'
50
44
  - - ">="
51
45
  - !ruby/object:Gem::Version
52
46
  version: '10.0'
@@ -108,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
102
  - !ruby/object:Gem::Version
109
103
  version: '0'
110
104
  requirements: []
111
- rubygems_version: 3.1.4
105
+ rubygems_version: 3.3.7
112
106
  signing_key:
113
107
  specification_version: 4
114
108
  summary: ActiveRecord Cubrid Adapter.