[Bucardo-general] Adding sync fails due to missing custom type definition

Alex Balashov abalashov at evaristesys.com
Fri Nov 19 02:05:10 UTC 2010


P.S.  I know 'prefix_range' actually works because we have many columns 
of that type in our table definitions.

The 'prefix_range' operator classes provide seamless conversion from 
prefix_range to varchar, as well.

On 11/18/2010 09:00 PM, Alex Balashov wrote:

> Greetings,
>
> I am attempting to use the Bucardo git master HEAD with PostgreSQL v9.0
> to do swap replication between a local and a remote database[1].  The
> source is called 'dmm1' and the destination is called 'dmm2'.
>
> Now, the fly in the ointment is that we are using a custom third-party
> operator class for certain telephony-related applications:
>
>      http://prefix.projects.postgresql.org/
>
> When I try to add the sync, I get this error:
>
> bucardo at pg1:/root$ bucardo_ctl add sync dmm_sync source=alpha
> targetdb=dmm2 type=swap --verbose
> LOG:  Starting validate_sync for dmm_sync
> CONTEXT:  PL/Perl function "validate_sync"
> SQL statement "SELECT validate_sync('dmm_sync')"
> PL/Perl function "validate_sync"
> WARNING:  Issuing rollback() due to DESTROY without explicit
> disconnect() of DBD::Pg::db handle
> dbname=dmm2;host=xxx.xxx.xxx.xxx;port=5432 at line 29.
> CONTEXT:  PL/Perl function "validate_sync"
> SQL statement "SELECT validate_sync('dmm_sync')"
> PL/Perl function "validate_sync"
> WARNING:  Issuing rollback() due to DESTROY without explicit
> disconnect() of DBD::Pg::db handle dbname=dmm;port=5432 at line 29.
> CONTEXT:  PL/Perl function "validate_sync"
> SQL statement "SELECT validate_sync('dmm_sync')"
> PL/Perl function "validate_sync"
> Failed to add sync: DBD::Pg::st execute failed: ERROR:  DBD::Pg::db do
> failed: ERROR:  type "prefix_range" does not exist
> LINE 1: ...cardo_delta((rowid::int4),(rowid2::int4),(rowid3::prefix_ran...
>                                                                ^ at line
> 787. at line 30.
> CONTEXT:  PL/Perl function "validate_sync" at /usr/local/bin/bucardo_ctl
> line 3677.
>
>
> I have imported the 'prefix_range' operator class and type definitions
> into all three databases in play:  (1) dmm1, (2) dmm2, and (3) the
> bucardo meta-database itself.  Yet I still get this error.  Any
> suggestions on how to figure out from where exactly it is that the
> 'prefix_range' definition is missing, and what to do about it?
>
> Thanks a lot,
>
> -- Alex
>
>
> [1]  Not the last release tarball, because pg_listener went away
>        in Pg v9.0, as described in a blog post from End Point.
>


-- 
Alex Balashov - Principal
Evariste Systems LLC
1170 Peachtree Street NE
12th Floor, Suite 1200
Atlanta, GA 30309
Tel: +1-678-954-0670
Fax: +1-404-961-1892
Web: http://www.evaristesys.com/


More information about the Bucardo-general mailing list