-- int pow to scalar lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(5::int, ints) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof -------------+----------- {5,NULL,25} | integer[] (1 row) -- int pow to scalar rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(ints, 5::int) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof -------------+----------- {1,NULL,32} | integer[] (1 row) -- int pow to array SELECT r, pg_typeof(r) FROM (SELECT vec_pow(ints, ints) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ------------+----------- {1,NULL,4} | integer[] (1 row) -- int pow to null scalar lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::int, ints) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ------------------+----------- {NULL,NULL,NULL} | integer[] (1 row) -- int pow to null scalar rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(ints, NULL::int) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ------------------+----------- {NULL,NULL,NULL} | integer[] (1 row) -- int pow scalar to null array lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(5::int, NULL::int[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | integer[] (1 row) -- int pow scalar to null array rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::int[], 5::int) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | integer[] (1 row) -- int pow to null array lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(ints, NULL::int[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | integer[] (1 row) -- int pow to null array rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::int[], ints) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | integer[] (1 row) -- null int pow to null scalar lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::int, NULL::int[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | integer[] (1 row) -- null int pow to null scalar rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::int[], NULL::int) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | integer[] (1 row) -- null int pow to null array SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::int[], NULL::int[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | integer[] (1 row) -- float pow to scalar lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(5::float, floats) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof -------------+-------------------- {5,NULL,25} | double precision[] (1 row) -- float pow to scalar rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(floats, 5::float) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof -------------+-------------------- {1,NULL,32} | double precision[] (1 row) -- float pow to array SELECT r, pg_typeof(r) FROM (SELECT vec_pow(floats, floats) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ------------+-------------------- {1,NULL,4} | double precision[] (1 row) -- float pow to null scalar lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::float, floats) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ------------------+-------------------- {NULL,NULL,NULL} | double precision[] (1 row) -- float pow to null scalar rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(floats, NULL::float) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ------------------+-------------------- {NULL,NULL,NULL} | double precision[] (1 row) -- float pow scalar to null array lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(5::float, NULL::float[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+-------------------- | double precision[] (1 row) -- float pow scalar to null array rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::float[], 5::float) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+-------------------- | double precision[] (1 row) -- float pow to null array lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(floats, NULL::float[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+-------------------- | double precision[] (1 row) -- float pow to null array rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::float[], floats) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+-------------------- | double precision[] (1 row) -- null float pow to null scalar lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::float, NULL::float[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+-------------------- | double precision[] (1 row) -- null float pow to null scalar rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::float[], NULL::float) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+-------------------- | double precision[] (1 row) -- null float pow to null array SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::float[], NULL::float[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+-------------------- | double precision[] (1 row) -- numeric pow to scalar lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(5::numeric, nums) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ----------------------------------------------+----------- {7.2399089640616945,NULL,43.210551585736423} | numeric[] (1 row) -- numeric pow to scalar rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(nums, 5::numeric) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof -----------------------------------------------+----------- {2.8153056843000000,NULL,70.1583371424000000} | numeric[] (1 row) -- numeric pow to array SELECT r, pg_typeof(r) FROM (SELECT vec_pow(nums, nums) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ----------------------------------------------+----------- {1.2899809210012809,NULL,7.3108034201885126} | numeric[] (1 row) -- numeric pow to null scalar lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::numeric, nums) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ------------------+----------- {NULL,NULL,NULL} | numeric[] (1 row) -- numeric pow to null scalar rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(nums, NULL::numeric) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ------------------+----------- {NULL,NULL,NULL} | numeric[] (1 row) -- numeric pow scalar to null array lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(5::numeric, NULL::numeric[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | numeric[] (1 row) -- numeric pow scalar to null array rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::numeric[], 5::numeric) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | numeric[] (1 row) -- numeric pow to null array lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(nums, NULL::numeric[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | numeric[] (1 row) -- numeric pow to null array rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::numeric[], nums) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | numeric[] (1 row) -- null numeric pow to null scalar lhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::numeric, NULL::numeric[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | numeric[] (1 row) -- null numeric pow to null scalar rhs SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::numeric[], NULL::numeric) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | numeric[] (1 row) -- null numeric pow to null array SELECT r, pg_typeof(r) FROM (SELECT vec_pow(NULL::numeric[], NULL::numeric[]) FROM measurements WHERE sensor_id IN (4)) r(r); r | pg_typeof ---+----------- | numeric[] (1 row)