On Wed, May 22, 2024 at 5:21 AM Durgamahesh Manne <maheshpostgr...@gmail.com> wrote:
> Hi > > Postgres supports only upto microseconds (6 decimal precision). > How do we generate timestamp with nanoseconds as rds postgres not > supported timestamp9 extension ? > Is there a way to generate timestamp with nanoseconds precision on > pg_partman with epoch without typecasting or with typecasting ? > > p_epoch => (to_timestamp(control column)) > Here what is the control column? > How to run it with the create_parent function of partman? > > Here as per the pg_partman doc > p_epoch - tells pg_partman that the control column is an integer type, but > actually represents an epoch time value. Valid values for this option are: > 'seconds', 'milliseconds', 'nanoseconds', and 'none'. The default is > 'none'. All table names will be time-based. In addition to a normal index > on the control column, be sure you create a functional, time-based index on > the control column (to_timestamp(control column)) as well so this works > efficiently. > > > Regards, > Durga Mahesh Manne > > The option in pg_partman simply multiples the normal epoch value by 1000000000 then converts it with to_timestamp(). https://github.com/pgpartman/pg_partman/blob/master/sql/functions/create_partition_time.sql#L119C64-L119C74 I'd already had the millisecond option in partman for epoch, and someone requested nanosecond precision. It was easy to add the option so I did it for them, and anyone else that may find it useful. How you actually implement that level of time precision in an epoch value in your environment is entirely up to you. -- Keith Fiske Senior Database Engineer Crunchy Data - http://crunchydata.com