evt-message_store-postgres-database 0.9.0.1 → 0.10.0.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/database/{extensions.sql → extension/pgcrypto.sql} +0 -0
- data/database/install-privileges.sh +29 -0
- data/database/install.sh +11 -13
- data/database/table/{messages-table.sql → messages.sql} +1 -1
- data/database/types/message.sql +1 -3
- data/database/uninstall.sh +33 -17
- data/database/user/privileges.sql +24 -0
- data/database/user/role.sql +7 -0
- data/scripts/evt-pg-install-indexes +7 -0
- data/scripts/evt-pg-install-privileges +7 -0
- metadata +11 -5
- data/database/functions/scratch.sql +0 -68
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9ee310a4aacf67ad9d3a97bde6dcf969b39afdc32c578004797894f91716fcf
|
4
|
+
data.tar.gz: d5afd1eba683a6862097a165dc8e5129635a817e05238318b6b1f98ea3074a38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d5075bcea7470bb1d8dc320e83a39d79163e93e40bba7bc9dd0881a51e536dc16442beec4be75fe070c0417d8762a661833a1adaefbbc6f0df25c6b5d3fe0d3
|
7
|
+
data.tar.gz: 26180f49acedaad535d836294e8d18e006838efdb4740c146e154efffe5f267d5a4363af05f2046f8a6cd39b31899fdac28c02a0707c77060e77b3fe630e726f
|
File without changes
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
|
5
|
+
default_name=message_store
|
6
|
+
|
7
|
+
if [ -z ${DATABASE_NAME+x} ]; then
|
8
|
+
echo "(DATABASE_NAME is not set. Default will be used.)"
|
9
|
+
database=$default_name
|
10
|
+
else
|
11
|
+
database=$DATABASE_NAME
|
12
|
+
fi
|
13
|
+
echo "Database name is: $database"
|
14
|
+
|
15
|
+
function script_dir {
|
16
|
+
val="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
17
|
+
echo "$val"
|
18
|
+
}
|
19
|
+
|
20
|
+
function grant-privileges {
|
21
|
+
base=$(script_dir)
|
22
|
+
psql $database -f $base/user/privileges.sql
|
23
|
+
echo
|
24
|
+
}
|
25
|
+
|
26
|
+
echo
|
27
|
+
echo "Granting Privileges"
|
28
|
+
echo "- - -"
|
29
|
+
grant-privileges
|
data/database/install.sh
CHANGED
@@ -8,15 +8,6 @@ echo "= = ="
|
|
8
8
|
echo
|
9
9
|
|
10
10
|
default_name=message_store
|
11
|
-
|
12
|
-
if [ -z ${DATABASE_USER+x} ]; then
|
13
|
-
echo "(DATABASE_USER is not set. Default will be used.)"
|
14
|
-
user=$default_name
|
15
|
-
else
|
16
|
-
user=$DATABASE_USER
|
17
|
-
fi
|
18
|
-
echo "Database user is: $user"
|
19
|
-
|
20
11
|
if [ -z ${DATABASE_NAME+x} ]; then
|
21
12
|
echo "(DATABASE_NAME is not set. Default will be used.)"
|
22
13
|
database=$default_name
|
@@ -33,7 +24,8 @@ function script_dir {
|
|
33
24
|
}
|
34
25
|
|
35
26
|
function create-user {
|
36
|
-
|
27
|
+
base=$(script_dir)
|
28
|
+
psql -f $base/user/role.sql
|
37
29
|
echo
|
38
30
|
}
|
39
31
|
|
@@ -44,19 +36,20 @@ function create-database {
|
|
44
36
|
|
45
37
|
function create-extensions {
|
46
38
|
base=$(script_dir)
|
47
|
-
psql $database -f $base/
|
39
|
+
psql $database -f $base/extension/pgcrypto.sql
|
48
40
|
echo
|
49
41
|
}
|
50
42
|
|
51
43
|
function create-table {
|
52
|
-
|
44
|
+
base=$(script_dir)
|
45
|
+
psql $database -f $base/table/messages.sql
|
53
46
|
echo
|
54
47
|
}
|
55
48
|
|
56
49
|
base=$(script_dir)
|
57
50
|
|
58
51
|
echo
|
59
|
-
echo "Creating User:
|
52
|
+
echo "Creating User: message_store"
|
60
53
|
echo "- - -"
|
61
54
|
create-user
|
62
55
|
|
@@ -83,3 +76,8 @@ source $base/install-indexes.sh
|
|
83
76
|
|
84
77
|
# Install views
|
85
78
|
source $base/install-views.sh
|
79
|
+
|
80
|
+
echo
|
81
|
+
echo "Granting Privileges"
|
82
|
+
echo "- - -"
|
83
|
+
source $base/install-privileges.sh
|
@@ -1,7 +1,7 @@
|
|
1
1
|
-- ----------------------------
|
2
2
|
-- Table structure for messages
|
3
3
|
-- ----------------------------
|
4
|
-
CREATE TABLE "public"."messages" (
|
4
|
+
CREATE TABLE IF NOT EXISTS "public"."messages" (
|
5
5
|
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
|
6
6
|
"stream_name" varchar(255) NOT NULL COLLATE "default",
|
7
7
|
"type" varchar(255) NOT NULL COLLATE "default",
|
data/database/types/message.sql
CHANGED
data/database/uninstall.sh
CHANGED
@@ -26,32 +26,48 @@ fi
|
|
26
26
|
echo "Database name is: $database"
|
27
27
|
echo
|
28
28
|
|
29
|
-
function delete-user {
|
30
|
-
|
29
|
+
# function delete-user {
|
30
|
+
# user_exists=`psql postgres -qtAXc "SELECT 1 FROM pg_roles WHERE rolname='$user'"`
|
31
|
+
|
32
|
+
# if [ "$user_exists" = "1" ]; then
|
33
|
+
# echo "Deleting database user \"$user\"..."
|
34
|
+
# dropuser $user
|
35
|
+
# else
|
36
|
+
# echo "Database user \"$user\" does not exist. Not deleting."
|
37
|
+
# fi
|
31
38
|
|
32
|
-
|
33
|
-
|
34
|
-
dropuser $user
|
35
|
-
else
|
36
|
-
echo "Database user \"$user\" does not exist. Not deleting."
|
37
|
-
fi
|
39
|
+
# echo
|
40
|
+
# }
|
38
41
|
|
42
|
+
function delete-user {
|
43
|
+
psql -P pager=off -c "DROP ROLE IF EXISTS $user;"
|
39
44
|
echo
|
40
45
|
}
|
41
46
|
|
42
|
-
function delete-database {
|
43
|
-
|
47
|
+
# function delete-database {
|
48
|
+
# database_exists=`psql postgres -qtAXc "SELECT 1 FROM pg_database WHERE datname='$database'"`
|
49
|
+
|
50
|
+
# if [ "$database_exists" = "1" ]; then
|
51
|
+
# echo "Deleting database \"$database\"..."
|
52
|
+
# dropdb $database
|
53
|
+
# else
|
54
|
+
# echo "Database \"$database\" does not exist. Not deleting."
|
55
|
+
# fi
|
44
56
|
|
45
|
-
|
46
|
-
|
47
|
-
dropdb $database
|
48
|
-
else
|
49
|
-
echo "Database \"$database\" does not exist. Not deleting."
|
50
|
-
fi
|
57
|
+
# echo
|
58
|
+
# }
|
51
59
|
|
60
|
+
function delete-database {
|
61
|
+
psql -P pager=off -c "DROP DATABASE IF EXISTS $database;"
|
52
62
|
echo
|
53
63
|
}
|
54
64
|
|
55
|
-
|
65
|
+
echo
|
66
|
+
echo "Deleting database \"$database\"..."
|
67
|
+
echo "- - -"
|
56
68
|
delete-database
|
69
|
+
|
70
|
+
echo
|
71
|
+
echo "Deleting database user \"$user\"..."
|
72
|
+
echo "- - -"
|
57
73
|
delete-user
|
@@ -0,0 +1,24 @@
|
|
1
|
+
-- Table
|
2
|
+
GRANT SELECT, INSERT ON messages TO message_store;
|
3
|
+
|
4
|
+
-- Sequence
|
5
|
+
GRANT USAGE, SELECT ON SEQUENCE messages_global_position_seq TO message_store;
|
6
|
+
|
7
|
+
-- Functions
|
8
|
+
GRANT EXECUTE ON FUNCTION gen_random_uuid TO message_store;
|
9
|
+
GRANT EXECUTE ON FUNCTION md5(text) TO message_store;
|
10
|
+
GRANT EXECUTE ON FUNCTION hash_64 TO message_store;
|
11
|
+
GRANT EXECUTE ON FUNCTION category TO message_store;
|
12
|
+
GRANT EXECUTE ON FUNCTION stream_version TO message_store;
|
13
|
+
GRANT EXECUTE ON FUNCTION write_message TO message_store;
|
14
|
+
GRANT EXECUTE ON FUNCTION get_stream_messages TO message_store;
|
15
|
+
GRANT EXECUTE ON FUNCTION get_category_messages TO message_store;
|
16
|
+
GRANT EXECUTE ON FUNCTION get_last_message TO message_store;
|
17
|
+
|
18
|
+
-- Views
|
19
|
+
GRANT SELECT, INSERT ON category_type_summary TO message_store;
|
20
|
+
GRANT SELECT, INSERT ON stream_summary TO message_store;
|
21
|
+
GRANT SELECT, INSERT ON stream_type_summary TO message_store;
|
22
|
+
GRANT SELECT, INSERT ON type_category_summary TO message_store;
|
23
|
+
GRANT SELECT, INSERT ON type_stream_summary TO message_store;
|
24
|
+
GRANT SELECT, INSERT ON type_summary TO message_store;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evt-message_store-postgres-database
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Eventide Project
|
8
8
|
autorequire:
|
9
9
|
bindir: scripts
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: " "
|
14
14
|
email: opensource@eventide-project.org
|
@@ -19,6 +19,7 @@ executables:
|
|
19
19
|
- evt-pg-update-db
|
20
20
|
- evt-pg-delete-db
|
21
21
|
- evt-pg-print-stream-type-summary
|
22
|
+
- evt-pg-install-indexes
|
22
23
|
- evt-pg-write-test-message
|
23
24
|
- evt-pg-create-db
|
24
25
|
- evt-pg-print-type-category-summary
|
@@ -29,6 +30,7 @@ executables:
|
|
29
30
|
- evt-pg-print-type-stream-summary
|
30
31
|
- evt-pg-print-type-summary
|
31
32
|
- evt-pg-print-stream-summary
|
33
|
+
- evt-pg-install-privileges
|
32
34
|
extensions: []
|
33
35
|
extra_rdoc_files: []
|
34
36
|
files:
|
@@ -36,13 +38,12 @@ files:
|
|
36
38
|
- database/benchmark_get.sql
|
37
39
|
- database/benchmark_write.sql
|
38
40
|
- database/clear-messages.sh
|
39
|
-
- database/
|
41
|
+
- database/extension/pgcrypto.sql
|
40
42
|
- database/functions/category.sql
|
41
43
|
- database/functions/get-category-messages.sql
|
42
44
|
- database/functions/get-last-message.sql
|
43
45
|
- database/functions/get-stream-messages.sql
|
44
46
|
- database/functions/hash-64.sql
|
45
|
-
- database/functions/scratch.sql
|
46
47
|
- database/functions/stream-version.sql
|
47
48
|
- database/functions/write-message.sql
|
48
49
|
- database/indexes/messages-category-global-position.sql
|
@@ -50,6 +51,7 @@ files:
|
|
50
51
|
- database/indexes/messages-stream-name-position-uniq.sql
|
51
52
|
- database/install-functions.sh
|
52
53
|
- database/install-indexes.sh
|
54
|
+
- database/install-privileges.sh
|
53
55
|
- database/install-views.sh
|
54
56
|
- database/install.sh
|
55
57
|
- database/print-category-type-summary.sh
|
@@ -60,10 +62,12 @@ files:
|
|
60
62
|
- database/print-type-stream-summary.sh
|
61
63
|
- database/print-type-summary.sh
|
62
64
|
- database/rename-updated-to-recorded.sh
|
63
|
-
- database/table/messages
|
65
|
+
- database/table/messages.sql
|
64
66
|
- database/types/message.sql
|
65
67
|
- database/uninstall.sh
|
66
68
|
- database/update.sh
|
69
|
+
- database/user/privileges.sql
|
70
|
+
- database/user/role.sql
|
67
71
|
- database/views/category-type-summary.sql
|
68
72
|
- database/views/stream-summary.sql
|
69
73
|
- database/views/stream-type-summary.sql
|
@@ -75,6 +79,8 @@ files:
|
|
75
79
|
- scripts/evt-pg-create-db
|
76
80
|
- scripts/evt-pg-delete-db
|
77
81
|
- scripts/evt-pg-install-functions
|
82
|
+
- scripts/evt-pg-install-indexes
|
83
|
+
- scripts/evt-pg-install-privileges
|
78
84
|
- scripts/evt-pg-install-views
|
79
85
|
- scripts/evt-pg-open-database-scripts-dir
|
80
86
|
- scripts/evt-pg-print-category-type-summary
|
@@ -1,68 +0,0 @@
|
|
1
|
-
:stream_name, na(:position), na(:batch_size), :condition
|
2
|
-
|
3
|
-
|
4
|
-
module Defaults
|
5
|
-
def self.position
|
6
|
-
0
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.batch_size
|
10
|
-
1000
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
- - -
|
16
|
-
|
17
|
-
command := 'SELECT * FROM messages WHERE $1';
|
18
|
-
RETURN QUERY EXECUTE command USING where_clause;
|
19
|
-
|
20
|
-
- - -
|
21
|
-
select * from messages where metadata @> '{"correlationStreamName":"someCorrelation"}';
|
22
|
-
- - -
|
23
|
-
select * from get_messages($$metadata @> '{"correlationStreamName":"someCorrelation"}'$$);
|
24
|
-
- - -
|
25
|
-
|
26
|
-
|
27
|
-
_sql := format('
|
28
|
-
SELECT *
|
29
|
-
FROM (
|
30
|
-
SELECT p.person_id, p.name, p.team, %1$s(s.score)::int AS score
|
31
|
-
,rank() OVER (PARTITION BY p.team
|
32
|
-
ORDER BY %1$s(s.score) DESC)::int AS rnk
|
33
|
-
FROM person p
|
34
|
-
%2$s score s USING (person_id)
|
35
|
-
%3$s
|
36
|
-
GROUP BY 1
|
37
|
-
) sub
|
38
|
-
WHERE rnk < 3
|
39
|
-
ORDER BY team, rnk'
|
40
|
-
, _agg
|
41
|
-
, CASE WHEN _left_join THEN 'LEFT JOIN' ELSE 'JOIN' END
|
42
|
-
, CASE WHEN _where_name <> '' THEN 'WHERE p.name LIKE $1' ELSE '' END
|
43
|
-
);
|
44
|
-
|
45
|
-
-- debug -- quote when tested ok
|
46
|
-
-- RAISE NOTICE '%', _sql;
|
47
|
-
|
48
|
-
-- execute -- unquote when tested ok
|
49
|
-
RETURN QUERY EXECUTE _sql
|
50
|
-
|
51
|
-
|
52
|
-
- - -
|
53
|
-
|
54
|
-
CREATE OR REPLACE FUNCTION get_messages()
|
55
|
-
RETURNS SETOF messages
|
56
|
-
AS $$
|
57
|
-
DECLARE
|
58
|
-
_sql text;
|
59
|
-
BEGIN
|
60
|
-
|
61
|
-
_sql := 'RETURN QUERY SELECT * FROM messages'
|
62
|
-
|
63
|
-
-- RETURN QUERY EXECUTE _sql
|
64
|
-
|
65
|
-
RETURN QUERY SELECT * FROM messages;
|
66
|
-
END;
|
67
|
-
$$ LANGUAGE plpgsql
|
68
|
-
VOLATILE;
|