activerecord-mysql2rgeo-adapter 6.0.3 → 6.1.1
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/lib/active_record/connection_adapters/mysql2rgeo/schema_creation.rb +1 -3
- data/lib/active_record/connection_adapters/mysql2rgeo/spatial_column.rb +6 -14
- data/lib/active_record/connection_adapters/mysql2rgeo/version.rb +1 -1
- data/lib/active_record/connection_adapters/mysql2rgeo_adapter.rb +24 -12
- metadata +12 -14
- data/lib/active_record/connection_adapters/mysql2rgeo/create_connection.rb +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc08589944b261d0dca6908f375c8453eae76a29ff3da7a6c76f264fac0400dd
|
4
|
+
data.tar.gz: a3682118ef63d2605688f0f2c81713af2c58987a42f40425baff6f58326bf059
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a791e518607f77b3fa3affcca3402498d669d8011613c33e811db57278096382b87897a1477b8b18a66c4175ecd419ed161dd57a050b837b6e160943108158a
|
7
|
+
data.tar.gz: 03d6461ef1db07a0deedba7d5843bf6e9a4a00927de6f5e3b6c1ecf8834e1c95494d6ff03b56d0b08aeab675a4e39cea1e7623808507e5b4c62270f3e540a82f
|
@@ -4,15 +4,13 @@ module ActiveRecord
|
|
4
4
|
module ConnectionAdapters
|
5
5
|
module Mysql2Rgeo
|
6
6
|
class SchemaCreation < MySQL::SchemaCreation # :nodoc:
|
7
|
-
delegate :supports_expression_index?, to: :@conn, private: true
|
8
|
-
|
9
7
|
private
|
10
8
|
|
11
9
|
def add_column_options!(sql, options)
|
12
10
|
# By default, TIMESTAMP columns are NOT NULL, cannot contain NULL values,
|
13
11
|
# and assigning NULL assigns the current timestamp. To permit a TIMESTAMP
|
14
12
|
# column to contain NULL, explicitly declare it with the NULL attribute.
|
15
|
-
# See https://dev.mysql.com/doc/refman/
|
13
|
+
# See https://dev.mysql.com/doc/refman/en/timestamp-initialization.html
|
16
14
|
if /\Atimestamp\b/.match?(options[:column].sql_type) && !options[:primary_key]
|
17
15
|
sql << " NULL" unless options[:null] == false || options_include_default?(options)
|
18
16
|
end
|
@@ -20,7 +20,7 @@ module ActiveRecord # :nodoc:
|
|
20
20
|
super(name, default, sql_type_metadata, null, default_function, collation: collation, comment: comment)
|
21
21
|
if spatial?
|
22
22
|
if @srid
|
23
|
-
@limit = { type:
|
23
|
+
@limit = { type: geometric_type.type_name.underscore, srid: @srid }
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -43,24 +43,16 @@ module ActiveRecord # :nodoc:
|
|
43
43
|
alias has_z? has_z
|
44
44
|
alias has_m? has_m
|
45
45
|
|
46
|
-
def
|
47
|
-
|
48
|
-
@limit
|
49
|
-
else
|
50
|
-
super
|
51
|
-
end
|
46
|
+
def multi?
|
47
|
+
/^(geometrycollection|multi)/i.match?(sql_type)
|
52
48
|
end
|
53
49
|
|
54
|
-
def
|
55
|
-
|
50
|
+
def limit
|
51
|
+
spatial? ? @limit : super
|
56
52
|
end
|
57
53
|
|
58
54
|
def spatial?
|
59
|
-
|
60
|
-
end
|
61
|
-
|
62
|
-
def multi?
|
63
|
-
/^(geometrycollection|multi)/i.match?(sql_type)
|
55
|
+
%i[geometry geography].include?(@sql_type_metadata.type)
|
64
56
|
end
|
65
57
|
|
66
58
|
private
|
@@ -7,13 +7,7 @@
|
|
7
7
|
|
8
8
|
require "rgeo/active_record"
|
9
9
|
|
10
|
-
|
11
|
-
module ActiveRecord
|
12
|
-
module ConnectionAdapters
|
13
|
-
AbstractAdapter
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
10
|
+
require "active_record/connection_adapters"
|
17
11
|
require "active_record/connection_adapters/mysql2_adapter"
|
18
12
|
require "active_record/connection_adapters/mysql2rgeo/version"
|
19
13
|
require "active_record/connection_adapters/mysql2rgeo/column_methods"
|
@@ -25,13 +19,35 @@ require "active_record/connection_adapters/mysql2rgeo/spatial_column_info"
|
|
25
19
|
require "active_record/connection_adapters/mysql2rgeo/spatial_expressions"
|
26
20
|
require "active_record/connection_adapters/mysql2rgeo/arel_tosql"
|
27
21
|
require "active_record/type/spatial"
|
28
|
-
require "active_record/connection_adapters/mysql2rgeo/create_connection"
|
29
22
|
|
30
23
|
# :startdoc:
|
31
24
|
|
32
25
|
module ActiveRecord
|
26
|
+
module ConnectionHandling # :nodoc:
|
27
|
+
# Establishes a connection to the database that's used by all Active Record objects.
|
28
|
+
def mysql2rgeo_connection(config)
|
29
|
+
config = config.symbolize_keys
|
30
|
+
config[:flags] ||= 0
|
31
|
+
|
32
|
+
if config[:flags].kind_of? Array
|
33
|
+
config[:flags].push "FOUND_ROWS"
|
34
|
+
else
|
35
|
+
config[:flags] |= Mysql2::Client::FOUND_ROWS
|
36
|
+
end
|
37
|
+
|
38
|
+
ConnectionAdapters::Mysql2RgeoAdapter.new(
|
39
|
+
ConnectionAdapters::Mysql2RgeoAdapter.new_client(config),
|
40
|
+
logger,
|
41
|
+
nil,
|
42
|
+
config,
|
43
|
+
)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
33
47
|
module ConnectionAdapters
|
34
48
|
class Mysql2RgeoAdapter < Mysql2Adapter
|
49
|
+
ADAPTER_NAME = "Mysql2Rgeo"
|
50
|
+
|
35
51
|
include Mysql2Rgeo::SchemaStatements
|
36
52
|
|
37
53
|
SPATIAL_COLUMN_OPTIONS =
|
@@ -56,10 +72,6 @@ module ActiveRecord
|
|
56
72
|
@visitor = Arel::Visitors::Mysql2Rgeo.new(self)
|
57
73
|
end
|
58
74
|
|
59
|
-
def adapter_name
|
60
|
-
"Mysql2Rgeo"
|
61
|
-
end
|
62
|
-
|
63
75
|
def self.spatial_column_options(key)
|
64
76
|
SPATIAL_COLUMN_OPTIONS[key]
|
65
77
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-mysql2rgeo-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yongdae Hwang
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 6.
|
19
|
+
version: '6.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 6.
|
26
|
+
version: '6.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rgeo-activerecord
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 7.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 7.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '12.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '12.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -105,7 +105,6 @@ files:
|
|
105
105
|
- LICENSE.txt
|
106
106
|
- lib/active_record/connection_adapters/mysql2rgeo/arel_tosql.rb
|
107
107
|
- lib/active_record/connection_adapters/mysql2rgeo/column_methods.rb
|
108
|
-
- lib/active_record/connection_adapters/mysql2rgeo/create_connection.rb
|
109
108
|
- lib/active_record/connection_adapters/mysql2rgeo/schema_creation.rb
|
110
109
|
- lib/active_record/connection_adapters/mysql2rgeo/schema_statements.rb
|
111
110
|
- lib/active_record/connection_adapters/mysql2rgeo/spatial_column.rb
|
@@ -120,7 +119,7 @@ homepage: http://github.com/stadia/activerecord-mysql2rgeo-adapter
|
|
120
119
|
licenses:
|
121
120
|
- BSD-3-Clause
|
122
121
|
metadata: {}
|
123
|
-
post_install_message:
|
122
|
+
post_install_message:
|
124
123
|
rdoc_options: []
|
125
124
|
require_paths:
|
126
125
|
- lib
|
@@ -135,9 +134,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
134
|
- !ruby/object:Gem::Version
|
136
135
|
version: '0'
|
137
136
|
requirements: []
|
138
|
-
|
139
|
-
|
140
|
-
signing_key:
|
137
|
+
rubygems_version: 3.2.33
|
138
|
+
signing_key:
|
141
139
|
specification_version: 4
|
142
140
|
summary: ActiveRecord adapter for MySQL, based on RGeo.
|
143
141
|
test_files: []
|
@@ -1,51 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
if RUBY_ENGINE == "jruby"
|
4
|
-
require "active_record/connection_adapters/jdbcmysql_adapter"
|
5
|
-
else
|
6
|
-
require "mysql2"
|
7
|
-
end
|
8
|
-
|
9
|
-
module ActiveRecord # :nodoc:
|
10
|
-
module ConnectionHandling # :nodoc:
|
11
|
-
if RUBY_ENGINE == "jruby"
|
12
|
-
|
13
|
-
def jdbcmysql2rgeo_connection(config)
|
14
|
-
config[:adapter_class] = ConnectionAdapters::Mysql2RgeoAdapter
|
15
|
-
mysql2_connection(config)
|
16
|
-
end
|
17
|
-
|
18
|
-
alias jdbcmysql2rgeo_connection mysql2rgeo_connection
|
19
|
-
|
20
|
-
else
|
21
|
-
|
22
|
-
# Based on the default <tt>mysql2_connection</tt> definition from ActiveRecord.
|
23
|
-
# https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb
|
24
|
-
# FULL REPLACEMENT because we need to create a different class.
|
25
|
-
|
26
|
-
def mysql2rgeo_connection(config)
|
27
|
-
config = config.symbolize_keys
|
28
|
-
|
29
|
-
config[:username] = "root" if config[:username].nil?
|
30
|
-
config[:flags] ||= 0
|
31
|
-
|
32
|
-
if Mysql2::Client.const_defined? :FOUND_ROWS
|
33
|
-
if config[:flags].is_a? Array
|
34
|
-
config[:flags].push "FOUND_ROWS"
|
35
|
-
else
|
36
|
-
config[:flags] |= Mysql2::Client::FOUND_ROWS
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
client = Mysql2::Client.new(config)
|
41
|
-
ConnectionAdapters::Mysql2RgeoAdapter.new(client, logger, nil, config)
|
42
|
-
rescue Mysql2::Error => e
|
43
|
-
if e.message.include?("Unknown database")
|
44
|
-
raise ActiveRecord::NoDatabaseError
|
45
|
-
else
|
46
|
-
raise
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|