20_recompute_usage.up.sql 760 B

12345678910111213141516171819
  1. INSERT INTO usage(user_id,storage_consumed)
  2. SELECT user_id, COALESCE(total_file_size+total_thumbnail_size,0) as storage_consumed FROM
  3. users,
  4. LATERAL (
  5. SELECT SUM(size) AS total_thumbnail_size
  6. FROM thumbnail_object_keys
  7. LEFT JOIN files ON files.file_id = thumbnail_object_keys.file_id
  8. WHERE
  9. owner_id = users.user_id
  10. ) query_1,
  11. LATERAL (
  12. SELECT SUM(size) AS total_file_size
  13. FROM file_object_keys
  14. LEFT JOIN files ON files.file_id = file_object_keys.file_id
  15. WHERE
  16. owner_id = users.user_id
  17. ) query_2
  18. ON CONFLICT (user_id)
  19. DO UPDATE SET storage_consumed =EXCLUDED.storage_consumed;