| 1 |
{ |
| 2 |
"db_name": "PostgreSQL", |
| 3 |
"query": "SELECT tt.thread_id,\n t.title AS thread_title,\n co.name AS community_name,\n co.slug AS community_slug,\n cat.slug AS category_slug,\n (SELECT COUNT(*) FROM posts p\n WHERE p.thread_id = tt.thread_id\n AND p.removed_at IS NULL\n AND (lrp.created_at IS NULL OR p.created_at > lrp.created_at)\n ) AS \"unread_count!\",\n EXISTS (\n SELECT 1 FROM post_mentions pm\n JOIN posts p ON p.id = pm.post_id\n WHERE pm.mentioned_user_id = tt.user_id\n AND p.thread_id = tt.thread_id\n ) AS \"has_mention!\",\n tt.tracked_at AS \"tracked_at: chrono::DateTime<chrono::Utc>\"\n FROM tracked_threads tt\n JOIN threads t ON t.id = tt.thread_id\n JOIN categories cat ON cat.id = t.category_id\n JOIN communities co ON co.id = cat.community_id\n LEFT JOIN posts lrp ON lrp.id = tt.last_read_post_id\n WHERE tt.user_id = $1 AND t.deleted_at IS NULL AND co.suspended_at IS NULL\n ORDER BY t.last_activity_at DESC\n LIMIT $2 OFFSET $3", |
| 4 |
"describe": { |
| 5 |
"columns": [ |
| 6 |
{ |
| 7 |
"ordinal": 0, |
| 8 |
"name": "thread_id", |
| 9 |
"type_info": "Uuid" |
| 10 |
}, |
| 11 |
{ |
| 12 |
"ordinal": 1, |
| 13 |
"name": "thread_title", |
| 14 |
"type_info": "Text" |
| 15 |
}, |
| 16 |
{ |
| 17 |
"ordinal": 2, |
| 18 |
"name": "community_name", |
| 19 |
"type_info": "Text" |
| 20 |
}, |
| 21 |
{ |
| 22 |
"ordinal": 3, |
| 23 |
"name": "community_slug", |
| 24 |
"type_info": "Text" |
| 25 |
}, |
| 26 |
{ |
| 27 |
"ordinal": 4, |
| 28 |
"name": "category_slug", |
| 29 |
"type_info": "Text" |
| 30 |
}, |
| 31 |
{ |
| 32 |
"ordinal": 5, |
| 33 |
"name": "unread_count!", |
| 34 |
"type_info": "Int8" |
| 35 |
}, |
| 36 |
{ |
| 37 |
"ordinal": 6, |
| 38 |
"name": "has_mention!", |
| 39 |
"type_info": "Bool" |
| 40 |
}, |
| 41 |
{ |
| 42 |
"ordinal": 7, |
| 43 |
"name": "tracked_at: chrono::DateTime<chrono::Utc>", |
| 44 |
"type_info": "Timestamptz" |
| 45 |
} |
| 46 |
], |
| 47 |
"parameters": { |
| 48 |
"Left": [ |
| 49 |
"Uuid", |
| 50 |
"Int8", |
| 51 |
"Int8" |
| 52 |
] |
| 53 |
}, |
| 54 |
"nullable": [ |
| 55 |
false, |
| 56 |
false, |
| 57 |
false, |
| 58 |
false, |
| 59 |
false, |
| 60 |
null, |
| 61 |
null, |
| 62 |
false |
| 63 |
] |
| 64 |
}, |
| 65 |
"hash": "78349b35320856cf18eb7e66393675af5a14063b83dc8366c801994b67cdc5a7" |
| 66 |
} |
| 67 |
|