Repository navigation
pg_nanotime 0.2.0
pg_nanotime 0.2.0(PostgreSQL 17 / 18)
升級:安裝新版後執行
ALTER EXTENSION pg_nanotime UPDATE TO '0.2.0';(library 有 preload 時請先重啟 PostgreSQL。)
新增
sum(nanointerval)、avg(nanointerval)聚合:int128 精確累加,溢位時報錯nanointerval out of range;avg四捨五入到奈秒(剛好一半時遠離 0,與nanointerval / bigint一致);忽略 NULL,沒有資料時回傳 NULL;支援平行查詢與視窗函式移動聚合。新增回歸測試agg。- 擴充套件版本升到 0.2.0:新增升級腳本
pg_nanotime--0.1.0--0.2.0.sql,可用ALTER EXTENSION pg_nanotime UPDATE從 0.1.0 升級;CI 會檢查升級後與全新安裝的物件一致。 abs(nanointerval)(範圍對稱,最小值也能取負,不會溢位)。generate_series(start, stop, step nanointerval),支援nanotimestamptz、nanotimestamptz8、nanotimestamp:與 PostgreSQL 語意一致(包含 stop、step 0 報錯、負 step 往回數),在型別範圍邊緣不會繞回;附 planner support 函式,常數參數時列數估計精確。nanointerval_from_ns(double precision)(四捨五入遠離 0;NaN/Infinity 報明確錯誤;超過 2^53 ns 會失去精度,已寫入文件)與精確的nanointerval_from_ns(bigint)(避免整數參數被解析到 double precision 版本)。新增回歸測試series。- 測試:新增回歸測試
coverage,補上 COVERAGE.md 列出的 6 個缺口(interval + nanotimestamptz/nanotimestamptz8、nanotimestamptz8 - interval、bigint * nanointerval、nanointerval / bigint、其他 3 型別的<>、percentile_disc直接用在 nanointerval)。沒有程式碼變更。 - 文件:新增
docs/COVERAGE.md功能與測試涵蓋表(所有物件、對應回歸測試、驗證版本、案例、缺口、變更影響指南);CONTRIBUTING 規定功能變更要在同一個 commit 更新它。 - 文件:說明沒有
numeric → nanointerval轉型,請用nanointerval_from_ns(numeric)。 tools/check_examples.py與make check-docs:檢查docs/EXAMPLES.md的程式碼區塊與examples回歸測試逐行一致。- GitHub Actions「Docs examples」流程:範例文件或測試變動時自動執行上述檢查(不需安裝 PostgreSQL)。
修正
nanointerval_from_ns('NaN'::numeric)與 ±Infinity 改報cannot convert NaN to nanointerval/cannot convert infinity to nanointerval,不再是nanointerval out of range。- 文件:GUIDE.md 誤寫百分位數要先轉 bigint;實際上
percentile_disc可直接用在nanointerval,只有percentile_cont不行。 - 文件:設了
partition_func的 hypertable,drop_chunks的older_than必須是 bigint(::nanotimestamptz8::bigint);兩種情況都列出。 - 文件:
nanotime_migrate_column的預設目標是 16 Bnanotimestamptz(bigint 來源也一樣),要 8 B 需傳入'nanotimestamptz8'。 - 文件:
extract_ns('nanosecond', ts)與 PG 的 microsecond 欄位一樣包含整數秒,並附範例。 - 文件:說明擴充套件不會阻止混用
now()/timestamptz(隱式轉型),這是使用慣例。 - 文件:設了
partition_func時 TimescaleDB 預設索引建在分區運算式上,建議另建(ts DESC)索引;TECHNICAL.md 新增索引支援矩陣。
完整變更:v0.1.0...v0.2.0