mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 04:57:33 +00:00
fix: improve performance by reducing full table scans (#4684)
* use instance id on update in projections * create index on domain in instance_domain projection * add missing instanceID filter to app queries
This commit is contained in:
@@ -25,7 +25,7 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
want wantReduce
|
||||
}{
|
||||
{
|
||||
name: "project.GrantMemberAddedType",
|
||||
name: "project GrantMemberAddedType",
|
||||
args: args{
|
||||
event: getEvent(testEvent(
|
||||
repository.EventType(project.GrantMemberAddedType),
|
||||
@@ -63,7 +63,7 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "project.GrantMemberChangedType",
|
||||
name: "project GrantMemberChangedType",
|
||||
args: args{
|
||||
event: getEvent(testEvent(
|
||||
repository.EventType(project.GrantMemberChangedType),
|
||||
@@ -83,11 +83,12 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
executer: &testExecuter{
|
||||
executions: []execution{
|
||||
{
|
||||
expectedStmt: "UPDATE projections.project_grant_members2 SET (roles, change_date, sequence) = ($1, $2, $3) WHERE (user_id = $4) AND (project_id = $5) AND (grant_id = $6)",
|
||||
expectedStmt: "UPDATE projections.project_grant_members2 SET (roles, change_date, sequence) = ($1, $2, $3) WHERE (instance_id = $4) AND (user_id = $5) AND (project_id = $6) AND (grant_id = $7)",
|
||||
expectedArgs: []interface{}{
|
||||
database.StringArray{"role", "changed"},
|
||||
anyArg{},
|
||||
uint64(15),
|
||||
"instance-id",
|
||||
"user-id",
|
||||
"agg-id",
|
||||
"grant-id",
|
||||
@@ -98,7 +99,7 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "project.GrantMemberCascadeRemovedType",
|
||||
name: "project GrantMemberCascadeRemovedType",
|
||||
args: args{
|
||||
event: getEvent(testEvent(
|
||||
repository.EventType(project.GrantMemberCascadeRemovedType),
|
||||
@@ -117,8 +118,9 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
executer: &testExecuter{
|
||||
executions: []execution{
|
||||
{
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (user_id = $1) AND (project_id = $2) AND (grant_id = $3)",
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (instance_id = $1) AND (user_id = $2) AND (project_id = $3) AND (grant_id = $4)",
|
||||
expectedArgs: []interface{}{
|
||||
"instance-id",
|
||||
"user-id",
|
||||
"agg-id",
|
||||
"grant-id",
|
||||
@@ -129,7 +131,7 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "project.GrantMemberRemovedType",
|
||||
name: "project GrantMemberRemovedType",
|
||||
args: args{
|
||||
event: getEvent(testEvent(
|
||||
repository.EventType(project.GrantMemberRemovedType),
|
||||
@@ -148,8 +150,9 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
executer: &testExecuter{
|
||||
executions: []execution{
|
||||
{
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (user_id = $1) AND (project_id = $2) AND (grant_id = $3)",
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (instance_id = $1) AND (user_id = $2) AND (project_id = $3) AND (grant_id = $4)",
|
||||
expectedArgs: []interface{}{
|
||||
"instance-id",
|
||||
"user-id",
|
||||
"agg-id",
|
||||
"grant-id",
|
||||
@@ -160,7 +163,7 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "user.UserRemovedEventType",
|
||||
name: "user UserRemovedEventType",
|
||||
args: args{
|
||||
event: getEvent(testEvent(
|
||||
repository.EventType(user.UserRemovedType),
|
||||
@@ -176,8 +179,9 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
executer: &testExecuter{
|
||||
executions: []execution{
|
||||
{
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (user_id = $1)",
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (instance_id = $1) AND (user_id = $2)",
|
||||
expectedArgs: []interface{}{
|
||||
"instance-id",
|
||||
"agg-id",
|
||||
},
|
||||
},
|
||||
@@ -186,7 +190,7 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "org.OrgRemovedEventType",
|
||||
name: "org OrgRemovedEventType",
|
||||
args: args{
|
||||
event: getEvent(testEvent(
|
||||
repository.EventType(org.OrgRemovedEventType),
|
||||
@@ -202,8 +206,9 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
executer: &testExecuter{
|
||||
executions: []execution{
|
||||
{
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (resource_owner = $1)",
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (instance_id = $1) AND (resource_owner = $2)",
|
||||
expectedArgs: []interface{}{
|
||||
"instance-id",
|
||||
"agg-id",
|
||||
},
|
||||
},
|
||||
@@ -211,7 +216,7 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}, {
|
||||
name: "instance.reduceInstanceRemoved",
|
||||
name: "instance reduceInstanceRemoved",
|
||||
args: args{
|
||||
event: getEvent(testEvent(
|
||||
repository.EventType(instance.InstanceRemovedEventType),
|
||||
@@ -237,7 +242,7 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "project.ProjectRemovedEventType",
|
||||
name: "project ProjectRemovedEventType",
|
||||
args: args{
|
||||
event: getEvent(testEvent(
|
||||
repository.EventType(project.ProjectRemovedType),
|
||||
@@ -253,8 +258,9 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
executer: &testExecuter{
|
||||
executions: []execution{
|
||||
{
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (project_id = $1)",
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (instance_id = $1) AND (project_id = $2)",
|
||||
expectedArgs: []interface{}{
|
||||
"instance-id",
|
||||
"agg-id",
|
||||
},
|
||||
},
|
||||
@@ -263,7 +269,7 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "project.GrantRemovedEventType",
|
||||
name: "project GrantRemovedEventType",
|
||||
args: args{
|
||||
event: getEvent(testEvent(
|
||||
repository.EventType(project.GrantRemovedType),
|
||||
@@ -279,8 +285,9 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||
executer: &testExecuter{
|
||||
executions: []execution{
|
||||
{
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (grant_id = $1) AND (project_id = $2)",
|
||||
expectedStmt: "DELETE FROM projections.project_grant_members2 WHERE (instance_id = $1) AND (grant_id = $2) AND (project_id = $3)",
|
||||
expectedArgs: []interface{}{
|
||||
"instance-id",
|
||||
"grant-id",
|
||||
"agg-id",
|
||||
},
|
||||
|
Reference in New Issue
Block a user