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.
49 lines
1.8 KiB
49 lines
1.8 KiB
-- name: SetTag :exec
|
|
INSERT INTO common_tag (tag, target_kind, target_id)
|
|
VALUES (
|
|
sqlc.arg(tag)::TEXT, sqlc.arg(target_kind)::TEXT, sqlc.arg(target_id)::TEXT
|
|
)
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
-- name: SetTags :exec
|
|
INSERT INTO common_tag (tag, target_kind, target_id)
|
|
SELECT unnest(sqlc.arg(tags)::TEXT[]), sqlc.arg(target_kind)::TEXT as target_kind, sqlc.arg(target_id)::TEXT as target_id
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
-- name: ClearTag :exec
|
|
DELETE FROM common_tag
|
|
WHERE tag=sqlc.arg(tag)::TEXT
|
|
AND target_kind=sqlc.arg(target_kind)::TEXT
|
|
AND target_id=sqlc.arg(target_id)::TEXT;
|
|
|
|
-- name: ClearTagsByTargetLike :exec
|
|
DELETE FROM common_tag
|
|
WHERE target_kind=sqlc.arg(target_kind)::TEXT
|
|
AND target_id=sqlc.arg(target_id)::TEXT
|
|
AND tag LIKE sqlc.arg(tag_like)::TEXT;
|
|
|
|
-- name: ClearTagsByTarget :exec
|
|
DELETE FROM common_tag
|
|
WHERE target_kind=sqlc.arg(target_kind)::TEXT
|
|
AND target_id=sqlc.arg(target_id)::TEXT;
|
|
|
|
-- name: SelectDistinctTags :many
|
|
SELECT DISTINCT tag FROM common_tag ORDER BY tag;
|
|
|
|
-- name: SelectDistinctTagsLike :many
|
|
SELECT DISTINCT tag FROM common_tag WHERE tag LIKE $1::text ORDER BY tag;
|
|
|
|
-- name: SelectTagsByTag :many
|
|
SELECT * FROM common_tag WHERE tag = sqlc.arg(tag_name)::text ORDER BY tag;
|
|
|
|
-- name: SelectTagsByTags :many
|
|
SELECT * FROM common_tag WHERE tag = ANY(sqlc.arg(tag_names)::text[]) ORDER BY tag;
|
|
|
|
-- name: SelectTargetsByTags :many
|
|
SELECT DISTINCT(target_id) FROM common_tag WHERE tag = ANY(sqlc.arg(tag_names)::text[]) AND target_kind = sqlc.arg(target_kind)::text ORDER BY tag;
|
|
|
|
-- name: SelectTagsByTarget :many
|
|
SELECT * FROM common_tag WHERE target_kind = sqlc.arg(target_kind) AND target_id = sqlc.arg(target_id)::text ORDER BY tag;
|
|
|
|
-- name: SelectTagsByTargets :many
|
|
SELECT * FROM common_tag WHERE target_kind = sqlc.arg(target_kind) AND target_id = ANY(sqlc.arg(target_ids)::text[]) ORDER BY tag;
|