zio / zio-sql

Type-safe, composable SQL for ZIO applications
https://zio.dev/zio-sql/
Apache License 2.0
236 stars 116 forks source link

Remove Postgres compile time dependency and implement custom interval class #369

Open brbrown25 opened 3 years ago

brbrown25 commented 3 years ago

While working on #295 it was discovered that the PGInterval class does not allow for setting weeks as a constructor argument. Based on discussion here https://github.com/zio/zio-sql/pull/295#discussion_r558342729 we should remove the compile time dependency and implement a custom PGInterval that will allow for setting all supported parameters.

brbrown25 commented 3 years ago

Of note, make_interval will convert weeks into a days representation, so we need to make sure we account for that. for example select make_interval(years => 1, months => 3, weeks => 2, days => 2, hours => 3, mins => 1, secs => 1.0); will return ``` make_interval

1 year 3 mons 16 days 03:01:01`` where 2 weeks = 14 days + 2 days to yield 16 days in the result Similarlyselect make_interval(weeks => 1);` will yield 7 days.

brbrown25 commented 3 years ago

Gonna pick back up on this, this week.