--
-- Copyright 2023 The Android Open Source Project
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
--     https://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
--

SELECT IMPORT('android.monitor_contention');

DROP VIEW IF EXISTS android_monitor_contention_output;
CREATE VIEW android_monitor_contention_output AS
SELECT AndroidMonitorContentionMetric(
  'node', (
    SELECT RepeatedField(
      AndroidMonitorContentionMetric_Node(
        'node_parent_id', parent_id,
        'node_id', id,
        'ts', ts,
        'dur', dur,
        'blocking_method', blocking_method,
        'blocked_method', blocked_method,
        'short_blocking_method', short_blocking_method,
        'short_blocked_method', short_blocked_method,
        'blocking_src', blocking_src,
        'blocked_src', blocked_src,
        'waiter_count', waiter_count,
        'blocking_thread_name', blocking_thread_name,
        'blocked_thread_name', blocked_thread_name,
        'process_name', process_name,
        'is_blocked_thread_main', is_blocked_thread_main,
        'is_blocking_thread_main', is_blocking_thread_main,
        'binder_reply_ts', binder_reply_ts,
        'binder_reply_tid', binder_reply_tid,
        'thread_states', (
          SELECT RepeatedField(
            AndroidMonitorContentionMetric_ThreadStateBreakdown(
              'thread_state', thread_state,
              'thread_state_dur', thread_state_dur,
              'thread_state_count', thread_state_count
            )
          ) FROM android_monitor_contention_chain_thread_state_by_txn t WHERE t.id = android_monitor_contention_chain.id
        ),
        'blocked_functions', (
          SELECT RepeatedField(
            AndroidMonitorContentionMetric_BlockedFunctionBreakdown(
              'blocked_function', blocked_function,
              'blocked_function_dur', blocked_function_dur,
              'blocked_function_count', blocked_function_count
            )
          ) FROM android_monitor_contention_chain_blocked_functions_by_txn b WHERE b.id = android_monitor_contention_chain.id
        )
      )
    )
    FROM android_monitor_contention_chain
  )
);
