Skip to content

In the result of the following query, the dashboard_id field appears to be incorrect — it returns the value of entity_id instead of the actual dashboard_id. #9628

@zhijun714

Description

@zhijun714

Using UNION or UNION ALL gives the same result.

WITH `visible_collection_ids` AS (
    SELECT
      `id`
    FROM
      `collection` AS `c`
    WHERE
      (1 <> `c`.`id`)
  )
SELECT
        5 AS `model_ranking`,
        `c`.`id`,
        `c`.`name`,
        `c`.`description`,
        `c`.`entity_id`,
        `c`.`display`,
        `c`.`collection_preview`,
        `c`.`dataset_query`,
        `c`.`collection_id`,
        `c`.`dashboard_id`,
        `c`.`archived_directly`,
        'card' AS `model`,
        `c`.`collection_position`,
        NULL AS `authority_level`,
        NULL AS `personal_owner_id`,
        NULL AS `location`,
        `u`.`email` AS `last_edit_email`,
        `u`.`first_name` AS `last_edit_first_name`,
        `u`.`last_name` AS `last_edit_last_name`,
        `mr`.`status` AS `moderated_status`,
        NULL AS `icon`,
        `u`.`id` AS `last_edit_user`,
        `r`.`timestamp` AS `last_edit_timestamp`,
        `c`.`database_id`,
        NULL AS `collection_type`,
        `c`.`archived`,
        `last_used_at`,
        NULL AS `table_id`,
        NULL AS `is_upload`,
        NULL AS `query_type`
      FROM
        `report_card` AS `c`
        LEFT JOIN `revision` AS `r` ON (`r`.`model_id` = `c`.`id`)
        AND (`r`.`most_recent` = TRUE)
        AND (`r`.`model` = 'Card')
        LEFT JOIN `moderation_review` AS `mr` ON (`mr`.`moderated_item_id` = `c`.`id`)
        AND (`mr`.`most_recent` = TRUE)
        AND (`mr`.`moderated_item_type` = 'card')
        LEFT JOIN `core_user` AS `u` ON `u`.`id` = `r`.`user_id`
      WHERE
        (
          (`collection_id` IS NULL)
          OR (
            `collection_id` IN (
              SELECT
                `id`
              FROM
                `visible_collection_ids`
            )
          )
        )
        AND (
          (`collection_id` IS NULL)
          AND (`c`.`archived_directly` = FALSE)
        )
        AND (`c`.`dashboard_id` IS NULL)
        AND (`archived` = FALSE)
        AND (`c`.`type` = 'question')
        AND (`collection_position` IS NULL)
      UNION 
      
      
      SELECT
        7 AS `model_ranking`,
        `id`,
        `name`,
        `description`,
        `entity_id`,
        NULL AS `display`,
        NULL AS `collection_preview`,
        NULL AS `dataset_query`,
        `id` AS `collection_id`,
        NULL AS `dashboard_id`,
        `archived_directly`,
        'collection' AS `model`,
        NULL AS `collection_position`,
        `authority_level`,
        `personal_owner_id`,
        `location`,
        NULL AS `last_edit_email`,
        NULL AS `last_edit_first_name`,
        NULL AS `last_edit_last_name`,
        NULL AS `moderated_status`,
        NULL AS `icon`,
        NULL AS `last_edit_user`,
        NULL AS `last_edit_timestamp`,
        NULL AS `database_id`,
        `type` AS `collection_type`,
        `archived`,
        NULL AS `last_used_at`,
        NULL AS `table_id`,
        NULL AS `is_upload`,
        NULL AS `query_type`
      FROM
        `collection` AS `col`
      WHERE
        (
          (
            `id` IN (
              SELECT
                `id`
              FROM
                `collection` AS `c`
              WHERE
                (`c`.`archived` = FALSE)
                AND (
                  (`c`.`location` LIKE '/%')
                  AND NOT EXISTS (
                    SELECT
                      1
                    FROM
                      `collection` AS `c2`
                    WHERE
                      (
                        (`c2`.`id` IS NULL)
                        OR (
                          `c2`.`id` IN (
                            SELECT
                              `id`
                            FROM
                              `collection` AS `c`
                            WHERE
                              (`c`.`archived` = FALSE)
                          )
                        )
                      )
                      AND (
                        `c`.`location` = CONCAT(`c2`.`location`, `c2`.`id`, '/')
                      )
                  )
                )
            )
          )
        )
        AND (`personal_owner_id` IS NULL)
        AND (
          (`archived` = FALSE)
          AND (`id` <> 1)
        )
        AND (`namespace` IS NULL)
        AND (
          (`namespace` IS NULL)
          OR (`namespace` <> 'snippets')
        )
        AND (NULL IS NULL)
        
      UNION 
      
      
      SELECT
        1 AS `model_ranking`,
        `d`.`id`,
        `d`.`name`,
        `d`.`description`,
        `d`.`entity_id`,
        NULL AS `display`,
        NULL AS `collection_preview`,
        NULL AS `dataset_query`,
        `d`.`collection_id`,
        NULL AS `dashboard_id`,
        `d`.`archived_directly`,
        'dashboard' AS `model`,
        `d`.`collection_position`,
        NULL AS `authority_level`,
        NULL AS `personal_owner_id`,
        NULL AS `location`,
        `u`.`email` AS `last_edit_email`,
        `u`.`first_name` AS `last_edit_first_name`,
        `u`.`last_name` AS `last_edit_last_name`,
        `mr`.`status` AS `moderated_status`,
        NULL AS `icon`,
        `u`.`id` AS `last_edit_user`,
        `r`.`timestamp` AS `last_edit_timestamp`,
        NULL AS `database_id`,
        NULL AS `collection_type`,
        `archived`,
        `last_viewed_at` AS `last_used_at`,
        NULL AS `table_id`,
        NULL AS `is_upload`,
        NULL AS `query_type`
      FROM
        `report_dashboard` AS `d`
        LEFT JOIN `moderation_review` AS `mr` ON (`mr`.`moderated_item_id` = `d`.`id`)
        AND (`mr`.`most_recent` = TRUE)
        AND (`mr`.`moderated_item_type` = 'dashboard')
        LEFT JOIN `revision` AS `r` ON (`r`.`model_id` = `d`.`id`)
        AND (`r`.`most_recent` = TRUE)
        AND (`r`.`model` = 'Dashboard')
        LEFT JOIN `core_user` AS `u` ON `u`.`id` = `r`.`user_id`
      WHERE
        (
          (`collection_id` IS NULL)
          OR (
            `collection_id` IN (
              SELECT
                `id`
              FROM
                `visible_collection_ids`
            )
          )
        )
        AND (
          (`collection_id` IS NULL)
          AND (`d`.`archived_directly` <> TRUE)
        )
        AND (`archived` = FALSE)
        AND (`collection_position` IS NULL)
      UNION 
      
      
      SELECT
        3 AS `model_ranking`,
        `c`.`id`,
        `c`.`name`,
        `c`.`description`,
        `c`.`entity_id`,
        `c`.`display`,
        `c`.`collection_preview`,
        `c`.`dataset_query`,
        `c`.`collection_id`,
        `c`.`dashboard_id`,
        `c`.`archived_directly`,
        'dataset' AS `model`,
        `c`.`collection_position`,
        NULL AS `authority_level`,
        NULL AS `personal_owner_id`,
        NULL AS `location`,
        `u`.`email` AS `last_edit_email`,
        `u`.`first_name` AS `last_edit_first_name`,
        `u`.`last_name` AS `last_edit_last_name`,
        `mr`.`status` AS `moderated_status`,
        NULL AS `icon`,
        `u`.`id` AS `last_edit_user`,
        `r`.`timestamp` AS `last_edit_timestamp`,
        `c`.`database_id`,
        NULL AS `collection_type`,
        `c`.`archived`,
        `last_used_at`,
        `c`.`table_id`,
        `t`.`is_upload`,
        `c`.`query_type`
      FROM
        `report_card` AS `c`
        LEFT JOIN `revision` AS `r` ON (`r`.`model_id` = `c`.`id`)
        AND (`r`.`most_recent` = TRUE)
        AND (`r`.`model` = 'Card')
        LEFT JOIN `moderation_review` AS `mr` ON (`mr`.`moderated_item_id` = `c`.`id`)
        AND (`mr`.`most_recent` = TRUE)
        AND (`mr`.`moderated_item_type` = 'card')
        LEFT JOIN `core_user` AS `u` ON `u`.`id` = `r`.`user_id`
        LEFT JOIN `metabase_table` AS `t` ON `t`.`id` = `c`.`table_id`
      WHERE
        (
          (`collection_id` IS NULL)
          OR (
            `collection_id` IN (
              SELECT
                `id`
              FROM
                `visible_collection_ids`
            )
          )
        )
        AND (
          (`collection_id` IS NULL)
          AND (`c`.`archived_directly` = FALSE)
        )
        AND (`c`.`dashboard_id` IS NULL)
        AND (`archived` = FALSE)
        AND (`c`.`type` = 'model')
        AND (`collection_position` IS NULL)
      UNION 
      
      
      SELECT
        4 AS `model_ranking`,
        `c`.`id`,
        `c`.`name`,
        `c`.`description`,
        `c`.`entity_id`,
        `c`.`display`,
        `c`.`collection_preview`,
        `c`.`dataset_query`,
        `c`.`collection_id`,
        `c`.`dashboard_id`,
        `c`.`archived_directly`,
        'metric' AS `model`,
        `c`.`collection_position`,
        NULL AS `authority_level`,
        NULL AS `personal_owner_id`,
        NULL AS `location`,
        `u`.`email` AS `last_edit_email`,
        `u`.`first_name` AS `last_edit_first_name`,
        `u`.`last_name` AS `last_edit_last_name`,
        `mr`.`status` AS `moderated_status`,
        NULL AS `icon`,
        `u`.`id` AS `last_edit_user`,
        `r`.`timestamp` AS `last_edit_timestamp`,
        NULL AS `database_id`,
        NULL AS `collection_type`,
        `c`.`archived`,
        `last_used_at`,
        NULL AS `table_id`,
        NULL AS `is_upload`,
        NULL AS `query_type`
      FROM
        `report_card` AS `c`
        LEFT JOIN `revision` AS `r` ON (`r`.`model_id` = `c`.`id`)
        AND (`r`.`most_recent` = TRUE)
        AND (`r`.`model` = 'Card')
        LEFT JOIN `moderation_review` AS `mr` ON (`mr`.`moderated_item_id` = `c`.`id`)
        AND (`mr`.`most_recent` = TRUE)
        AND (`mr`.`moderated_item_type` = 'card')
        LEFT JOIN `core_user` AS `u` ON `u`.`id` = `r`.`user_id`
      WHERE
        (
          (`collection_id` IS NULL)
          OR (
            `collection_id` IN (
              SELECT
                `id`
              FROM
                `visible_collection_ids`
            )
          )
        )
        AND (
          (`collection_id` IS NULL)
          AND (`c`.`archived_directly` = FALSE)
        )
        AND (`c`.`dashboard_id` IS NULL)
        AND (`archived` = FALSE)
        AND (`c`.`type` = 'metric')
        AND (`collection_position` IS NULL)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions