Untitled
unknown
plain_text
2 years ago
6.1 kB
8
Indexable
Current code in resultdb_views.sql
create or replace view workflow_detail_view as
select
wv.workflow_id,
wv.internal_workflow_id,
wv.engine,
CASE
WHEN ((wv.benchmark_config_jsonb -> 'config'::text) -> 'workflowType'::text) IS NOT NULL THEN (wv.benchmark_config_jsonb -> 'config'::text) ->> 'workflowType'::text
ELSE (wv.benchmark_config_jsonb -> 'config'::text) ->> 'pas_workflow_type'::text
END AS workflow_type,
(wv.benchmark_config_jsonb->'config'->'dbInstanceClasses')::json as dbinstanceclasses_json,
rtrim(ltrim(wv.benchmark_config_jsonb->'config'->>'dbInstanceClasses', '["'), '"]') as dbinstanceclasses,
wv.benchmark_config_jsonb->'config'->>'domain' as domain,
(wv.benchmark_config_jsonb->'config'->'dbParameterGroup')::json as dbparametergroup,
(wv.benchmark_config_jsonb->'config'->'engineVersions')::json as engineversions_json,
COALESCE(
rtrim(ltrim((wv.benchmark_config_jsonb -> 'config'::text) ->> 'engineVersions'::text, '["'::text), '"]'::text),
(
SELECT i.engine_internal_version
FROM instance_v2 i
INNER JOIN child_workflow_v2 cw ON (i.child_workflow_id = cw.child_workflow_id)
WHERE wv.workflow_id = cw.workflow_id
LIMIT 1
)
) as engineversions,
(wv.benchmark_config_jsonb->'config'->'threads')::json as threads,
(wv.benchmark_config_jsonb->'config'->'emails')::json as emails,
wv.benchmark_config_jsonb->'config'->>'concurrency' as concurrency,
wv.benchmark_config_jsonb->'config'->>'workloadGroup' as workloadgroup,
wv.benchmark_config_jsonb->'config'->>'monitoringInterval' as monitoringInterval,
wv.status,
wv.submitted_time,
wv.start_time,
wv.end_time,
regexp_replace(wv.user_config::json ->> 'feature'::text, '[\[\]"]'::text, ''::text, 'g'::text) AS features,
wv.username,
CASE
WHEN wv.benchmark_config_jsonb->'perf_service_configs'->>'test_type' = 'regression' THEN
'regression'
ELSE
'adhoc'
END
as test_type,
CASE
WHEN rtrim(ltrim(wv.benchmark_config_jsonb->'config'->>'dbInstanceClasses', '["'), '"]') LIKE '%.serverless' THEN
split_part(wv.benchmark_config_jsonb->'config'->'extraParams'->'dbClusterExtraParams'->'serverlessV2ScalingConfiguration'->>'maxCapacity', '.', 1)
ELSE
split_part(rtrim(ltrim(wv.benchmark_config_jsonb->'config'->>'dbInstanceClasses', '["'), '"]'), '.', 3)
END
as instance_size,
(wv.benchmark_config_jsonb -> 'sidekick'::text) IS NOT NULL AS sidekick_enabled,
"position"(wv.BENCHMARK_CONFIG::text, '"--report-interval":'::text) > 0 AS sysbench_interval_enabled,
"position"(wv.BENCHMARK_CONFIG::text, '"--histogram": "on"'::text) > 0 AS histogram_enabled,
((wv.benchmark_config_jsonb -> 'testconfig'::text) -> 'copy_flamegraph_to_s3'::text) IS NOT NULL AS flamegraph_enabled,
split_part(rtrim(ltrim((wv.benchmark_config_jsonb -> 'config'::text) ->> 'dbInstanceClasses'::text, '["'::text), '"]'::text), '.', 2) AS instance_family,
COALESCE(
-- Check cluster config for io_sku
(
SELECT
CASE
WHEN describe_cluster_info -> 'DBClusters' -> 0 ->> 'StorageType' = 'aurora-iopt1' THEN 'enabled'
WHEN describe_cluster_info -> 'DBClusters' -> 0 ->> 'StorageType' <> 'aurora-iopt1' THEN 'disabled'
-- If storage type is aurora standard (aurora-st1) then storageType won't returned by describe_cluster_info()
WHEN (describe_cluster_info IS NOT NULL)
AND (describe_cluster_info -> 'DBClusters' -> 0 ->> 'StorageType' IS NULL) THEN 'disabled'
ELSE NULL
END
FROM cluster_v2 cls
INNER JOIN child_workflow_v2 cw ON cls.child_workflow_id = cw.child_workflow_id AND cw.workflow_id = wv.workflow_id
LIMIT 1
),
-- Fall back to csd config.
(
SELECT
CASE
WHEN config_json->>'volume_storage_sku' = 'iopt1' THEN 'enabled'
WHEN config_json->>'volume_storage_sku' <> 'iopt1' THEN 'disabled'
ELSE NULL
END AS "io_sku"
FROM csd_config_v2 cc
INNER JOIN child_workflow_v2 cw ON cc.child_workflow_id = cw.child_workflow_id AND cw.workflow_id = wv.workflow_id
LIMIT 1
),
-- Fall back to json config
CASE
WHEN ((wv.benchmark_config_jsonb -> 'config') ->> 'storageType') = 'aurora-iopt1' THEN 'enabled'
WHEN ((wv.benchmark_config_jsonb -> 'config') ->> 'storageType') <> 'aurora-iopt1' THEN 'disabled'
-- Backward compatibility with workflows that set io_sku using bms custom scripts but did not have csd or cluster configs.
WHEN ((wv.benchmark_config_jsonb -> 'testconfig'::text) -> 'execute_enable_io_sku'::text) IS NOT NULL THEN 'enabled'::text
ELSE 'disabled'::text
END
) as io_sku,
(wv.benchmark_config_jsonb -> 'logicalreplication'::text) IS NOT NULL AS logicalreplication_enabled,
COALESCE(substring(wv.internal_workflow_id FROM '(.*)-' || wv.engine || '-.*'), 'none') AS "prefix",
CASE
WHEN wv.benchmark_config_jsonb -> 'config' -> 'endpoints' ->> 0 like '%rds-internal-%-pz-%-cluster%'
THEN substring(wv.benchmark_config_jsonb -> 'config' -> 'endpoints' ->> 0 from 'rds-internal-(.*?)-pz-')
WHEN wv.benchmark_config_jsonb -> 'config' ->> 'pz' is not null
THEN wv.benchmark_config_jsonb -> 'config' ->> 'pz'
WHEN wv.benchmark_config_jsonb -> 'config' ->> 'dbClusterNameSuffix' like 'rds-internal-%-pz-%-cluster'
THEN substring(wv.benchmark_config_jsonb -> 'config' ->> 'dbClusterNameSuffix' from 'rds-internal-(.*?)-pz-')
ELSE NULL
END::text as pz,
wv.benchmark_config_jsonb -> 'config' ->> 'dbClusterNameSuffix' as db_cluster_name_suffix,
wv.benchmark_config_jsonb -> 'config' ->> 'pasWorkflowType' as pas_workflow_type,
COALESCE((wv.benchmark_config_jsonb -> 'config' ->> 'numberOfReaders')::int, 0) as "number_of_readers"
from workflow_v2 wv;
I want to add a new column instance_cores like this:
(CASE WHEN wdv.instance_family = 'serverless'::text THEN GREATEST(wdv.instance_size::integer / 16, 1)
WHEN wdv.instance_size ~ '\d'::text THEN regexp_replace(wdv.instance_size, '[^\d]'::text, ''::text, 'g'::text)::integer
ELSE 0 END) * 4 AS instance_cores
Can you add that in the above code according to current syntaxEditor is loading...
Leave a Comment