pg_party 1.7.0 → 1.8.0
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 +6 -6
- data/lib/pg_party/adapter/postgresql_methods.rb +0 -1
- data/lib/pg_party/adapter_decorator.rb +3 -3
- data/lib/pg_party/model/hash_methods.rb +0 -1
- data/lib/pg_party/model/list_methods.rb +0 -1
- data/lib/pg_party/model/range_methods.rb +0 -1
- data/lib/pg_party/model/shared_methods.rb +3 -3
- data/lib/pg_party/version.rb +1 -1
- metadata +4 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a925ebf451625606acfdf6a4d1dbdde4a2a21e0ac98ccbbeabb6eb91d5d998e
|
4
|
+
data.tar.gz: 5f157ce75a78a79ff14fe0aa7eead4f045339a823193baa58562d8fd9e897a84
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b35cc8959cca3f09d504ebeb0d83a16633c803d858fb80398f6ebd3fd78c9599670fa3b3601ae96a510d5708a4b9cbcc201a2bd68100c794de103cd6817838d
|
7
|
+
data.tar.gz: e1b87b04b9a418326b2a06536d6477d29188332e5c01592241c740dd88deeb34c6d29570b5c47a25f628ed7facc5d41c02c9d626680db030a0460ae1892ae03a
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
|
26
26
|
This gem is tested against:
|
27
27
|
|
28
|
-
- Rails: 6.1, 7.0, 7.1
|
28
|
+
- Rails: 6.1, 7.0, 7.1, 7.2
|
29
29
|
- Ruby: 3.0, latest (currently 3.2 at the time of this commit)
|
30
30
|
- PostgreSQL: 11, 12, 13, 14, 15, 16
|
31
31
|
|
@@ -177,7 +177,7 @@ These methods are available in migrations as well as `ActiveRecord::Base#connect
|
|
177
177
|
may be reasonable for tables with many large partitions and hosts with 4+ CPUs/cores.
|
178
178
|
- Use `disable_ddl_transaction!` in your migration to disable transactions when using this command with `in_threads:`
|
179
179
|
or `algorithm: :concurrently`.
|
180
|
-
|
180
|
+
|
181
181
|
#### Examples
|
182
182
|
|
183
183
|
Create _range_ partitioned table on `created_at::date` with two partitions:
|
@@ -228,7 +228,7 @@ class CreateSomeListRecord < ActiveRecord::Migration[5.1]
|
|
228
228
|
create_list_partition_of \
|
229
229
|
:some_list_records,
|
230
230
|
values: 101..200
|
231
|
-
|
231
|
+
|
232
232
|
# default partition support is available in Postgres 11 or higher
|
233
233
|
create_default_partition_of \
|
234
234
|
:some_list_records
|
@@ -296,7 +296,7 @@ class CreateSomeListSubpartitionedRecord < ActiveRecord::Migration[5.1]
|
|
296
296
|
name: :some_list_subpartitioned_records_default_2019,
|
297
297
|
start_range: '2019-01-01',
|
298
298
|
end_range: '2019-12-31T23:59:59'
|
299
|
-
|
299
|
+
|
300
300
|
create_default_partition_of \
|
301
301
|
:some_list_subpartitioned_records_default
|
302
302
|
|
@@ -306,7 +306,7 @@ class CreateSomeListSubpartitionedRecord < ActiveRecord::Migration[5.1]
|
|
306
306
|
values: 1..100,
|
307
307
|
partition_type: :range,
|
308
308
|
partition_key: :created_at
|
309
|
-
|
309
|
+
|
310
310
|
create_range_partition_of \
|
311
311
|
:some_list_subpartitioned_records_1,
|
312
312
|
name: :some_list_subpartitioned_records_1_2019,
|
@@ -502,7 +502,7 @@ Class methods available to _list_ partitioned models:
|
|
502
502
|
- `partition_key_in`
|
503
503
|
- Query for records where partition key in _list_ of values
|
504
504
|
- Required arg: list of `values`
|
505
|
-
|
505
|
+
|
506
506
|
|
507
507
|
Class methods available to _hash_ partitioned models:
|
508
508
|
|
@@ -115,7 +115,7 @@ module PgParty
|
|
115
115
|
FROM pg_tables
|
116
116
|
INNER JOIN pg_inherits
|
117
117
|
ON pg_tables.tablename::regclass = pg_inherits.inhparent::regclass
|
118
|
-
WHERE pg_tables.schemaname =
|
118
|
+
WHERE pg_tables.schemaname = ANY(current_schemas(false)) AND
|
119
119
|
pg_tables.tablename = #{quote(table_name)}
|
120
120
|
], "SCHEMA").each_with_object(_accumulator) do |partition, acc|
|
121
121
|
acc << partition
|
@@ -131,7 +131,7 @@ module PgParty
|
|
131
131
|
FROM pg_tables
|
132
132
|
INNER JOIN pg_inherits
|
133
133
|
ON pg_tables.tablename::regclass = pg_inherits.inhrelid::regclass
|
134
|
-
WHERE pg_tables.schemaname =
|
134
|
+
WHERE pg_tables.schemaname = ANY(current_schemas(false)) AND
|
135
135
|
pg_tables.tablename = #{quote(table_name)}
|
136
136
|
], "SCHEMA").first
|
137
137
|
return parent if parent.nil? || !traverse
|
@@ -173,7 +173,7 @@ module PgParty
|
|
173
173
|
select_values(%[
|
174
174
|
SELECT relkind FROM pg_catalog.pg_class AS c
|
175
175
|
JOIN pg_catalog.pg_namespace AS ns ON c.relnamespace = ns.oid
|
176
|
-
WHERE relname = #{quote(table_name)} AND nspname =
|
176
|
+
WHERE relname = #{quote(table_name)} AND nspname = ANY(current_schemas(false))
|
177
177
|
], "SCHEMA").first == 'p'
|
178
178
|
end
|
179
179
|
|
@@ -6,15 +6,15 @@ module PgParty
|
|
6
6
|
module Model
|
7
7
|
module SharedMethods
|
8
8
|
def reset_primary_key
|
9
|
-
return base_class.primary_key if self != base_class
|
9
|
+
return (@primary_key = base_class.primary_key) if self != base_class
|
10
10
|
|
11
11
|
partitions = partitions(include_subpartitions: PgParty.config.include_subpartitions_in_partition_list)
|
12
|
-
return get_primary_key(base_class.name) if partitions.empty?
|
12
|
+
return (@primary_key = get_primary_key(base_class.name)) if partitions.empty?
|
13
13
|
|
14
14
|
first_partition = partitions.detect { |p| !connection.table_partitioned?(p) }
|
15
15
|
raise 'No leaf partitions exist for this model. Create a partition to contain your data' unless first_partition
|
16
16
|
|
17
|
-
in_partition(first_partition).get_primary_key(base_class.name)
|
17
|
+
(@primary_key = in_partition(first_partition).get_primary_key(base_class.name))
|
18
18
|
end
|
19
19
|
|
20
20
|
def table_exists?
|
data/lib/pg_party/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_party
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Krage
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '6.1'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '8.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,21 +29,7 @@ dependencies:
|
|
29
29
|
version: '6.1'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: ruby2_keywords
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: 0.0.2
|
40
|
-
type: :runtime
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 0.0.2
|
32
|
+
version: '8.0'
|
47
33
|
- !ruby/object:Gem::Dependency
|
48
34
|
name: parallel
|
49
35
|
requirement: !ruby/object:Gem::Requirement
|