message-db 2.0.2 → 2.1.4

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