Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with recursive lookup(root, base_msn) as (
- select mailbox_select_msn_tree_id, 0::numeric from mailbox_select_msn_tree where parent is null and mailbox_id = :mailboxId
- union all
- (with children as (
- select m.* from mailbox_select_msn_tree m, lookup
- where m.parent = root
- ),
- rolling as (
- select mailbox_select_msn_tree_id, sum(size) over (order by mailbox_select_msn_tree_id) as sum
- from children order by mailbox_select_msn_tree_id
- )
- select mailbox_select_msn_tree_id, sum
- from rolling
- where sum >= :msn
- limit 1)
- )
- select last_value(root) over (), base_msn from lookup limit 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement