message-db 2.0.2 → 2.1.4

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: 8924f72521c7d2dfaad3524a3fc2f4be0d4f19ff8a8329ef59c2516e12f3e780
4
- data.tar.gz: db54d8ee1604d9dd21f021d76ca7908efae849c1ae743c3089576f56fb55198c
3
+ metadata.gz: d86b37efb68b4f46fc655a3fc4f7ba8e7657197965087972bf4e8832f39f8a9e
4
+ data.tar.gz: 3ab551d95e717b5acc59774669f2b3d686ba0f2ffe0070b58d6dcb87344b1e06
5
5
  SHA512:
6
- metadata.gz: f179f2d80ffb5a6768bab8cdedda241e6d27e81bfb91eff00bf976c91e7e3996e93998cf3e1542082269c2db225dda9abfb2ba5fe0e0228098f76ae2dbd0d751
7
- data.tar.gz: '0378119403ae556f6fd26066dd4cac23dcf1093480087eb289f03fa6ae261d45cee9caf66981f990a4e57e486af45186f4f31269b8c2853b457cf0b8cd02d646'
6
+ metadata.gz: 2ca747525f2d3310df2420e5c4df5317585a2eca6ce88c7ba98616baf9dd2f0e9b8e84313d6c48599105855a4e9d5d1147330958ebbc28d0b892d2e70a1ca5bd
7
+ data.tar.gz: ca065829c7c968546e903789a3d877f4513f27a4a06503578ddf43601fe53f284f15ccdb969ac770fb1d387fd289070cf8e03573a4151f3578c97b976f4aa0ba
data/database/VERSION.txt CHANGED
@@ -1 +1 @@
1
- 1.1.6
1
+ 1.2.4
@@ -101,9 +101,13 @@ BEGIN
101
101
 
102
102
  _command := _command || '
103
103
  ORDER BY
104
- global_position ASC
105
- LIMIT
106
- $3';
104
+ global_position ASC';
105
+
106
+ IF get_category_messages.batch_size != -1 THEN
107
+ _command := _command || '
108
+ LIMIT
109
+ $3';
110
+ END IF;
107
111
 
108
112
  IF current_setting('message_store.debug_get', true) = 'on' OR current_setting('message_store.debug', true) = 'on' THEN
109
113
  RAISE NOTICE '» get_category_messages';
@@ -49,9 +49,13 @@ BEGIN
49
49
 
50
50
  _command := _command || '
51
51
  ORDER BY
52
- position ASC
53
- LIMIT
54
- $3';
52
+ position ASC';
53
+
54
+ IF get_stream_messages.batch_size != -1 THEN
55
+ _command := _command || '
56
+ LIMIT
57
+ $3';
58
+ END IF;
55
59
 
56
60
  IF current_setting('message_store.debug_get', true) = 'on' OR current_setting('message_store.debug', true) = 'on' THEN
57
61
  RAISE NOTICE '» get_stream_messages';
@@ -60,7 +64,7 @@ BEGIN
60
64
  RAISE NOTICE 'batch_size ($3): %', get_stream_messages.batch_size;
61
65
  RAISE NOTICE 'condition ($4): %', get_stream_messages.condition;
62
66
  RAISE NOTICE 'Generated Command: %', _command;
63
- end if;
67
+ END IF;
64
68
 
65
69
  RETURN QUERY EXECUTE _command USING
66
70
  get_stream_messages.stream_name,
@@ -2,7 +2,7 @@ CREATE OR REPLACE FUNCTION message_store.message_store_version()
2
2
  RETURNS varchar
3
3
  AS $$
4
4
  BEGIN
5
- RETURN '1.1.6';
5
+ RETURN '1.2.4';
6
6
  END;
7
7
  $$ LANGUAGE plpgsql
8
8
  VOLATILE;
data/database/install.sh CHANGED
@@ -22,6 +22,17 @@ else
22
22
  database=$DATABASE_NAME
23
23
  fi
24
24
 
25
+
26
+ if [ -z ${CREATE_DATABASE+x} ]; then
27
+ CREATE_DATABASE="on"
28
+ fi
29
+
30
+ create_database=true
31
+ if [ "$CREATE_DATABASE" = "off" ] ; then
32
+ create_database=false
33
+ fi
34
+
35
+
25
36
  if [ -z ${PGOPTIONS+x} ]; then
26
37
  export PGOPTIONS='-c client_min_messages=warning'
27
38
  fi
@@ -66,7 +77,11 @@ echo
66
77
 
67
78
  echo "Creating Database"
68
79
  echo "- - -"
69
- create-database
80
+ if [ "$create_database" = true ] ; then
81
+ create-database
82
+ else
83
+ echo "Database creation is deactivated. Not creating the database."
84
+ fi
70
85
  echo
71
86
 
72
87
  echo "Creating Schema"
@@ -1,5 +1,4 @@
1
1
  GRANT EXECUTE ON FUNCTION gen_random_uuid() TO message_store;
2
- GRANT EXECUTE ON FUNCTION md5(text) TO message_store;
3
2
 
4
3
  GRANT EXECUTE ON FUNCTION message_store.acquire_lock(varchar) TO message_store;
5
4
  GRANT EXECUTE ON FUNCTION message_store.cardinal_id(varchar) TO message_store;
@@ -1,12 +1,12 @@
1
1
  CREATE TABLE IF NOT EXISTS message_store.messages (
2
- id UUID NOT NULL DEFAULT gen_random_uuid(),
2
+ global_position bigserial NOT NULL,
3
+ position bigint NOT NULL,
4
+ time TIMESTAMP WITHOUT TIME ZONE DEFAULT (now() AT TIME ZONE 'utc') NOT NULL,
3
5
  stream_name text NOT NULL,
4
6
  type text NOT NULL,
5
- position bigint NOT NULL,
6
- global_position bigserial NOT NULL,
7
7
  data jsonb,
8
8
  metadata jsonb,
9
- time TIMESTAMP WITHOUT TIME ZONE DEFAULT (now() AT TIME ZONE 'utc') NOT NULL
9
+ id UUID NOT NULL DEFAULT gen_random_uuid()
10
10
  );
11
11
 
12
12
  ALTER TABLE message_store.messages ADD PRIMARY KEY (global_position) NOT DEFERRABLE INITIALLY IMMEDIATE;
@@ -28,7 +28,6 @@ fi
28
28
 
29
29
  function delete-user {
30
30
  echo "» message_store user"
31
- psql postgres -P pager=off -q -c "DROP OWNED BY message_store;"
32
31
  psql postgres -P pager=off -q -c "DROP ROLE IF EXISTS message_store;"
33
32
  }
34
33
 
@@ -6,21 +6,21 @@ The following changes are made by the 1.0.0.sh update script:
6
6
 
7
7
  - **Note: There are no changes to the `messages` table, and no data migration is necessary**
8
8
  - The executables named `evt-pg-*` are renamed to `mdb-*`
9
- - **[breaking change]** The `get_category_messages` server function supports pub/sub directly by receiving a `correlation` argument and composing the correlation metadata query condition directly in the server function ([http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-messages-from-a-stream](http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-messages-from-a-stream))
9
+ - **[breaking change]** The `get_category_messages` server function supports pub/sub directly by receiving a `correlation` argument and composing the correlation metadata query condition directly in the server function ([http://docs.eventide-project.org/user-guide/message-db/server-functions.html#get-messages-from-a-category](http://docs.eventide-project.org/user-guide/message-db/server-functions.html#get-messages-from-a-category))
10
10
  - **[breaking change]** The message_store database and its objects are contained in a Postgres schema named `message_store`
11
- - **[breaking change]** The `get_category_messages` server function supports consumer groups via the `consumer_group_member` and `consumer_group_size` parameters ([http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-messages-from-a-category](http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-messages-from-a-category))
12
- - The retrieval server functions provide debugging output that is activated via the Postgres setting, `message_store.debug_get` ([http://docs.eventide-project.org/user-guide/message-store/server-functions.html#debugging-output](http://docs.eventide-project.org/user-guide/message-store/server-functions.html#debugging-output))
13
- - The write server function provides debugging output that is activated via the Postgres setting, `message_store.debug_write` ([http://docs.eventide-project.org/user-guide/message-store/server-functions.html#debugging-output](http://docs.eventide-project.org/user-guide/message-store/server-functions.html#debugging-output))
14
- - The `message_store.debug` Postgres setting activates both the retrieval and write debug output ([http://docs.eventide-project.org/user-guide/message-store/server-functions.html#debugging-output](http://docs.eventide-project.org/user-guide/message-store/server-functions.html#debugging-output))
15
- - `id` stream parsing function ([http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-the-id-from-a-stream-name](http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-the-id-from-a-stream-name))
16
- - `cardinal_id` stream parsing function ([http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-the-cardinal-id-from-a-stream-name](http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-the-cardinal-id-from-a-stream-name))
17
- - `acquire_lock` function encapsulates the application of the advisory lock used by the `write_message` function ([http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-message-store-database-schema-version](http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-message-store-database-schema-version))
11
+ - **[breaking change]** The `get_category_messages` server function supports consumer groups via the `consumer_group_member` and `consumer_group_size` parameters ([http://docs.eventide-project.org/user-guide/message-db/server-functions.html#get-messages-from-a-category](http://docs.eventide-project.org/user-guide/message-db/server-functions.html#get-messages-from-a-category))
12
+ - The retrieval server functions provide debugging output that is activated via the Postgres setting, `message_store.debug_get` ([http://docs.eventide-project.org/user-guide/message-db/server-functions.html#debugging-output](http://docs.eventide-project.org/user-guide/message-db/server-functions.html#debugging-output))
13
+ - The write server function provides debugging output that is activated via the Postgres setting, `message_store.debug_write` ([http://docs.eventide-project.org/user-guide/message-db/server-functions.html#debugging-output](http://docs.eventide-project.org/user-guide/message-db/server-functions.html#debugging-output))
14
+ - The `message_store.debug` Postgres setting activates both the retrieval and write debug output ([http://docs.eventide-project.org/user-guide/message-db/server-functions.html#debugging-output](http://docs.eventide-project.org/user-guide/message-db/server-functions.html#debugging-output))
15
+ - `id` stream parsing function ([http://docs.eventide-project.org/user-guide/message-db/server-functions.html#get-the-id-from-a-stream-name](http://docs.eventide-project.org/user-guide/message-db/server-functions.html#get-the-id-from-a-stream-name))
16
+ - `cardinal_id` stream parsing function ([http://docs.eventide-project.org/user-guide/message-db/server-functions.html#get-the-cardinal-id-from-a-stream-name](http://docs.eventide-project.org/user-guide/message-db/server-functions.html#get-the-cardinal-id-from-a-stream-name))
17
+ - `acquire_lock` function encapsulates the application of the advisory lock used by the `write_message` function ([http://docs.eventide-project.org/user-guide/message-db/server-functions.html#get-message-store-database-schema-version](http://docs.eventide-project.org/user-guide/message-db/server-functions.html#get-message-store-database-schema-version))
18
18
  - Database management tool output is clarified
19
- - **[breaking change]** All server function parameter names are no longer named with underscore prefixes ([http://docs.eventide-project.org/user-guide/message-store/server-functions.html](http://docs.eventide-project.org/user-guide/message-store/server-functions.html))
20
- - Indexes are no longer built with the `CONCURRENTLY` option ([http://docs.eventide-project.org/user-guide/message-store/anatomy.html#source-code](http://docs.eventide-project.org/user-guide/message-store/anatomy.html#source-code))
19
+ - **[breaking change]** All server function parameter names are no longer named with underscore prefixes ([http://docs.eventide-project.org/user-guide/message-db/server-functions.html](http://docs.eventide-project.org/user-guide/message-db/server-functions.html))
20
+ - Indexes are no longer built with the `CONCURRENTLY` option ([http://docs.eventide-project.org/user-guide/message-db/anatomy.html#source-code](http://docs.eventide-project.org/user-guide/message-db/anatomy.html#source-code))
21
21
  - **[breaking change]** The `messages_category_global_position_idx` is removed and replaced with the `messages_category` index, which now indexes correlation metadata
22
22
  - **[breaking change]** The `messages_stream_name_position_uniq_idx` is removed and replaced with the `messages_stream` index, which now indexes correlation metadata
23
23
  - **[breaking change]** The `messages_id_uniq_idx` is removed and replaced with the `messages_id` index
24
24
  - Message DB RubyGem: [https://github.com/message-db/ruby-gem](https://github.com/message-db/ruby-gem)
25
25
  - Message DB NPM Module: [https://github.com/message-db/npm-module](https://github.com/message-db/npm-module)
26
- - Improvements to interactive tests ([https://github.com/eventide-project/postgres-message-store/tree/master/test](https://github.com/eventide-project/postgres-message-store/tree/master/test))
26
+ - Improvements to interactive tests ([https://github.com/eventide-project/message-store-postgres/tree/master/test](https://github.com/eventide-project/message-store-postgres/tree/master/test))
@@ -0,0 +1,12 @@
1
+ # 1.2.2 Update
2
+
3
+ Note: There are no backward-incompatible changes in this update.
4
+
5
+ This update requires the execution of the v1.2.2 update script: `1.2.2.sh`. For instructions on applying update scripts, see:
6
+
7
+ [http://docs.eventide-project.org/user-guide/message-db/update.html](http://docs.eventide-project.org/user-guide/message-db/update.html)
8
+
9
+ The following changes are made by the 1.2.2.sh update script:
10
+
11
+ - The `get_category_messages` server function will return the entire, unlimited extent of messages in a category if -1 is sent as the `batch_size` argument
12
+ - The `get_stream_messages` server function will return the entire, unlimited extent of messages in a stream if -1 is sent as the `batch_size` argument
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ echo
6
+ echo "Message DB"
7
+ echo
8
+ echo "Update the message_store database to v1.2.2"
9
+ echo
10
+ echo "WARNING:"
11
+ echo "This script updates a post-v1 message_store database to Message DB v1.2.2"
12
+ echo "Do not run this script on a Message DB pre-v1 database"
13
+ echo
14
+ echo "Fore more information about the changes made to the message store by"
15
+ echo "this update, see: https://github.com/message-db/message-db/blob/master/database/update/1.2.2.md"
16
+ echo
17
+ echo "- Press CTRL+C to stop this script from running"
18
+ echo "- Press RETURN to allow the script to proceed"
19
+ echo
20
+
21
+ read
22
+
23
+ function script_dir {
24
+ val="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
25
+ echo "$val"
26
+ }
27
+
28
+ base="$(script_dir)/.."
29
+ echo $base
30
+
31
+ echo
32
+ echo "Updating Database"
33
+ echo "Version: $(cat $base/VERSION.txt)"
34
+ echo "= = ="
35
+
36
+ if [ -z ${DATABASE_NAME+x} ]; then
37
+ echo "(DATABASE_NAME is not set. Default will be used.)"
38
+ database=message_store
39
+ export DATABASE_NAME=$database
40
+ else
41
+ database=$DATABASE_NAME
42
+ fi
43
+ echo
44
+
45
+ if [ -z ${PGOPTIONS+x} ]; then
46
+ export PGOPTIONS='-c client_min_messages=warning'
47
+ fi
48
+
49
+ function install-functions {
50
+ echo "» get_stream_messages function"
51
+ psql $database -q -f $base/functions/get-stream-messages.sql
52
+
53
+ echo "» get_category_messages function"
54
+ psql $database -q -f $base/functions/get-category-messages.sql
55
+ }
56
+
57
+ echo "Installing Functions"
58
+ echo "- - -"
59
+ install-functions
60
+ echo
61
+
62
+ echo "= = ="
63
+ echo "Done Updating Database"
64
+ echo "Version: $(cat $base/VERSION.txt)"
65
+ echo
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: message-db
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
- autorequire:
8
+ autorequire:
9
9
  bindir: scripts
10
10
  cert_chain: []
11
- date: 2020-01-07 00:00:00.000000000 Z
11
+ date: 2021-03-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: " "
14
14
  email: opensource@eventide-project.org
@@ -81,6 +81,8 @@ files:
81
81
  - database/update.sh
82
82
  - database/update/1.0.0.md
83
83
  - database/update/1.0.0.sh
84
+ - database/update/1.2.2.md
85
+ - database/update/1.2.2.sh
84
86
  - database/views/category-type-summary.sql
85
87
  - database/views/stream-summary.sql
86
88
  - database/views/stream-type-summary.sql
@@ -110,7 +112,7 @@ homepage: https://github.com/message-db/message-db
110
112
  licenses:
111
113
  - MIT
112
114
  metadata: {}
113
- post_install_message:
115
+ post_install_message:
114
116
  rdoc_options: []
115
117
  require_paths:
116
118
  - lib
@@ -125,8 +127,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
127
  - !ruby/object:Gem::Version
126
128
  version: '0'
127
129
  requirements: []
128
- rubygems_version: 3.0.1
129
- signing_key:
130
+ rubygems_version: 3.1.2
131
+ signing_key:
130
132
  specification_version: 4
131
133
  summary: Microservice native event store and message store for Postgres
132
134
  test_files: []