explain.depesz.com

PostgreSQL's explain analyze made readable

Result: C7Te

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

Sort (cost=1,872,176.15..1,872,181.35 rows=2,078 width=1,825) (actual rows= loops=)

  • Sort Key: dmv_timesheetinout_facts82.timesheetstartdate5, dmv_timesheetinout_facts82.timesheetenddate6, dmv_timesheetinout_facts82.entrydate1, ((ui.lastname)::character varying(50)) COLLATE "en_US", ((ui.firstname)::character varying(50)) COLLATE "en_US", dmv_timesheetinout_facts82.userduplicatename7, ((login.loginname)::character varying(255)) COLLATE "en_US", ((ui.displayname)::text) COLLATE "en_US", ((division85.name)::character varying(100)) COLLATE "en_US", ((pj.name)::character varying(255)) COLLATE "en_US", ((pj.code)::character varying(50)) COLLATE "en_US", ((userinfo87.displayname)::text) COLLATE "en_US", dmv_timesheetinout_facts82.timesheetstatus8, dmv_timesheetinout_facts82.intime2, dmv_timesheetinout_facts82.outtime3, ((timeentrymetadata88.text)::text) COLLATE "en_US", ((tdh.hierarchysorting)::text) COLLATE "en_US", ((tdh.hierarchytaskname)::text) COLLATE "en_US
2.          

CTE dmv_timesheetinout_facts0cte

3. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=1,854,063.41..1,854,146.53 rows=2,078 width=69) (actual rows= loops=)

  • Group Key: ts.startdate, ts.enddate, ui_1.duplicatename, tslist.timesheetstatus, te.id
4. 0.000 0.000 ↓ 0.0

Sort (cost=1,854,063.41..1,854,068.61 rows=2,078 width=69) (actual rows= loops=)

  • Sort Key: ts.startdate, ts.enddate, ui_1.duplicatename, tslist.timesheetstatus, te.id
5. 0.000 0.000 ↓ 0.0

Nested Loop Semi Join (cost=13,011.18..1,853,948.90 rows=2,078 width=69) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Gather (cost=13,010.32..137,968.22 rows=2,306 width=69) (actual rows= loops=)

  • Workers Planned: 2
7. 0.000 0.000 ↓ 0.0

Hash Join (cost=12,010.32..136,737.62 rows=961 width=69) (actual rows= loops=)

  • Hash Cond: (te.userid = ui_1.id)
8. 0.000 0.000 ↓ 0.0

Hash Join (cost=11,919.61..136,644.39 rows=961 width=72) (actual rows= loops=)

  • Hash Cond: (pj_1.id = pj_2.id)
9. 0.000 0.000 ↓ 0.0

Hash Join (cost=11,799.11..136,276.61 rows=94,045 width=76) (actual rows= loops=)

  • Hash Cond: (ts.id = tslist.timesheetid)
10. 0.000 0.000 ↓ 0.0

Nested Loop (cost=693.63..124,917.11 rows=96,768 width=88) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Hash Join (cost=693.34..110,320.86 rows=22,714 width=60) (actual rows= loops=)

  • Hash Cond: (COALESCE(project4.id, task6.projectid) = pj_1.id)
12. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=554.08..110,121.87 rows=22,714 width=64) (actual rows= loops=)

  • Hash Cond: (CASE WHEN ("substring"(timeentrymetadata5.uri, '^urn:replicon-tenant:fc6869a7e8484f8a85a64b398d092338:task:(.*)$'::text) ~ '^\s*[-]?[0-9]+\s*$'::text) THEN ("substring"(timeentrymetadata5.uri, '^urn:replicon-tenant:fc6869a7e8484f8a85a64b398d092338:task:(.*)$'::text))::integer ELSE NULL::integer END = task6.id)
13. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=140.80..109,634.74 rows=22,714 width=126) (actual rows= loops=)

  • Hash Cond: (CASE WHEN ("substring"(timeentrymetadata3.uri, '^urn:replicon-tenant:fc6869a7e8484f8a85a64b398d092338:project:(.*)$'::text) ~ '^\s*[-]?[0-9]+\s*$'::text) THEN ("substring"(timeentrymetadata3.uri, '^urn:replicon-tenant:fc6869a7e8484f8a85a64b398d092338:project:(.*)$'::text))::integer ELSE NULL::integer END = project4.id)
14. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=1.54..109,421.50 rows=22,714 width=188) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.98..66,423.90 rows=22,714 width=122) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Parallel Index Scan using ixte2userid on timeentry te (cost=0.42..23,426.30 rows=22,714 width=56) (actual rows= loops=)

  • Index Cond: ((entrydate >= '2020-07-24'::date) AND (entrydate <= '2020-08-07'::date))
  • Filter: ((intime IS NOT NULL) OR (outtime IS NOT NULL))
17. 0.000 0.000 ↓ 0.0

Index Scan using ixtem2timeentryid on timeentrymetadata timeentrymetadata3 (cost=0.56..1.88 rows=1 width=82) (actual rows= loops=)

  • Index Cond: ((te.id = timeentryid) AND (upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:PROJECT'::text))
18. 0.000 0.000 ↓ 0.0

Index Scan using ixtem2timeentryid on timeentrymetadata timeentrymetadata5 (cost=0.56..1.88 rows=1 width=82) (actual rows= loops=)

  • Index Cond: ((te.id = timeentryid) AND (upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:TASK'::text))
19. 0.000 0.000 ↓ 0.0

Hash (cost=107.45..107.45 rows=2,545 width=4) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Seq Scan on project project4 (cost=0.00..107.45 rows=2,545 width=4) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Hash (cost=268.68..268.68 rows=11,568 width=8) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Seq Scan on task task6 (cost=0.00..268.68 rows=11,568 width=8) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Hash (cost=107.45..107.45 rows=2,545 width=4) (actual rows= loops=)

24. 0.000 0.000 ↓ 0.0

Seq Scan on project pj_1 (cost=0.00..107.45 rows=2,545 width=4) (actual rows= loops=)

25. 0.000 0.000 ↓ 0.0

Index Scan using uix2tsuseridstartdate on timesheet ts (cost=0.29..0.60 rows=4 width=28) (actual rows= loops=)

  • Index Cond: ((userid = te.userid) AND (te.entrydate >= startdate))
  • Filter: (te.entrydate <= enddate)
26. 0.000 0.000 ↓ 0.0

Hash (cost=10,204.10..10,204.10 rows=72,110 width=20) (actual rows= loops=)

27. 0.000 0.000 ↓ 0.0

Seq Scan on dm_timesheetlist_facts tslist (cost=0.00..10,204.10 rows=72,110 width=20) (actual rows= loops=)

28. 0.000 0.000 ↓ 0.0

Hash (cost=120.17..120.17 rows=26 width=4) (actual rows= loops=)

29. 0.000 0.000 ↓ 0.0

Seq Scan on project pj_2 (cost=0.00..120.17 rows=26 width=4) (actual rows= loops=)

  • Filter: ((upper((info2)::text) = ANY ('{FALSE,TRUE}'::text[])) OR (info2 IS NULL))
30. 0.000 0.000 ↓ 0.0

Hash (cost=65.87..65.87 rows=1,987 width=5) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Seq Scan on userinfo ui_1 (cost=0.00..65.87 rows=1,987 width=5) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.86..776.95 rows=1 width=16) (actual rows= loops=)

33. 0.000 0.000 ↓ 0.0

Index Scan using ixtertimeentryid on timeentryrevision timeentryrevision9 (cost=0.43..2.67 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (timeentryid = te.id)
  • Filter: (totimestamputc IS NULL)
34. 0.000 0.000 ↓ 0.0

Index Scan using timeentryrevision_pkey on timeentryrevision timeentryrevision10 (cost=0.43..774.27 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = timeentryrevision9.id)
  • Filter: ((userid = 654) OR (alternatives: SubPlan 1 or hashed SubPlan 2) OR (SubPlan 3) OR (SubPlan 4) OR (SubPlan 5) OR (SubPlan 6) OR (SubPlan 9) OR ((SubPlan 12) AND ((SubPlan 13) OR (SubPlan 14))) OR ((SubPlan 17) AND ((SubPlan 18) OR (SubPlan 19))))
35.          

SubPlan (for Index Scan)

36. 0.000 0.000 ↓ 0.0

Index Scan using ix3uh_usersuperstart on userhierarchy userhierarchy11 (cost=0.28..2.31 rows=1 width=0) (actual rows= loops=)

  • Index Cond: ((userid = timeentryrevision10.userid) AND (supervisorid = 654) AND (startdate <= '2020-09-08'::date))
  • Filter: (enddate >= '2020-09-08'::date)
37. 0.000 0.000 ↓ 0.0

Index Scan using ixuhsupervisorid on userhierarchy userhierarchy11_1 (cost=0.28..12.04 rows=5 width=4) (actual rows= loops=)

  • Index Cond: (supervisorid = 654)
  • Filter: ((startdate <= '2020-09-08'::date) AND (enddate >= '2020-09-08'::date))
38. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.55..19.31 rows=1 width=32) (actual rows= loops=)

39. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.26..16.95 rows=7 width=84) (actual rows= loops=)

40. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.98..9.25 rows=1 width=4) (actual rows= loops=)

41. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.56..7.90 rows=2 width=20) (actual rows= loops=)

42. 0.000 0.000 ↓ 0.0

Index Scan using uix2tsar_nodeid_userid on tsapprovalrequest tsapprovalrequest15 (cost=0.28..3.30 rows=2 width=20) (actual rows= loops=)

  • Index Cond: (userid = 654)
43. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalnodes_pkey on timesheetapprovalnodes timesheetapprovalnodes14 (cost=0.28..2.30 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequest15.nodeid)
44. 0.000 0.000 ↓ 0.0

Index Scan using timesheet_pkey on timesheet timesheet13 (cost=0.42..0.63 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = timesheetapprovalnodes14.timesheetid)
  • Filter: ((startdate <= timeentryrevision10.entrydate) AND (enddate >= timeentryrevision10.entrydate) AND (userid = timeentryrevision10.userid))
45. 0.000 0.000 ↓ 0.0

Index Scan using ixtsarkvtsapprovalrequestid on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue12 (cost=0.29..7.59 rows=12 width=88) (actual rows= loops=)

  • Index Cond: (tsapprovalrequestid = tsapprovalrequest15.id)
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-DATA-ACCESS-LEVELS'::text)
46. 0.000 0.000 ↓ 0.0

Index Scan using tsapprovalrequestkeyvalue_pkey on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue16 (cost=0.29..0.34 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequestkeyvalue12.parentid)
  • Filter: (parentid IS NULL)
47. 0.000 0.000 ↓ 0.0

Nested Loop (cost=17.14..44.08 rows=1 width=32) (actual rows= loops=)

48. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.71..43.50 rows=1 width=16) (actual rows= loops=)

49. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.27..41.48 rows=1 width=16) (actual rows= loops=)

50. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15.84..40.91 rows=1 width=16) (actual rows= loops=)

51. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15.40..39.55 rows=1 width=16) (actual rows= loops=)

52. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.97..37.93 rows=1 width=16) (actual rows= loops=)

53. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.53..35.48 rows=1 width=16) (actual rows= loops=)

54. 0.000 0.000 ↓ 0.0

Nested Loop (cost=3.96..23.88 rows=1 width=16) (actual rows= loops=)

55. 0.000 0.000 ↓ 0.0

Index Scan using ixtsuseridstartdateenddate on timesheet timesheet18 (cost=0.42..5.60 rows=4 width=16) (actual rows= loops=)

  • Index Cond: ((userid = timeentryrevision10.userid) AND (startdate <= timeentryrevision10.entrydate) AND (enddate >= timeentryrevision10.entrydate))
56. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistory timesheetapprovalhistory19 (cost=3.54..4.56 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetid = timesheet18.id) AND (userid = 654))
57. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=3.54..3.54 rows=1 width=0) (actual rows= loops=)

58. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtah2timesheetid (cost=0.00..1.47 rows=6 width=0) (actual rows= loops=)

  • Index Cond: (timesheetid = timesheet18.id)
59. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahuserid (cost=0.00..1.81 rows=52 width=0) (actual rows= loops=)

  • Index Cond: (userid = 654)
60. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue20 (cost=10.57..11.60 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetapprovalhistoryid = timesheetapprovalhistory19.id) AND (upper(uri) = 'URN:REPLICON-TENANT:FC6869A7E8484F8A85A64B398D092338:USER:654'::text))
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-NODES'::text)
61. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=10.57..10.57 rows=1 width=0) (actual rows= loops=)

62. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvtimesheetapprovalhistoryid (cost=0.00..1.64 rows=27 width=0) (actual rows= loops=)

  • Index Cond: (timesheetapprovalhistoryid = timesheetapprovalhistory19.id)
63. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvuri (cost=0.00..8.61 rows=407 width=0) (actual rows= loops=)

  • Index Cond: (upper(uri) = 'URN:REPLICON-TENANT:FC6869A7E8484F8A85A64B398D092338:USER:654'::text)
64. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalhistorykeyvalue_pkey on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue21 (cost=0.43..2.45 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = sheetapprovalhistorykeyvalue20.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-EXPECTED-APPROVAL-AGENT-USER'::text)
65. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue22 (cost=0.43..1.61 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue21.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-METADATA'::text)
66. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue23 (cost=0.43..1.32 rows=4 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue22.id)
67. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue24 (cost=0.43..0.56 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue23.id)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-DATA-ACCESS-LEVELS'::text)
68. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue25 (cost=0.43..1.98 rows=4 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue24.id)
69. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue17 (cost=0.43..0.54 rows=4 width=88) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue25.id)
70. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.67..10.09 rows=1 width=32) (actual rows= loops=)

71. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.39..7.78 rows=1 width=84) (actual rows= loops=)

72. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.97..7.06 rows=1 width=100) (actual rows= loops=)

73. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.69..4.76 rows=1 width=100) (actual rows= loops=)

  • Join Filter: (tsapprovalrequest29.id = tsapprovalrequestkeyvalue26.tsapprovalrequestid)
74. 0.000 0.000 ↓ 0.0

Index Scan using uix2tsar_nodeid_userid on tsapprovalrequest tsapprovalrequest29 (cost=0.28..3.30 rows=2 width=20) (actual rows= loops=)

  • Index Cond: (userid = 654)
75. 0.000 0.000 ↓ 0.0

Materialize (cost=0.41..1.43 rows=1 width=88) (actual rows= loops=)

76. 0.000 0.000 ↓ 0.0

Index Scan using ixtsarkvkey on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue26 (cost=0.41..1.43 rows=1 width=88) (actual rows= loops=)

  • Index Cond: (upper(key) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-ACCESSIBLE-OBJECTS'::text)
77. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalnodes_pkey on timesheetapprovalnodes timesheetapprovalnodes28 (cost=0.28..2.30 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequest29.nodeid)
78. 0.000 0.000 ↓ 0.0

Index Scan using timesheet_pkey on timesheet timesheet27 (cost=0.42..0.63 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = timesheetapprovalnodes28.timesheetid)
  • Filter: ((startdate <= timeentryrevision10.entrydate) AND (enddate >= timeentryrevision10.entrydate) AND (userid = timeentryrevision10.userid))
79. 0.000 0.000 ↓ 0.0

Index Scan using tsapprovalrequestkeyvalue_pkey on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue30 (cost=0.29..2.30 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequestkeyvalue26.parentid)
  • Filter: (parentid IS NULL)
80. 0.000 0.000 ↓ 0.0

Nested Loop (cost=17.14..47.59 rows=1 width=32) (actual rows= loops=)

81. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.71..47.01 rows=1 width=16) (actual rows= loops=)

82. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.27..41.48 rows=1 width=16) (actual rows= loops=)

83. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15.84..40.91 rows=1 width=16) (actual rows= loops=)

84. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15.40..39.55 rows=1 width=16) (actual rows= loops=)

85. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.97..37.93 rows=1 width=16) (actual rows= loops=)

86. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.53..35.48 rows=1 width=16) (actual rows= loops=)

87. 0.000 0.000 ↓ 0.0

Nested Loop (cost=3.96..23.88 rows=1 width=16) (actual rows= loops=)

88. 0.000 0.000 ↓ 0.0

Index Scan using ixtsuseridstartdateenddate on timesheet timesheet32 (cost=0.42..5.60 rows=4 width=16) (actual rows= loops=)

  • Index Cond: ((userid = timeentryrevision10.userid) AND (startdate <= timeentryrevision10.entrydate) AND (enddate >= timeentryrevision10.entrydate))
89. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistory timesheetapprovalhistory33 (cost=3.54..4.56 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetid = timesheet32.id) AND (userid = 654))
90. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=3.54..3.54 rows=1 width=0) (actual rows= loops=)

91. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtah2timesheetid (cost=0.00..1.47 rows=6 width=0) (actual rows= loops=)

  • Index Cond: (timesheetid = timesheet32.id)
92. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahuserid (cost=0.00..1.81 rows=52 width=0) (actual rows= loops=)

  • Index Cond: (userid = 654)
93. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue34 (cost=10.57..11.60 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetapprovalhistoryid = timesheetapprovalhistory33.id) AND (upper(uri) = 'URN:REPLICON-TENANT:FC6869A7E8484F8A85A64B398D092338:USER:654'::text))
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-NODES'::text)
94. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=10.57..10.57 rows=1 width=0) (actual rows= loops=)

95. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvtimesheetapprovalhistoryid (cost=0.00..1.64 rows=27 width=0) (actual rows= loops=)

  • Index Cond: (timesheetapprovalhistoryid = timesheetapprovalhistory33.id)
96. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvuri (cost=0.00..8.61 rows=407 width=0) (actual rows= loops=)

  • Index Cond: (upper(uri) = 'URN:REPLICON-TENANT:FC6869A7E8484F8A85A64B398D092338:USER:654'::text)
97. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalhistorykeyvalue_pkey on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue35 (cost=0.43..2.45 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = sheetapprovalhistorykeyvalue34.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-EXPECTED-APPROVAL-AGENT-USER'::text)
98. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue36 (cost=0.43..1.61 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue35.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-METADATA'::text)
99. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue37 (cost=0.43..1.32 rows=4 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue36.id)
100. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue38 (cost=0.43..0.56 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue37.id)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-ACCESSIBLE-OBJECTS'::text)
101. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue39 (cost=0.43..5.49 rows=4 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue38.id)
102. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue31 (cost=0.43..0.54 rows=4 width=88) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue39.id)
103. 0.000 0.000 ↓ 0.0

Index Scan using ixtemrtimeentryid on timeentrymetadatarevision timeentrymetadatarevision40 (cost=242.01..257.60 rows=1 width=0) (actual rows= loops=)

  • Index Cond: (timeentryid = timeentryrevision10.timeentryid)
  • Filter: ((fromtimestamputc <= timeentryrevision10.fromtimestamputc) AND ((totimestamputc > timeentryrevision10.fromtimestamputc) OR (totimestamputc IS NULL)) AND (((upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:PROJECT'::text) AND (hashed SubPlan 7)) OR ((upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:TASK'::text) AND (hashed SubPlan 8))))
104.          

SubPlan (for Index Scan)

105. 0.000 0.000 ↓ 0.0

Index Scan using ixprjprojectleaderapproverid on project project41 (cost=0.28..22.53 rows=23 width=32) (actual rows= loops=)

  • Index Cond: (projectleaderapproverid = 654)
106. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.57..218.60 rows=105 width=32) (actual rows= loops=)

107. 0.000 0.000 ↓ 0.0

Index Scan using ixprjprojectleaderapproverid on project project43 (cost=0.28..22.30 rows=23 width=4) (actual rows= loops=)

  • Index Cond: (projectleaderapproverid = 654)
108. 0.000 0.000 ↓ 0.0

Index Scan using ixtkprojectid on task task42 (cost=0.29..8.21 rows=28 width=8) (actual rows= loops=)

  • Index Cond: (projectid = project43.id)
109. 0.000 0.000 ↓ 0.0

Index Scan using ixtemrtimeentryid on timeentrymetadatarevision timeentrymetadatarevision44 (cost=242.01..257.60 rows=1 width=0) (actual rows= loops=)

  • Index Cond: (timeentryid = timeentryrevision10.timeentryid)
  • Filter: ((fromtimestamputc <= timeentryrevision10.fromtimestamputc) AND ((totimestamputc > timeentryrevision10.fromtimestamputc) OR (totimestamputc IS NULL)) AND (((upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:PROJECT'::text) AND (hashed SubPlan 10)) OR ((upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:TASK'::text) AND (hashed SubPlan 11))))
110.          

SubPlan (for Index Scan)

111. 0.000 0.000 ↓ 0.0

Index Scan using ixprjprojectleaderapproverid on project project45 (cost=0.28..22.53 rows=23 width=32) (actual rows= loops=)

  • Index Cond: (projectleaderapproverid = 654)
112. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.57..218.60 rows=105 width=32) (actual rows= loops=)

113. 0.000 0.000 ↓ 0.0

Index Scan using ixprjprojectleaderapproverid on project project47 (cost=0.28..22.30 rows=23 width=4) (actual rows= loops=)

  • Index Cond: (projectleaderapproverid = 654)
114. 0.000 0.000 ↓ 0.0

Index Scan using ixtkprojectid on task task46 (cost=0.29..8.21 rows=28 width=8) (actual rows= loops=)

  • Index Cond: (projectid = project47.id)
115. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.55..19.31 rows=1 width=32) (actual rows= loops=)

116. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.26..16.95 rows=7 width=84) (actual rows= loops=)

117. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.98..9.25 rows=1 width=4) (actual rows= loops=)

118. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.56..7.90 rows=2 width=20) (actual rows= loops=)

119. 0.000 0.000 ↓ 0.0

Index Scan using uix2tsar_nodeid_userid on tsapprovalrequest tsapprovalrequest51 (cost=0.28..3.30 rows=2 width=20) (actual rows= loops=)

  • Index Cond: (userid = 654)
120. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalnodes_pkey on timesheetapprovalnodes timesheetapprovalnodes50 (cost=0.28..2.30 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequest51.nodeid)
121. 0.000 0.000 ↓ 0.0

Index Scan using timesheet_pkey on timesheet timesheet49 (cost=0.42..0.63 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = timesheetapprovalnodes50.timesheetid)
  • Filter: ((startdate <= timeentryrevision10.entrydate) AND (enddate >= timeentryrevision10.entrydate) AND (userid = timeentryrevision10.userid))
122. 0.000 0.000 ↓ 0.0

Index Scan using ixtsarkvtsapprovalrequestid on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue48 (cost=0.29..7.59 rows=12 width=88) (actual rows= loops=)

  • Index Cond: (tsapprovalrequestid = tsapprovalrequest51.id)
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-DATA-ACCESS-LEVELS'::text)
123. 0.000 0.000 ↓ 0.0

Index Scan using tsapprovalrequestkeyvalue_pkey on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue52 (cost=0.29..0.34 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequestkeyvalue48.parentid)
  • Filter: (parentid IS NULL)
124. 0.000 0.000 ↓ 0.0

Nested Loop (cost=17.14..44.08 rows=1 width=32) (actual rows= loops=)

125. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.71..43.50 rows=1 width=16) (actual rows= loops=)

126. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.27..41.48 rows=1 width=16) (actual rows= loops=)

127. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15.84..40.91 rows=1 width=16) (actual rows= loops=)

128. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15.40..39.55 rows=1 width=16) (actual rows= loops=)

129. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.97..37.93 rows=1 width=16) (actual rows= loops=)

130. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.53..35.48 rows=1 width=16) (actual rows= loops=)

131. 0.000 0.000 ↓ 0.0

Nested Loop (cost=3.96..23.88 rows=1 width=16) (actual rows= loops=)

132. 0.000 0.000 ↓ 0.0

Index Scan using ixtsuseridstartdateenddate on timesheet timesheet54 (cost=0.42..5.60 rows=4 width=16) (actual rows= loops=)

  • Index Cond: ((userid = timeentryrevision10.userid) AND (startdate <= timeentryrevision10.entrydate) AND (enddate >= timeentryrevision10.entrydate))
133. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistory timesheetapprovalhistory55 (cost=3.54..4.56 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetid = timesheet54.id) AND (userid = 654))
134. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=3.54..3.54 rows=1 width=0) (actual rows= loops=)

135. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtah2timesheetid (cost=0.00..1.47 rows=6 width=0) (actual rows= loops=)

  • Index Cond: (timesheetid = timesheet54.id)
136. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahuserid (cost=0.00..1.81 rows=52 width=0) (actual rows= loops=)

  • Index Cond: (userid = 654)
137. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue56 (cost=10.57..11.60 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetapprovalhistoryid = timesheetapprovalhistory55.id) AND (upper(uri) = 'URN:REPLICON-TENANT:FC6869A7E8484F8A85A64B398D092338:USER:654'::text))
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-NODES'::text)
138. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=10.57..10.57 rows=1 width=0) (actual rows= loops=)

139. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvtimesheetapprovalhistoryid (cost=0.00..1.64 rows=27 width=0) (actual rows= loops=)

  • Index Cond: (timesheetapprovalhistoryid = timesheetapprovalhistory55.id)
140. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvuri (cost=0.00..8.61 rows=407 width=0) (actual rows= loops=)

  • Index Cond: (upper(uri) = 'URN:REPLICON-TENANT:FC6869A7E8484F8A85A64B398D092338:USER:654'::text)
141. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalhistorykeyvalue_pkey on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue57 (cost=0.43..2.45 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = sheetapprovalhistorykeyvalue56.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-EXPECTED-APPROVAL-AGENT-USER'::text)
142. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue58 (cost=0.43..1.61 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue57.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-METADATA'::text)
143. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue59 (cost=0.43..1.32 rows=4 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue58.id)
144. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue60 (cost=0.43..0.56 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue59.id)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-DATA-ACCESS-LEVELS'::text)
145. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue61 (cost=0.43..1.98 rows=4 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue60.id)
146. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue53 (cost=0.43..0.54 rows=4 width=88) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue61.id)
147. 0.000 0.000 ↓ 0.0

Index Scan using ixtemrtimeentryid on timeentrymetadatarevision timeentrymetadatarevision62 (cost=79.19..94.79 rows=1 width=0) (actual rows= loops=)

  • Index Cond: (timeentryid = timeentryrevision10.timeentryid)
  • Filter: ((fromtimestamputc <= timeentryrevision10.fromtimestamputc) AND ((totimestamputc > timeentryrevision10.fromtimestamputc) OR (totimestamputc IS NULL)) AND (((upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:PROJECT'::text) AND (hashed SubPlan 15)) OR ((upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:TASK'::text) AND (hashed SubPlan 16))))
148.          

SubPlan (for Index Scan)

149. 0.000 0.000 ↓ 0.0

Nested Loop (cost=32.84..34.90 rows=6 width=32) (actual rows= loops=)

150. 0.000 0.000 ↓ 0.0

HashAggregate (cost=32.56..32.62 rows=6 width=4) (actual rows= loops=)

  • Group Key: resentativeprojectassignment64.projectid
151. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.30..32.55 rows=6 width=4) (actual rows= loops=)

152. 0.000 0.000 ↓ 0.0

Index Scan using uix2cr_clientuser on clientrepresentative clientrepresentative65 (cost=0.15..19.01 rows=8 width=16) (actual rows= loops=)

  • Index Cond: (userid = 654)
153. 0.000 0.000 ↓ 0.0

Index Scan using ixcrpaclientrepresentativeid on clientrepresentativeprojectassignment resentativeprojectassignment64 (cost=0.15..1.63 rows=6 width=20) (actual rows= loops=)

  • Index Cond: (clientrepresentativeid = clientrepresentative65.id)
154. 0.000 0.000 ↓ 0.0

Index Only Scan using project_pkey on project project63 (cost=0.28..0.37 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = resentativeprojectassignment64.projectid)
155. 0.000 0.000 ↓ 0.0

Nested Loop (cost=33.13..43.30 rows=169 width=32) (actual rows= loops=)

156. 0.000 0.000 ↓ 0.0

Nested Loop (cost=32.84..34.84 rows=6 width=8) (actual rows= loops=)

157. 0.000 0.000 ↓ 0.0

HashAggregate (cost=32.56..32.62 rows=6 width=4) (actual rows= loops=)

  • Group Key: resentativeprojectassignment64_1.projectid
158. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.30..32.55 rows=6 width=4) (actual rows= loops=)

159. 0.000 0.000 ↓ 0.0

Index Scan using uix2cr_clientuser on clientrepresentative clientrepresentative65_1 (cost=0.15..19.01 rows=8 width=16) (actual rows= loops=)

  • Index Cond: (userid = 654)
160. 0.000 0.000 ↓ 0.0

Index Scan using ixcrpaclientrepresentativeid on clientrepresentativeprojectassignment resentativeprojectassignment64_1 (cost=0.15..1.63 rows=6 width=20) (actual rows= loops=)

  • Index Cond: (clientrepresentativeid = clientrepresentative65_1.id)
161. 0.000 0.000 ↓ 0.0

Index Only Scan using project_pkey on project project67 (cost=0.28..0.37 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = resentativeprojectassignment64_1.projectid)
162. 0.000 0.000 ↓ 0.0

Index Scan using ixtkprojectid on task task66 (cost=0.29..0.85 rows=28 width=8) (actual rows= loops=)

  • Index Cond: (projectid = project67.id)
163. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.55..19.31 rows=1 width=32) (actual rows= loops=)

164. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.26..16.95 rows=7 width=84) (actual rows= loops=)

165. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.98..9.25 rows=1 width=4) (actual rows= loops=)

166. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.56..7.90 rows=2 width=20) (actual rows= loops=)

167. 0.000 0.000 ↓ 0.0

Index Scan using uix2tsar_nodeid_userid on tsapprovalrequest tsapprovalrequest71 (cost=0.28..3.30 rows=2 width=20) (actual rows= loops=)

  • Index Cond: (userid = 654)
168. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalnodes_pkey on timesheetapprovalnodes timesheetapprovalnodes70 (cost=0.28..2.30 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequest71.nodeid)
169. 0.000 0.000 ↓ 0.0

Index Scan using timesheet_pkey on timesheet timesheet69 (cost=0.42..0.63 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = timesheetapprovalnodes70.timesheetid)
  • Filter: ((startdate <= timeentryrevision10.entrydate) AND (enddate >= timeentryrevision10.entrydate) AND (userid = timeentryrevision10.userid))
170. 0.000 0.000 ↓ 0.0

Index Scan using ixtsarkvtsapprovalrequestid on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue68 (cost=0.29..7.59 rows=12 width=88) (actual rows= loops=)

  • Index Cond: (tsapprovalrequestid = tsapprovalrequest71.id)
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-DATA-ACCESS-LEVELS'::text)
171. 0.000 0.000 ↓ 0.0

Index Scan using tsapprovalrequestkeyvalue_pkey on tsapprovalrequestkeyvalue tsapprovalrequestkeyvalue72 (cost=0.29..0.34 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = tsapprovalrequestkeyvalue68.parentid)
  • Filter: (parentid IS NULL)
172. 0.000 0.000 ↓ 0.0

Nested Loop (cost=17.14..44.08 rows=1 width=32) (actual rows= loops=)

173. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.71..43.50 rows=1 width=16) (actual rows= loops=)

174. 0.000 0.000 ↓ 0.0

Nested Loop (cost=16.27..41.48 rows=1 width=16) (actual rows= loops=)

175. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15.84..40.91 rows=1 width=16) (actual rows= loops=)

176. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15.40..39.55 rows=1 width=16) (actual rows= loops=)

177. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.97..37.93 rows=1 width=16) (actual rows= loops=)

178. 0.000 0.000 ↓ 0.0

Nested Loop (cost=14.53..35.48 rows=1 width=16) (actual rows= loops=)

179. 0.000 0.000 ↓ 0.0

Nested Loop (cost=3.96..23.88 rows=1 width=16) (actual rows= loops=)

180. 0.000 0.000 ↓ 0.0

Index Scan using ixtsuseridstartdateenddate on timesheet timesheet74 (cost=0.42..5.60 rows=4 width=16) (actual rows= loops=)

  • Index Cond: ((userid = timeentryrevision10.userid) AND (startdate <= timeentryrevision10.entrydate) AND (enddate >= timeentryrevision10.entrydate))
181. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistory timesheetapprovalhistory75 (cost=3.54..4.56 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetid = timesheet74.id) AND (userid = 654))
182. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=3.54..3.54 rows=1 width=0) (actual rows= loops=)

183. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtah2timesheetid (cost=0.00..1.47 rows=6 width=0) (actual rows= loops=)

  • Index Cond: (timesheetid = timesheet74.id)
184. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahuserid (cost=0.00..1.81 rows=52 width=0) (actual rows= loops=)

  • Index Cond: (userid = 654)
185. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue76 (cost=10.57..11.60 rows=1 width=32) (actual rows= loops=)

  • Recheck Cond: ((timesheetapprovalhistoryid = timesheetapprovalhistory75.id) AND (upper(uri) = 'URN:REPLICON-TENANT:FC6869A7E8484F8A85A64B398D092338:USER:654'::text))
  • Filter: (upper(key) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-NODES'::text)
186. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=10.57..10.57 rows=1 width=0) (actual rows= loops=)

187. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvtimesheetapprovalhistoryid (cost=0.00..1.64 rows=27 width=0) (actual rows= loops=)

  • Index Cond: (timesheetapprovalhistoryid = timesheetapprovalhistory75.id)
188. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ixtahkvuri (cost=0.00..8.61 rows=407 width=0) (actual rows= loops=)

  • Index Cond: (upper(uri) = 'URN:REPLICON-TENANT:FC6869A7E8484F8A85A64B398D092338:USER:654'::text)
189. 0.000 0.000 ↓ 0.0

Index Scan using timesheetapprovalhistorykeyvalue_pkey on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue77 (cost=0.43..2.45 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = sheetapprovalhistorykeyvalue76.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-EXPECTED-APPROVAL-AGENT-USER'::text)
190. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue78 (cost=0.43..1.61 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue77.parentid)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-HISTORICAL-ACTION-DATA-KEY:REMOVED-APPROVAL-REQUEST-METADATA'::text)
191. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue79 (cost=0.43..1.32 rows=4 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue78.id)
192. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue80 (cost=0.43..0.56 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue79.id)
  • Filter: (upper(uri) = 'URN:REPLICON:APPROVAL-REQUEST-METADATA-KEY:ADDITIONAL-APPROVER-DATA-ACCESS-LEVELS'::text)
193. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue81 (cost=0.43..1.98 rows=4 width=32) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue80.id)
194. 0.000 0.000 ↓ 0.0

Index Scan using ixtahkvparentid on timesheetapprovalhistorykeyvalue sheetapprovalhistorykeyvalue73 (cost=0.43..0.54 rows=4 width=88) (actual rows= loops=)

  • Index Cond: (parentid = sheetapprovalhistorykeyvalue81.id)
195.          

Initplan (for Sort)

196. 0.000 0.000 ↓ 0.0

Seq Scan on systeminformation (cost=0.00..1.01 rows=1 width=4) (actual rows= loops=)

197. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=17,482.27..17,914.11 rows=2,078 width=1,825) (actual rows= loops=)

  • Hash Cond: (tdh.taskid = tk.id)
198. 0.000 0.000 ↓ 0.0

Seq Scan on taskdenormalizedhierarchy tdh (cost=0.00..367.68 rows=11,568 width=44) (actual rows= loops=)

199. 0.000 0.000 ↓ 0.0

Hash (cost=17,456.29..17,456.29 rows=2,078 width=208) (actual rows= loops=)

200. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1,453.49..17,456.29 rows=2,078 width=208) (actual rows= loops=)

  • Hash Cond: (tk.estimatedcostcurrencyid = exchangerate.fixedcurrencyid)
201. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1,451.31..17,446.19 rows=2,078 width=212) (actual rows= loops=)

  • Hash Cond: (task94.id = tk.id)
202. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=1,038.03..17,027.46 rows=2,078 width=208) (actual rows= loops=)

203. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1,037.47..11,738.83 rows=2,078 width=200) (actual rows= loops=)

  • Hash Cond: (pj.projectleaderapproverid = userinfo87.id)
204. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=946.76..11,642.65 rows=2,078 width=188) (actual rows= loops=)

  • Hash Cond: (COALESCE(project92.id, task94.projectid) = pj.id)
205. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=807.50..11,497.93 rows=2,078 width=147) (actual rows= loops=)

  • Hash Cond: (CASE WHEN ("substring"(timeentrymetadata93.uri, '^urn:replicon-tenant:fc6869a7e8484f8a85a64b398d092338:task:(.*)$'::text) ~ '^\s*[-]?[0-9]+\s*$'::text) THEN ("substring"(timeentrymetadata93.uri, '^urn:replicon-tenant:fc6869a7e8484f8a85a64b398d092338:task:(.*)$'::text))::integer ELSE NULL::integer END = task94.id)
206. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=394.22..11,077.89 rows=2,078 width=205) (actual rows= loops=)

207. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=393.67..5,789.26 rows=2,078 width=139) (actual rows= loops=)

  • Hash Cond: (CASE WHEN ("substring"(timeentrymetadata91.uri, '^urn:replicon-tenant:fc6869a7e8484f8a85a64b398d092338:project:(.*)$'::text) ~ '^\s*[-]?[0-9]+\s*$'::text) THEN ("substring"(timeentrymetadata91.uri, '^urn:replicon-tenant:fc6869a7e8484f8a85a64b398d092338:project:(.*)$'::text))::integer ELSE NULL::integer END = project92.id)
208. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=254.40..5,643.23 rows=2,078 width=201) (actual rows= loops=)

209. 0.000 0.000 ↓ 0.0

Hash Join (cost=253.85..354.60 rows=2,078 width=135) (actual rows= loops=)

  • Hash Cond: (dmv_timesheetinout_facts82.userid4 = login.userid)
210. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=185.14..280.43 rows=2,078 width=115) (actual rows= loops=)

  • Hash Cond: (userdivision90.userid = ui.id)
211. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=21.43..88.58 rows=1,980 width=15) (actual rows= loops=)

  • Hash Cond: (userdivision90.divisionid = division85.id)
212. 0.000 0.000 ↓ 0.0

Seq Scan on userdivision userdivision90 (cost=0.00..61.92 rows=1,980 width=20) (actual rows= loops=)

  • Filter: (('2020-09-08'::date >= startdate) AND ('2020-09-08'::date <= enddate))
213. 0.000 0.000 ↓ 0.0

Hash (cost=13.97..13.97 rows=597 width=27) (actual rows= loops=)

214. 0.000 0.000 ↓ 0.0

Seq Scan on division division85 (cost=0.00..13.97 rows=597 width=27) (actual rows= loops=)

215. 0.000 0.000 ↓ 0.0

Hash (cost=137.73..137.73 rows=2,078 width=104) (actual rows= loops=)

216. 0.000 0.000 ↓ 0.0

Hash Join (cost=90.71..137.73 rows=2,078 width=104) (actual rows= loops=)

  • Hash Cond: (dmv_timesheetinout_facts82.userid4 = ui.id)
217. 0.000 0.000 ↓ 0.0

CTE Scan on dmv_timesheetinout_facts0cte dmv_timesheetinout_facts82 (cost=0.00..41.56 rows=2,078 width=69) (actual rows= loops=)

218. 0.000 0.000 ↓ 0.0

Hash (cost=65.87..65.87 rows=1,987 width=35) (actual rows= loops=)

219. 0.000 0.000 ↓ 0.0

Seq Scan on userinfo ui (cost=0.00..65.87 rows=1,987 width=35) (actual rows= loops=)

220. 0.000 0.000 ↓ 0.0

Hash (cost=43.87..43.87 rows=1,987 width=24) (actual rows= loops=)

221. 0.000 0.000 ↓ 0.0

Seq Scan on login (cost=0.00..43.87 rows=1,987 width=24) (actual rows= loops=)

222. 0.000 0.000 ↓ 0.0

Index Scan using ixtem2timeentryid on timeentrymetadata timeentrymetadata91 (cost=0.56..2.54 rows=1 width=82) (actual rows= loops=)

  • Index Cond: ((dmv_timesheetinout_facts82.timeentryid9 = timeentryid) AND (upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:PROJECT'::text))
223. 0.000 0.000 ↓ 0.0

Hash (cost=107.45..107.45 rows=2,545 width=4) (actual rows= loops=)

224. 0.000 0.000 ↓ 0.0

Seq Scan on project project92 (cost=0.00..107.45 rows=2,545 width=4) (actual rows= loops=)

225. 0.000 0.000 ↓ 0.0

Index Scan using ixtem2timeentryid on timeentrymetadata timeentrymetadata93 (cost=0.56..2.54 rows=1 width=82) (actual rows= loops=)

  • Index Cond: ((dmv_timesheetinout_facts82.timeentryid9 = timeentryid) AND (upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:TASK'::text))
226. 0.000 0.000 ↓ 0.0

Hash (cost=268.68..268.68 rows=11,568 width=8) (actual rows= loops=)

227. 0.000 0.000 ↓ 0.0

Seq Scan on task task94 (cost=0.00..268.68 rows=11,568 width=8) (actual rows= loops=)

228. 0.000 0.000 ↓ 0.0

Hash (cost=107.45..107.45 rows=2,545 width=49) (actual rows= loops=)

229. 0.000 0.000 ↓ 0.0

Seq Scan on project pj (cost=0.00..107.45 rows=2,545 width=49) (actual rows= loops=)

230. 0.000 0.000 ↓ 0.0

Hash (cost=65.87..65.87 rows=1,987 width=20) (actual rows= loops=)

231. 0.000 0.000 ↓ 0.0

Seq Scan on userinfo userinfo87 (cost=0.00..65.87 rows=1,987 width=20) (actual rows= loops=)

232. 0.000 0.000 ↓ 0.0

Index Scan using ixtem2timeentryid on timeentrymetadata timeentrymetadata88 (cost=0.56..2.54 rows=1 width=40) (actual rows= loops=)

  • Index Cond: ((dmv_timesheetinout_facts82.timeentryid9 = timeentryid) AND (upper(key) = 'URN:REPLICON:TIME-ENTRY-METADATA-KEY:COMMENTS'::text))
233. 0.000 0.000 ↓ 0.0

Hash (cost=268.68..268.68 rows=11,568 width=8) (actual rows= loops=)

234. 0.000 0.000 ↓ 0.0

Seq Scan on task tk (cost=0.00..268.68 rows=11,568 width=8) (actual rows= loops=)

235. 0.000 0.000 ↓ 0.0

Hash (cost=2.17..2.17 rows=1 width=4) (actual rows= loops=)

236. 0.000 0.000 ↓ 0.0

Index Scan using uix3er_currencyideffectivedate on exchangerate (cost=0.14..2.17 rows=1 width=4) (actual rows= loops=)

  • Index Cond: ((variablecurrencyid = $100) AND (('now'::cstring)::date >= effectivedate))
  • Filter: (('now'::cstring)::date <= enddate)