dbsize.out 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  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. size | pg_size_pretty | pg_size_pretty
  6. ------------------+----------------+----------------
  7. 10 | 10 bytes | -10 bytes
  8. 1000 | 1000 bytes | -1000 bytes
  9. 1000000 | 977 kB | -977 kB
  10. 1000000000 | 954 MB | -954 MB
  11. 1000000000000 | 931 GB | -931 GB
  12. 1000000000000000 | 909 TB | -909 TB
  13. (6 rows)
  14. SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
  15. (VALUES (10::numeric), (1000::numeric), (1000000::numeric),
  16. (1000000000::numeric), (1000000000000::numeric),
  17. (1000000000000000::numeric),
  18. (10.5::numeric), (1000.5::numeric), (1000000.5::numeric),
  19. (1000000000.5::numeric), (1000000000000.5::numeric),
  20. (1000000000000000.5::numeric)) x(size);
  21. size | pg_size_pretty | pg_size_pretty
  22. --------------------+----------------+----------------
  23. 10 | 10 bytes | -10 bytes
  24. 1000 | 1000 bytes | -1000 bytes
  25. 1000000 | 977 kB | -977 kB
  26. 1000000000 | 954 MB | -954 MB
  27. 1000000000000 | 931 GB | -931 GB
  28. 1000000000000000 | 909 TB | -909 TB
  29. 10.5 | 10.5 bytes | -10.5 bytes
  30. 1000.5 | 1000.5 bytes | -1000.5 bytes
  31. 1000000.5 | 977 kB | -977 kB
  32. 1000000000.5 | 954 MB | -954 MB
  33. 1000000000000.5 | 931 GB | -931 GB
  34. 1000000000000000.5 | 909 TB | -909 TB
  35. (12 rows)
  36. -- test where units change up
  37. SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
  38. (VALUES (10239::bigint), (10240::bigint),
  39. (10485247::bigint), (10485248::bigint),
  40. (10736893951::bigint), (10736893952::bigint),
  41. (10994579406847::bigint), (10994579406848::bigint),
  42. (11258449312612351::bigint), (11258449312612352::bigint)) x(size);
  43. size | pg_size_pretty | pg_size_pretty
  44. -------------------+----------------+----------------
  45. 10239 | 10239 bytes | -10239 bytes
  46. 10240 | 10 kB | -10 kB
  47. 10485247 | 10239 kB | -10239 kB
  48. 10485248 | 10 MB | -10 MB
  49. 10736893951 | 10239 MB | -10239 MB
  50. 10736893952 | 10 GB | -10 GB
  51. 10994579406847 | 10239 GB | -10239 GB
  52. 10994579406848 | 10 TB | -10 TB
  53. 11258449312612351 | 10239 TB | -10239 TB
  54. 11258449312612352 | 10240 TB | -10240 TB
  55. (10 rows)
  56. SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
  57. (VALUES (10239::numeric), (10240::numeric),
  58. (10485247::numeric), (10485248::numeric),
  59. (10736893951::numeric), (10736893952::numeric),
  60. (10994579406847::numeric), (10994579406848::numeric),
  61. (11258449312612351::numeric), (11258449312612352::numeric)) x(size);
  62. size | pg_size_pretty | pg_size_pretty
  63. -------------------+----------------+----------------
  64. 10239 | 10239 bytes | -10239 bytes
  65. 10240 | 10 kB | -10 kB
  66. 10485247 | 10239 kB | -10239 kB
  67. 10485248 | 10 MB | -10 MB
  68. 10736893951 | 10239 MB | -10239 MB
  69. 10736893952 | 10 GB | -10 GB
  70. 10994579406847 | 10239 GB | -10239 GB
  71. 10994579406848 | 10 TB | -10 TB
  72. 11258449312612351 | 10239 TB | -10239 TB
  73. 11258449312612352 | 10240 TB | -10240 TB
  74. (10 rows)
  75. -- pg_size_bytes() tests
  76. SELECT size, pg_size_bytes(size) FROM
  77. (VALUES ('1'), ('123bytes'), ('1kB'), ('1MB'), (' 1 GB'), ('1.5 GB '),
  78. ('1TB'), ('3000 TB'), ('1e6 MB')) x(size);
  79. size | pg_size_bytes
  80. ----------+------------------
  81. 1 | 1
  82. 123bytes | 123
  83. 1kB | 1024
  84. 1MB | 1048576
  85. 1 GB | 1073741824
  86. 1.5 GB | 1610612736
  87. 1TB | 1099511627776
  88. 3000 TB | 3298534883328000
  89. 1e6 MB | 1048576000000
  90. (9 rows)
  91. -- case-insensitive units are supported
  92. SELECT size, pg_size_bytes(size) FROM
  93. (VALUES ('1'), ('123bYteS'), ('1kb'), ('1mb'), (' 1 Gb'), ('1.5 gB '),
  94. ('1tb'), ('3000 tb'), ('1e6 mb')) x(size);
  95. size | pg_size_bytes
  96. ----------+------------------
  97. 1 | 1
  98. 123bYteS | 123
  99. 1kb | 1024
  100. 1mb | 1048576
  101. 1 Gb | 1073741824
  102. 1.5 gB | 1610612736
  103. 1tb | 1099511627776
  104. 3000 tb | 3298534883328000
  105. 1e6 mb | 1048576000000
  106. (9 rows)
  107. -- negative numbers are supported
  108. SELECT size, pg_size_bytes(size) FROM
  109. (VALUES ('-1'), ('-123bytes'), ('-1kb'), ('-1mb'), (' -1 Gb'), ('-1.5 gB '),
  110. ('-1tb'), ('-3000 TB'), ('-10e-1 MB')) x(size);
  111. size | pg_size_bytes
  112. -----------+-------------------
  113. -1 | -1
  114. -123bytes | -123
  115. -1kb | -1024
  116. -1mb | -1048576
  117. -1 Gb | -1073741824
  118. -1.5 gB | -1610612736
  119. -1tb | -1099511627776
  120. -3000 TB | -3298534883328000
  121. -10e-1 MB | -1048576
  122. (9 rows)
  123. -- different cases with allowed points
  124. SELECT size, pg_size_bytes(size) FROM
  125. (VALUES ('-1.'), ('-1.kb'), ('-1. kb'), ('-0. gb'),
  126. ('-.1'), ('-.1kb'), ('-.1 kb'), ('-.0 gb')) x(size);
  127. size | pg_size_bytes
  128. --------+---------------
  129. -1. | -1
  130. -1.kb | -1024
  131. -1. kb | -1024
  132. -0. gb | 0
  133. -.1 | 0
  134. -.1kb | -102
  135. -.1 kb | -102
  136. -.0 gb | 0
  137. (8 rows)
  138. -- invalid inputs
  139. SELECT pg_size_bytes('1 AB');
  140. ERROR: invalid size: "1 AB"
  141. DETAIL: Invalid size unit: "AB".
  142. HINT: Valid units are "bytes", "kB", "MB", "GB", and "TB".
  143. SELECT pg_size_bytes('1 AB A');
  144. ERROR: invalid size: "1 AB A"
  145. DETAIL: Invalid size unit: "AB A".
  146. HINT: Valid units are "bytes", "kB", "MB", "GB", and "TB".
  147. SELECT pg_size_bytes('1 AB A ');
  148. ERROR: invalid size: "1 AB A "
  149. DETAIL: Invalid size unit: "AB A".
  150. HINT: Valid units are "bytes", "kB", "MB", "GB", and "TB".
  151. SELECT pg_size_bytes('9223372036854775807.9');
  152. ERROR: bigint out of range
  153. SELECT pg_size_bytes('1e100');
  154. ERROR: bigint out of range
  155. SELECT pg_size_bytes('1e1000000000000000000');
  156. ERROR: value overflows numeric format
  157. SELECT pg_size_bytes('1 byte'); -- the singular "byte" is not supported
  158. ERROR: invalid size: "1 byte"
  159. DETAIL: Invalid size unit: "byte".
  160. HINT: Valid units are "bytes", "kB", "MB", "GB", and "TB".
  161. SELECT pg_size_bytes('');
  162. ERROR: invalid size: ""
  163. SELECT pg_size_bytes('kb');
  164. ERROR: invalid size: "kb"
  165. SELECT pg_size_bytes('..');
  166. ERROR: invalid size: ".."
  167. SELECT pg_size_bytes('-.');
  168. ERROR: invalid size: "-."
  169. SELECT pg_size_bytes('-.kb');
  170. ERROR: invalid size: "-.kb"
  171. SELECT pg_size_bytes('-. kb');
  172. ERROR: invalid size: "-. kb"
  173. SELECT pg_size_bytes('.+912');
  174. ERROR: invalid size: ".+912"
  175. SELECT pg_size_bytes('+912+ kB');
  176. ERROR: invalid size: "+912+ kB"
  177. DETAIL: Invalid size unit: "+ kB".
  178. HINT: Valid units are "bytes", "kB", "MB", "GB", and "TB".
  179. SELECT pg_size_bytes('++123 kB');
  180. ERROR: invalid size: "++123 kB"