activerecord-cockroachdb-adapter 5.2.1 → 6.0.0beta1

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: b2292eb1fe9b5352ccb2a135ee1681b342403f086d38d5c78f354d97008097fe
4
- data.tar.gz: 7b144a460690d0a6eab7d827eb1e297c67f94be4191d8c949f33d74e90050a88
3
+ metadata.gz: a580dde40d074b1982c6642310513d79bbcb710032a476a64bb9fcb99bec72bb
4
+ data.tar.gz: 91b11b334235484e298704ae514d435a61451a02f3f759881141fd6354549ee4
5
5
  SHA512:
6
- metadata.gz: 6424288bb2dce9c2a530f3d2b0edd303c156fdd8dd85822756f9953ca7ebaff4cc32fed8cc233c580e570f561797d38ca741837edeccf5c4e95639b7e2dab816
7
- data.tar.gz: 0d69e3fbf8e5809429608bbd292269affc21d88afcd7687a26443e6bbb55754bd623ba4d62da484a1ad4415f6633ba9f49eb57ba1e7d54ba632d3fc30e922eaa
6
+ metadata.gz: 77b98dff7d2069ba0cdcd78bccf5aedf9ac31192c0813d7893a5a6f1084537d9d0b03039be58fe83a5a0e0cd58d5d42ba567e43beee62507d8212242722fdb13
7
+ data.tar.gz: f1bf6e2fa1925d94133a98dcd03690a24da2631134cc6a5eb6dd860253392f398db88572942f409f13dec4d3d7aeb34f18317a5b8cd4b30c70e4d75d13599b47
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "activerecord-cockroachdb-adapter"
7
- spec.version = "5.2.1"
7
+ spec.version = "6.0.0beta1"
8
8
  spec.licenses = ["Apache-2.0"]
9
9
  spec.authors = ["Cockroach Labs"]
10
10
  spec.email = ["cockroach-db@googlegroups.com"]
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.description = "Allows the use of CockroachDB as a backend for ActiveRecord and Rails apps."
14
14
  spec.homepage = "https://github.com/cockroachdb/activerecord-cockroachdb-adapter"
15
15
 
16
- spec.add_dependency "activerecord", "~> 5.2"
16
+ spec.add_dependency "activerecord", "~> 6.0.3"
17
17
  spec.add_dependency "pg", ">= 0.20"
18
18
 
19
19
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
@@ -57,10 +57,35 @@ module ActiveRecord
57
57
  end
58
58
  # The call to super might have appeneded [] already.
59
59
  if array && type != :primary_key && !sql.end_with?("[]")
60
- sql = "#{sql}[]"
60
+ sql = "#{sql}[]"
61
61
  end
62
62
  sql
63
63
  end
64
+
65
+ # This overrides the method from PostegreSQL adapter
66
+ # Resets the sequence of a table's primary key to the maximum value.
67
+ def reset_pk_sequence!(table, pk = nil, sequence = nil)
68
+ unless pk && sequence
69
+ default_pk, default_sequence = pk_and_sequence_for(table)
70
+
71
+ pk ||= default_pk
72
+ sequence ||= default_sequence
73
+ end
74
+
75
+ if @logger && pk && !sequence
76
+ @logger.warn "#{table} has primary key #{pk} with no default sequence."
77
+ end
78
+
79
+ if pk && sequence
80
+ quoted_sequence = quote_table_name(sequence)
81
+ max_pk = query_value("SELECT MAX(#{quote_column_name pk}) FROM #{quote_table_name(table)}", "SCHEMA")
82
+ if max_pk.nil?
83
+ minvalue = query_value("SELECT seqmin FROM pg_sequence WHERE seqrelid = #{quote(quoted_sequence)}::regclass", "SCHEMA")
84
+ end
85
+
86
+ query_value("SELECT setval(#{quote(quoted_sequence)}, #{max_pk ? max_pk : minvalue}, #{max_pk ? true : false})", "SCHEMA")
87
+ end
88
+ end
64
89
  end
65
90
  end
66
91
  end
@@ -27,7 +27,14 @@ module ActiveRecord
27
27
  # The postgres drivers don't allow the creation of an unconnected
28
28
  # PG::Connection object, so just pass a nil connection object for the
29
29
  # time being.
30
- ConnectionAdapters::CockroachDBAdapter.new(nil, logger, conn_params, config)
30
+ conn = PG.connect(conn_params)
31
+ ConnectionAdapters::CockroachDBAdapter.new(conn, logger, conn_params, config)
32
+ rescue ::PG::Error => error
33
+ if error.message.include?("does not exist")
34
+ raise ActiveRecord::NoDatabaseError
35
+ else
36
+ raise
37
+ end
31
38
  end
32
39
  end
33
40
  end
@@ -73,11 +80,6 @@ module ActiveRecord
73
80
  false
74
81
  end
75
82
 
76
- def supports_ranges?
77
- # See cockroachdb/cockroach#17022
78
- false
79
- end
80
-
81
83
  def supports_materialized_views?
82
84
  false
83
85
  end
@@ -151,7 +153,7 @@ module ActiveRecord
151
153
  end
152
154
  @crdb_version = version_num
153
155
  end
154
-
156
+
155
157
  private
156
158
 
157
159
  def initialize_type_map(m = type_map)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-cockroachdb-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.1
4
+ version: 6.0.0beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cockroach Labs
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-25 00:00:00.000000000 Z
11
+ date: 2020-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.2'
19
+ version: 6.0.3
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: '5.2'
26
+ version: 6.0.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pg
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -88,9 +88,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
88
  version: '0'
89
89
  required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  requirements:
91
- - - ">="
91
+ - - ">"
92
92
  - !ruby/object:Gem::Version
93
- version: '0'
93
+ version: 1.3.1
94
94
  requirements: []
95
95
  rubygems_version: 3.1.4
96
96
  signing_key: