activerecord-cockroachdb-adapter 5.2.1 → 6.0.0beta1

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 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: