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-cad1413adaabbd8b0d4a9...

189 lines
6.1 KiB
JSON

{
"db_name": "PostgreSQL",
"query": "\n WITH updated_user AS (\n UPDATE users\n SET updated_at = $3, version = version + 1\n WHERE id = $1 AND deleted_at IS NULL\n RETURNING id, username, signup_method, role,\n avatar_file_reference_id,\n created_at, updated_at,\n version, deleted_at\n ),\n updated_email AS (\n INSERT INTO auth_email_identities (\n user_id, email, created_at, updated_at\n )\n SELECT id, $2, $3, $3\n FROM updated_user\n ON CONFLICT (user_id)\n DO UPDATE SET\n email = EXCLUDED.email,\n deleted_at = NULL,\n deletion_source = NULL,\n updated_at = EXCLUDED.updated_at\n RETURNING user_id, email\n )\n SELECT u.id AS \"id!: UserId\",\n u.username AS \"username!\",\n u.signup_method AS \"signup_method!: SignupMethod\",\n u.role AS \"role!: UserRole\",\n u.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 u.created_at AS \"created_at!\",\n u.updated_at AS \"updated_at!\",\n u.version AS \"version!\",\n u.deleted_at,\n updated_email.email\n FROM updated_user u\n LEFT JOIN updated_email ON updated_email.user_id = u.id\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 = u.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"
}
}
},
{
"ordinal": 14,
"name": "email",
"type_info": "Varchar",
"origin": {
"Table": {
"table": "auth_email_identities",
"name": "email"
}
}
}
],
"parameters": {
"Left": [
"Int8",
"Varchar",
"Timestamptz"
]
},
"nullable": [
false,
false,
false,
false,
true,
null,
null,
true,
true,
true,
false,
false,
false,
true,
true
]
},
"hash": "cad1413adaabbd8b0d4a97e8eaf142aa29d3cfc2348ef52b6377908fbd076075"
}