diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2024-10-01 22:30:04 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2024-10-01 22:43:14 -0400 |
| commit | b8392a5fe824eff46f912a58885546e7b0f37e6f (patch) | |
| tree | ff4061bbf4be30c53f84c179f86e8e6ab584dbda /.sqlx/query-7e816ede017bc2635c11ab72b18b7af92ac1f1faed9df41df90f57cb596cfe7c.json | |
| parent | 7645411bcf7201e3a4927566da78080dc6a84ccf (diff) | |
Track event sequences globally, not per channel.
Per-channel event sequences were a cute idea, but it made reasoning about event resumption much, much harder (case in point: recovering the order of events in a partially-ordered collection is quadratic, since it's basically graph sort). The minor overhead of a global sequence number is likely tolerable, and this simplifies both the API and the internals.
Diffstat (limited to '.sqlx/query-7e816ede017bc2635c11ab72b18b7af92ac1f1faed9df41df90f57cb596cfe7c.json')
| -rw-r--r-- | .sqlx/query-7e816ede017bc2635c11ab72b18b7af92ac1f1faed9df41df90f57cb596cfe7c.json | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/.sqlx/query-7e816ede017bc2635c11ab72b18b7af92ac1f1faed9df41df90f57cb596cfe7c.json b/.sqlx/query-7e816ede017bc2635c11ab72b18b7af92ac1f1faed9df41df90f57cb596cfe7c.json new file mode 100644 index 0000000..f546438 --- /dev/null +++ b/.sqlx/query-7e816ede017bc2635c11ab72b18b7af92ac1f1faed9df41df90f57cb596cfe7c.json @@ -0,0 +1,74 @@ +{ + "db_name": "SQLite", + "query": "\n\t\t\t\tselect\n\t\t\t\t\tmessage.id as \"id: message::Id\",\n channel.id as \"channel_id: channel::Id\",\n channel.name as \"channel_name\",\n channel.created_at as \"channel_created_at: DateTime\",\n channel.created_sequence as \"channel_created_sequence: Sequence\",\n\t\t\t\t\tsender.id as \"sender_id: login::Id\",\n\t\t\t\t\tsender.name as sender_name,\n message.sent_at as \"sent_at: DateTime\",\n message.sent_sequence as \"sent_sequence: Sequence\",\n message.body\n\t\t\t\tfrom message\n join channel on message.channel = channel.id\n\t\t\t\t\tjoin login as sender on message.sender = sender.id\n\t\t\t\twhere coalesce(message.sent_sequence > $1, true)\n\t\t\t\torder by sent_sequence asc\n\t\t\t", + "describe": { + "columns": [ + { + "name": "id: message::Id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "channel_id: channel::Id", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "channel_name", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "channel_created_at: DateTime", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "channel_created_sequence: Sequence", + "ordinal": 4, + "type_info": "Integer" + }, + { + "name": "sender_id: login::Id", + "ordinal": 5, + "type_info": "Text" + }, + { + "name": "sender_name", + "ordinal": 6, + "type_info": "Text" + }, + { + "name": "sent_at: DateTime", + "ordinal": 7, + "type_info": "Text" + }, + { + "name": "sent_sequence: Sequence", + "ordinal": 8, + "type_info": "Integer" + }, + { + "name": "body", + "ordinal": 9, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ] + }, + "hash": "7e816ede017bc2635c11ab72b18b7af92ac1f1faed9df41df90f57cb596cfe7c" +} |
