You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/internal/host/query.go

288 lines
6.6 KiB

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
package host
const (
estimateCountCatalogsQuery = `
select sum(reltuples::bigint) as estimate from pg_class where oid in (
'static_host_catalog'::regclass,
'host_plugin_catalog'::regclass
)
`
listDeletedIdsQuery = `
select public_id
from static_host_catalog_deleted
where delete_time >= @since
union
select public_id
from host_plugin_catalog_deleted
where delete_time >= @since
`
listCatalogsTemplate = `
with catalogs as (
select public_id
from host_catalog
where %s -- search condition for project IDs is constructed
order by create_time desc, public_id desc
limit %d
),
plugin_catalogs as (
select public_id,
project_id,
plugin_id,
name,
description,
create_time,
update_time,
version,
attributes,
secrets_hmac
from host_plugin_catalog
where public_id in (select public_id from catalogs)
),
static_catalogs as (
select public_id,
project_id,
name,
description,
create_time,
update_time,
version
from static_host_catalog
where public_id in (select public_id from catalogs)
),
final as (
select public_id,
project_id,
name,
description,
create_time,
update_time,
version,
plugin_id,
attributes,
secrets_hmac,
'plugin' as subtype
from plugin_catalogs
union
select public_id,
project_id,
name,
description,
create_time,
update_time,
version,
null as plugin_id, -- Add to make union uniform
null as attributes, -- Add to make union uniform
null as secrets_hmac, -- Add to make union uniform
'static' as subtype
from static_catalogs
)
select *
from final
order by create_time desc, public_id desc;
`
listCatalogsPageTemplate = `
with catalogs as (
select public_id
from host_catalog
where %s -- search condition for project IDs is constructed
and (create_time, public_id) < (@last_item_create_time, @last_item_id)
order by create_time desc, public_id desc
limit %d
),
plugin_catalogs as (
select public_id,
project_id,
plugin_id,
name,
description,
create_time,
update_time,
version,
attributes,
secrets_hmac
from host_plugin_catalog
where public_id in (select public_id from catalogs)
),
static_catalogs as (
select public_id,
project_id,
name,
description,
create_time,
update_time,
version
from static_host_catalog
where public_id in (select public_id from catalogs)
),
final as (
select public_id,
project_id,
name,
description,
create_time,
update_time,
version,
plugin_id,
attributes,
secrets_hmac,
'plugin' as subtype
from plugin_catalogs
union
select public_id,
project_id,
name,
description,
create_time,
update_time,
version,
null as plugin_id, -- Add to make union uniform
null as attributes, -- Add to make union uniform
null as secrets_hmac, -- Add to make union uniform
'static' as subtype
from static_catalogs
)
select *
from final
order by create_time desc, public_id desc;
`
listCatalogsRefreshTemplate = `
with catalogs as (
select public_id
from host_catalog
where %s -- search condition for project IDs is constructed
and update_time > @updated_after_time
order by update_time desc, public_id desc
limit %d
),
plugin_catalogs as (
select public_id,
project_id,
plugin_id,
name,
description,
create_time,
update_time,
version,
attributes,
secrets_hmac
from host_plugin_catalog
where public_id in (select public_id from catalogs)
),
static_catalogs as (
select public_id,
project_id,
name,
description,
create_time,
update_time,
version
from static_host_catalog
where public_id in (select public_id from catalogs)
),
final as (
select public_id,
project_id,
name,
description,
create_time,
update_time,
version,
plugin_id,
attributes,
secrets_hmac,
'plugin' as subtype
from plugin_catalogs
union
select public_id,
project_id,
name,
description,
create_time,
update_time,
version,
null as plugin_id, -- Add to make union uniform
null as attributes, -- Add to make union uniform
null as secrets_hmac, -- Add to make union uniform
'static' as subtype
from static_catalogs
)
select *
from final
order by update_time desc, public_id desc;
`
listCatalogsRefreshPageTemplate = `
with catalogs as (
select public_id
from host_catalog
where %s -- search condition for project IDs is constructed
and update_time > @updated_after_time
and (update_time, public_id) < (@last_item_update_time, @last_item_id)
order by update_time desc, public_id desc
limit %d
),
plugin_catalogs as (
select public_id,
project_id,
plugin_id,
name,
description,
create_time,
update_time,
version,
attributes,
secrets_hmac
from host_plugin_catalog
where public_id in (select public_id from catalogs)
),
static_catalogs as (
select public_id,
project_id,
name,
description,
create_time,
update_time,
version
from static_host_catalog
where public_id in (select public_id from catalogs)
),
final as (
select public_id,
project_id,
name,
description,
create_time,
update_time,
version,
plugin_id,
attributes,
secrets_hmac,
'plugin' as subtype
from plugin_catalogs
union
select public_id,
project_id,
name,
description,
create_time,
update_time,
version,
null as plugin_id, -- Add to make union uniform
null as attributes, -- Add to make union uniform
null as secrets_hmac, -- Add to make union uniform
'static' as subtype
from static_catalogs
)
select *
from final
order by update_time desc, public_id desc;
`
)