Re: xlog location arithmetic - Mailing list pgsql-hackers

From Magnus Hagander
Subject Re: xlog location arithmetic
Date
Msg-id CABUevEzBfLk=8Q9NHAJyNMQPRRvSNAsE+dS2gBiFON8VG5cBCw@mail.gmail.com
Whole thread Raw
In response to xlog location arithmetic  (Euler Taveira de Oliveira <euler@timbira.com>)
Responses Re: xlog location arithmetic  (Robert Haas <robertmhaas@gmail.com>)
Re: xlog location arithmetic  (Euler Taveira de Oliveira <euler@timbira.com>)
List pgsql-hackers
On Tue, Dec 6, 2011 at 05:19, Euler Taveira de Oliveira
<euler@timbira.com> wrote:
> Hi,
>
> A while ago when blogging about WAL [1], I noticed a function to deal with
> xlog location arithmetic is wanted. I remembered Depez [2] mentioning it and
> after some questions during trainings and conferences I decided to translate
> my shell script function in C.
>
> The attached patch implements the function pg_xlog_location_diff (bikeshed
> colors are welcome). It calculates the difference between two given
> transaction log locations. Now that we have pg_stat_replication view, it will
> be easy to get the lag just passing columns as parameters. Also, the
> monitoring tools could take advantage of it instead of relying on a fragile
> routine to get the lag.

I've been considering similar things, as you can find in the archives,
but what I was thinking of was converting the number to just a plain
bigint, then letting the user apply whatever arithmetic wanted at the
SQL level. I never got around to acutally coding it, though. It could
easily be extracted from your patch of course - and I think that's a
more flexible approach. Is there some advantage to your method that
I'm missing?

Also, why do you use DirectFunctionCall to do the simple math, and not
just do the math right there in the function?

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


pgsql-hackers by date:

Previous
From: Volker Grabsch
Date:
Subject: Adding XSLT support to PostgreSQL core?
Next
From: Nicolas Barbier
Date:
Subject: Re: Inlining comparators as a performance optimisation