View difference between Paste ID: jWuPu8fE and XZBgqrpe
SHOW: | | - or go back to the newest paste.
1
EXPLAIN
2
-- (ANALYZE, BUFFERS)
3
SELECT ac.alloc_id, ac.txn_id, MAX(ac.ac_type) AS type, ac.subclass_id AS subclass_id, ac.member_name_id, ac.byte_offset, ac.data_type_id
4
			FROM accesses_flat ac
5
			WHERE ac.txn_id IS NOT NULL
6
			AND NOT EXISTS
7
			(
8
				-- Get all accesses that happened on an init path or accessed a blacklisted member
9
				SELECT 1
10
				FROM stacktraces AS s_st
11
				LEFT JOIN (SELECT * 
12-
                           FROM function_blacklist in_sfn_bl 
12+
                           FROM function_blacklist sfn_bl 
13
						   WHERE
14
				      ((in_sfn_bl .subclass_id IS NULL  AND s_fn_bl.member_name_id IS NULL) -- globally blacklisted function
15
				      OR
16
				      (s_fn_bl.subclass_id = s_ac.subclass_id AND s_fn_bl.member_name_id IS NULL) -- for this data type blacklisted
17
				      OR
18-
				      (s_fn_bl.subclass_id = s_ac.subclass_id AND s_fn_bl.member_name_id = s_ac.member_name_id))
18+
				      (s_fn_bl.subclass_id = s_ac.subclass_id AND s_fn_bl.member_name_id = ac.member_name_id))
19
        				   AND
20
    	        	   (s_fn_bl.sequence IS NULL OR s_fn_bl.sequence = s_st.sequence)
21-
					) os_fn_bl ON ps_fn_bl.fn = s_st.function
21+
					) os_fn_bl ON os_fn_bl.fn = s_st.function
22
				WHERE ac.stacktrace_id = s_st.id
23-
				AND	s_fn_bl.fn IS NOT NULL
23+
				AND	os_fn_bl.fn IS NOT NULL
24
				LIMIT 1
25
			)
26-
			AND ac.member_name_id IS NULL
26+
			AND NOT EXISTS (select 1 
27
             FROM member_blacklist m_bl 
28
             WHERE m_bl.subclass_id = ac.subclass_id
29
             AND m_bl.member_name_id = ac.member_name_id)
30
			GROUP BY ac.alloc_id, ac.txn_id, ac.byte_offset, ac.data_type_id, ac.subclass_id, ac.member_name_id