You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
synctv/.sqlx/query-fa1b22d8144ccda2c4254...

120 lines
4.7 KiB
JSON

{
"db_name": "PostgreSQL",
"query": "\n SELECT id AS \"id!: BanRecordId\",\n target_type AS \"target_type!\",\n user_id AS \"user_id?: UserId\",\n username AS \"username!\",\n room_id AS \"room_id?: RoomId\",\n room_name AS \"room_name!\",\n banned_by AS \"banned_by?: UserId\",\n banned_by_username AS \"banned_by_username!\",\n reason AS \"reason!\",\n starts_at AS \"starts_at!\",\n ends_at,\n revoked_at,\n revoked_by AS \"revoked_by?: UserId\",\n is_active AS \"is_active!\"\n FROM (\n SELECT ub.id, 1::int4 AS target_type, ub.user_id, COALESCE(u.username, '') AS username,\n NULL::bigint AS room_id, ''::text AS room_name, ub.banned_by,\n COALESCE(actor.username, '') AS banned_by_username, COALESCE(ub.reason, '') AS reason,\n ub.starts_at, ub.ends_at, ub.revoked_at, ub.revoked_by,\n ub.revoked_at IS NULL AND (ub.ends_at IS NULL OR ub.ends_at > CURRENT_TIMESTAMP) AS is_active\n FROM user_bans ub\n LEFT JOIN users u ON u.id = ub.user_id\n LEFT JOIN users actor ON actor.id = ub.banned_by\n UNION ALL\n SELECT rb.id, 2::int4 AS target_type, NULL::bigint AS user_id, ''::text AS username,\n rb.room_id, COALESCE(r.name, '') AS room_name, rb.banned_by,\n COALESCE(actor.username, '') AS banned_by_username, COALESCE(rb.reason, '') AS reason,\n rb.starts_at, rb.ends_at, rb.revoked_at, rb.revoked_by,\n rb.revoked_at IS NULL AND (rb.ends_at IS NULL OR rb.ends_at > CURRENT_TIMESTAMP) AS is_active\n FROM room_bans rb\n LEFT JOIN rooms r ON r.id = rb.room_id\n LEFT JOIN users actor ON actor.id = rb.banned_by\n ) bans\n WHERE ($1::int4 IS NULL OR target_type = $1)\n AND ($2::bool IS NULL OR is_active = $2)\n AND ($3::bigint IS NULL OR user_id = $3)\n AND ($4::bigint IS NULL OR room_id = $4)\n ORDER BY starts_at DESC, id DESC\n LIMIT $5 OFFSET $6\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id!: BanRecordId",
"type_info": "Int8",
"origin": "Expression"
},
{
"ordinal": 1,
"name": "target_type!",
"type_info": "Int4",
"origin": "Expression"
},
{
"ordinal": 2,
"name": "user_id?: UserId",
"type_info": "Int8",
"origin": "Expression"
},
{
"ordinal": 3,
"name": "username!",
"type_info": "Varchar",
"origin": "Expression"
},
{
"ordinal": 4,
"name": "room_id?: RoomId",
"type_info": "Int8",
"origin": "Expression"
},
{
"ordinal": 5,
"name": "room_name!",
"type_info": "Text",
"origin": "Expression"
},
{
"ordinal": 6,
"name": "banned_by?: UserId",
"type_info": "Int8",
"origin": "Expression"
},
{
"ordinal": 7,
"name": "banned_by_username!",
"type_info": "Varchar",
"origin": "Expression"
},
{
"ordinal": 8,
"name": "reason!",
"type_info": "Text",
"origin": "Expression"
},
{
"ordinal": 9,
"name": "starts_at!",
"type_info": "Timestamptz",
"origin": "Expression"
},
{
"ordinal": 10,
"name": "ends_at",
"type_info": "Timestamptz",
"origin": "Expression"
},
{
"ordinal": 11,
"name": "revoked_at",
"type_info": "Timestamptz",
"origin": "Expression"
},
{
"ordinal": 12,
"name": "revoked_by?: UserId",
"type_info": "Int8",
"origin": "Expression"
},
{
"ordinal": 13,
"name": "is_active!",
"type_info": "Bool",
"origin": "Expression"
}
],
"parameters": {
"Left": [
"Int4",
"Bool",
"Int8",
"Int8",
"Int8",
"Int8"
]
},
"nullable": [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null
]
},
"hash": "fa1b22d8144ccda2c4254552da38115417adc91f6845b5e62907be9e93afb088"
}