123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- -- Copyright Materialize, Inc. and contributors. All rights reserved.
- --
- -- Use of this software is governed by the Business Source License
- -- included in the LICENSE file at the root of this repository.
- --
- -- As of the Change Date specified in that file, in accordance with
- -- the Business Source License, use of this software will be governed
- -- by the Apache License, Version 2.0.
- CREATE OR REPLACE VIEW v_data_integrity (table_name, own_item_key, referenced_item_key, problem) AS
- -- violated references
- SELECT 'build_job', build_job_id, build_id, 'build job references missing build'
- FROM build_job
- WHERE build_id NOT IN (SELECT build_id FROM build)
- UNION
- SELECT 'feature_benchmark_result', build_job_id, build_job_id, 'feature benchmark result references missing build job'
- FROM feature_benchmark_result
- WHERE build_job_id NOT IN (SELECT build_job_id FROM build_job)
- UNION
- SELECT 'scalability_framework_result', build_job_id, build_job_id, 'scalability result references missing build job'
- FROM scalability_framework_result
- WHERE build_job_id NOT IN (SELECT build_job_id FROM build_job)
- UNION
- SELECT 'parallel_benchmark_result', build_job_id, build_job_id, 'parallel benchmark result references missing build job'
- FROM parallel_benchmark_result
- WHERE build_job_id NOT IN (SELECT build_job_id FROM build_job)
- UNION
- SELECT 'product_limits_result', build_job_id, build_job_id, 'product limits result references missing build job'
- FROM product_limits_result
- WHERE build_job_id NOT IN (SELECT build_job_id FROM build_job)
- UNION
- SELECT 'build_annotation', build_job_id, build_job_id, 'build annotation references missing build job'
- FROM build_annotation
- WHERE build_job_id NOT IN (SELECT build_job_id FROM build_job)
- UNION
- SELECT 'build_annotation_error', build_job_id, build_job_id, 'build annotation error references missing build annotation'
- FROM build_annotation_error
- WHERE build_job_id NOT IN (SELECT build_job_id FROM build_annotation)
- UNION
- SELECT 'feature_benchmark_discarded_result', build_job_id, scenario_name, 'discarded benchmark result without actual result'
- FROM feature_benchmark_discarded_result
- WHERE (build_job_id, scenario_name) NOT IN (SELECT build_job_id, scenario_name FROM feature_benchmark_result)
- -- duplicate entries
- UNION
- SELECT 'build', build_id, NULL, 'duplicate build'
- FROM build
- GROUP BY build_id
- HAVING count(*) > 1
- UNION
- SELECT 'build_job', build_job_id, NULL, 'duplicate build job'
- FROM build_job
- GROUP BY build_job_id
- HAVING count(*) > 1
- UNION
- SELECT 'build_annotation', build_job_id, NULL, 'duplicate annotation for build job'
- FROM build_annotation
- GROUP BY build_job_id
- HAVING count(*) > 1
- -- other
- UNION
- SELECT 'build_job', build_job_id, NULL, 'build job id is not unique'
- FROM build_job
- GROUP BY build_job_id
- HAVING count(distinct build_id) > 1
- UNION
- SELECT 'build_job', concat(build_step_key, ', shard ', shard_index), max(build_job_id), 'multiple build jobs as latest retry'
- FROM build_job
- GROUP BY build_id, build_step_key, shard_index
- HAVING sum(CASE WHEN is_latest_retry THEN 1 ELSE 0 END) > 1
- UNION
- SELECT 'build', build_id, NULL, 'build without build jobs'
- FROM build
- WHERE NOT EXISTS (SELECT 1 FROM build_job WHERE build_id = build.build_id)
- UNION
- SELECT 'build_annotation', build_job_id, NULL, 'build job with multiple annotation entries'
- FROM build_annotation
- GROUP BY build_job_id
- HAVING count(*) > 1
- UNION
- SELECT 'config', 'config', NULL, 'more than one config entry exists'
- FROM config
- HAVING count(*) > 1
- UNION
- SELECT 'issue', issue_id, NULL, 'more than one issue entry exists'
- FROM issue
- GROUP BY issue_id
- HAVING count(*) > 1
- ;
- ALTER VIEW v_data_integrity OWNER TO qa;
|