rw_int256 values can be very large, and therefore require more memory and processing power compared to smaller data types.
 
Overview
rw_int256 is a custom data type that represents a signed 256-bit integer with a storage size of 32 bytes.
It is designed to handle large integer values, and can be useful in financial calculations, cryptography, and data analysis.
Usage
You can define a column with the rw_int256 type:
CREATE TABLE table_name (column_name rw_int256);
 
CREATE TABLE t (v rw_int256);
INSERT INTO t VALUES (1), (100), (10000), (100000000), (10000000000000000), ('100000000000000000000000000000000'), (0), (-1), (-100), (-10000), (-100000000), (-10000000000000000), ('-100000000000000000000000000000000');
 
Casting
You can also convert other data types to rw_int256:
cast ('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe' AS rw_int256);
-- or
'10000000000000000' :: rw_int256;
 
Or convert rw_int256 to double.
Supported functions
count
Returns the number of non-null rows.
count ( [ DISTINCT ] rw_int256 ) -> bigint
 
min
Returns the minimum value in a set of values.
min ( rw_int256 ) -> rw_int256
 
-100000000000000000000000000000000
 
max
Returns the maximum value in a set of values.
max ( rw_int256 ) -> rw_int256
 
100000000000000000000000000000000
 
sum
Returns the sum of all input values.
sum ( [ DISTINCT ] rw_int256 ) -> rw_int256
 
avg
Returns the average (arithmetic mean) of the selected values.
avg ( [ DISTINCT ] rw_int256 ) -> double
 
hex_to_int256
Converts a hexadecimal string to a 256-bit integer.
hex_to_int256 ( string ) -> rw_int256
 
SELECT hex_to_int256('0xdeadbeef');
 
SELECT hex_to_int256('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01');
 
Standard deviation and variance
Returns population standard deviation, sample standard deviation, population variance, and sample variance.
stddev_pop ( rw_int256 ) -> double -- standard deviation
stddev_samp ( rw_int256 ) -> double -- sample standard deviation
var_pop ( rw_int256 ) -> double -- population variance
var_samp ( rw_int256 ) -> double -- sample variance
 
SELECT stddev_pop(v), stddev_samp(v), var_pop(v), var_samp(v) FROM t;
 
       stddev_pop       |     stddev_samp      |        var_pop         |        var_samp
------------------------+----------------------+------------------------+------------------------
 3.9223227027636808e+31 | 4.08248290463863e+31 | 1.5384615384615386e+63 | 1.6666666666666666e+63
(1 row)