Re: md5 of table - Mailing list pgsql-general

From Merlin Moncure
Subject Re: md5 of table
Date
Msg-id CAHyXU0zaZ_W0f=xOv+APJ70BzFfC4PRmqKMoVuOM0b+-4nea8w@mail.gmail.com
Whole thread Raw
In response to Re: md5 of table  (Grzegorz Jaśkiewicz <gryzman@gmail.com>)
Responses Re: md5 of table
Re: md5 of table
List pgsql-general
2011/9/1 Grzegorz Jaśkiewicz <gryzman@gmail.com>:
> On Thu, Sep 1, 2011 at 11:14 AM, Sim Zacks <sim@compulab.co.il> wrote:
>> On 09/01/2011 12:26 PM, Pavel Stehule wrote:
>>>
>>> Hello
>>>
>>> postgres=# create table tt(a int, b varchar);
>>> CREATE TABLE
>>> postgres=# insert into tt values(10,'hello');
>>> INSERT 0 1
>>>
>>> postgres=# select md5(array_to_string(array_agg(md5(tt::text)),'')) from
> I do that as well, but it might have questionable performance when
> your table has 16M rows, and is 50GB +

you need order by for that to work.  I would do it like this:
select md5(array(select foo from foo order by foo_pkey)::text);

it's great quick'n'dirty, but not much scalable beyond millions.

OP:
> I thought about using dblink and the EXCEPT query, but then I need to know the field list of each query result, which
isa pain in the butt. 

That is not correct.  As long as the table definitions are precisely
the same, you can move records across dblink without specifying
fields.  You do this by using record type for the composite which
dblink sends across as text.

merlin

pgsql-general by date:

Previous
From: Achilleas Mantzios
Date:
Subject: Re: md5 of table
Next
From: Marcos Hercules Santos
Date:
Subject: Re: function on trigger