Custom partitioning
By default, TimescaleDB calls Postgres's internal hash function for the given type. You use a custom partitioning function for value types that do not have a native Postgres hash function.
You can specify a custom partitioning function for both range and hash partitioning. A partitioning function should take a anyelement argument as the only parameter and return a positive integer hash value. This hash value is not a partition identifier, but rather the inserted value's position in the dimension's key space, which is then divided across the partitions.