clickhouse-activerecord 0.6.0 → 0.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/README.md +4 -0
- data/clickhouse-activerecord.gemspec +1 -1
- data/lib/active_record/connection_adapters/clickhouse/schema_creation.rb +1 -1
- data/lib/active_record/connection_adapters/clickhouse/schema_statements.rb +6 -2
- data/lib/active_record/connection_adapters/clickhouse_adapter.rb +8 -1
- data/lib/arel/nodes/using.rb +6 -0
- data/lib/arel/visitors/clickhouse.rb +6 -0
- data/lib/clickhouse-activerecord/version.rb +1 -1
- data/lib/core_extensions/arel/select_manager.rb +5 -0
- metadata +10 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f67a26e07ac1e077b8966dfb82626a2a4778d8060d07cedc4a93b2681a7dcfb3
|
4
|
+
data.tar.gz: 2ef8add7034b493f2353a45af727646beac80a02989a8a198f2283e130cfa5be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b5553336901a311c54f5ff449ada535060437dda68800acd5ee1781f6a46debde48294957dff568114657985a0475e7dc1c12bb54c6dba92f211416348d0ac4
|
7
|
+
data.tar.gz: b1eb6866cd5882c545fe9bec44cc8d587edb051ec1dd259822a7a5c2ff45c21cffbfae7cc59a22bfb262544c718a69821702f663972ef4987cfd1b92cbb0a22b
|
data/README.md
CHANGED
@@ -183,6 +183,10 @@ Action.where(date: Date.current).final.limit(10)
|
|
183
183
|
Action.settings(optimize_read_in_order: 1).where(date: Date.current).limit(10)
|
184
184
|
# Clickhouse Action Load (10.3ms) SELECT actions.* FROM actions FINAL WHERE actions.date = '2017-11-29' LIMIT 10 SETTINGS optimize_read_in_order = 1
|
185
185
|
#=> #<ActiveRecord::Relation [#<Action *** >]>
|
186
|
+
|
187
|
+
User.joins(:actions).using(:group_id)
|
188
|
+
# Clickhouse User Load (10.3ms) SELECT users.* FROM users INNER JOIN actions USING group_id
|
189
|
+
#=> #<ActiveRecord::Relation [#<Action *** >]>
|
186
190
|
```
|
187
191
|
|
188
192
|
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.require_paths = ['lib']
|
25
25
|
|
26
26
|
spec.add_runtime_dependency 'bundler', '>= 1.13.4'
|
27
|
-
spec.add_runtime_dependency 'activerecord', '>= 5.2'
|
27
|
+
spec.add_runtime_dependency 'activerecord', '>= 5.2', '< 7'
|
28
28
|
|
29
29
|
spec.add_development_dependency 'rake', '~> 13.0'
|
30
30
|
spec.add_development_dependency 'rspec', '~> 3.4'
|
@@ -125,7 +125,7 @@ module ActiveRecord
|
|
125
125
|
end
|
126
126
|
|
127
127
|
def current_database
|
128
|
-
if ActiveRecord::version >= Gem::Version.new('6')
|
128
|
+
if ActiveRecord::version >= Gem::Version.new('6.1')
|
129
129
|
ActiveRecord::Base.connection_db_config.database
|
130
130
|
else
|
131
131
|
ActiveRecord::Base.connection_config[:database]
|
@@ -60,7 +60,9 @@ module ActiveRecord
|
|
60
60
|
|
61
61
|
def do_system_execute(sql, name = nil)
|
62
62
|
log_with_debug(sql, "#{adapter_name} #{name}") do
|
63
|
-
res = @
|
63
|
+
res = @lock.synchronize do
|
64
|
+
@connection.post("/?#{@config.to_param}", "#{sql} FORMAT JSONCompact", 'User-Agent' => "Clickhouse ActiveRecord #{ClickhouseActiverecord::VERSION}")
|
65
|
+
end
|
64
66
|
|
65
67
|
process_response(res)
|
66
68
|
end
|
@@ -70,7 +72,9 @@ module ActiveRecord
|
|
70
72
|
log(sql, "#{adapter_name} #{name}") do
|
71
73
|
formatted_sql = apply_format(sql, format)
|
72
74
|
request_params = @config || {}
|
73
|
-
res = @
|
75
|
+
res = @lock.synchronize do
|
76
|
+
@connection.post("/?#{request_params.merge(settings).to_param}", formatted_sql, 'User-Agent' => "Clickhouse ActiveRecord #{ClickhouseActiverecord::VERSION}")
|
77
|
+
end
|
74
78
|
|
75
79
|
process_response(res)
|
76
80
|
end
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'arel/visitors/clickhouse'
|
4
4
|
require 'arel/nodes/settings'
|
5
|
+
require 'arel/nodes/using'
|
5
6
|
require 'clickhouse-activerecord/migration'
|
6
7
|
require 'active_record/connection_adapters/clickhouse/oid/array'
|
7
8
|
require 'active_record/connection_adapters/clickhouse/oid/date'
|
@@ -333,7 +334,13 @@ module ActiveRecord
|
|
333
334
|
end
|
334
335
|
|
335
336
|
def drop_table(table_name, options = {}) # :nodoc:
|
336
|
-
|
337
|
+
query = "DROP TABLE"
|
338
|
+
query = "#{query} IF EXISTS " if options[:if_exists]
|
339
|
+
query = "#{query} #{quote_table_name(table_name)}"
|
340
|
+
query = apply_cluster(query)
|
341
|
+
query = "#{query} SYNC" if options[:sync]
|
342
|
+
|
343
|
+
do_execute(query)
|
337
344
|
|
338
345
|
if options[:with_distributed]
|
339
346
|
distributed_table_name = options.delete(:with_distributed)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clickhouse-activerecord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Odintsov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-04-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -31,6 +31,9 @@ dependencies:
|
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '5.2'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '7'
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -38,6 +41,9 @@ dependencies:
|
|
38
41
|
- - ">="
|
39
42
|
- !ruby/object:Gem::Version
|
40
43
|
version: '5.2'
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '7'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: rake
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +114,7 @@ files:
|
|
108
114
|
- lib/active_record/connection_adapters/clickhouse/schema_statements.rb
|
109
115
|
- lib/active_record/connection_adapters/clickhouse_adapter.rb
|
110
116
|
- lib/arel/nodes/settings.rb
|
117
|
+
- lib/arel/nodes/using.rb
|
111
118
|
- lib/arel/visitors/clickhouse.rb
|
112
119
|
- lib/clickhouse-activerecord.rb
|
113
120
|
- lib/clickhouse-activerecord/migration.rb
|
@@ -141,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
148
|
- !ruby/object:Gem::Version
|
142
149
|
version: '0'
|
143
150
|
requirements: []
|
144
|
-
rubygems_version: 3.
|
151
|
+
rubygems_version: 3.3.7
|
145
152
|
signing_key:
|
146
153
|
specification_version: 4
|
147
154
|
summary: ClickHouse ActiveRecord
|