pg_eventstore 2.0.0 → 3.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/.rubocop.yml +10 -1
- data/CHANGELOG.md +186 -20
- data/README.md +25 -15
- data/db/migrations/10_setup_pg_cron.rb +1 -23
- data/db/migrations/15_create_streams_global_index.sql +17 -0
- data/db/migrations/16_populate_streams_global_index.rb +150 -0
- data/db/migrations/17_create_events_global_index.sql +62 -0
- data/db/migrations/18_populate_events_global_index.rb +124 -0
- data/db/migrations/19_populate_events_global_index_p2.rb +25 -0
- data/db/migrations/20_migrate_subscriptions_current_position.sql +19 -0
- data/db/migrations/21_create_partitions_stats.sql +2 -0
- data/db/migrations/22_drop_streams_sql_view.sql +2 -0
- data/db/migrations/23_adjust_partitions_indexes.sql +5 -0
- data/db/migrations/24_drop_legacy_events_indexes.sql +3 -0
- data/db/migrations/25_add_parent_partitions_info_to_partitions.sql +16 -0
- data/db/migrations/26_change_events_stream_revision_type.rb +35 -0
- data/db/migrations/27_drop_events_horizon.sql +3 -0
- data/db/migrations/28_create_maintenance_tasks.sql +8 -0
- data/db/migrations/29_create_event_markers.sql +35 -0
- data/db/migrations/30_improve_partitions_search_in_admin_ui.rb +24 -0
- data/db/migrations/31_drop_events_id_default_value.sql +1 -0
- data/db/migrations/32_create_parittions_triggers.sql +101 -0
- data/docs/AGENTS.fragment.md +696 -0
- data/docs/admin_ui.md +3 -1
- data/docs/appending_events.md +110 -49
- data/docs/configuration.md +69 -36
- data/docs/event_tracing.md +55 -0
- data/docs/events_and_streams.md +54 -30
- data/docs/how_it_works.md +57 -16
- data/docs/linking_events.md +2 -1
- data/docs/maintenance.md +14 -5
- data/docs/multiple_commands.md +17 -8
- data/docs/reading_events.md +208 -43
- data/docs/reading_streams.md +50 -0
- data/docs/replication.md +99 -0
- data/docs/subscriptions.md +165 -35
- data/docs/writing_middleware.md +25 -8
- data/ext/pg_eventstore_ext/extconf.rb +5 -0
- data/ext/pg_eventstore_ext/pg_eventstore_ext.c +74 -0
- data/lib/pg_eventstore/async_runner.rb +63 -0
- data/lib/pg_eventstore/basic_config.rb +15 -0
- data/lib/pg_eventstore/chunks/chunk.rb +31 -0
- data/lib/pg_eventstore/chunks/read_api_events_index_chunk.rb +83 -0
- data/lib/pg_eventstore/chunks/replica_events_index_chunk.rb +35 -0
- data/lib/pg_eventstore/chunks/repository.rb +73 -0
- data/lib/pg_eventstore/chunks/subscription_checkpoint_chunk.rb +48 -0
- data/lib/pg_eventstore/chunks/subscription_events_index_chunk.rb +99 -0
- data/lib/pg_eventstore/chunks.rb +14 -0
- data/lib/pg_eventstore/client.rb +163 -50
- data/lib/pg_eventstore/commands/append.rb +62 -43
- data/lib/pg_eventstore/commands/delete_event.rb +7 -8
- data/lib/pg_eventstore/commands/delete_stream.rb +3 -3
- data/lib/pg_eventstore/commands/event_modifiers/prepare_link_event.rb +9 -7
- data/lib/pg_eventstore/commands/event_modifiers/prepare_regular_event.rb +12 -7
- data/lib/pg_eventstore/commands/link_to.rb +5 -5
- data/lib/pg_eventstore/commands/read.rb +23 -5
- data/lib/pg_eventstore/commands/read_grouped.rb +46 -0
- data/lib/pg_eventstore/commands/read_streams.rb +18 -0
- data/lib/pg_eventstore/commands/read_streams_paginated.rb +56 -0
- data/lib/pg_eventstore/commands/regular_stream_read_paginated.rb +4 -4
- data/lib/pg_eventstore/commands/revision_check/current_revision.rb +51 -0
- data/lib/pg_eventstore/commands/revision_check/event_type_revisions_comparison.rb +46 -0
- data/lib/pg_eventstore/commands/revision_check/expected_revision.rb +135 -0
- data/lib/pg_eventstore/commands/revision_check/stream_revision_check.rb +98 -0
- data/lib/pg_eventstore/commands/revision_check/stream_revision_comparison.rb +36 -0
- data/lib/pg_eventstore/commands/stream_revision.rb +14 -0
- data/lib/pg_eventstore/commands/system_stream_read_paginated.rb +4 -4
- data/lib/pg_eventstore/commands.rb +4 -2
- data/lib/pg_eventstore/config.rb +30 -9
- data/lib/pg_eventstore/connection.rb +21 -2
- data/lib/pg_eventstore/errors.rb +136 -10
- data/lib/pg_eventstore/event.rb +34 -2
- data/lib/pg_eventstore/event_deserializer.rb +5 -4
- data/lib/pg_eventstore/event_global_index.rb +118 -0
- data/lib/pg_eventstore/event_marker.rb +16 -0
- data/lib/pg_eventstore/event_marker_index.rb +25 -0
- data/lib/pg_eventstore/event_serializer.rb +6 -0
- data/lib/pg_eventstore/extensions/acts_as_configurable.rb +88 -0
- data/lib/pg_eventstore/extensions/options_defaults.rb +25 -0
- data/lib/pg_eventstore/extensions/options_extension.rb +2 -2
- data/lib/pg_eventstore/feature_marker.rb +18 -0
- data/lib/pg_eventstore/maintenance.rb +11 -6
- data/lib/pg_eventstore/middleware/event_tracing.rb +53 -0
- data/lib/pg_eventstore/partition.rb +6 -0
- data/lib/pg_eventstore/pg_connection.rb +70 -14
- data/lib/pg_eventstore/queries/event_marker_queries.rb +74 -0
- data/lib/pg_eventstore/queries/event_queries.rb +7 -93
- data/lib/pg_eventstore/queries/events_global_index_queries.rb +131 -0
- data/lib/pg_eventstore/queries/index_filtering_queries.rb +179 -0
- data/lib/pg_eventstore/queries/links_resolver.rb +4 -4
- data/lib/pg_eventstore/queries/maintenance_queries.rb +159 -42
- data/lib/pg_eventstore/queries/partition_queries.rb +45 -103
- data/lib/pg_eventstore/queries/replica_queries.rb +110 -0
- data/lib/pg_eventstore/queries/streams_global_index_queries.rb +163 -0
- data/lib/pg_eventstore/queries/transaction_queries.rb +52 -10
- data/lib/pg_eventstore/queries.rb +29 -1
- data/lib/pg_eventstore/query_builders/basic_filtering.rb +38 -5
- data/lib/pg_eventstore/query_builders/event_markers_filtering.rb +47 -0
- data/lib/pg_eventstore/query_builders/event_markers_index_filtering.rb +275 -0
- data/lib/pg_eventstore/query_builders/event_subscription_positions_filtering.rb +37 -0
- data/lib/pg_eventstore/query_builders/events_filtering.rb +15 -164
- data/lib/pg_eventstore/query_builders/events_global_index_filtering.rb +227 -0
- data/lib/pg_eventstore/query_builders/filters/collection.rb +324 -0
- data/lib/pg_eventstore/query_builders/filters/event_type_filter.rb +37 -0
- data/lib/pg_eventstore/query_builders/filters/filter_row.rb +54 -0
- data/lib/pg_eventstore/query_builders/filters/marker_filter.rb +20 -0
- data/lib/pg_eventstore/query_builders/filters/marker_filter_row.rb +49 -0
- data/lib/pg_eventstore/query_builders/filters/stream_filter.rb +48 -0
- data/lib/pg_eventstore/query_builders/index_based_events_filtering.rb +260 -0
- data/lib/pg_eventstore/query_builders/partitions_filtering.rb +175 -51
- data/lib/pg_eventstore/query_builders/read_cursor/stream_cursor.rb +122 -0
- data/lib/pg_eventstore/query_builders/streams_global_index_filtering.rb +83 -0
- data/lib/pg_eventstore/query_builders/subscription_events_filtering.rb +79 -0
- data/lib/pg_eventstore/query_strategy/async.rb +64 -0
- data/lib/pg_eventstore/query_strategy/foreground.rb +25 -0
- data/lib/pg_eventstore/query_strategy.rb +19 -0
- data/lib/pg_eventstore/raw_event.rb +46 -0
- data/lib/pg_eventstore/rspec/test_helpers.rb +21 -8
- data/lib/pg_eventstore/sql_builder.rb +87 -8
- data/lib/pg_eventstore/stream.rb +13 -16
- data/lib/pg_eventstore/stream_global_index.rb +28 -0
- data/lib/pg_eventstore/subscriptions/callback_handlers/events_processor_handlers.rb +5 -17
- data/lib/pg_eventstore/subscriptions/callback_handlers/events_subscription_position_worker_handlers.rb +36 -0
- data/lib/pg_eventstore/subscriptions/callback_handlers/subscription_feeder_handlers.rb +12 -0
- data/lib/pg_eventstore/subscriptions/callback_handlers/subscription_runner_handlers.rb +21 -7
- data/lib/pg_eventstore/subscriptions/events_processor.rb +20 -18
- data/lib/pg_eventstore/subscriptions/events_processor_consumer/multiple.rb +63 -0
- data/lib/pg_eventstore/subscriptions/events_processor_consumer/replica.rb +68 -0
- data/lib/pg_eventstore/subscriptions/events_processor_consumer/single.rb +62 -0
- data/lib/pg_eventstore/subscriptions/events_processor_consumer.rb +44 -0
- data/lib/pg_eventstore/subscriptions/events_subscription_position_worker.rb +68 -0
- data/lib/pg_eventstore/subscriptions/queries/event_subscription_position_queries.rb +177 -0
- data/lib/pg_eventstore/subscriptions/queries/subscription_queries.rb +78 -54
- data/lib/pg_eventstore/subscriptions/replica_subscription_handler.rb +140 -0
- data/lib/pg_eventstore/subscriptions/replica_subscription_runner.rb +9 -0
- data/lib/pg_eventstore/subscriptions/subscription.rb +2 -1
- data/lib/pg_eventstore/subscriptions/subscription_feed_strategies/collection.rb +36 -0
- data/lib/pg_eventstore/subscriptions/subscription_feed_strategies/index_read_strategy.rb +82 -0
- data/lib/pg_eventstore/subscriptions/subscription_feed_strategies/replication_strategy.rb +75 -0
- data/lib/pg_eventstore/subscriptions/subscription_feed_strategy.rb +31 -0
- data/lib/pg_eventstore/subscriptions/subscription_feeder.rb +24 -0
- data/lib/pg_eventstore/subscriptions/subscription_handler_performance.rb +4 -2
- data/lib/pg_eventstore/subscriptions/subscription_runner.rb +20 -9
- data/lib/pg_eventstore/subscriptions/subscription_runner_commands/reset_position.rb +1 -1
- data/lib/pg_eventstore/subscriptions/subscription_runners_feeder.rb +9 -18
- data/lib/pg_eventstore/subscriptions/subscriptions_lifecycle.rb +0 -12
- data/lib/pg_eventstore/subscriptions/subscriptions_manager.rb +74 -14
- data/lib/pg_eventstore/{subscriptions/synchronized_array.rb → synchronized_array.rb} +15 -0
- data/lib/pg_eventstore/tasks/setup.rake +2 -2
- data/lib/pg_eventstore/utils.rb +31 -0
- data/lib/pg_eventstore/version.rb +1 -1
- data/lib/pg_eventstore/web/application.rb +100 -16
- data/lib/pg_eventstore/web/paginator/base_collection.rb +5 -1
- data/lib/pg_eventstore/web/paginator/event_types_collection.rb +14 -4
- data/lib/pg_eventstore/web/paginator/events_collection.rb +29 -33
- data/lib/pg_eventstore/web/paginator/helpers.rb +16 -9
- data/lib/pg_eventstore/web/paginator/markers_collection.rb +48 -0
- data/lib/pg_eventstore/web/paginator/stream_contexts_collection.rb +13 -2
- data/lib/pg_eventstore/web/paginator/stream_ids_collection.rb +21 -11
- data/lib/pg_eventstore/web/paginator/stream_names_collection.rb +18 -4
- data/lib/pg_eventstore/web/paginator/streams_collection.rb +95 -0
- data/lib/pg_eventstore/web/public/javascripts/pg_eventstore.js +49 -22
- data/lib/pg_eventstore/web/subscriptions/set_collection.rb +1 -1
- data/lib/pg_eventstore/web/subscriptions/subscriptions.rb +1 -1
- data/lib/pg_eventstore/web/subscriptions/with_state/set_collection.rb +1 -1
- data/lib/pg_eventstore/web/subscriptions/with_state/subscriptions.rb +1 -1
- data/lib/pg_eventstore/web/views/home/dashboard.erb +11 -9
- data/lib/pg_eventstore/web/views/home/partials/event_filter.erb +18 -5
- data/lib/pg_eventstore/web/views/home/partials/events.erb +38 -1
- data/lib/pg_eventstore/web/views/home/partials/markers_filter.erb +18 -0
- data/lib/pg_eventstore/web/views/layouts/application.erb +6 -0
- data/lib/pg_eventstore/web/views/streams/index.erb +110 -0
- data/lib/pg_eventstore/web/views/streams/partials/streams.erb +11 -0
- data/lib/pg_eventstore/web/views/subscriptions/index.erb +4 -1
- data/lib/pg_eventstore/web.rb +2 -0
- data/lib/pg_eventstore.rb +23 -60
- data/pg_eventstore.gemspec +6 -4
- data/sig/interfaces/_raw_events_handler.rbs +3 -0
- data/sig/interfaces/subscription_handler.rbs +1 -1
- data/sig/pg/result.rbs +9 -0
- data/sig/pg_eventstore/async_runner.rbs +13 -0
- data/sig/pg_eventstore/basic_config.rbs +9 -0
- data/sig/pg_eventstore/chunks/chunk.rbs +13 -0
- data/sig/pg_eventstore/chunks/read_api_events_index_chunk.rbs +30 -0
- data/sig/pg_eventstore/chunks/replica_events_index_chunk.rbs +11 -0
- data/sig/pg_eventstore/chunks/repository.rbs +22 -0
- data/sig/pg_eventstore/chunks/subscription_checkpoint_chunk.rbs +18 -0
- data/sig/pg_eventstore/chunks/subscription_events_index_chunk.rbs +37 -0
- data/sig/pg_eventstore/client.rbs +40 -42
- data/sig/pg_eventstore/commands/append.rbs +11 -25
- data/sig/pg_eventstore/commands/event_modifiers/prepare_link_event.rbs +9 -12
- data/sig/pg_eventstore/commands/event_modifiers/prepare_regular_event.rbs +5 -4
- data/sig/pg_eventstore/commands/link_to.rbs +6 -11
- data/sig/pg_eventstore/commands/read.rbs +2 -5
- data/sig/pg_eventstore/commands/read_grouped.rbs +7 -0
- data/sig/pg_eventstore/commands/read_streams.rbs +7 -0
- data/sig/pg_eventstore/commands/read_streams_paginated.rbs +16 -0
- data/sig/pg_eventstore/commands/regular_stream_read_paginated.rbs +9 -17
- data/sig/pg_eventstore/commands/revision_check/current_revision.rbs +25 -0
- data/sig/pg_eventstore/commands/revision_check/event_type_revisions_comparison.rbs +14 -0
- data/sig/pg_eventstore/commands/revision_check/expected_revision.rbs +67 -0
- data/sig/pg_eventstore/commands/revision_check/stream_revision_check.rbs +20 -0
- data/sig/pg_eventstore/commands/revision_check/stream_revision_comparison.rbs +9 -0
- data/sig/pg_eventstore/commands/stream_revision.rbs +7 -0
- data/sig/pg_eventstore/commands/system_stream_read_paginated.rbs +9 -14
- data/sig/pg_eventstore/config.rbs +15 -6
- data/sig/pg_eventstore/connection.rbs +11 -18
- data/sig/pg_eventstore/errors.rbs +64 -34
- data/sig/pg_eventstore/event.rbs +16 -2
- data/sig/pg_eventstore/event_deserializer.rbs +5 -10
- data/sig/pg_eventstore/event_global_index.rbs +60 -0
- data/sig/pg_eventstore/event_marker.rbs +9 -0
- data/sig/pg_eventstore/event_marker_index.rbs +12 -0
- data/sig/pg_eventstore/extensions/acts_as_configurable.rbs +29 -0
- data/sig/pg_eventstore/extensions/options_defaults.rbs +7 -0
- data/sig/pg_eventstore/feature_marker.rbs +10 -0
- data/sig/pg_eventstore/maintenance.rbs +12 -8
- data/sig/pg_eventstore/middleware/event_trace.rbs +14 -0
- data/sig/pg_eventstore/partition.rbs +2 -4
- data/sig/pg_eventstore/pg_connection.rbs +8 -0
- data/sig/pg_eventstore/queries/event_marker_queries.rbs +21 -0
- data/sig/pg_eventstore/queries/event_queries.rbs +4 -36
- data/sig/pg_eventstore/queries/events_global_index_queries.rbs +37 -0
- data/sig/pg_eventstore/queries/index_filtering_queries.rbs +50 -0
- data/sig/pg_eventstore/queries/links_resolver.rbs +5 -9
- data/sig/pg_eventstore/queries/maintenance_queries.rbs +12 -9
- data/sig/pg_eventstore/queries/partition_queries.rbs +32 -67
- data/sig/pg_eventstore/queries/replica_queries.rbs +31 -0
- data/sig/pg_eventstore/queries/streams_global_index_queries.rbs +39 -0
- data/sig/pg_eventstore/queries/transaction_queries.rbs +2 -0
- data/sig/pg_eventstore/queries.rbs +11 -21
- data/sig/pg_eventstore/query_builders/basic_filtering.rbs +10 -3
- data/sig/pg_eventstore/query_builders/event_markers_filtering.rbs +17 -0
- data/sig/pg_eventstore/query_builders/event_markers_index_filtering.rbs +69 -0
- data/sig/pg_eventstore/query_builders/event_subscription_positions_filtering.rbs +15 -0
- data/sig/pg_eventstore/query_builders/events_filtering_query.rbs +9 -51
- data/sig/pg_eventstore/query_builders/events_global_index_filtering.rbs +68 -0
- data/sig/pg_eventstore/query_builders/filters/collection.rbs +84 -0
- data/sig/pg_eventstore/query_builders/filters/event_type_filter.rbs +19 -0
- data/sig/pg_eventstore/query_builders/filters/filter_row.rbs +21 -0
- data/sig/pg_eventstore/query_builders/filters/marker_filter.rbs +13 -0
- data/sig/pg_eventstore/query_builders/filters/marker_filter_row.rbs +19 -0
- data/sig/pg_eventstore/query_builders/filters/stream_filter.rbs +24 -0
- data/sig/pg_eventstore/query_builders/index_based_events_filtering.rbs +60 -0
- data/sig/pg_eventstore/query_builders/partitions_filtering.rbs +29 -10
- data/sig/pg_eventstore/query_builders/read_cursor/stream_cursor.rbs +47 -0
- data/sig/pg_eventstore/query_builders/streams_global_index_filtering.rbs +27 -0
- data/sig/pg_eventstore/query_builders/subscription_events_filtering.rbs +26 -0
- data/sig/pg_eventstore/query_strategy/async.rbs +17 -0
- data/sig/pg_eventstore/query_strategy/foreground.rbs +11 -0
- data/sig/pg_eventstore/query_strategy.rbs +7 -0
- data/sig/pg_eventstore/raw_event.rbs +20 -0
- data/sig/pg_eventstore/sql_builder.rbs +32 -10
- data/sig/pg_eventstore/stream.rbs +10 -18
- data/sig/pg_eventstore/stream_global_index.rbs +14 -0
- data/sig/pg_eventstore/subscriptions/callback_handlers/events_processor_handlers.rbs +5 -4
- data/sig/pg_eventstore/subscriptions/callback_handlers/events_subscription_position_worker_handlers.rbs +9 -0
- data/sig/pg_eventstore/subscriptions/callback_handlers/subscription_feeder_handlers.rbs +17 -12
- data/sig/pg_eventstore/subscriptions/callback_handlers/subscription_runner_handlers.rbs +17 -6
- data/sig/pg_eventstore/subscriptions/event_subscription_position_queries.rbs +30 -0
- data/sig/pg_eventstore/subscriptions/events_processor.rbs +12 -5
- data/sig/pg_eventstore/subscriptions/events_processor_consumer/multiple.rbs +17 -0
- data/sig/pg_eventstore/subscriptions/events_processor_consumer/replica.rbs +17 -0
- data/sig/pg_eventstore/subscriptions/events_processor_consumer/single.rbs +17 -0
- data/sig/pg_eventstore/subscriptions/events_processor_consumer.rbs +14 -0
- data/sig/pg_eventstore/subscriptions/events_subscription_position_worker.rbs +28 -0
- data/sig/pg_eventstore/subscriptions/queries/subscription_queries.rbs +7 -39
- data/sig/pg_eventstore/subscriptions/replica_subscription_handler.rbs +33 -0
- data/sig/pg_eventstore/subscriptions/replica_subscription_runner.rbs +4 -0
- data/sig/pg_eventstore/subscriptions/subscription_feed_strategy/collection.rbs +14 -0
- data/sig/pg_eventstore/subscriptions/subscription_feed_strategy/index_read_strategy.rbs +23 -0
- data/sig/pg_eventstore/subscriptions/subscription_feed_strategy/replication_strategy.rbs +23 -0
- data/sig/pg_eventstore/subscriptions/subscription_feed_strategy.rbs +11 -0
- data/sig/pg_eventstore/subscriptions/subscription_feeder.rbs +13 -10
- data/sig/pg_eventstore/subscriptions/subscription_handler_performance.rbs +1 -1
- data/sig/pg_eventstore/subscriptions/subscription_runner.rbs +13 -2
- data/sig/pg_eventstore/subscriptions/subscription_runners_feeder.rbs +1 -8
- data/sig/pg_eventstore/subscriptions/subscriptions_lifecycle.rbs +4 -6
- data/sig/pg_eventstore/subscriptions/subscriptions_manager.rbs +29 -43
- data/sig/pg_eventstore/synchronized_array.rbs +4 -0
- data/sig/pg_eventstore/utils.rbs +10 -11
- data/sig/pg_eventstore/web/application.rbs +13 -3
- data/sig/pg_eventstore/web/paginator/base_collection.rbs +2 -0
- data/sig/pg_eventstore/web/paginator/event_types_collection.rbs +4 -0
- data/sig/pg_eventstore/web/paginator/events_collection.rbs +11 -11
- data/sig/pg_eventstore/web/paginator/helpers.rbs +6 -15
- data/sig/pg_eventstore/web/paginator/markers_collection.rbs +13 -0
- data/sig/pg_eventstore/web/paginator/stream_contexts_collection.rbs +4 -0
- data/sig/pg_eventstore/web/paginator/stream_names_collection.rbs +4 -0
- data/sig/pg_eventstore/web/paginator/streams_collection.rbs +30 -0
- data/sig/pg_eventstore.rbs +8 -26
- metadata +175 -20
- data/Dockerfile +0 -3
- data/lib/pg_eventstore/commands/all_stream_read_grouped.rb +0 -69
- data/lib/pg_eventstore/commands/regular_stream_read_grouped.rb +0 -31
- data/lib/pg_eventstore/subscriptions/queries/subscription_service_queries.rb +0 -78
- data/lib/pg_eventstore/web/views/home/partials/system_stream_filter.erb +0 -15
- data/sig/pg_eventstore/commands/all_stream_read_grouped.rbs +0 -16
- data/sig/pg_eventstore/commands/regular_stream_read_grouped.rbs +0 -8
- data/sig/pg_eventstore/subscriptions/queries/subscription_service_queries.rbs +0 -19
- data/sig/pg_eventstore/subscriptions/synchronized_array.rbs +0 -4
- /data/sig/interfaces/{_raw_event_handler.rbs → raw_event_handler.rbs} +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module QueryBuilders
|
|
3
|
+
module Filters
|
|
4
|
+
class Collection
|
|
5
|
+
@compiled: Array[FilterRow]?
|
|
6
|
+
@event_types: Set[EventTypeFilter]
|
|
7
|
+
@incomplete_markers_filter: bool
|
|
8
|
+
@incomplete_stream_filter: bool
|
|
9
|
+
@markers: Set[MarkerFilter]
|
|
10
|
+
@streams: Index
|
|
11
|
+
@prefix_filter: bool
|
|
12
|
+
|
|
13
|
+
def self.from_options: (Hash[untyped, untyped] options) -> Collection
|
|
14
|
+
|
|
15
|
+
def self.from_stream_and_options: (Stream stream, Hash[untyped, untyped] options) -> Collection
|
|
16
|
+
|
|
17
|
+
def add_event_type: (EventTypeFilter event_type_filter) -> untyped
|
|
18
|
+
|
|
19
|
+
def add_marker: (MarkerFilter marker_filter) -> void
|
|
20
|
+
|
|
21
|
+
def add_stream: (StreamFilter stream_filter) -> void
|
|
22
|
+
|
|
23
|
+
def collection: -> Array[FilterRow | MarkerFilterRow]
|
|
24
|
+
|
|
25
|
+
def empty?: -> bool
|
|
26
|
+
|
|
27
|
+
def has_event_types?: -> bool
|
|
28
|
+
|
|
29
|
+
def has_incomplete_markers_filter?: -> bool
|
|
30
|
+
|
|
31
|
+
def has_incomplete_stream_filter?: -> bool
|
|
32
|
+
|
|
33
|
+
def has_markers?: -> bool
|
|
34
|
+
|
|
35
|
+
def has_prefix_filter?: -> bool
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
|
|
39
|
+
def self.extract_event_types_filter: (
|
|
40
|
+
Collection instance,
|
|
41
|
+
Array[String | Hash[untyped, untyped]] event_types
|
|
42
|
+
) -> void
|
|
43
|
+
|
|
44
|
+
def self.extract_streams_filter: (Collection instance, Array[Hash[Symbol, untyped]]? streams) -> void
|
|
45
|
+
|
|
46
|
+
def self.unsupported_filter_warning: (untyped stream_attrs) -> void
|
|
47
|
+
|
|
48
|
+
class Index
|
|
49
|
+
|
|
50
|
+
attr_reader path: Hash[String, Index]
|
|
51
|
+
|
|
52
|
+
attr_accessor stream_filter: QueryBuilders::Filters::StreamFilter?
|
|
53
|
+
|
|
54
|
+
def empty?: -> bool
|
|
55
|
+
|
|
56
|
+
def find_non_overlapping: (?Index root) -> Array[QueryBuilders::Filters::StreamFilter]
|
|
57
|
+
|
|
58
|
+
def index: (StreamFilter stream_filter) -> void
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def compile: -> void
|
|
62
|
+
|
|
63
|
+
def marker_filter_overlaps_with_event_type_filter?: (
|
|
64
|
+
MarkerFilter marker_filter,
|
|
65
|
+
Array[EventTypeFilter] prefix_filters
|
|
66
|
+
) -> bool
|
|
67
|
+
|
|
68
|
+
def marker_filter_overlaps_with_prefix_filter?: (
|
|
69
|
+
MarkerFilter marker_filter,
|
|
70
|
+
Array[EventTypeFilter] prefix_filters
|
|
71
|
+
) -> bool
|
|
72
|
+
|
|
73
|
+
def non_overlapping_event_types: -> Array[Array[EventTypeFilter]]
|
|
74
|
+
|
|
75
|
+
def non_overlapping_markers: (
|
|
76
|
+
Array[EventTypeFilter] event_types_with_prefixes,
|
|
77
|
+
Array[EventTypeFilter] event_types_without_prefixes
|
|
78
|
+
) -> Array[MarkerFilter]
|
|
79
|
+
|
|
80
|
+
def reset: -> void
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module QueryBuilders
|
|
3
|
+
module Filters
|
|
4
|
+
class EventTypeFilter
|
|
5
|
+
include Extensions::OptionsExtension
|
|
6
|
+
include Extensions::OptionsDefaults
|
|
7
|
+
|
|
8
|
+
attr_accessor event_type: String?
|
|
9
|
+
attr_accessor prefix: bool
|
|
10
|
+
|
|
11
|
+
def self.null_filter: -> EventTypeFilter
|
|
12
|
+
|
|
13
|
+
def prefix?: -> bool
|
|
14
|
+
|
|
15
|
+
def to_sql_value: -> String?
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module QueryBuilders
|
|
3
|
+
module Filters
|
|
4
|
+
class FilterRow
|
|
5
|
+
include Extensions::OptionsExtension
|
|
6
|
+
include Extensions::OptionsDefaults
|
|
7
|
+
|
|
8
|
+
def self.null_filter_row: -> FilterRow
|
|
9
|
+
|
|
10
|
+
attr_accessor stream_filter: StreamFilter?
|
|
11
|
+
attr_accessor event_type_filters: Array[EventTypeFilter]
|
|
12
|
+
|
|
13
|
+
def ambiguous_event_type?: -> bool
|
|
14
|
+
|
|
15
|
+
def collapsable_into_event_types_only?: -> bool
|
|
16
|
+
|
|
17
|
+
def flatten: -> Array[FilterRow]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module QueryBuilders
|
|
3
|
+
module Filters
|
|
4
|
+
class MarkerFilter
|
|
5
|
+
include Extensions::OptionsExtension
|
|
6
|
+
include Extensions::OptionsDefaults
|
|
7
|
+
|
|
8
|
+
attr_accessor markers: Array[String]
|
|
9
|
+
attr_accessor event_type: String?
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module QueryBuilders
|
|
3
|
+
module Filters
|
|
4
|
+
class MarkerFilterRow
|
|
5
|
+
include Extensions::OptionsExtension
|
|
6
|
+
include Extensions::OptionsDefaults
|
|
7
|
+
|
|
8
|
+
attr_accessor stream_filter: QueryBuilders::Filters::StreamFilter?
|
|
9
|
+
attr_accessor marker_filter: QueryBuilders::Filters::MarkerFilter
|
|
10
|
+
|
|
11
|
+
def ambiguous_event_type?: -> bool
|
|
12
|
+
|
|
13
|
+
def flatten: -> Array[QueryBuilders::Filters::MarkerFilterRow]
|
|
14
|
+
|
|
15
|
+
def to_filter_row: -> FilterRow
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module QueryBuilders
|
|
3
|
+
module Filters
|
|
4
|
+
class StreamFilter
|
|
5
|
+
include Extensions::OptionsExtension
|
|
6
|
+
include Extensions::OptionsDefaults
|
|
7
|
+
|
|
8
|
+
attr_accessor context: String
|
|
9
|
+
attr_accessor stream_name: String?
|
|
10
|
+
attr_accessor stream_id: String?
|
|
11
|
+
|
|
12
|
+
def context?: -> bool
|
|
13
|
+
|
|
14
|
+
def stream?: -> bool
|
|
15
|
+
|
|
16
|
+
def stream_name?: -> bool
|
|
17
|
+
|
|
18
|
+
def to_h: -> Hash[Symbol, String]
|
|
19
|
+
|
|
20
|
+
def to_partition_h: -> Hash[Symbol, String?]
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module QueryBuilders
|
|
3
|
+
class IndexBasedEventsFiltering
|
|
4
|
+
include BasicFiltering
|
|
5
|
+
|
|
6
|
+
ABSTRACT_TABLE_NAME: String
|
|
7
|
+
DEFAULT_LIMIT: Integer
|
|
8
|
+
|
|
9
|
+
@sql_builder: SQLBuilder
|
|
10
|
+
|
|
11
|
+
def self.sql_builder_for_estimate_count: (
|
|
12
|
+
Array[Filters::FilterRow | Filters::MarkerFilterRow] filter_rows
|
|
13
|
+
) -> SQLBuilder
|
|
14
|
+
|
|
15
|
+
def self.sql_builder_for_event_type_revision_validation: (
|
|
16
|
+
Stream stream,
|
|
17
|
+
Commands::RevisionCheck::ExpectedRevision::EventTypeRevision expected_revision
|
|
18
|
+
) -> SQLBuilder
|
|
19
|
+
|
|
20
|
+
def self.sql_builder_for_event_type_with_markers_revision_validation: (
|
|
21
|
+
Stream stream,
|
|
22
|
+
Commands::RevisionCheck::ExpectedRevision::EventTypeRevisionWithMarkers expected_revision
|
|
23
|
+
) -> SQLBuilder
|
|
24
|
+
|
|
25
|
+
def self.sql_builder_for_markers_revision_validation: (
|
|
26
|
+
Stream stream,
|
|
27
|
+
Commands::RevisionCheck::ExpectedRevision::MarkersRevision expected_revision
|
|
28
|
+
) -> SQLBuilder
|
|
29
|
+
|
|
30
|
+
def self.sql_builder_for_read_common: (
|
|
31
|
+
Array[Filters::FilterRow | Filters::MarkerFilterRow] filter_rows,
|
|
32
|
+
ReadCursor::StreamCursor cursor
|
|
33
|
+
) -> SQLBuilder
|
|
34
|
+
|
|
35
|
+
def self.sql_builder_for_read_grouped: (
|
|
36
|
+
Array[Filters::FilterRow | Filters::MarkerFilterRow] filter_rows,
|
|
37
|
+
ReadCursor::StreamCursor cursor
|
|
38
|
+
) -> SQLBuilder
|
|
39
|
+
|
|
40
|
+
def self.sql_builder_for_subscriptions: (
|
|
41
|
+
Array[Filters::FilterRow | Filters::MarkerFilterRow] filter_rows
|
|
42
|
+
) -> SQLBuilder
|
|
43
|
+
|
|
44
|
+
def add_global_position_direction: ((String | Symbol)? direction) -> void
|
|
45
|
+
|
|
46
|
+
def add_limit: (Integer? limit) -> void
|
|
47
|
+
|
|
48
|
+
private
|
|
49
|
+
|
|
50
|
+
def self.finalize_subscription_builders: (Array[SQLBuilder] builders) -> SQLBuilder
|
|
51
|
+
|
|
52
|
+
def self.union_builders: (
|
|
53
|
+
Array[SQLBuilder] builders,
|
|
54
|
+
QueryBuilders::ReadCursor::StreamCursor cursor,
|
|
55
|
+
mode: Symbol,
|
|
56
|
+
?requires_limit: bool
|
|
57
|
+
) -> SQLBuilder
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -1,25 +1,44 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
module QueryBuilders
|
|
3
|
-
class PartitionsFiltering
|
|
3
|
+
class PartitionsFiltering
|
|
4
|
+
include BasicFiltering
|
|
5
|
+
|
|
4
6
|
TABLE_NAME: String
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
@has_event_types: Array[bool]
|
|
9
|
+
@has_stream_names: Array[bool]
|
|
10
|
+
@sql_builder: SQLBuilder
|
|
11
|
+
@wants_event_type: bool
|
|
12
|
+
@wants_stream_name: bool
|
|
13
|
+
|
|
14
|
+
def self.assemble_sql_builder: (Filters::Collection filters_collection,
|
|
15
|
+
?scope: Symbol) -> SQLBuilder
|
|
16
|
+
|
|
17
|
+
def self.from_filter_row: (Filters::FilterRow filter_row,
|
|
18
|
+
?scope: Symbol) -> SQLBuilder
|
|
19
|
+
|
|
20
|
+
def add_filter_row: (Filters::FilterRow filter_row) -> void
|
|
21
|
+
|
|
22
|
+
def order_by_context: -> void
|
|
23
|
+
|
|
24
|
+
def order_by_event_type: -> void
|
|
7
25
|
|
|
8
|
-
def
|
|
26
|
+
def order_by_stream_name: -> void
|
|
9
27
|
|
|
10
|
-
def
|
|
28
|
+
def with_event_types: -> void
|
|
11
29
|
|
|
12
|
-
def
|
|
30
|
+
def with_stream_names: -> void
|
|
13
31
|
|
|
14
|
-
def
|
|
32
|
+
def without_event_types: -> void
|
|
15
33
|
|
|
16
|
-
def
|
|
34
|
+
def without_stream_names: -> void
|
|
17
35
|
|
|
18
|
-
|
|
36
|
+
private
|
|
19
37
|
|
|
20
|
-
def
|
|
38
|
+
def self.has_stream_name_filter?: (Filters::Collection filters_collection) -> bool
|
|
21
39
|
|
|
22
|
-
def
|
|
40
|
+
def self.set_partitions_scope: (PartitionsFiltering partitions_filtering, bool has_stream_name_filters,
|
|
41
|
+
bool has_event_type_filters, Symbol scope) -> untyped
|
|
23
42
|
end
|
|
24
43
|
end
|
|
25
44
|
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module QueryBuilders
|
|
3
|
+
module ReadCursor
|
|
4
|
+
class StreamCursor
|
|
5
|
+
class RegularStreamCursor
|
|
6
|
+
include Extensions::OptionsExtension
|
|
7
|
+
include Extensions::OptionsDefaults
|
|
8
|
+
|
|
9
|
+
attr_accessor from_revision: Integer?
|
|
10
|
+
attr_accessor to_revision: Integer?
|
|
11
|
+
attr_accessor direction: String? | Symbol?
|
|
12
|
+
attr_accessor max_count: Integer?
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class AllStreamCursor
|
|
16
|
+
include Extensions::OptionsExtension
|
|
17
|
+
include Extensions::OptionsDefaults
|
|
18
|
+
|
|
19
|
+
attr_accessor from_position: Integer?
|
|
20
|
+
attr_accessor to_position: Integer?
|
|
21
|
+
attr_accessor direction: String? | Symbol?
|
|
22
|
+
attr_accessor max_count: Integer?
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
@cursor: RegularStreamCursor | AllStreamCursor
|
|
26
|
+
|
|
27
|
+
def self.from_options: (Hash[untyped, untyped] options) -> StreamCursor
|
|
28
|
+
|
|
29
|
+
def self.from_stream_and_options: (Stream stream, Hash[untyped, untyped] options) -> StreamCursor
|
|
30
|
+
|
|
31
|
+
def initialize: (RegularStreamCursor | AllStreamCursor cursor) -> void
|
|
32
|
+
|
|
33
|
+
def direction: -> (String | Symbol)?
|
|
34
|
+
|
|
35
|
+
def from: -> Integer?
|
|
36
|
+
|
|
37
|
+
def max_count: -> Integer?
|
|
38
|
+
|
|
39
|
+
def max_count=: (Integer? val) -> void
|
|
40
|
+
|
|
41
|
+
def all_stream_cursor?: -> bool
|
|
42
|
+
|
|
43
|
+
def to: -> Integer?
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module QueryBuilders
|
|
3
|
+
class StreamsGlobalIndexFiltering
|
|
4
|
+
DEFAULT_LIMIT: Integer
|
|
5
|
+
|
|
6
|
+
PRIMARY_TABLE_NAME: String
|
|
7
|
+
|
|
8
|
+
include BasicFiltering
|
|
9
|
+
|
|
10
|
+
@sql_builder: SQLBuilder
|
|
11
|
+
|
|
12
|
+
def self.sql_builder_for_basic_pagination: (Hash[untyped, untyped] options) -> SQLBuilder
|
|
13
|
+
|
|
14
|
+
def add_filter_row: (Filters::FilterRow filter_row) -> void
|
|
15
|
+
|
|
16
|
+
def add_starting_position_direction: (Symbol? | String? direction) -> void
|
|
17
|
+
|
|
18
|
+
def from_position: (Integer? position, Symbol? | String? direction) -> void
|
|
19
|
+
|
|
20
|
+
def limit: (Integer? limit) -> void
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def direction_operator_from: (Symbol? | String? direction) -> String
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module QueryBuilders
|
|
3
|
+
class SubscriptionEventsFiltering
|
|
4
|
+
include BasicFiltering
|
|
5
|
+
|
|
6
|
+
@from_position: Integer
|
|
7
|
+
@max_count: Integer
|
|
8
|
+
@sql_builder: SQLBuilder
|
|
9
|
+
@subscription_id: Integer
|
|
10
|
+
@to_position: Integer
|
|
11
|
+
|
|
12
|
+
def self.build: (
|
|
13
|
+
Integer id,
|
|
14
|
+
{ from_position: Integer, to_position: Integer, max_count: Integer } options
|
|
15
|
+
) -> SubscriptionEventsFiltering
|
|
16
|
+
|
|
17
|
+
def initialize: (Integer subscription_id) -> void
|
|
18
|
+
|
|
19
|
+
def add_limit: (Integer? limit) -> void
|
|
20
|
+
|
|
21
|
+
def from_position: (Integer? position) -> void
|
|
22
|
+
|
|
23
|
+
def to_position: (Integer? position) -> void
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module QueryStrategy
|
|
3
|
+
class Async
|
|
4
|
+
include QueryStrategy
|
|
5
|
+
|
|
6
|
+
@connection: Connection
|
|
7
|
+
|
|
8
|
+
def initialize: (Connection connection) -> void
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def cancel_and_drain: (PG::Connection connection) -> void
|
|
13
|
+
|
|
14
|
+
def run: (Symbol method, *untyped exec_args) -> untyped
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
# @!visibility private
|
|
3
|
+
class RawEvent
|
|
4
|
+
include Extensions::OptionsExtension
|
|
5
|
+
include Extensions::OptionsDefaults
|
|
6
|
+
|
|
7
|
+
attr_accessor id: String
|
|
8
|
+
attr_accessor context: String
|
|
9
|
+
attr_accessor stream_name: String
|
|
10
|
+
attr_accessor stream_id: String
|
|
11
|
+
attr_accessor global_position: Integer
|
|
12
|
+
attr_accessor stream_revision: Integer
|
|
13
|
+
attr_accessor data: Hash[untyped, untyped]
|
|
14
|
+
attr_accessor metadata: Hash[untyped, untyped]
|
|
15
|
+
attr_accessor link_partition_id: Integer?
|
|
16
|
+
attr_accessor created_at: Time
|
|
17
|
+
attr_accessor type: String
|
|
18
|
+
attr_accessor link_global_position: Integer?
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
class SQLBuilder
|
|
3
|
+
UNION_MODES: Array[Symbol]
|
|
4
|
+
|
|
5
|
+
@from_value: (String | SQLBuilder)?
|
|
6
|
+
@group_values: Array[String]
|
|
7
|
+
@join_values: Array[untyped]
|
|
8
|
+
@limit_value: String? | Integer?
|
|
9
|
+
@offset_value: Integer?
|
|
10
|
+
@order_values: Array[String]
|
|
11
|
+
@select_values: Array[String]
|
|
12
|
+
@union_mode: Symbol
|
|
13
|
+
@union_values: Array[SQLBuilder]
|
|
14
|
+
@where_values: Hash[String, Array[untyped]]
|
|
15
|
+
|
|
16
|
+
def self.union_builders: (Array[SQLBuilder] builders, ?mode: Symbol) -> SQLBuilder
|
|
17
|
+
|
|
18
|
+
def self.wrap_union_builder: (SQLBuilder builder) -> SQLBuilder
|
|
19
|
+
|
|
20
|
+
attr_reader positional_values: Array[untyped]
|
|
21
|
+
attr_reader table_alias: String?
|
|
22
|
+
|
|
23
|
+
attr_writer positional_values_size: Integer
|
|
24
|
+
|
|
3
25
|
def initialize: () -> void
|
|
4
26
|
|
|
5
27
|
def from_sql: -> String
|
|
@@ -7,6 +29,12 @@ module PgEventstore
|
|
|
7
29
|
# _@param_ `sql`
|
|
8
30
|
def select: (String sql) -> self
|
|
9
31
|
|
|
32
|
+
def select_id_only: -> self
|
|
33
|
+
|
|
34
|
+
def union_builder?: -> bool
|
|
35
|
+
|
|
36
|
+
def union_mode=: (Symbol val) -> void
|
|
37
|
+
|
|
10
38
|
def unselect: () -> self
|
|
11
39
|
|
|
12
40
|
# _@param_ `sql`
|
|
@@ -19,8 +47,7 @@ module PgEventstore
|
|
|
19
47
|
# _@param_ `arguments` — positional values
|
|
20
48
|
def where_or: (String sql, *Object arguments) -> self
|
|
21
49
|
|
|
22
|
-
|
|
23
|
-
def from: (String | SQLBuilder table_name) -> self
|
|
50
|
+
def from: (String | SQLBuilder table_name, ?table_alias: String?) -> self
|
|
24
51
|
|
|
25
52
|
# _@param_ `sql`
|
|
26
53
|
#
|
|
@@ -33,7 +60,7 @@ module PgEventstore
|
|
|
33
60
|
def remove_order: () -> self
|
|
34
61
|
|
|
35
62
|
# _@param_ `limit`
|
|
36
|
-
def limit: (Integer limit) -> self
|
|
63
|
+
def limit: (String | Integer limit) -> self
|
|
37
64
|
|
|
38
65
|
def remove_limit: () -> self
|
|
39
66
|
|
|
@@ -41,7 +68,7 @@ module PgEventstore
|
|
|
41
68
|
def offset: (Integer offset) -> self
|
|
42
69
|
|
|
43
70
|
# _@param_ `another_builder`
|
|
44
|
-
def union: (
|
|
71
|
+
def union: (SQLBuilder another_builder) -> self
|
|
45
72
|
|
|
46
73
|
# _@param_ `sql`
|
|
47
74
|
def group: (String sql) -> self
|
|
@@ -50,11 +77,6 @@ module PgEventstore
|
|
|
50
77
|
|
|
51
78
|
def to_exec_params: () -> [String, ::Array[untyped]]
|
|
52
79
|
|
|
53
|
-
def positional_values: () -> ::Array[Object]
|
|
54
|
-
|
|
55
|
-
# _@param_ `val`
|
|
56
|
-
def positional_values_size=: (Integer val) -> Integer
|
|
57
|
-
|
|
58
80
|
def _to_exec_params: () -> [String, ::Array[untyped]]
|
|
59
81
|
|
|
60
82
|
def single_query_sql: () -> String
|
|
@@ -75,6 +97,6 @@ module PgEventstore
|
|
|
75
97
|
|
|
76
98
|
private
|
|
77
99
|
|
|
78
|
-
def merge: (SQLBuilder builder)-> String
|
|
100
|
+
def merge: (SQLBuilder builder) -> String
|
|
79
101
|
end
|
|
80
102
|
end
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
class Stream
|
|
3
3
|
KNOWN_SYSTEM_STREAMS: Array[String]
|
|
4
|
-
SYSTEM_STREAM_PREFIX: String
|
|
5
4
|
NON_EXISTING_STREAM_REVISION: Integer
|
|
6
5
|
|
|
7
|
-
def self.all_stream: () ->
|
|
6
|
+
def self.all_stream: () -> Stream
|
|
8
7
|
|
|
9
|
-
def self.system_stream: (String) ->
|
|
8
|
+
def self.system_stream: (String) -> Stream
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
attr_reader context: String
|
|
11
|
+
attr_reader stream_name: String
|
|
12
|
+
attr_reader stream_id: String
|
|
13
|
+
attr_reader stream_revision: Integer?
|
|
14
|
+
attr_reader starting_position: Integer?
|
|
15
|
+
|
|
16
|
+
def initialize: (context: String, stream_name: String, stream_id: String, ?stream_revision: Integer?,
|
|
17
|
+
?starting_position: Integer?) -> void
|
|
17
18
|
|
|
18
19
|
def all_stream?: () -> bool
|
|
19
20
|
|
|
@@ -21,23 +22,14 @@ module PgEventstore
|
|
|
21
22
|
|
|
22
23
|
def deconstruct: () -> ::Array[untyped]
|
|
23
24
|
|
|
24
|
-
# _@param_ `keys`
|
|
25
25
|
def deconstruct_keys: (::Array[Symbol]? keys) -> ::Hash[Symbol, String]
|
|
26
26
|
|
|
27
27
|
def to_hash: () -> ::Hash[untyped, untyped]
|
|
28
28
|
|
|
29
29
|
def hash: () -> Integer
|
|
30
30
|
|
|
31
|
-
# _@param_ `another`
|
|
32
31
|
def eql?: (untyped another) -> bool
|
|
33
32
|
|
|
34
|
-
# _@param_ `other_stream`
|
|
35
33
|
def ==: (untyped other_stream) -> bool
|
|
36
|
-
|
|
37
|
-
attr_accessor context: String
|
|
38
|
-
|
|
39
|
-
attr_accessor stream_name: String
|
|
40
|
-
|
|
41
|
-
attr_accessor stream_id: String
|
|
42
34
|
end
|
|
43
35
|
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
class StreamGlobalIndex
|
|
3
|
+
include Extensions::OptionsExtension
|
|
4
|
+
include Extensions::OptionsDefaults
|
|
5
|
+
|
|
6
|
+
INITIAL_STARTING_POSITION: Integer
|
|
7
|
+
|
|
8
|
+
attr_accessor id: Integer
|
|
9
|
+
attr_accessor partition_id: Integer
|
|
10
|
+
attr_accessor stream_id: String
|
|
11
|
+
attr_accessor stream_revision: Integer
|
|
12
|
+
attr_accessor starting_position: Integer
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
class EventsProcessorHandlers
|
|
3
|
-
def self.
|
|
3
|
+
def self.consume_events: (EventsProcessorConsumer consumer, Callbacks callbacks,
|
|
4
|
+
Chunks::Repository events_repository,
|
|
4
5
|
MonitorMixin::ConditionVariable raw_events_cond) -> void
|
|
5
6
|
|
|
6
|
-
def self.after_runner_died: (
|
|
7
|
+
def self.after_runner_died: (Callbacks callbacks, StandardError error) -> void
|
|
7
8
|
|
|
8
|
-
def self.before_runner_restored: (
|
|
9
|
+
def self.before_runner_restored: (Callbacks callbacks) -> void
|
|
9
10
|
|
|
10
|
-
def self.change_state: (
|
|
11
|
+
def self.change_state: (Callbacks callbacks, String state) -> void
|
|
11
12
|
end
|
|
12
13
|
end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
class EventsSubscriptionPositionWorkerHandlers
|
|
3
|
+
def self.assign_subscription_position: (EventSubscriptionPositionQueries event_subscription_position_queries,
|
|
4
|
+
Integer | Float update_interval) -> void
|
|
5
|
+
|
|
6
|
+
def self.reindex: (EventSubscriptionPositionQueries event_subscription_position_queries,
|
|
7
|
+
EventsSubscriptionPositionWorker::ReindexTime next_reindex_at) -> void
|
|
8
|
+
end
|
|
9
|
+
end
|