Skip to content

pg_nanotime 0.1.0

Choose a tag to compare

@bunko666-cloud bunko666-cloud released this 23 Oct 01:34
· 8 commits to main since this release

第一個版本,只支援 PostgreSQL 17 與 18。

新增

  • 型別:
    • nanotimestamptz:16 B {int64 sec, int64 nsec},範圍與 timestamptz 相同。
    • nanotimestamptz8:8 B,int64 Unix 奈秒,範圍 1677–2262。
    • nanotimestamp:不含時區。
    • nanointerval:固定奈秒。
  • I/O:text 為 ISO 8601、9 位小數;也支援 binary send/recv。
  • 比較、min/max、B-tree、hash、BRIN minmax。
  • 轉型:與 timestamptz、timestamp、date、interval、bigint 互轉(bigint 只能明確轉型),轉成微秒時一律 floor。
  • 算術、time_bucket_ns、date_trunc、extract_ns、timezone();所有越界情況都會報錯。
  • 時鐘:
    • clock_ns、now_ns、statement_ns,以及 8 B 版本。
    • clock_ns_monotonic:每個連線內嚴格遞增。
    • clock_ns_global:跨連線嚴格遞增,需要 shared_preload_libraries。
    • nanotime_clock_status()、nanotime_reset_stats()。
    • GUC nanotime.clock_source(realtime/tai)。
  • 遷移:nanotime_migration_expr、nanotime_migrate_column、nanotime_suspect_count。
  • TimescaleDB:ns()、nanotime_now_int8()、nanotime_part、nanotime_part_notz、nanotime_part8。
  • 15 組回歸測試(其中 timescale 為選用),包含驗證 docs/EXAMPLES.md 的 examples;另有 GitHub Actions CI、PGXN META.json、make dist。
  • 文件:README 改寫成給一般使用者看的版本;原 README 內容移到 docs/TECHNICAL.md;新增 docs/GUIDE.md(依情境的使用指南)與 docs/EXAMPLES.md(實際執行的實例)。