Sha256: a7b322b0b5689a1137f4d4e4edefa5872365a08bfe03a67733d398aadb36104f

Contents?: true

Size: 1008 Bytes

Versions: 12

Compression:

Stored size: 1008 Bytes

Contents

CREATE OR REPLACE FUNCTION write_event(
  _id varchar,
  _stream_name varchar,
  _type varchar,
  _data jsonb,
  _metadata jsonb DEFAULT NULL,
  _expected_version int DEFAULT NULL
)
RETURNS int
AS $$
DECLARE
  event_id uuid;
  stream_version int;
  position int;
  category varchar;
BEGIN
  event_id = uuid(_id);

  stream_version := stream_version(_stream_name);

  if stream_version is null then
    stream_version := -1;
  end if;

  if _expected_version is not null then
    if _expected_version != stream_version then
      raise exception 'Wrong expected version: % (Stream: %, Stream Version: %)', _expected_version, _stream_name, stream_version;
    end if;
  end if;

  position := stream_version + 1;

  insert into "events"
    (
      "id",
      "stream_name",
      "position",
      "type",
      "data",
      "metadata"
    )
  values
    (
      event_id,
      _stream_name,
      position,
      _type,
      _data,
      _metadata
    )
  ;

  return position;
END;
$$ LANGUAGE plpgsql;

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
evt-message_store-postgres-0.1.0.0 database/functions/write-event.sql
evt-event_source-postgres-0.19.0.3 database/functions/write-event.sql
evt-event_source-postgres-0.19.0.2 database/functions/write-event.sql
evt-event_source-postgres-0.19.0.1 database/functions/write-event.sql
evt-event_source-postgres-0.19.0.0 database/functions/write-event.sql
evt-event_source-postgres-0.18.0.1 database/functions/write-event.sql
evt-event_source-postgres-0.18.0.0 database/functions/write-event.sql
evt-event_source-postgres-0.17.2.0 database/functions/write-event.sql
evt-event_source-postgres-0.17.1.0 database/functions/write-event.sql
evt-event_source-postgres-0.17.0.2 database/functions/write-event.sql
evt-event_source-postgres-0.17.0.0 database/functions/write-event.sql
evt-event_source-postgres-0.16.1.0 database/functions/write-event.sql