Skip to content

Commit 04bf974

Browse files
committed
minor refactoring - updated register_vew SQL function
1 parent d94526a commit 04bf974

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

src/main/kotlin/com/fraktalio/example/fmodelspringdemo/adapter/eventstream/repository/ViewRepository.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,7 @@ internal data class ViewEntity(
3232
)
3333

3434
private const val registerView = """
35-
INSERT INTO "views"
36-
("view", "pooling_delay", "start_at") VALUES (:view, :poolingDelayMilliseconds, :startAt)
37-
ON CONFLICT ON CONSTRAINT "views_pkey"
38-
DO UPDATE SET "updated_at" = NOW(), "start_at" = EXCLUDED."start_at", "pooling_delay" = EXCLUDED."pooling_delay"
39-
RETURNING *
35+
SELECT * FROM register_view(:view, :poolingDelayMilliseconds, :startAt)
4036
"""
4137

4238
// View database mapper function

src/main/resources/sql/event_streaming.sql

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,13 +162,17 @@ EXECUTE FUNCTION on_insert_or_update_on_views();
162162
-- Register a `view` (responsible for streaming events to concurrent consumers)
163163
-- Once the `view` is registered you can start `read_events` which will stream events by pooling database with delay, filtering `events` that are created after `start_at` timestamp
164164
-- Example of usage: SELECT * from register_view('view1', 500, '2023-01-23 12:17:17.078384')
165+
165166
CREATE OR REPLACE FUNCTION register_view(v_view TEXT, v_pooling_delay BIGINT, v_start_at TIMESTAMP)
166167
RETURNS SETOF "views" AS
167168
'
168169
BEGIN
169170
RETURN QUERY
170-
INSERT INTO "views" ("view", pooling_delay, start_at)
171-
VALUES (v_view, v_pooling_delay, v_start_at) RETURNING *;
171+
INSERT INTO "views" ("view", "pooling_delay", "start_at")
172+
VALUES (v_view, v_pooling_delay, v_start_at)
173+
ON CONFLICT ON CONSTRAINT "views_pkey"
174+
DO UPDATE SET "updated_at" = NOW(), "start_at" = EXCLUDED."start_at", "pooling_delay" = EXCLUDED."pooling_delay"
175+
RETURNING *;
172176
END;
173177
' LANGUAGE plpgsql;
174178

0 commit comments

Comments
 (0)