query.sql 1.1 KB

123456789101112131415161718192021222324252627282930
  1. with preview_files as (
  2. select 1 as id, 'contract.pdf' as filename, 184320 as size_bytes, 'document' as category
  3. union all
  4. select 2, 'invoice.ofd', 4278691, 'document'
  5. union all
  6. select 3, 'house.dwfx', 17340177, 'drawing'
  7. union all
  8. select 4, 'code.ts', 4096, 'source'
  9. ),
  10. renderer_map as (
  11. select 'pdf' as extension, 'pdfjs-dist' as renderer
  12. union all select 'ofd', 'DLTech21/ofd.js'
  13. union all select 'dxf', '@flyfish-dev/cad-viewer'
  14. union all select 'dwg', '@flyfish-dev/cad-viewer'
  15. union all select 'dwf', '@flyfish-dev/cad-viewer'
  16. union all select 'dwfx', '@flyfish-dev/cad-viewer'
  17. union all select 'xps', '@flyfish-dev/cad-viewer'
  18. union all select 'ts', 'highlight.js'
  19. )
  20. select
  21. f.id,
  22. f.filename,
  23. lower(regexp_replace(f.filename, '^.*\.', '')) as extension,
  24. coalesce(m.renderer, 'fallback') as renderer,
  25. case when f.size_bytes > 1024 * 1024 then 'large' else 'normal' end as size_bucket
  26. from preview_files f
  27. left join renderer_map m
  28. on m.extension = lower(regexp_replace(f.filename, '^.*\.', ''))
  29. where f.category in ('document', 'drawing', 'source')
  30. order by f.id;