Re: Index expressions: how to recreate

From: Andreas Pflug <pgadmin(at)pse-consulting(dot)de>
To: PostgreSQL Development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Index expressions: how to recreate
Date: 2003-07-01 21:43:45
Message-ID: 3F020091.4040309@pse-consulting.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tom Lane wrote:

>Andreas Pflug <pgadmin(at)pse-consulting(dot)de> writes:
>
>
>>I noticed the new expression functionality of indices and while
>>implementing them in pgadmin3 was wonderingnow to extract the definition
>>from the catalog.
>>
>>
>
>The best way is to use pg_get_indexdef(indexOID), same as pg_dump and
>psql do.
>
>
So far for the SQL window, which will show just a plain (and hopefully
nicely formatted. readable) sql query to recreate the index. Still, a
verbose display of the indexes property is not possible this way, unless
I parse the pg_get_indexdef output...

pg_get_indexdef converts that string to a list of nodes (not
surprising), while pg_get_expr whill join these list elements with an
explicit and (according to a comment, needed for partial index). Do I
need to retrieve indexprs and split it myself (counting brackets) or is
there a pg_xxx function that could help me (pg_get_element(indexprs,
0...n)) ?

>Actually it should be read as 1 0 4 0. The output converter for
>int2vector suppresses trailing zeroes, for largely-historical reasons.
>
Ok, I understand that, because indkey[n>4] will deliver 0 too, and
indnatts will show that 4 arguments are needed.

Regards,
Andreas

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jan Wieck 2003-07-01 21:57:18 Re: Is Patch Ok for deferred trigger disk queue?
Previous Message Andreas Pflug 2003-07-01 21:38:34 Re: [HACKERS] Index expressions: how to recreate