sequel-batches 1.0.0 → 1.0.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/.rubocop.yml +1 -1
- data/README.md +18 -16
- data/lib/sequel/extensions/batches/yielder.rb +3 -2
- data/sequel-batches.gemspec +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75f26b2a799694f8ab7c27d9b2e9fdbf12990d92c3c9a5ba2117ec9c7815cb47
|
4
|
+
data.tar.gz: be0eb9ffc65170761b2000c20c2c8e628c8eacc2cfbf1cee7d4fbf54c0134760
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 874d85e620b0d5cbe2a82700deff251edf004bca67a64e89ece8fca769abcbc5f117891d02767f0873634156de7680558cfeceee0abd917f7a762c8f5720c42c
|
7
|
+
data.tar.gz: 39ca7cd7e363ab3fe6d8d04ef7c73f140369f3e0e6a87c8d79605d6c80882c2bcbc0fb625ee8dccc8d297f20d5516c031b126c82cbcc38f3d291474ccbe226be
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -4,22 +4,6 @@ This dataset extension provides the `#in_batches` method. The method splits data
|
|
4
4
|
|
5
5
|
Note: currently only PostgreSQL database is supported.
|
6
6
|
|
7
|
-
You can set the following options:
|
8
|
-
|
9
|
-
### pk
|
10
|
-
Overrides primary key of your dataset. This option is required in case your table doesn't have a real PK, otherwise you will get `Sequel::Extensions::Batches::MissingPKError`.
|
11
|
-
|
12
|
-
Note that you have to provide columns that don't contain NULL values, otherwise this may not work as intended. You will receive `Sequel::Extensions::Batches::NullPKError` in case batch processing detects a NULL value on it's way, but it's not guaranteed since it doesn't check all the rows for performance reasons.
|
13
|
-
|
14
|
-
### of
|
15
|
-
Sets chunk size (1000 by default).
|
16
|
-
|
17
|
-
### start
|
18
|
-
A hash `{ [column]: <start_value> }` that represents frame start for batch processing. Note that you will get `Sequel::Extensions::Batches::InvalidPKError` in case you provide a hash with wrong keys (ordering matters as well).
|
19
|
-
|
20
|
-
### finish
|
21
|
-
Same as `start` but represents the frame end.
|
22
|
-
|
23
7
|
## Installation
|
24
8
|
|
25
9
|
Add this line to your application's Gemfile:
|
@@ -67,6 +51,24 @@ Event.where(type: "login").in_batches(options) do |ds|
|
|
67
51
|
end
|
68
52
|
```
|
69
53
|
|
54
|
+
## Options
|
55
|
+
|
56
|
+
You can set the following options:
|
57
|
+
|
58
|
+
### pk
|
59
|
+
Overrides primary key of your dataset. This option is required in case your table doesn't have a real PK, otherwise you will get `Sequel::Extensions::Batches::MissingPKError`.
|
60
|
+
|
61
|
+
Note that you have to provide columns that don't contain NULL values, otherwise this may not work as intended. You will receive `Sequel::Extensions::Batches::NullPKError` in case batch processing detects a NULL value on it's way, but it's not guaranteed since it doesn't check all the rows for performance reasons.
|
62
|
+
|
63
|
+
### of
|
64
|
+
Sets chunk size (1000 by default).
|
65
|
+
|
66
|
+
### start
|
67
|
+
A hash `{ [column]: <start_value> }` that represents frame start for batch processing. Note that you will get `Sequel::Extensions::Batches::InvalidPKError` in case you provide a hash with wrong keys (ordering matters as well).
|
68
|
+
|
69
|
+
### finish
|
70
|
+
Same as `start` but represents the frame end.
|
71
|
+
|
70
72
|
## Contributing
|
71
73
|
|
72
74
|
Bug reports and pull requests are welcome on GitHub at https://github.com/umbrellio/sequel-batches.
|
@@ -26,7 +26,8 @@ module Sequel::Extensions::Batches
|
|
26
26
|
base_ds
|
27
27
|
end
|
28
28
|
|
29
|
-
|
29
|
+
working_ds_pk = working_ds.select(*qualified_pk).limit(of)
|
30
|
+
current_instance = db.from(working_ds_pk).select(*pk).order(*pk).last or break
|
30
31
|
working_ds = working_ds.where(generate_conditions(current_instance.to_h, sign: :<=))
|
31
32
|
|
32
33
|
yield working_ds
|
@@ -67,7 +68,7 @@ module Sequel::Extensions::Batches
|
|
67
68
|
base_ds = base_ds.where(generate_conditions(check_pk(start), sign: :>=)) if start
|
68
69
|
base_ds = base_ds.where(generate_conditions(check_pk(finish), sign: :<=)) if finish
|
69
70
|
|
70
|
-
pk_ds = db.from(base_ds).select(*pk).order(*pk)
|
71
|
+
pk_ds = db.from(base_ds.select(*qualified_pk)).select(*pk).order(*pk)
|
71
72
|
actual_start = pk_ds.first
|
72
73
|
actual_finish = pk_ds.last
|
73
74
|
|
data/sequel-batches.gemspec
CHANGED
@@ -5,8 +5,8 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "sequel-batches"
|
8
|
-
spec.version = "1.0.
|
9
|
-
spec.authors = [
|
8
|
+
spec.version = "1.0.1"
|
9
|
+
spec.authors = %w[fiscal-cliff umbrellio]
|
10
10
|
spec.email = ["oss@umbrellio.biz"]
|
11
11
|
|
12
12
|
spec.summary = "The extension mimics AR5 batches api"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel-batches
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fiscal-cliff
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-05-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sequel
|
@@ -162,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
162
|
- !ruby/object:Gem::Version
|
163
163
|
version: '0'
|
164
164
|
requirements: []
|
165
|
-
rubygems_version: 3.
|
165
|
+
rubygems_version: 3.1.2
|
166
166
|
signing_key:
|
167
167
|
specification_version: 4
|
168
168
|
summary: The extension mimics AR5 batches api
|