explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 8Yu2

Settings
# exclusive inclusive rows x rows loops node
1. 0.059 1.996 ↓ 0.0 5 1

HashAggregate (cost=0..0 rows=0 width=0) (actual time=1.969..1.996 rows=5 loops=1)

  • Group Key: ('PROJECT'::text COLLATE "en_US"), "*SELECT* 1"."ID", "*SELECT* 1"."NAME", "*SELECT* 1"."CREATED_BY", "*SELECT* 1"."CHANGED_AT", "*SELECT* 1"."STATUS", "*SELECT* 1"."STATUS_ORDER", "*SELECT* 1"."WORKSPACE_ID", "*SELECT* 1"."USER_ID", (("*SELECT* 1"."CHANGES")::numeric), "*SELECT* 1"."FAVORITE", "*SELECT* 1"."CREATED_BY_ORDER", "*SELECT* 1"."ARCHIVED"
2. 0.040 1.937 ↓ 0.0 5 1

Append (cost=0..0 rows=0 width=0) (actual time=1.109..1.937 rows=5 loops=1)

3. 0.043 1.690 ↓ 0.0 5 1

Subquery Scan on *SELECT* 1 (cost=0..0 rows=0 width=0) (actual time=1.102..1.69 rows=5 loops=1)

4. 0.067 1.647 ↓ 0.0 5 1

Nested Loop (cost=0..0 rows=0 width=0) (actual time=1.093..1.647 rows=5 loops=1)

5. 0.059 1.550 ↓ 0.0 5 1

Nested Loop (cost=0..0 rows=0 width=0) (actual time=1.068..1.55 rows=5 loops=1)

6. 0.112 1.461 ↓ 0.0 5 1

Nested Loop (cost=0..0 rows=0 width=0) (actual time=1.047..1.461 rows=5 loops=1)

7. 0.046 0.599 ↓ 0.0 5 1

Nested Loop (cost=0..0 rows=0 width=0) (actual time=0.479..0.599 rows=5 loops=1)

8. 0.015 0.090 ↓ 0.0 1 1

Nested Loop (cost=0..0 rows=0 width=0) (actual time=0.069..0.09 rows=1 loops=1)

9. 0.017 0.057 ↓ 0.0 1 1

Nested Loop (cost=0..0 rows=0 width=0) (actual time=0.043..0.057 rows=1 loops=1)

10. 0.023 0.023 ↓ 0.0 1 1

Index Scan using "PROJECT_TEMPLATE_TYPE_IDX" on PROJECTS project (cost=0..0 rows=0 width=0) (actual time=0.016..0.023 rows=1 loops=1)

  • Index Cond: ("TEMPLATE_TYPE" IS NULL)
11. 0.017 0.017 ↓ 0.0 1 1

Index Scan using "LAST_PROJECT_CHANGE_pkey" on LAST_PROJECT_CHANGE change (cost=0..0 rows=0 width=0) (actual time=0.013..0.017 rows=1 loops=1)

  • Index Cond: (project."PROJECT_ID" = "PROJECT_ID")
12. 0.018 0.018 ↓ 0.0 1 1

Index Scan using "USERS_pkey" on USERS USERS (cost=0..0 rows=0 width=0) (actual time=0.015..0.018 rows=1 loops=1)

  • Index Cond: ("USER_ID" = project."CREATED_BY")
13. 0.069 0.463 ↓ 0.0 5 1

GroupAggregate (cost=0..0 rows=0 width=0) (actual time=0.398..0.463 rows=5 loops=1)

  • Group Key: "projectParti"."USER_ID", "projectParti"."PROJECT_ID"
  • Filter: (CASE WHEN (((array_agg("projectParti"."ROLE"))[1] = 'ProjectAdmin'::read1.project_role) OR ((array_agg("projectParti"."ROLE"))[2] = 'ProjectAdmin'::read1.project_role) OR ((array_agg("projectParti"."ROLE"))[3] = 'ProjectAdmin'::read1.project_role)) THEN 'ProjectAdmin'::text WHEN (((array_agg("projectParti"."ROLE"))[1] = 'ProjectEditor'::read1.project_role) OR ((array_agg("projectParti"."ROLE"))[2] = 'ProjectEditor'::read1.project_role) OR ((array_agg("projectParti"."ROLE"))[3] = 'ProjectEditor'::read1.project_role)) THEN 'ProjectEditor'::text WHEN (((array_agg("projectParti"."ROLE"))[1] = 'ProjectViewer'::read1.project_role) OR ((array_agg("projectParti"."ROLE"))[2] = 'ProjectViewer'::read1.project_role) OR ((array_agg("projectParti"."ROLE"))[3] = 'ProjectViewer'::read1.project_role)) THEN 'ProjectViewer'::text ELSE NULL::text END IS NOT NULL)
14. 0.068 0.394 ↓ 0.0 7 1

Sort (cost=0..0 rows=0 width=0) (actual time=0.367..0.394 rows=7 loops=1)

  • Sort Key: "projectParti"."USER_ID", "projectParti"."PROJECT_ID"
  • Sort Method: quicksort Memory: 25kB
15. 0.054 0.326 ↓ 0.0 7 1

Append (cost=0..0 rows=0 width=0) (actual time=0.016..0.326 rows=7 loops=1)

16. 0.023 0.023 ↓ 0.0 3 1

Seq Scan on PROJECT_PARTICIPATION projectParti (cost=0..0 rows=0 width=0) (actual time=0.009..0.023 rows=3 loops=1)

  • Filter: ("PROJECT_ID" IS NOT NULL)
17. 0.007 0.030 ↓ 0.0 0 1

Subquery Scan on *SELECT* 2 (cost=0..0 rows=0 width=0) (actual time=0.027..0.03 rows=0 loops=1)

18. 0.007 0.023 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.02..0.023 rows=0 loops=1)

19. 0.007 0.016 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.013..0.016 rows=0 loops=1)

20. 0.009 0.009 ↓ 0.0 0 1

Seq Scan on PROJECT_GROUP_PROJECT group (cost=0..0 rows=0 width=0) (actual time=0.006..0.009 rows=0 loops=1)

  • Filter: ("PROJECT_ID" IS NOT NULL)
21. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

22. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_PARTICIPATION groupParti (cost=0..0 rows=0 width=0) (never executed)

23. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

24. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_ROLE_PROJECT_ROLE_MAPPING groupRoleMap (cost=0..0 rows=0 width=0) (never executed)

25. 0.034 0.219 ↓ 0.0 4 1

Subquery Scan on *SELECT* 3 (cost=0..0 rows=0 width=0) (actual time=0.117..0.219 rows=4 loops=1)

26. 0.048 0.185 ↓ 0.0 4 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.11..0.185 rows=4 loops=1)

27. 0.045 0.096 ↓ 0.0 4 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.049..0.096 rows=4 loops=1)

28. 0.024 0.024 ↓ 0.0 4 1

Seq Scan on WORKSPACE_PARTICIPATION wsParti (cost=0..0 rows=0 width=0) (actual time=0.006..0.024 rows=4 loops=1)

29. 0.014 0.027 ↓ 0.0 1 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.024..0.027 rows=1 loops=1)

30. 0.013 0.013 ↓ 0.0 1 1

Seq Scan on PROJECTS project_1 (cost=0..0 rows=0 width=0) (actual time=0.006..0.013 rows=1 loops=1)

  • Filter: ("PROJECT_ID" IS NOT NULL)
31. 0.020 0.041 ↓ 0.0 3 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.038..0.041 rows=3 loops=1)

32. 0.021 0.021 ↓ 0.0 3 1

Seq Scan on WORKSPACE_ROLE_PROJECT_ROLE_MAPPING wsRoleMap (cost=0..0 rows=0 width=0) (actual time=0.006..0.021 rows=3 loops=1)

33. 0.081 0.750 ↓ 0.0 3 5

Materialize (cost=0..0 rows=0 width=0) (actual time=0.114..0.15 rows=3 loops=5)

34. 0.038 0.669 ↓ 0.0 3 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.547..0.669 rows=3 loops=1)

35. 0.039 0.617 ↓ 0.0 3 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.516..0.617 rows=3 loops=1)

36. 0.039 0.522 ↓ 0.0 3 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.442..0.522 rows=3 loops=1)

37. 0.059 0.443 ↓ 0.0 3 1

GroupAggregate (cost=0..0 rows=0 width=0) (actual time=0.385..0.443 rows=3 loops=1)

  • Group Key: "projectParti_1"."USER_ID", "projectParti_1"."PROJECT_ID"
  • Filter: (((CASE WHEN ((array_agg("projectParti_1"."ROLE"))[1] IS NOT NULL) THEN (array_agg("projectParti_1"."ROLE"))[1] WHEN ((array_agg("projectParti_1"."ROLE"))[2] IS NOT NULL) THEN (array_agg("projectParti_1"."ROLE"))[2] WHEN ((array_agg("projectParti_1"."ROLE"))[3] IS NOT NULL) THEN (array_agg("projectParti_1"."ROLE"))[3] ELSE NULL::read1.project_role END IS NOT NULL) OR (CASE WHEN ((array_agg((NULL::read1.project_role)))[1] IS NOT NULL) THEN (array_agg((NULL::read1.project_role)))[1] WHEN ((array_agg((NULL::read1.project_role)))[2] IS NOT NULL) THEN (array_agg((NULL::read1.project_role)))[2] WHEN ((array_agg((NULL::read1.project_role)))[3] IS NOT NULL) THEN (array_agg((NULL::read1.project_role)))[3] ELSE NULL::read1.project_role END IS NOT NULL)) AND (CASE WHEN (((array_agg("projectParti_1"."ROLE"))[1] = 'ProjectAdmin'::read1.project_role) OR ((array_agg("projectParti_1"."ROLE"))[2] = 'ProjectAdmin'::read1.project_role) OR ((array_agg("projectParti_1"."ROLE"))[3] = 'ProjectAdmin'::read1.project_role)) THEN 'ProjectAdmin'::text WHEN (((array_agg("projectParti_1"."ROLE"))[1] = 'ProjectEditor'::read1.project_role) OR ((array_agg("projectParti_1"."ROLE"))[2] = 'ProjectEditor'::read1.project_role) OR ((array_agg("projectParti_1"."ROLE"))[3] = 'ProjectEditor'::read1.project_role)) THEN 'ProjectEditor'::text WHEN (((array_agg("projectParti_1"."ROLE"))[1] = 'ProjectViewer'::read1.project_role) OR ((array_agg("projectParti_1"."ROLE"))[2] = 'ProjectViewer'::read1.project_role) OR ((array_agg("projectParti_1"."ROLE"))[3] = 'ProjectViewer'::read1.project_role)) THEN 'ProjectViewer'::text ELSE NULL::text END IS NOT NULL))
38. 0.065 0.384 ↓ 0.0 7 1

Sort (cost=0..0 rows=0 width=0) (actual time=0.357..0.384 rows=7 loops=1)

  • Sort Key: "projectParti_1"."USER_ID", "projectParti_1"."PROJECT_ID"
  • Sort Method: quicksort Memory: 25kB
39. 0.054 0.319 ↓ 0.0 7 1

Append (cost=0..0 rows=0 width=0) (actual time=0.014..0.319 rows=7 loops=1)

40. 0.021 0.021 ↓ 0.0 3 1

Seq Scan on PROJECT_PARTICIPATION projectParti_1 (cost=0..0 rows=0 width=0) (actual time=0.007..0.021 rows=3 loops=1)

  • Filter: ("PROJECT_ID" IS NOT NULL)
41. 0.006 0.027 ↓ 0.0 0 1

Subquery Scan on *SELECT* 2_1 (cost=0..0 rows=0 width=0) (actual time=0.024..0.027 rows=0 loops=1)

42. 0.006 0.021 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.018..0.021 rows=0 loops=1)

43. 0.008 0.015 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.011..0.015 rows=0 loops=1)

44. 0.007 0.007 ↓ 0.0 0 1

Seq Scan on PROJECT_GROUP_PROJECT group_1 (cost=0..0 rows=0 width=0) (actual time=0.004..0.007 rows=0 loops=1)

  • Filter: ("PROJECT_ID" IS NOT NULL)
45. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

46. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_PARTICIPATION groupParti_1 (cost=0..0 rows=0 width=0) (never executed)

47. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

48. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_ROLE_PROJECT_ROLE_MAPPING groupRoleMap_1 (cost=0..0 rows=0 width=0) (never executed)

49. 0.033 0.217 ↓ 0.0 4 1

Subquery Scan on *SELECT* 3_1 (cost=0..0 rows=0 width=0) (actual time=0.117..0.217 rows=4 loops=1)

50. 0.045 0.184 ↓ 0.0 4 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.11..0.184 rows=4 loops=1)

51. 0.048 0.099 ↓ 0.0 4 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.054..0.099 rows=4 loops=1)

52. 0.023 0.023 ↓ 0.0 4 1

Seq Scan on WORKSPACE_PARTICIPATION wsParti_1 (cost=0..0 rows=0 width=0) (actual time=0.005..0.023 rows=4 loops=1)

53. 0.015 0.028 ↓ 0.0 1 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.025..0.028 rows=1 loops=1)

54. 0.013 0.013 ↓ 0.0 1 1

Seq Scan on PROJECTS project_2 (cost=0..0 rows=0 width=0) (actual time=0.006..0.013 rows=1 loops=1)

  • Filter: ("PROJECT_ID" IS NOT NULL)
55. 0.020 0.040 ↓ 0.0 3 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.036..0.04 rows=3 loops=1)

56. 0.020 0.020 ↓ 0.0 3 1

Seq Scan on WORKSPACE_ROLE_PROJECT_ROLE_MAPPING wsRoleMap_1 (cost=0..0 rows=0 width=0) (actual time=0.006..0.02 rows=3 loops=1)

57. 0.020 0.040 ↓ 0.0 3 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.037..0.04 rows=3 loops=1)

58. 0.020 0.020 ↓ 0.0 3 1

Seq Scan on MATERIALIZED_PROJECT_UNSEEN_CHANGES_COUNT MATERIALIZED_PROJECT_UNSEEN_CHANGES_COUNT (cost=0..0 rows=0 width=0) (actual time=0.006..0.02 rows=3 loops=1)

59. 0.028 0.056 ↓ 0.0 5 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.053..0.056 rows=5 loops=1)

60. 0.028 0.028 ↓ 0.0 5 1

Seq Scan on LAST_ONLINE_AT loggedUser (cost=0..0 rows=0 width=0) (actual time=0.007..0.028 rows=5 loops=1)

61. 0.006 0.014 ↓ 0.0 0 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.011..0.014 rows=0 loops=1)

62. 0.008 0.008 ↓ 0.0 0 1

Seq Scan on LAST_DOCUMENT_ALL_CHANGE docChange (cost=0..0 rows=0 width=0) (actual time=0.004..0.008 rows=0 loops=1)

63. 0.030 0.030 ↓ 0.0 0 5

Index Scan using "PROJECT_FAVORITES_USER_IDX" on PROJECT_FAVORITES PROJECT_FAVORITES (cost=0..0 rows=0 width=0) (actual time=0.006..0.006 rows=0 loops=5)

  • Index Cond: ("USER_ID" = "projectParti"."USER_ID")
64. 0.030 0.030 ↓ 0.0 0 5

Index Scan using "PROJECT_ARCHIVED_USER_IDX" on PROJECT_ARCHIVED archived (cost=0..0 rows=0 width=0) (actual time=0.005..0.006 rows=0 loops=5)

  • Index Cond: ("USER_ID" = "projectParti"."USER_ID")
65. 0.015 0.207 ↓ 0.0 0 1

HashAggregate (cost=0..0 rows=0 width=0) (actual time=0.203..0.207 rows=0 loops=1)

  • Group Key: ('GROUP'::text COLLATE "en_US"), group_2."ID", (lower(group_2."NAME")), group_2."CREATED_BY", (CASE WHEN (("groupChanged".* IS NOT NULL) AND ((group_2."CHANGED_AT" IS NULL) OR ("groupChanged"."CHANGED_AT" > group_2."CHANGED_AT"))) THEN "groupChanged"."CHANGED_AT" ELSE group_2."CHANGED_AT" END), group_2."STATUS", group_2."STATUS_ORDER", group_2."WORKSPACE_ID", "groupParti_2"."USER_ID", changes."CHANGES", (CASE WHEN (favorite."USER_ID" IS NOT NULL) THEN true ELSE false END), (CASE WHEN (group_2."CREATED_BY" = "groupParti_2"."USER_ID") THEN 'a'::text ELSE lower("USERS_1"."FULL_NAME") END), (CASE WHEN (archived_1."USER_ID" IS NOT NULL) THEN true ELSE false END)
66. 0.006 0.192 ↓ 0.0 0 1

Append (cost=0..0 rows=0 width=0) (actual time=0.189..0.192 rows=0 loops=1)

67. 0.007 0.087 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.083..0.087 rows=0 loops=1)

68. 0.007 0.080 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.076..0.08 rows=0 loops=1)

69. 0.018 0.073 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.07..0.073 rows=0 loops=1)

70. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_PARTICIPATION groupParticipation (cost=0..0 rows=0 width=0) (never executed)

71. 0.007 0.055 ↓ 0.0 0 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.052..0.055 rows=0 loops=1)

72. 0.006 0.048 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.045..0.048 rows=0 loops=1)

73. 0.007 0.042 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.038..0.042 rows=0 loops=1)

74. 0.007 0.035 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.032..0.035 rows=0 loops=1)

75. 0.013 0.028 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.025..0.028 rows=0 loops=1)

76. 0.000 0.000 ↓ 0.0 0 0

GroupAggregate (cost=0..0 rows=0 width=0) (never executed)

  • Group Key: "groupParti_2"."USER_ID", "groupParti_2"."PROJECT_GROUP_ID"
  • Filter: (CASE WHEN (((array_agg("groupParti_2"."ROLE"))[1] = 'ProjectGroupAdmin'::read1.project_group_role) OR ((array_agg("groupParti_2"."ROLE"))[2] = 'ProjectGroupAdmin'::read1.project_group_role) OR ((array_agg("groupParti_2"."ROLE"))[3] = 'ProjectGroupAdmin'::read1.project_group_role)) THEN 'ProjectGroupAdmin'::text WHEN (((array_agg("groupParti_2"."ROLE"))[1] = 'ProjectGroupEditor'::read1.project_group_role) OR ((array_agg("groupParti_2"."ROLE"))[2] = 'ProjectGroupEditor'::read1.project_group_role) OR ((array_agg("groupParti_2"."ROLE"))[3] = 'ProjectGroupEditor'::read1.project_group_role)) THEN 'ProjectGroupEditor'::text WHEN (((array_agg("groupParti_2"."ROLE"))[1] = 'ProjectGroupViewer'::read1.project_group_role) OR ((array_agg("groupParti_2"."ROLE"))[2] = 'ProjectGroupViewer'::read1.project_group_role) OR ((array_agg("groupParti_2"."ROLE"))[3] = 'ProjectGroupViewer'::read1.project_group_role)) THEN 'ProjectGroupViewer'::text ELSE NULL::text END IS NOT NULL)
77. 0.000 0.000 ↓ 0.0 0 0

Merge Append (cost=0..0 rows=0 width=0) (never executed)

78. 0.000 0.000 ↓ 0.0 0 0

Index Scan using "PROJECT_GROUP_PARTICIPATION_pkey" on PROJECT_GROUP_PARTICIPATION groupParti_2 (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: ("PROJECT_GROUP_ID" IS NOT NULL)
79. 0.000 0.000 ↓ 0.0 0 0

Sort (cost=0..0 rows=0 width=0) (never executed)

  • Sort Key: "*SELECT* 2_3"."USER_ID", "*SELECT* 2_3"."PROJECT_GROUP_ID"
80. 0.000 0.000 ↓ 0.0 0 0

Subquery Scan on *SELECT* 2_3 (cost=0..0 rows=0 width=0) (never executed)

81. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

82. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

83. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on WORKSPACE_PARTICIPATION wsParti_2 (cost=0..0 rows=0 width=0) (never executed)

84. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

85. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUPS group_3 (cost=0..0 rows=0 width=0) (never executed)

  • Filter: ("ID" IS NOT NULL)
86. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

87. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on WORKSPACE_ROLE_PROJECT_GROUP_ROLE_MAPPING wsRoleMap_2 (cost=0..0 rows=0 width=0) (never executed)

88. 0.007 0.015 ↓ 0.0 0 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.012..0.015 rows=0 loops=1)

89. 0.008 0.008 ↓ 0.0 0 1

Seq Scan on PROJECT_GROUPS group_2 (cost=0..0 rows=0 width=0) (actual time=0.005..0.008 rows=0 loops=1)

90. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

91. 0.000 0.000 ↓ 0.0 0 0

Subquery Scan on groupChanged (cost=0..0 rows=0 width=0) (never executed)

92. 0.000 0.000 ↓ 0.0 0 0

HashAggregate (cost=0..0 rows=0 width=0) (never executed)

  • Group Key: group_4."ID"
93. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

94. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

95. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_PROJECT groupProject (cost=0..0 rows=0 width=0) (never executed)

96. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

97. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

98. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on LAST_PROJECT_CHANGE change_1 (cost=0..0 rows=0 width=0) (never executed)

99. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

100. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECTS project_3 (cost=0..0 rows=0 width=0) (never executed)

101. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

102. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUPS group_4 (cost=0..0 rows=0 width=0) (never executed)

103. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

104. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on USERS USERS_1 (cost=0..0 rows=0 width=0) (never executed)

105. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

106. 0.000 0.000 ↓ 0.0 0 0

Subquery Scan on changes (cost=0..0 rows=0 width=0) (never executed)

107. 0.000 0.000 ↓ 0.0 0 0

HashAggregate (cost=0..0 rows=0 width=0) (never executed)

  • Group Key: group_5."PROJECT_GROUP_ID", "projectParti_2"."USER_ID"
108. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

109. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

110. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

111. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

112. 0.000 0.000 ↓ 0.0 0 0

GroupAggregate (cost=0..0 rows=0 width=0) (never executed)

  • Group Key: "projectParti_2"."USER_ID", "projectParti_2"."PROJECT_ID"
  • Filter: (((CASE WHEN ((array_agg("projectParti_2"."ROLE"))[1] IS NOT NULL) THEN (array_agg("projectParti_2"."ROLE"))[1] WHEN ((array_agg("projectParti_2"."ROLE"))[2] IS NOT NULL) THEN (array_agg("projectParti_2"."ROLE"))[2] WHEN ((array_agg("projectParti_2"."ROLE"))[3] IS NOT NULL) THEN (array_agg("projectParti_2"."ROLE"))[3] ELSE NULL::read1.project_role END IS NOT NULL) OR (CASE WHEN ((array_agg((NULL::read1.project_role)))[1] IS NOT NULL) THEN (array_agg((NULL::read1.project_role)))[1] WHEN ((array_agg((NULL::read1.project_role)))[2] IS NOT NULL) THEN (array_agg((NULL::read1.project_role)))[2] WHEN ((array_agg((NULL::read1.project_role)))[3] IS NOT NULL) THEN (array_agg((NULL::read1.project_role)))[3] ELSE NULL::read1.project_role END IS NOT NULL)) AND (CASE WHEN (((array_agg("projectParti_2"."ROLE"))[1] = 'ProjectAdmin'::read1.project_role) OR ((array_agg("projectParti_2"."ROLE"))[2] = 'ProjectAdmin'::read1.project_role) OR ((array_agg("projectParti_2"."ROLE"))[3] = 'ProjectAdmin'::read1.project_role)) THEN 'ProjectAdmin'::text WHEN (((array_agg("projectParti_2"."ROLE"))[1] = 'ProjectEditor'::read1.project_role) OR ((array_agg("projectParti_2"."ROLE"))[2] = 'ProjectEditor'::read1.project_role) OR ((array_agg("projectParti_2"."ROLE"))[3] = 'ProjectEditor'::read1.project_role)) THEN 'ProjectEditor'::text WHEN (((array_agg("projectParti_2"."ROLE"))[1] = 'ProjectViewer'::read1.project_role) OR ((array_agg("projectParti_2"."ROLE"))[2] = 'ProjectViewer'::read1.project_role) OR ((array_agg("projectParti_2"."ROLE"))[3] = 'ProjectViewer'::read1.project_role)) THEN 'ProjectViewer'::text ELSE NULL::text END IS NOT NULL))
113. 0.000 0.000 ↓ 0.0 0 0

Sort (cost=0..0 rows=0 width=0) (never executed)

  • Sort Key: "projectParti_2"."USER_ID", "projectParti_2"."PROJECT_ID"
114. 0.000 0.000 ↓ 0.0 0 0

Append (cost=0..0 rows=0 width=0) (never executed)

115. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_PARTICIPATION projectParti_2 (cost=0..0 rows=0 width=0) (never executed)

  • Filter: ("PROJECT_ID" IS NOT NULL)
116. 0.000 0.000 ↓ 0.0 0 0

Subquery Scan on *SELECT* 2_4 (cost=0..0 rows=0 width=0) (never executed)

117. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

118. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

119. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_PROJECT group_6 (cost=0..0 rows=0 width=0) (never executed)

  • Filter: ("PROJECT_ID" IS NOT NULL)
120. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

121. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_PARTICIPATION groupParti_3 (cost=0..0 rows=0 width=0) (never executed)

122. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

123. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_ROLE_PROJECT_ROLE_MAPPING groupRoleMap_2 (cost=0..0 rows=0 width=0) (never executed)

124. 0.000 0.000 ↓ 0.0 0 0

Subquery Scan on *SELECT* 3_2 (cost=0..0 rows=0 width=0) (never executed)

125. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

126. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

127. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on WORKSPACE_PARTICIPATION wsParti_3 (cost=0..0 rows=0 width=0) (never executed)

128. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

129. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECTS project_4 (cost=0..0 rows=0 width=0) (never executed)

  • Filter: ("PROJECT_ID" IS NOT NULL)
130. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

131. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on WORKSPACE_ROLE_PROJECT_ROLE_MAPPING wsRoleMap_3 (cost=0..0 rows=0 width=0) (never executed)

132. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

133. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on MATERIALIZED_PROJECT_UNSEEN_CHANGES_COUNT MATERIALIZED_PROJECT_UNSEEN_CHANGES_COUNT_1 (cost=0..0 rows=0 width=0) (never executed)

134. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

135. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on LAST_ONLINE_AT loggedUser_1 (cost=0..0 rows=0 width=0) (never executed)

136. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

137. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on LAST_DOCUMENT_ALL_CHANGE docChange_1 (cost=0..0 rows=0 width=0) (never executed)

138. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

139. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_PROJECT group_5 (cost=0..0 rows=0 width=0) (never executed)

140. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

141. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_FAVORITES favorite (cost=0..0 rows=0 width=0) (never executed)

142. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

143. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_ARCHIVED archived_1 (cost=0..0 rows=0 width=0) (never executed)

144. 0.007 0.099 ↓ 0.0 0 1

Subquery Scan on *SELECT* 2_2 (cost=0..0 rows=0 width=0) (actual time=0.096..0.099 rows=0 loops=1)

145. 0.015 0.092 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.089..0.092 rows=0 loops=1)

146. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_PARTICIPATION groupParticipation_1 (cost=0..0 rows=0 width=0) (never executed)

147. 0.006 0.077 ↓ 0.0 0 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.074..0.077 rows=0 loops=1)

148. 0.007 0.071 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.067..0.071 rows=0 loops=1)

149. 0.007 0.064 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.061..0.064 rows=0 loops=1)

150. 0.007 0.057 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.054..0.057 rows=0 loops=1)

151. 0.014 0.050 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.047..0.05 rows=0 loops=1)

152. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_FAVORITES favorite_1 (cost=0..0 rows=0 width=0) (never executed)

153. 0.006 0.036 ↓ 0.0 0 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.033..0.036 rows=0 loops=1)

154. 0.016 0.030 ↓ 0.0 0 1

Hash Join (cost=0..0 rows=0 width=0) (actual time=0.027..0.03 rows=0 loops=1)

155. 0.000 0.000 ↓ 0.0 0 0

HashAggregate (cost=0..0 rows=0 width=0) (never executed)

  • Group Key: "groupProject_1"."PROJECT_GROUP_ID", "projectParti_3"."USER_ID"
156. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

157. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

158. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_PARTICIPATION projectParti_3 (cost=0..0 rows=0 width=0) (never executed)

159. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

160. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_PROJECT groupProject_1 (cost=0..0 rows=0 width=0) (never executed)

161. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

162. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

163. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

164. 0.000 0.000 ↓ 0.0 0 0

GroupAggregate (cost=0..0 rows=0 width=0) (never executed)

  • Group Key: "groupParti_4"."USER_ID", "groupParti_4"."PROJECT_GROUP_ID"
  • Filter: (CASE WHEN (((array_agg("groupParti_4"."ROLE"))[1] = 'ProjectGroupAdmin'::read1.project_group_role) OR ((array_agg("groupParti_4"."ROLE"))[2] = 'ProjectGroupAdmin'::read1.project_group_role) OR ((array_agg("groupParti_4"."ROLE"))[3] = 'ProjectGroupAdmin'::read1.project_group_role)) THEN 'ProjectGroupAdmin'::text WHEN (((array_agg("groupParti_4"."ROLE"))[1] = 'ProjectGroupEditor'::read1.project_group_role) OR ((array_agg("groupParti_4"."ROLE"))[2] = 'ProjectGroupEditor'::read1.project_group_role) OR ((array_agg("groupParti_4"."ROLE"))[3] = 'ProjectGroupEditor'::read1.project_group_role)) THEN 'ProjectGroupEditor'::text WHEN (((array_agg("groupParti_4"."ROLE"))[1] = 'ProjectGroupViewer'::read1.project_group_role) OR ((array_agg("groupParti_4"."ROLE"))[2] = 'ProjectGroupViewer'::read1.project_group_role) OR ((array_agg("groupParti_4"."ROLE"))[3] = 'ProjectGroupViewer'::read1.project_group_role)) THEN 'ProjectGroupViewer'::text ELSE NULL::text END IS NOT NULL)
165. 0.000 0.000 ↓ 0.0 0 0

Merge Append (cost=0..0 rows=0 width=0) (never executed)

166. 0.000 0.000 ↓ 0.0 0 0

Index Scan using "PROJECT_GROUP_PARTICIPATION_pkey" on PROJECT_GROUP_PARTICIPATION groupParti_4 (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: ("PROJECT_GROUP_ID" IS NOT NULL)
167. 0.000 0.000 ↓ 0.0 0 0

Sort (cost=0..0 rows=0 width=0) (never executed)

  • Sort Key: "*SELECT* 2_5"."USER_ID", "*SELECT* 2_5"."PROJECT_GROUP_ID"
168. 0.000 0.000 ↓ 0.0 0 0

Subquery Scan on *SELECT* 2_5 (cost=0..0 rows=0 width=0) (never executed)

169. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

170. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

171. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on WORKSPACE_PARTICIPATION wsParti_4 (cost=0..0 rows=0 width=0) (never executed)

172. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

173. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUPS group_9 (cost=0..0 rows=0 width=0) (never executed)

  • Filter: ("ID" IS NOT NULL)
174. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

175. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on WORKSPACE_ROLE_PROJECT_GROUP_ROLE_MAPPING wsRoleMap_4 (cost=0..0 rows=0 width=0) (never executed)

176. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

177. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUPS group_8 (cost=0..0 rows=0 width=0) (never executed)

178. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

179. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on USERS USERS_3 (cost=0..0 rows=0 width=0) (never executed)

180. 0.006 0.014 ↓ 0.0 0 1

Hash (cost=0..0 rows=0 width=0) (actual time=0.011..0.014 rows=0 loops=1)

181. 0.008 0.008 ↓ 0.0 0 1

Seq Scan on PROJECT_GROUPS group_7 (cost=0..0 rows=0 width=0) (actual time=0.004..0.008 rows=0 loops=1)

182. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

183. 0.000 0.000 ↓ 0.0 0 0

Subquery Scan on groupChanged_1 (cost=0..0 rows=0 width=0) (never executed)

184. 0.000 0.000 ↓ 0.0 0 0

HashAggregate (cost=0..0 rows=0 width=0) (never executed)

  • Group Key: group_10."ID"
185. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

186. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

187. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_PROJECT groupProject_2 (cost=0..0 rows=0 width=0) (never executed)

188. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

189. 0.000 0.000 ↓ 0.0 0 0

Hash Join (cost=0..0 rows=0 width=0) (never executed)

190. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on LAST_PROJECT_CHANGE change_2 (cost=0..0 rows=0 width=0) (never executed)

191. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

192. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECTS project_5 (cost=0..0 rows=0 width=0) (never executed)

193. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

194. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUPS group_10 (cost=0..0 rows=0 width=0) (never executed)

195. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

196. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on USERS USERS_2 (cost=0..0 rows=0 width=0) (never executed)

197. 0.000 0.000 ↓ 0.0 0 0

Hash (cost=0..0 rows=0 width=0) (never executed)

198. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on PROJECT_GROUP_ARCHIVED archived_2 (cost=0..0 rows=0 width=0) (never executed)