pg.ddx.io  pgsql-admin@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Greg Sabino Mullane <greg@turnstep.com>
To: pgsql-admin@postgresql.org
Subject: Re: pg_repack issues
Date: Wed, 12 Nov 2014 02:26:23 -0000
Message-ID: <8b20bab72ec52ccdfa256be7ec739d41@biglumber.com> (raw)
In-Reply-To: <CADyzmywDKBOgMuG4-GMsMUxApA5iWfa84Bkq603ifGeJxAmJFA@mail.gmail.com>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-admin>


-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160


Mark Steben wrote:
> ERROR: query failed: ERROR:  value "3048471620" is out of 
> range for type integer
> DETAIL: query was: SELECT pg_try_advisory_lock($1, $2)
>
> This happens because the oid values of the tables is this database are
> all over 2 GB.  Can I get some insight to make pg_repack work in this
> situation?

That was an unfortunate choice they made in having their second (int) 
argument be an OID. A quick fix would be to have it use the single (bigint) 
form of pg_try_advisory_lock. Something like this (untested):

diff --git a/bin/pg_repack.c b/bin/pg_repack.c
index af510ca..d638164 100644
- --- a/bin/pg_repack.c
+++ b/bin/pg_repack.c
@@ -1520,13 +1520,12 @@ static bool advisory_lock(PGconn *conn, const char *relid)
 {
    PGresult       *res = NULL;
    bool            ret = false;
- -   const char     *params[2];
+ const char     *params[1];

- -   params[0] = REPACK_LOCK_PREFIX_STR;
- -   params[1] = relid;
+ params[0] = relid;

- -   res = pgut_execute(conn, "SELECT pg_try_advisory_lock($1, $2)",
- -                      2, params);
+ res = pgut_execute(conn, "SELECT pg_try_advisory_lock($1)",
+                    1, params);

    if (PQresultStatus(res) != PGRES_TUPLES_OK) {
        elog(ERROR, "%s",  PQerrorMessage(connection));




You also may want to raise this as an official issue here:

https://github.com/reorg/pg_repack/issues

- -- 
Greg Sabino Mullane greg@turnstep.com
End Point Corporation http://www.endpoint.com/
PGP Key: 0x14964AC8 201411112120
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iEYEAREDAAYFAlRixSsACgkQvJuQZxSWSsjuFwCfRvWEMeP3Rnb7F0HuRvIMNKwi
wNwAoPq3Sg6Q64C2tK/FdLdTHBo3zqlm
=DiA9
-----END PGP SIGNATURE-----




-- 
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin



view thread (3+ messages)  latest in thread

Message-ID: <8b20bab72ec52ccdfa256be7ec739d41@biglumber.com>
Permalink:  ../8b20bab72ec52ccdfa256be7ec739d41@biglumber.com/
Also on:    postgresql.org/message-id/8b20bab72ec52ccdfa256be7ec739d41@biglumber.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-admin@postgresql.org
  Cc: greg@turnstep.com
  Subject: Re: pg_repack issues
  In-Reply-To: <8b20bab72ec52ccdfa256be7ec739d41@biglumber.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox