GraphQL API and utilities for the rpdata project
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.

35 lines
1.1 KiB

  1. -- name: SetTag :exec
  2. INSERT INTO common_tag (tag, target_kind, target_id)
  3. VALUES (
  4. sqlc.arg(tag)::TEXT, sqlc.arg(target_kind)::TEXT, sqlc.arg(target_id)::TEXT
  5. )
  6. ON CONFLICT DO NOTHING;
  7. -- name: ClearTag :exec
  8. DELETE FROM common_tag
  9. WHERE tag=sqlc.arg(tag)::TEXT
  10. AND target_kind=sqlc.arg(target_kind)::TEXT
  11. AND target_id=sqlc.arg(target_id)::TEXT;
  12. -- name: ClearTagsByTarget :exec
  13. DELETE FROM common_tag
  14. WHERE target_kind=sqlc.arg(target_kind)::TEXT
  15. AND target_id=sqlc.arg(target_id)::TEXT;
  16. -- name: SelectDistinctTags :many
  17. SELECT DISTINCT tag FROM common_tag;
  18. -- name: SelectDistinctTagsByKind :many
  19. SELECT DISTINCT tag FROM common_tag WHERE tag LIKE '$1::text%';
  20. -- name: SelectTagsByTag :many
  21. SELECT * FROM common_tag WHERE tag = sqlc.arg(tag_name)::text;
  22. -- name: SelectTagsByTags :many
  23. SELECT * FROM common_tag WHERE tag = ANY(sqlc.arg(tag_names)::text[]);
  24. -- name: SelectTagsByTarget :many
  25. SELECT * FROM common_tag WHERE target_kind = $1 AND target_id = $2::text;
  26. -- name: SelectTagsByTargets :many
  27. SELECT * FROM common_tag WHERE target_kind = $1 AND target_id = ANY($2::text[]);