From: | Mariano Reingart <reingart(at)gmail(dot)com> |
---|---|
To: | Javier Fritz Aliste <javier(dot)fritz(at)lanix(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Consulta PyReplica |
Date: | 2009-10-02 21:28:44 |
Message-ID: | 5aebd8250910021428q5fd1e675r136ab24fa854a0e8@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
2009/10/2 Javier Fritz Aliste <javier(dot)fritz(at)lanix(dot)cl>
> Hola.
>
> Como estan, hace algun tiempo pedi ayuda sobre una solución de
> replicación, he optado por PyReplica , y tengo el siguiente problema.quizas
> de simple la solución,
>
> Tengo 3 servidores, cada uno tiene conexión con dos maestros remotos,
> funciona aceptablemente bien, esta montado en servidores con salida a
> internet con un trafico aun de prueba.
>
> Al grano, al realizar una insercion en una tabla que posee un campo
> bigint, el triger esta capturando el query pero para el valor de este campo
> lo concatena con "L", no se si esto es correcto, ya que al ejectuar este
> query, se por el esclavo pyreplica o extrayendolo manualmente y
> ejecutandolo sobre la base genera el error.
>
>
Hola Javier, parece ser un tema de conversión entre postgresql y python, una
solucion podria ser modificar el código del disparador en plpython para que
detecte los bigint de pg (long en python) y no le agregue la L al
convertirlos para el query sql:
# function to convert value from python to postgres representation
def mogrify(v):
if v is None: return 'NULL'
if isinstance(v,long): return str(v) # no agregar L a long (bigint)
if isinstance(v,basestring):
r = repr(v)
if not r.startswith('\"'):
return r
else:
# postgres doesn't support ", replace and escape '
return "'%s'" % r.replace("'","\\'")[1:-1]
return "'%s'" % repr(v) # to get rid of bool that are passed as ints
(solved in pg8.3)
Lo que hay que agregar es la linea verde despues de if v is None..
(respetando la identación):
if isinstance(v,long): return str(v)
No lo probé pero tendría que funcionar, cualquier cosa avisame
Sds
Mariano
From | Date | Subject | |
---|---|---|---|
Next Message | Javier Fritz Alsite | 2009-10-02 21:32:24 | Re: Consulta PyReplica |
Previous Message | Javier Fritz Alsite | 2009-10-02 21:19:38 | Re: Consulta PyReplica |