Files
book_library_server/.sqlx/query-91845687097ff0ce0f2f1dd51d2b61d2abf1cd2f04c2b3371f32720501c5f790.json
2024-12-26 00:03:51 +01:00

80 lines
3.3 KiB
JSON

{
"db_name": "PostgreSQL",
"query": "\n SELECT\n b.id,\n b.title,\n b.lang,\n b.file_type,\n b.year,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip']::text[] ELSE ARRAY[b.file_type]::text[] END AS \"available_types!: Vec<String>\",\n b.uploaded,\n (\n SELECT\n JSONB_AGG(\n JSONB_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM translations\n JOIN authors ON authors.id = translations.author\n WHERE translations.book = b.id\n ) AS \"translators!: Vec<Author>\",\n (\n SELECT\n JSONB_AGG(\n JSONB_BUILD_OBJECT(\n 'id', sequences.id,\n 'name', sequences.name\n )\n )\n FROM book_sequences\n JOIN sequences ON sequences.id = book_sequences.sequence\n WHERE book_sequences.book = b.id\n ) AS \"sequences!: Vec<Sequence>\",\n EXISTS(\n SELECT * FROM book_annotations WHERE book = b.id\n ) AS \"annotation_exists!: bool\"\n FROM books b\n JOIN book_authors ba ON b.id = ba.book\n WHERE b.is_deleted = false AND ba.author = $1 AND b.lang = ANY($2)\n ORDER BY b.title ASC\n OFFSET $3\n LIMIT $4\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int4"
},
{
"ordinal": 1,
"name": "title",
"type_info": "Varchar"
},
{
"ordinal": 2,
"name": "lang",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "file_type",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "year",
"type_info": "Int2"
},
{
"ordinal": 5,
"name": "available_types!: Vec<String>",
"type_info": "TextArray"
},
{
"ordinal": 6,
"name": "uploaded",
"type_info": "Date"
},
{
"ordinal": 7,
"name": "translators!: Vec<Author>",
"type_info": "Jsonb"
},
{
"ordinal": 8,
"name": "sequences!: Vec<Sequence>",
"type_info": "Jsonb"
},
{
"ordinal": 9,
"name": "annotation_exists!: bool",
"type_info": "Bool"
}
],
"parameters": {
"Left": [
"Int4",
"TextArray",
"Int8",
"Int8"
]
},
"nullable": [
false,
false,
false,
false,
false,
null,
false,
null,
null,
null
]
},
"hash": "91845687097ff0ce0f2f1dd51d2b61d2abf1cd2f04c2b3371f32720501c5f790"
}