147 lines
5.2 KiB
Plaintext
147 lines
5.2 KiB
Plaintext
SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
|
|
(VALUES (10::bigint), (1000::bigint), (1000000::bigint),
|
|
(1000000000::bigint), (1000000000000::bigint),
|
|
(1000000000000000::bigint)) x(size);
|
|
size | pg_size_pretty | pg_size_pretty
|
|
------------------+----------------+----------------
|
|
10 | 10 bytes | -10 bytes
|
|
1000 | 1000 bytes | -1000 bytes
|
|
1000000 | 977 kB | -977 kB
|
|
1000000000 | 954 MB | -954 MB
|
|
1000000000000 | 931 GB | -931 GB
|
|
1000000000000000 | 909 TB | -909 TB
|
|
(6 rows)
|
|
|
|
SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
|
|
(VALUES (10::numeric), (1000::numeric), (1000000::numeric),
|
|
(1000000000::numeric), (1000000000000::numeric),
|
|
(1000000000000000::numeric),
|
|
(10.5::numeric), (1000.5::numeric), (1000000.5::numeric),
|
|
(1000000000.5::numeric), (1000000000000.5::numeric),
|
|
(1000000000000000.5::numeric)) x(size);
|
|
size | pg_size_pretty | pg_size_pretty
|
|
--------------------+----------------+----------------
|
|
10 | 10 bytes | -10 bytes
|
|
1000 | 1000 bytes | -1000 bytes
|
|
1000000 | 977 kB | -977 kB
|
|
1000000000 | 954 MB | -954 MB
|
|
1000000000000 | 931 GB | -931 GB
|
|
1000000000000000 | 909 TB | -909 TB
|
|
10.5 | 10.5 bytes | -10.5 bytes
|
|
1000.5 | 1000.5 bytes | -1000.5 bytes
|
|
1000000.5 | 977 kB | -977 kB
|
|
1000000000.5 | 954 MB | -954 MB
|
|
1000000000000.5 | 931 GB | -931 GB
|
|
1000000000000000.5 | 909 TB | -909 TB
|
|
(12 rows)
|
|
|
|
SELECT size, pg_size_bytes(size) FROM
|
|
(VALUES ('1'), ('123bytes'), ('1kB'), ('1MB'), (' 1 GB'), ('1.5 GB '),
|
|
('1TB'), ('3000 TB'), ('1e6 MB')) x(size);
|
|
size | pg_size_bytes
|
|
----------+------------------
|
|
1 | 1
|
|
123bytes | 123
|
|
1kB | 1024
|
|
1MB | 1048576
|
|
1 GB | 1073741824
|
|
1.5 GB | 1610612736
|
|
1TB | 1099511627776
|
|
3000 TB | 3298534883328000
|
|
1e6 MB | 1048576000000
|
|
(9 rows)
|
|
|
|
-- case-insensitive units are supported
|
|
SELECT size, pg_size_bytes(size) FROM
|
|
(VALUES ('1'), ('123bYteS'), ('1kb'), ('1mb'), (' 1 Gb'), ('1.5 gB '),
|
|
('1tb'), ('3000 tb'), ('1e6 mb')) x(size);
|
|
size | pg_size_bytes
|
|
----------+------------------
|
|
1 | 1
|
|
123bYteS | 123
|
|
1kb | 1024
|
|
1mb | 1048576
|
|
1 Gb | 1073741824
|
|
1.5 gB | 1610612736
|
|
1tb | 1099511627776
|
|
3000 tb | 3298534883328000
|
|
1e6 mb | 1048576000000
|
|
(9 rows)
|
|
|
|
-- negative numbers are supported
|
|
SELECT size, pg_size_bytes(size) FROM
|
|
(VALUES ('-1'), ('-123bytes'), ('-1kb'), ('-1mb'), (' -1 Gb'), ('-1.5 gB '),
|
|
('-1tb'), ('-3000 TB'), ('-10e-1 MB')) x(size);
|
|
size | pg_size_bytes
|
|
-----------+-------------------
|
|
-1 | -1
|
|
-123bytes | -123
|
|
-1kb | -1024
|
|
-1mb | -1048576
|
|
-1 Gb | -1073741824
|
|
-1.5 gB | -1610612736
|
|
-1tb | -1099511627776
|
|
-3000 TB | -3298534883328000
|
|
-10e-1 MB | -1048576
|
|
(9 rows)
|
|
|
|
-- different cases with allowed points
|
|
SELECT size, pg_size_bytes(size) FROM
|
|
(VALUES ('-1.'), ('-1.kb'), ('-1. kb'), ('-0. gb'),
|
|
('-.1'), ('-.1kb'), ('-.1 kb'), ('-.0 gb')) x(size);
|
|
size | pg_size_bytes
|
|
--------+---------------
|
|
-1. | -1
|
|
-1.kb | -1024
|
|
-1. kb | -1024
|
|
-0. gb | 0
|
|
-.1 | 0
|
|
-.1kb | -102
|
|
-.1 kb | -102
|
|
-.0 gb | 0
|
|
(8 rows)
|
|
|
|
-- invalid inputs
|
|
SELECT pg_size_bytes('1 AB');
|
|
ERROR: invalid size: "1 AB"
|
|
DETAIL: Invalid size unit: "AB".
|
|
HINT: Valid units are "bytes", "kB", "MB", "GB", and "TB".
|
|
SELECT pg_size_bytes('1 AB A');
|
|
ERROR: invalid size: "1 AB A"
|
|
DETAIL: Invalid size unit: "AB A".
|
|
HINT: Valid units are "bytes", "kB", "MB", "GB", and "TB".
|
|
SELECT pg_size_bytes('1 AB A ');
|
|
ERROR: invalid size: "1 AB A "
|
|
DETAIL: Invalid size unit: "AB A".
|
|
HINT: Valid units are "bytes", "kB", "MB", "GB", and "TB".
|
|
SELECT pg_size_bytes('9223372036854775807.9');
|
|
ERROR: bigint out of range
|
|
SELECT pg_size_bytes('1e100');
|
|
ERROR: bigint out of range
|
|
SELECT pg_size_bytes('1e1000000000000000000');
|
|
ERROR: invalid size: "1e1000000000000000000"
|
|
SELECT pg_size_bytes('1 byte'); -- the singular "byte" is not supported
|
|
ERROR: invalid size: "1 byte"
|
|
DETAIL: Invalid size unit: "byte".
|
|
HINT: Valid units are "bytes", "kB", "MB", "GB", and "TB".
|
|
SELECT pg_size_bytes('');
|
|
ERROR: invalid size: ""
|
|
SELECT pg_size_bytes('kb');
|
|
ERROR: invalid size: "kb"
|
|
SELECT pg_size_bytes('..');
|
|
ERROR: invalid size: ".."
|
|
SELECT pg_size_bytes('-.');
|
|
ERROR: invalid size: "-."
|
|
SELECT pg_size_bytes('-.kb');
|
|
ERROR: invalid size: "-.kb"
|
|
SELECT pg_size_bytes('-. kb');
|
|
ERROR: invalid size: "-. kb"
|
|
SELECT pg_size_bytes('.+912');
|
|
ERROR: invalid size: ".+912"
|
|
SELECT pg_size_bytes('+912+ kB');
|
|
ERROR: invalid size: "+912+ kB"
|
|
DETAIL: Invalid size unit: "+ kB".
|
|
HINT: Valid units are "bytes", "kB", "MB", "GB", and "TB".
|
|
SELECT pg_size_bytes('++123 kB');
|
|
ERROR: invalid size: "++123 kB"
|