<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
lo estoy probando en este instante te cuento el resultado<br>
Gracias :)<br>
<br>
<br>
<br>
Mariano Reingart wrote:
<blockquote
cite="mid:5aebd8250910021428q5fd1e675r136ab24fa854a0e8(at)mail(dot)gmail(dot)com"
type="cite">2009/10/2 Javier Fritz Aliste <span dir="ltr"><<a
moz-do-not-send="true" href="mailto:javier(dot)fritz(at)lanix(dot)cl">javier(dot)fritz(at)lanix(dot)cl</a>></span><br>
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div bgcolor="#ffffff" text="#000000">Hola.<br>
<br>
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, <br>
<br>
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.<br>
<br>
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.<br>
<br>
</div>
</blockquote>
<div><br>
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:<br>
<br>
# function to convert value from python to postgres representation<br>
def mogrify(v):<br>
if v is None: return 'NULL' <br>
<span style="color: rgb(0, 153, 0);"> if isinstance(v,long):
return str(v) # no agregar L a long (bigint)</span><br>
if isinstance(v,basestring): <br>
r = repr(v)<br>
if not r.startswith('\"'):<br>
return r<br>
else:<br>
# postgres doesn't support ", replace and escape '<br>
return "'%s'" % r.replace("'","\\'")[1:-1]<br>
return "'%s'" % repr(v) # to get rid of bool that are passed as
ints (solved in pg8.3)<br>
<br>
Lo que hay que agregar es la linea verde despues de if v is None..
(respetando la identación):<br>
<span style="color: rgb(0, 153, 0);"><span
style="color: rgb(0, 0, 0);">if isinstance(v,long): return str(v)</span><br>
<br>
</span>No lo probé pero tendría que funcionar, cualquier cosa avisame<br>
Sds<br>
Mariano<br>
</div>
</div>
</blockquote>
<br>
</body>
</html>