OK, here is one more try. I discovered the `total_time` argument to the `pgss_store()` function! So we can calculate the finish time without calling `GetCurrentTimestamp()`.
This is version 3 of the patch adding a `stats_last_updated` column (yes, again) to pg_stat_statements. Based on feedback, this version improves the implementation with better performance and correctness. The main improvement uses `statement_start + execution_duration` with `rint(total_time * 1000.0)` to convert milliseconds to microseconds with proper rounding. The calculation performed BEFORE acquiring spinlock and assigned within locked scope. I'm wondering how we all missed this trick from the very beginning and started to argue if `GetCurrentTimestamp()` is heavy or not. :) Best regards, Pavlo
v3-0001-pg_stat_statements-Add-stats_last_updated-column.patch
Description: Binary data
