From 978f7dc34c69c5767f4409a02643453d0ddce012 Mon Sep 17 00:00:00 2001 From: Jim Date: Fri, 25 Sep 2020 16:04:43 -0400 Subject: [PATCH] fix immutable columns for session_state and session_connnection_state (#449) --- internal/db/migrations/postgres.gen.go | 5 +++-- .../db/migrations/postgres/50_session.up.sql | 3 ++- .../migrations/postgres/51_connection.up.sql | 2 +- internal/session/immutable_fields_test.go | 18 ++++++++++++++++++ 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/internal/db/migrations/postgres.gen.go b/internal/db/migrations/postgres.gen.go index 869a880b8..2faf282c1 100644 --- a/internal/db/migrations/postgres.gen.go +++ b/internal/db/migrations/postgres.gen.go @@ -3764,7 +3764,8 @@ begin; immutable_columns before update on session_state - for each row execute procedure immutable_columns('session_id', 'start_time', 'previous_end_time'); + for each row execute procedure immutable_columns('session_id', 'state', 'start_time', 'previous_end_time'); + create or replace function insert_session_state() @@ -4101,7 +4102,7 @@ begin; immutable_columns before update on session_connection_state - for each row execute procedure immutable_columns('connection_id', 'state', 'start_time'); + for each row execute procedure immutable_columns('connection_id', 'state', 'start_time', 'previous_end_time'); create or replace function insert_session_connection_state() diff --git a/internal/db/migrations/postgres/50_session.up.sql b/internal/db/migrations/postgres/50_session.up.sql index 60f4c0a70..e253fff6e 100644 --- a/internal/db/migrations/postgres/50_session.up.sql +++ b/internal/db/migrations/postgres/50_session.up.sql @@ -408,7 +408,8 @@ begin; immutable_columns before update on session_state - for each row execute procedure immutable_columns('session_id', 'start_time', 'previous_end_time'); + for each row execute procedure immutable_columns('session_id', 'state', 'start_time', 'previous_end_time'); + create or replace function insert_session_state() diff --git a/internal/db/migrations/postgres/51_connection.up.sql b/internal/db/migrations/postgres/51_connection.up.sql index d5a490cb4..b7da8a1d4 100644 --- a/internal/db/migrations/postgres/51_connection.up.sql +++ b/internal/db/migrations/postgres/51_connection.up.sql @@ -249,7 +249,7 @@ begin; immutable_columns before update on session_connection_state - for each row execute procedure immutable_columns('connection_id', 'state', 'start_time'); + for each row execute procedure immutable_columns('connection_id', 'state', 'start_time', 'previous_end_time'); create or replace function insert_session_connection_state() diff --git a/internal/session/immutable_fields_test.go b/internal/session/immutable_fields_test.go index 5a0d3d107..0643ec863 100644 --- a/internal/session/immutable_fields_test.go +++ b/internal/session/immutable_fields_test.go @@ -119,6 +119,15 @@ func TestState_ImmutableFields(t *testing.T) { }(), fieldMask: []string{"PublicId"}, }, + { + name: "status", + update: func() *State { + s := new.Clone().(*State) + s.Status = "active" + return s + }(), + fieldMask: []string{"Status"}, + }, { name: "start time", update: func() *State { @@ -258,6 +267,15 @@ func TestConnectionState_ImmutableFields(t *testing.T) { }(), fieldMask: []string{"PublicId"}, }, + { + name: "status", + update: func() *ConnectionState { + s := new.Clone().(*ConnectionState) + s.Status = "closed" + return s + }(), + fieldMask: []string{"Status"}, + }, { name: "start time", update: func() *ConnectionState {