dbsize.sql 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
  2. (VALUES (10::bigint), (1000::bigint), (1000000::bigint),
  3. (1000000000::bigint), (1000000000000::bigint),
  4. (1000000000000000::bigint)) x(size);
  5. SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
  6. (VALUES (10::numeric), (1000::numeric), (1000000::numeric),
  7. (1000000000::numeric), (1000000000000::numeric),
  8. (1000000000000000::numeric),
  9. (10.5::numeric), (1000.5::numeric), (1000000.5::numeric),
  10. (1000000000.5::numeric), (1000000000000.5::numeric),
  11. (1000000000000000.5::numeric)) x(size);
  12. -- test where units change up
  13. SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
  14. (VALUES (10239::bigint), (10240::bigint),
  15. (10485247::bigint), (10485248::bigint),
  16. (10736893951::bigint), (10736893952::bigint),
  17. (10994579406847::bigint), (10994579406848::bigint),
  18. (11258449312612351::bigint), (11258449312612352::bigint)) x(size);
  19. SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
  20. (VALUES (10239::numeric), (10240::numeric),
  21. (10485247::numeric), (10485248::numeric),
  22. (10736893951::numeric), (10736893952::numeric),
  23. (10994579406847::numeric), (10994579406848::numeric),
  24. (11258449312612351::numeric), (11258449312612352::numeric)) x(size);
  25. -- pg_size_bytes() tests
  26. SELECT size, pg_size_bytes(size) FROM
  27. (VALUES ('1'), ('123bytes'), ('1kB'), ('1MB'), (' 1 GB'), ('1.5 GB '),
  28. ('1TB'), ('3000 TB'), ('1e6 MB')) x(size);
  29. -- case-insensitive units are supported
  30. SELECT size, pg_size_bytes(size) FROM
  31. (VALUES ('1'), ('123bYteS'), ('1kb'), ('1mb'), (' 1 Gb'), ('1.5 gB '),
  32. ('1tb'), ('3000 tb'), ('1e6 mb')) x(size);
  33. -- negative numbers are supported
  34. SELECT size, pg_size_bytes(size) FROM
  35. (VALUES ('-1'), ('-123bytes'), ('-1kb'), ('-1mb'), (' -1 Gb'), ('-1.5 gB '),
  36. ('-1tb'), ('-3000 TB'), ('-10e-1 MB')) x(size);
  37. -- different cases with allowed points
  38. SELECT size, pg_size_bytes(size) FROM
  39. (VALUES ('-1.'), ('-1.kb'), ('-1. kb'), ('-0. gb'),
  40. ('-.1'), ('-.1kb'), ('-.1 kb'), ('-.0 gb')) x(size);
  41. -- invalid inputs
  42. SELECT pg_size_bytes('1 AB');
  43. SELECT pg_size_bytes('1 AB A');
  44. SELECT pg_size_bytes('1 AB A ');
  45. SELECT pg_size_bytes('9223372036854775807.9');
  46. SELECT pg_size_bytes('1e100');
  47. SELECT pg_size_bytes('1e1000000000000000000');
  48. SELECT pg_size_bytes('1 byte'); -- the singular "byte" is not supported
  49. SELECT pg_size_bytes('');
  50. SELECT pg_size_bytes('kb');
  51. SELECT pg_size_bytes('..');
  52. SELECT pg_size_bytes('-.');
  53. SELECT pg_size_bytes('-.kb');
  54. SELECT pg_size_bytes('-. kb');
  55. SELECT pg_size_bytes('.+912');
  56. SELECT pg_size_bytes('+912+ kB');
  57. SELECT pg_size_bytes('++123 kB');