Advertisement
Guest User

Untitled

a guest
Sep 12th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. with recursive lookup(root, base_msn) as (
  2.       select mailbox_select_msn_tree_id, 0::numeric from mailbox_select_msn_tree where parent is null and mailbox_id = :mailboxId
  3.       union all
  4.     (with children as (
  5.         select m.* from mailbox_select_msn_tree m, lookup
  6.             where m.parent = root
  7.     ),
  8.     rolling as (
  9.         select mailbox_select_msn_tree_id, sum(size) over (order by mailbox_select_msn_tree_id) as sum
  10.             from children order by mailbox_select_msn_tree_id
  11.     )
  12.     select mailbox_select_msn_tree_id, sum
  13.         from rolling
  14.         where sum >= :msn
  15.         limit 1)
  16. )
  17. select last_value(root) over (), base_msn from lookup limit 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement