evt-event_source-postgres 0.12.1.1 → 0.13.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/event_source/postgres/get.rb +13 -13
- data/lib/event_source/postgres/get/select_statement.rb +19 -20
- data/lib/event_source/postgres/read.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bcc6eb15d8ed107da6ccd448e0be92c6f93d1cc7
|
4
|
+
data.tar.gz: bf794d6b3d1ffe7c8f514fec02d38e7cca63645d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22637fcf20e69a19a7b933adec20b0ffc6626abd1319507bbf68f70ba125553beed71ce1f295798e8f0aa1ef22eaff42ac4dd53173a6a54375be08880421c069
|
7
|
+
data.tar.gz: 215c302408bab981a768fec5a3baf8511e3fbec22346dfbf7bcab5be31b7acd0672c322d7651d17bff1357a269d03b57c7c091b247014cced6b71282719b8242
|
@@ -1,21 +1,21 @@
|
|
1
1
|
module EventSource
|
2
2
|
module Postgres
|
3
3
|
class Get
|
4
|
-
include
|
4
|
+
include EventSource::Get
|
5
5
|
|
6
|
-
initializer :batch_size
|
6
|
+
initializer :batch_size
|
7
7
|
|
8
8
|
dependency :session, Session
|
9
9
|
|
10
|
-
def self.build(batch_size: nil,
|
11
|
-
new(batch_size
|
10
|
+
def self.build(batch_size: nil, session: nil)
|
11
|
+
new(batch_size).tap do |instance|
|
12
12
|
instance.configure(session: session)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
def self.configure(receiver, attr_name: nil, position: nil, batch_size: nil,
|
16
|
+
def self.configure(receiver, attr_name: nil, position: nil, batch_size: nil, session: nil)
|
17
17
|
attr_name ||= :get
|
18
|
-
instance = build(batch_size: batch_size,
|
18
|
+
instance = build(batch_size: batch_size, session: session)
|
19
19
|
receiver.public_send "#{attr_name}=", instance
|
20
20
|
end
|
21
21
|
|
@@ -23,32 +23,32 @@ module EventSource
|
|
23
23
|
Session.configure self, session: session
|
24
24
|
end
|
25
25
|
|
26
|
-
def self.call(stream_name, position: nil, batch_size: nil,
|
27
|
-
instance = build(batch_size: batch_size,
|
26
|
+
def self.call(stream_name, position: nil, batch_size: nil, session: nil)
|
27
|
+
instance = build(batch_size: batch_size, session: session)
|
28
28
|
instance.(stream_name, position: position)
|
29
29
|
end
|
30
30
|
|
31
31
|
def call(stream_name, position: nil)
|
32
|
-
logger.trace { "Getting event data (Position: #{position.inspect}, Stream Name: #{stream_name}, Batch Size: #{batch_size.inspect}
|
32
|
+
logger.trace { "Getting event data (Position: #{position.inspect}, Stream Name: #{stream_name}, Batch Size: #{batch_size.inspect})" }
|
33
33
|
|
34
34
|
records = get_records(stream_name, position)
|
35
35
|
|
36
36
|
events = convert(records)
|
37
37
|
|
38
|
-
logger.info { "Finished getting event data (Count: #{events.length}, Position: #{position.inspect}, Stream Name: #{stream_name}, Batch Size: #{batch_size.inspect}
|
38
|
+
logger.info { "Finished getting event data (Count: #{events.length}, Position: #{position.inspect}, Stream Name: #{stream_name}, Batch Size: #{batch_size.inspect})" }
|
39
39
|
logger.info(tags: [:data, :event_data]) { events.pretty_inspect }
|
40
40
|
|
41
41
|
events
|
42
42
|
end
|
43
43
|
|
44
44
|
def get_records(stream_name, position)
|
45
|
-
logger.trace { "Getting records (Stream: #{stream_name}, Position: #{position.inspect}, Batch Size: #{batch_size.inspect}
|
45
|
+
logger.trace { "Getting records (Stream: #{stream_name}, Position: #{position.inspect}, Batch Size: #{batch_size.inspect})" }
|
46
46
|
|
47
|
-
select_statement = SelectStatement.build(stream_name,
|
47
|
+
select_statement = SelectStatement.build(stream_name, position: position, batch_size: batch_size)
|
48
48
|
|
49
49
|
records = session.execute(select_statement.sql)
|
50
50
|
|
51
|
-
logger.debug { "Finished getting records (Count: #{records.ntuples}, Stream: #{stream_name}, Position: #{position.inspect}, Batch Size: #{batch_size.inspect}
|
51
|
+
logger.debug { "Finished getting records (Count: #{records.ntuples}, Stream: #{stream_name}, Position: #{position.inspect}, Batch Size: #{batch_size.inspect})" }
|
52
52
|
|
53
53
|
records
|
54
54
|
end
|
@@ -4,20 +4,16 @@ module EventSource
|
|
4
4
|
class SelectStatement
|
5
5
|
include Log::Dependency
|
6
6
|
|
7
|
-
initializer :stream, w(:
|
7
|
+
initializer :stream, w(:position), w(:batch_size)
|
8
8
|
|
9
|
-
def
|
10
|
-
@
|
9
|
+
def position
|
10
|
+
@position ||= Defaults.position
|
11
11
|
end
|
12
12
|
|
13
13
|
def batch_size
|
14
14
|
@batch_size ||= Defaults.batch_size
|
15
15
|
end
|
16
16
|
|
17
|
-
def precedence
|
18
|
-
@precedence ||= Defaults.precedence
|
19
|
-
end
|
20
|
-
|
21
17
|
def stream_name
|
22
18
|
stream.name
|
23
19
|
end
|
@@ -26,13 +22,13 @@ module EventSource
|
|
26
22
|
stream.type
|
27
23
|
end
|
28
24
|
|
29
|
-
def self.build(stream_name,
|
25
|
+
def self.build(stream_name, position: nil, batch_size: nil)
|
30
26
|
stream = Stream.new(stream_name)
|
31
|
-
new(stream,
|
27
|
+
new(stream, position, batch_size)
|
32
28
|
end
|
33
29
|
|
34
30
|
def sql
|
35
|
-
logger.trace(tag: :sql) { "Composing select statement (Stream: #{stream_name}, Category: #{stream.category?}, Type: #{stream_type}, Position: #{
|
31
|
+
logger.trace(tag: :sql) { "Composing select statement (Stream: #{stream_name}, Category: #{stream.category?}, Type: #{stream_type}, Position: #{position}, Batch Size: #{batch_size})" }
|
36
32
|
|
37
33
|
statement = <<-SQL
|
38
34
|
SELECT
|
@@ -47,17 +43,16 @@ module EventSource
|
|
47
43
|
FROM
|
48
44
|
events
|
49
45
|
WHERE
|
50
|
-
#{where_clause_field} = '#{stream_name}'
|
46
|
+
#{where_clause_field} = '#{stream_name}' AND
|
47
|
+
#{position_field} >= #{position}
|
51
48
|
ORDER BY
|
52
|
-
|
49
|
+
#{position_field} ASC
|
53
50
|
LIMIT
|
54
51
|
#{batch_size}
|
55
|
-
OFFSET
|
56
|
-
#{offset}
|
57
52
|
;
|
58
53
|
SQL
|
59
54
|
|
60
|
-
logger.debug(tag: :sql) { "Composed select statement (Stream: #{stream_name}, Category: #{stream.category?}, Type: #{stream_type}, Position: #{
|
55
|
+
logger.debug(tag: :sql) { "Composed select statement (Stream: #{stream_name}, Category: #{stream.category?}, Type: #{stream_type}, Position: #{position}, Batch Size: #{batch_size})" }
|
61
56
|
logger.debug(tags: [:data, :sql]) { "Statement: #{statement}" }
|
62
57
|
|
63
58
|
statement
|
@@ -71,18 +66,22 @@ module EventSource
|
|
71
66
|
end
|
72
67
|
end
|
73
68
|
|
69
|
+
def position_field
|
70
|
+
unless stream.category?
|
71
|
+
'position'
|
72
|
+
else
|
73
|
+
'global_position'
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
74
77
|
module Defaults
|
75
|
-
def self.
|
78
|
+
def self.position
|
76
79
|
0
|
77
80
|
end
|
78
81
|
|
79
82
|
def self.batch_size
|
80
83
|
1000
|
81
84
|
end
|
82
|
-
|
83
|
-
def self.precedence
|
84
|
-
:asc
|
85
|
-
end
|
86
85
|
end
|
87
86
|
end
|
88
87
|
end
|
@@ -3,8 +3,8 @@ module EventSource
|
|
3
3
|
class Read
|
4
4
|
include EventSource::Read
|
5
5
|
|
6
|
-
def configure(batch_size: nil,
|
7
|
-
Get.configure(self, batch_size: batch_size,
|
6
|
+
def configure(batch_size: nil, session: nil)
|
7
|
+
Get.configure(self, batch_size: batch_size, session: session)
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evt-event_source-postgres
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Eventide Project
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: evt-event_source
|