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-37feea7ba3c7d0963a8e3...

178 lines
5.3 KiB
JSON

{
"db_name": "PostgreSQL",
"query": "\n WITH updated_user AS (\n UPDATE users\n SET role = $2,\n updated_at = $3,\n version = version + 1\n WHERE id = $1 AND deleted_at IS NULL AND version = $4\n RETURNING id, username, signup_method, role,\n avatar_file_reference_id,\n created_at, updated_at,\n version, deleted_at\n )\n SELECT p.id AS \"id!: UserId\",\n p.username AS \"username!\",\n p.signup_method AS \"signup_method!: SignupMethod\",\n p.role AS \"role!: UserRole\",\n p.avatar_file_reference_id,\n CASE\n WHEN active_ban.user_id IS NULL THEN 1::SMALLINT\n ELSE 2::SMALLINT\n END AS \"status!: UserStatus\",\n (active_ban.user_id IS NOT NULL) AS \"is_banned!\",\n active_ban.starts_at AS banned_at,\n active_ban.banned_by AS \"banned_by?: UserId\",\n active_ban.reason AS banned_reason,\n p.created_at AS \"created_at!\",\n p.updated_at AS \"updated_at!\",\n p.version AS \"version!\",\n p.deleted_at\n FROM updated_user p\n LEFT JOIN LATERAL (\n SELECT ub.user_id,\n ub.starts_at,\n ub.banned_by,\n ub.reason\n FROM user_bans ub\n WHERE ub.user_id = p.id\n AND ub.revoked_at IS NULL\n AND (ub.ends_at IS NULL OR ub.ends_at > CURRENT_TIMESTAMP)\n ORDER BY ub.starts_at DESC\n LIMIT 1\n ) active_ban ON TRUE\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id!: UserId",
"type_info": "Int8",
"origin": {
"Table": {
"table": "users",
"name": "id"
}
}
},
{
"ordinal": 1,
"name": "username!",
"type_info": "Varchar",
"origin": {
"Table": {
"table": "users",
"name": "username"
}
}
},
{
"ordinal": 2,
"name": "signup_method!: SignupMethod",
"type_info": "Int2",
"origin": {
"Table": {
"table": "users",
"name": "signup_method"
}
}
},
{
"ordinal": 3,
"name": "role!: UserRole",
"type_info": "Int2",
"origin": {
"Table": {
"table": "users",
"name": "role"
}
}
},
{
"ordinal": 4,
"name": "avatar_file_reference_id",
"type_info": "Int8",
"origin": {
"Table": {
"table": "users",
"name": "avatar_file_reference_id"
}
}
},
{
"ordinal": 5,
"name": "status!: UserStatus",
"type_info": "Int2",
"origin": "Expression"
},
{
"ordinal": 6,
"name": "is_banned!",
"type_info": "Bool",
"origin": "Expression"
},
{
"ordinal": 7,
"name": "banned_at",
"type_info": "Timestamptz",
"origin": {
"Table": {
"table": "user_bans",
"name": "starts_at"
}
}
},
{
"ordinal": 8,
"name": "banned_by?: UserId",
"type_info": "Int8",
"origin": {
"Table": {
"table": "user_bans",
"name": "banned_by"
}
}
},
{
"ordinal": 9,
"name": "banned_reason",
"type_info": "Text",
"origin": {
"Table": {
"table": "user_bans",
"name": "reason"
}
}
},
{
"ordinal": 10,
"name": "created_at!",
"type_info": "Timestamptz",
"origin": {
"Table": {
"table": "users",
"name": "created_at"
}
}
},
{
"ordinal": 11,
"name": "updated_at!",
"type_info": "Timestamptz",
"origin": {
"Table": {
"table": "users",
"name": "updated_at"
}
}
},
{
"ordinal": 12,
"name": "version!",
"type_info": "Int4",
"origin": {
"Table": {
"table": "users",
"name": "version"
}
}
},
{
"ordinal": 13,
"name": "deleted_at",
"type_info": "Timestamptz",
"origin": {
"Table": {
"table": "users",
"name": "deleted_at"
}
}
}
],
"parameters": {
"Left": [
"Int8",
"Int2",
"Timestamptz",
"Int4"
]
},
"nullable": [
false,
false,
false,
false,
true,
null,
null,
true,
true,
true,
false,
false,
false,
true
]
},
"hash": "37feea7ba3c7d0963a8e31a7c8b675bcc5f21e5398387518816867ebc2adedcb"
}