Re: [pgsql-es-ayuda] modelo grafico postgresql

2008-10-30 Por tema mauricio
Gracias por la ayuda Alvaro, lo habia estado buscando hacia tiempo, era
exactamente lo que estaba buscando :D
Ya estaba como empezando a resignarme en hacerme un modelo grafico de
arquitectura. pero con esto me basta, y esta mas que claro tambien.




Saludos./

2008/10/30 Alvaro Herrera <[EMAIL PROTECTED]>

> mauricio lay escribió:
> > Que tal lista,
> >
> > junto con saludarlos queria saber si alguien sabe de algun sitio o
> > tiene algun modelo grafico sobre el motor de base de datos, procesos
> > involucrados, demonio, etc.. si bien los procesos y modo de
> funcionamientos
> > del motor es sabido, queria tener un modelo grafico para asi en caso de
> > dudas poder acudir mas rapido.
>
> Hmm, quizás algo así?
>
> http://anoncvs.postgresql.org/cvsweb.cgi/~checkout~/pgsql/src/tools/backend/index.html
>
> O quizás te refieres a esto:
> http://dalibo.org/_media/articles/catalog.png?cache=cache
>
>
> --
> Alvaro Herrera  Valdivia, Chile   Geotag: -39,815 -73,257
> "Porque Kim no hacia nada, pero, eso sí,
> con extraordinario éxito" ("Kim", Kipling)
>


RE: [pgsql-es-ayuda] Gana 12 meses de Jumbo Gratis!

2009-04-07 Por tema mauricio .

WHAT :S 
se supone que esta lista no es para anuncios de este tipo.
Saludos./

To: pgsql-es-ayuda@postgresql.org
Subject: [pgsql-es-ayuda] Gana 12 meses de Jumbo Gratis!
Date: Mon, 6 Apr 2009 23:08:10 -0400
From: cual...@gmail.com

Hola! Ahora puedes ganar 12 meses de Jumbo Gratis.Yo me acabo de inscribir en 
Jumbo para participar. Tienes que entrar en: http://gana.jumbo.cl/ y registrar 
algunos datos. Por cada 10 amigos que invites tienes 10 posibilidades mas de 
ganar.
_
Windows Live Hotmail now works up to 70% faster.
http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_faster_112008

[pgsql-es-ayuda] modify a un campo de una tabla

2009-05-04 Por tema mauricio
Hola lista,

Junto con saludarles tengo el siguiente problema y es que necesito modificar
el tipo de datos qeu es tipo number y pasarlo a varchar2(9) en la practica
es posible hacer ese cambio de manera directa sin la necesidad de usar
tablas de pasos y todo ello ?

Saludos, espero que alguien nos pueda ayudar,
de antemano gracias.


Fwd: [pgsql-es-ayuda] modify a un campo de una tabla

2009-05-04 Por tema mauricio
 Falto indicar que la tabla y la columna poseen registros (no estan vacias),
por eso me complica el tratar de hacer el modify a la columna cambiando el
tipo de datos de number a varchar2(9)

Saludos y de antemano gracias. espero sus respuestas.
El 4 de mayo de 2009 12:47, Ernesto Verbanaz
 escribió:
mauricio escribió:
> Junto con saludarles tengo el siguiente problema y es que necesito
modificar
> el tipo de datos qeu es tipo number y pasarlo a varchar2(9) en la practica
> es posible hacer ese cambio de manera directa sin la necesidad de usar
> tablas de pasos y todo ello ?


>>podrías crear una columna nueva varchar, luego hacer un update con el
>>cast necesario y por último un drop column
ALTER TABLE tabla ALTER COLUMN columna TYPE VARCHAR(9);

Saludos.


[pgsql-es-ayuda] Invitación a conectarnos en LinkedIn

2010-04-23 Por tema Mauricio )
LinkedIn


   
Me gustaría añadirte a mi red profesional en LinkedIn.
 
-Mauricio

Mauricio )
desarrollo en dsp 
Chile

Confirma que conoces a Mauricio )
https://www.linkedin.com/e/isd/1248003626/J973jxBK/


 
--
(c) 2010, LinkedIn Corporation

RE: [pgsql-es-ayuda] Una pregunta simple

2012-08-23 Por tema Mauricio .

Algo asi te serviria ? (no lo he probado :P )  select campox, count(1) as cnt 
from tabla group by campox having cnt > 1;
 saludosMLM. > Date: Thu, 23 Aug 2012 06:04:30 -0500
> Subject: Re: [pgsql-es-ayuda] Una pregunta simple
> From: dlex...@gmail.com
> To: aland.lai...@gmail.com
> CC: jcd...@uci.cu; pgsql-es-ayuda@postgresql.org
> 
> prueba agrupando, seria algo asi..
> Select campox, count(*) as n from tabla group by campox where n not in (1)
> 
> 
> se puede usar un diferente de 1 en vez del not in, pero no encuentro
> los simbolos en el telefono.
> Saludos y espero te funcione
> 
> 
> 
> 
> El 22/08/12, Aland Laines  escribió:
> > Hola, gracias por responder, pero no me funciono, solo quiero que me liste
> > los registros que tienen el numero duplicado en el campo UBIGEO, pero me
> > lista todos..
> >
> >
> > *Aland Laines Calonge*
> > Twitter: @lainessolutions
> > http://about.me/aland.laines
> >
> >
> >
> >
> > El 22 de agosto de 2012 23:10, Julio Cesar Diaz Vera
> > escribió:
> >
> >> **
> >> Puedes probar con algo como esto
> >> select * from tabla as A, tabla as B where A.campo=B.campo
> >> Para que sea mas claro puedes solo mostrar los identificadores de cada
> >> fila y el campo que te interesa que sea igual. Ademas ten en cuenta que
> >> siempre estará la coincidencia de la tupla con ella misma.
> >> Saludos
> >>  julio
> >> El 8/22/2012 11:57 PM, Aland Laines escribió:
> >>
> >>
> >>  Hola amigos, disculpen la pregunta, pero ¿como puedo ver que
> >> registros están duplicados en una tabla?. o mejor dicho ¿que registros
> >> tiene el valor de un campo iguales?
> >>
> >> *Aland Laines Calonge*
> >> Twitter: @lainessolutions
> >>  http://about.me/aland.laines
> >>
> >>
> >>
> >>
> >>   
> >>
> >>
> >
> 
> 
> -- 
> *"nunca temas a donde vayas, que has de morir donde debes"*
> Alexis
> 
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
  

[pgsql-es-ayuda] RE: [pgsql-es-ayuda] Búsqueda con tsearch

2011-02-10 Por tema mauricio .

http://enciclopedia.us.es/index.php/Jurisconsulto

Saludos.
Mauricio.

> From: info...@vtr.net
> To: ja...@2ndquadrant.com
> Subject: Re: [pgsql-es-ayuda] Búsqueda con tsearch
> Date: Thu, 10 Feb 2011 13:32:36 -0300
> CC: pgsql-es-ayuda@postgresql.org; alvhe...@alvh.no-ip.org
> 
> On Jue 10 Feb 2011 13:20:26 Jaime Casanova escribió:
> > 2011/2/10 Carlos Bazán :
> > > Justamente estimado Doctor jurisconsulto,
> > 
> > en algunas culturas (casi todas) esto podria tomarse como un insulto ;)
> > en todo caso Álvaro si necesitas cargar con el peso y no sabes como
> > resolver el problema avisaras, yo te ayudo con gusto y estoy seguro
> > que Gunnar y Rafael tambien se apuntan...
> > 
> > PS: debo dejar de hacer comentarios que solo unos cuantos de nosotros
> > entendemos
> 
> Jaime, sería interesante que me explicaras que significa exactamente para tu 
> cultura el que a una persona la llamen doctor jurisconsulto.
> Acá en Chile se denomina así a una persona de amplios conocimientos en temas 
> variados y esta lejos, pero muuu lejos de ser un insulto. Es al 
> contrario. 
> 
> Quedo a la espera de tu explicación acerca del término jurisconsulto y como 
> este podría insultar a una persona... (por lo menos para tenerlo en mis 
> conocimientos).
> 
> Gracias
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
> Para cambiar tu suscripci�n:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
  

[pgsql-es-ayuda] Linea de Comandos

2008-07-24 Por tema Mauricio Lopez
Hola...

Me por favor, me podrían ayudar diciéndome qué instrucción uso para q en la
linea de comandos de postgres pueda recuperar las instrucciones
anteriormente digitadas con solo pulsar las teclas de flechas, y cómo puedo
activar la opción autocompletar???

Gracias
Mauricio
--


Re: [pgsql-es-ayuda] Linea de Comandos

2008-07-24 Por tema Mauricio Lopez
Pero no está funcionando, ¿cómo lo activo?

Gracias

2008/7/24 Alvaro Herrera <[EMAIL PROTECTED]>:

> Mauricio Lopez escribió:
> > Alvaro, gracias por responder...
> >
> > Mira yo estoy trabajando bajo plataforma Linux en modo consola, necesito
> > saber al menos como recuperar las instrucciones anteriormente digitadas
> > usando solamente las flechas...
>
> Ah, bueno, si es sobre Linux, debería funcionar.  Si lo estás compilando
> tú mismo, debes tener soporte readline.  Si viene de paquete (¿qué
> distro?) entonces debería funcionar.
>
> PD: por favor mantén la lista en CC
>
> --
> Alvaro Herrera
> http://www.flickr.com/photos/alvherre/
> "No renuncies a nada. No te aferres a nada."
>



-- 
-
Ing. Mauricio López Benítez


Re: [pgsql-es-ayuda] Linea de Comandos

2008-07-25 Por tema Mauricio Lopez
Gracias Alvaro, hice lo q me dijiste y en efecto esta linea no aparece:

libreadline.so.5 => /lib/libreadline.so.5 (0x7feeeaa8f000)
Ahora la pregunta es, como hago para recompilarlo o hacer q me funcione?

gracias de nuevo...

Mauricio

2008/7/25 Alvaro Herrera <[EMAIL PROTECTED]>:

> Mauricio Lopez escribió:
> > Pero no está funcionando, ¿cómo lo activo?
>
> Si no funciona seguramente es porque psql no fue compilado con soporte
> readline.  Ejecuta
> ldd `which psql`
> debería mostrarte una línea con "libreadline".  Si no la muestra, no
> tienes soporte.  Aquí se ve así:
>
> $ ldd `which psql`
>linux-vdso.so.1 =>  (0x733fe000)
>libpq.so.5 => /pgsql//install/00head/lib/libpq.so.5
> (0x7feeeaf1c000)
>libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x7feeeacce000)
>libreadline.so.5 => /lib/libreadline.so.5 (0x7feeeaa8f000)
>libc.so.6 => /lib/libc.so.6 (0x7feeea747000)
>libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8
> (0x7feeea3ba000)
>libcrypt.so.1 => /lib/libcrypt.so.1 (0x7feeea183000)
>libpthread.so.0 => /lib/libpthread.so.0 (0x7feee9f68000)
>libdl.so.2 => /lib/libdl.so.2 (0x7feee9d64000)
>libz.so.1 => /usr/lib/libz.so.1 (0x7feee9b4d000)
>libncurses.so.5 => /lib/libncurses.so.5 (0x7feee991)
>/lib64/ld-linux-x86-64.so.2 (0x7feeeb13e000)
>
> La cuarta línea es la importante.
>
> --
> Alvaro Herrera
> http://www.amazon.com/gp/registry/3BP7BYG9PUGI8
> "La vida es para el que se aventura"
>



-- 
-
Ing. Mauricio López Benítez


Re: [pgsql-es-ayuda] Linea de Comandos

2008-07-25 Por tema Mauricio Lopez
Mandrake 7

gracias

On Fri, Jul 25, 2008 at 9:36 AM, Alvaro Herrera <[EMAIL PROTECTED]>
wrote:

> Mauricio Lopez escribió:
> > Gracias Alvaro, hice lo q me dijiste y en efecto esta linea no aparece:
> >
> > libreadline.so.5 => /lib/libreadline.so.5 (0x7feeeaa8f000)
> > Ahora la pregunta es, como hago para recompilarlo o hacer q me funcione?
>
> No respondiste que distribucion de Linux estas usando.
>
> --
> Alvaro Herrera  Valdivia, Chile   Geotag: -39,815 -73,257
> "Hackers share the surgeon's secret pleasure in poking about in gross
> innards,
> the teenager's secret pleasure in popping zits." (Paul
> Graham)
>



-- 
-
Ing. Mauricio López Benítez


[pgsql-es-ayuda] Crystal Enterprise 9

2008-07-31 Por tema Mauricio Lopez
Hola...

Terngo instalado Crystal Reports 9 con el cual saco reportes de mi BD
postgres y funciona perfectamente; ahora me han pedido instalar Crystal
Enterprise 9 y aunque la intalación parece correcta al abrir el Raport
Aplication Server Launchpad me sale como error q no encuentra el rassamples,
yo la verdad ni siquiera tengo muy claro que puedo hacer con este enterprise
y no he encontrado buena documentacion...

Alguien me podria ayudar??? Gracias


-
 Mauricio López Benítez


[pgsql-es-ayuda] Crystal Enterprise 9

2008-08-06 Por tema Mauricio Lopez
Hola...

Terngo instalado Crystal Reports 9 con el cual saco reportes de mi BD
postgres y funciona perfectamente; ahora me han pedido instalar Crystal
Enterprise 9 y aunque la intalación parece correcta al abrir el Raport
Aplication Server Launchpad me sale como error q no encuentra el rassamples,
yo la verdad ni siquiera tengo muy claro que puedo hacer con este enterprise
y no he encontrado buena documentacion...

Alguien me podria ayudar??? Gracias


-
 Mauricio López Benítez



-- 
-
Ing. Mauricio López Benítez


Re: [pgsql-es-ayuda] RECARGAR PG_HBA

2008-08-27 Por tema Mauricio Reyes
Es primera vez que escribo a la lista , espero que me puedan ayudar .

Necesito saber el rendimiento de postgresql  , ya que necesito hacer un
desarrollo de formularios y mi jefe no cree mucho en las bondades que le
cuento de post y quiero demostrarle con documentacion lo bien que anda esta
bd .

Saludos a todos
y espero que me puedan ayudar


[pgsql-es-ayuda] Linea de Comandos Postgres

2008-09-01 Por tema Mauricio Lopez
Hola...

Alguien me puede decir de donde se puede descargar la libreria libreadline,
para poder usar el autocompletar en la linea de comandos de postgres...

Uso Linux Mandriva

Gracias

 Mauricio López Benítez


Re: [pgsql-es-ayuda] Linea de Comandos

2008-09-01 Por tema Mauricio Lopez
Hola, Gracias por responder...

Yo veo que tengo el paquete "libreadline.so.5" en   "/lib", pero creo que el
postgres no fue compilado con ella pq en la linea de comandos no me
funciona...

Sé que tengo que revisar el ./configure (pero no se por donde lo encuentro)
y sé que eventualmente tengo que volver a compilar el portgres (pero no se
como hacerlo)...  te agradeceria si me puedes dar unas indicaciones...

Mauricio






2008/7/25 Alvaro Herrera <[EMAIL PROTECTED]>

> Mauricio Lopez escribió:
> > Mandrake 7
>
> Uh eso es mas viejo que los calzones que tejía mi abuela ...  ¿No
> tienes algo mas moderno?
>
> Debería funcionar.  Imagino que lo estás compilando tú mismo.  En ese
> caso lo único que debes asegurarte es que al hacer el "./configure" no
> le des el --disable-readline.
>
> A todo esto, ¿qué versión de Postgres estás usando?
>
> --
> Alvaro Herrera
> http://www.flickr.com/photos/alvherre/
> "I must say, I am absolutely impressed with what pgsql's implementation of
> VALUES allows me to do. It's kind of ridiculous how much "work" goes away
> in
> my code.  Too bad I can't do this at work (Oracle 8/9)."   (Tom
> Allison)
>
> http://archives.postgresql.org/pgsql-general/2007-06/msg00016.php
>


[pgsql-es-ayuda] modelo arquitectonico postgresql

2008-10-30 Por tema mauricio lay
Que tal lista,

junto con saludarlos queria saber si alguien sabe de algun sitio o tiene
algun modelo grafico sobre el motor de base de datos, procesos involucrados,
demonio, etc.. si bien los procesos y modo de funcionamientos del motor es
sabido, queria tener un modelo grafico para asi en caso de dudas poder
acudir mas rapido.

esperando tener buena acogida.

Saludos.


[pgsql-es-ayuda] modelo grafico postgresql

2008-10-30 Por tema mauricio lay
Que tal lista,

junto con saludarlos queria saber si alguien sabe de algun sitio o
tiene algun modelo grafico sobre el motor de base de datos, procesos
involucrados, demonio, etc.. si bien los procesos y modo de funcionamientos
del motor es sabido, queria tener un modelo grafico para asi en caso de
dudas poder acudir mas rapido.

esperando tener buena acogida.

Saludos.


[pgsql-es-ayuda] modelo grafico postgresql

2008-10-30 Por tema mauricio lay
 Que tal lista,

junto con saludarlos queria saber si alguien sabe de algun sitio o
tiene algun modelo grafico sobre el motor de base de datos, procesos
involucrados, demonio, etc.. si bien los procesos y modo de funcionamientos
del motor es sabido, queria tener un modelo grafico para asi en caso de
dudas poder acudir mas rapido.

esperando tener buena acogida.

Saludos.


Re: [pgsql-es-ayuda] PGDAY2008 (PostgreSQL)

2008-11-05 Por tema Mauricio Reyes
se agradece ya que por un problema de ubicacion no podemos asistir.

El 5 de noviembre de 2008 10:19, Javier Chávez B. <[EMAIL PROTECTED]>escribió:

> 2008/11/5 Emanuel CALVO FRANCO <[EMAIL PROTECTED]>:
> > El día 5 de noviembre de 2008 11:05, Javier Chávez B.
> > <[EMAIL PROTECTED]> escribió:
> >> 2008/11/5 Teófilo Oviedo <[EMAIL PROTECTED]>:
> >>> Amigos,
> >>>
> >>>
> >>> Se me vino una idea más por si les parezca interesante.
> >>>
> >>> Si les parece se puede hacer un net-meeting con personas que no están
> en
> >>> el PGDay en el momento de organizar a la comunidad.
> >>
> >> Yo habia pedido eso pero me da la impresion que se les dificulta el
> >> tema logistico a los organizadores ... no se si sera posible despues
> >> subir documentacion de las reuniones o ponencias...
> >>
> > Si un poco, --> Y se entiende!! ...
>
> pero lo estamos teniendo en cuenta. Todavia nos quedan un par  de
> reuniones para ver ese tipo de cosas.
>
> Con la documentacion quedo agradecido ...
>
>
> >
> >>> Me refiero a que se pueda dar voz y voto a través de Internet a
> aquellos
> >>> que por A o B motivo no pudieron ir pero siempre aportan a la lista.
> >>> Se puede hacer un tipo de conferencia vía Net. No se me viene en mente
> >>> algún software que pueda hacer eso pero sería bueno.
> >>> Esto a fin de dar mayor participación a los que pueden dar su grano de
> >>> arena al momento de la organización que creo que va a ser entre las
> >>> 16:30 y 18:00hs.
> >>>
> >>> Mis más cordiales saludos,
> >>>
> > todas las ideas seran tomadas.
>
>  Se agradece
>
> Slds..
>
> >>> Teófilo Oviedo
> >>
> >> Slds a to2
> >> J
> >>> PD: Por fa no olviden de anotarme como colaborador para la traducción.
> >>> Puedo aportar mi pequeño conocimiento de inglés y la disposición
> >>> completa de un web server, mail server, PostgreSQL server.
> >>>
> >>>
> >>>
> >>>
> >>> El lun, 03-11-2008 a las 09:48 -0200, Emanuel CALVO FRANCO escribió:
> >>>> Muchas gracias por dar propaganda al evento!
> >>>>
> >>>> Compañero, el link que mencionas no existe ;P cuando me refería a la
> pestaña,
> >>>> es necesario ingresar a la página www.postgres-arg.org y luego,
> dentro
> >>>> de la página,
> >>>> seleccionar la pestaña de participar :D
> >>>>
> >>>> Con respecto a los banners, esta por favor al tanto por que de seguro
> >>>> saldrá algo en estos días.
> >>>>
> >>>> Saludos!
> >>>> Emanuel
> >>>>
> >>>> El día 2 de noviembre de 2008 23:45, Peter Eisinger
> >>>> <[EMAIL PROTECTED]> escribió:
> >>>> > El día 2 de noviembre de 2008 18:43, Emanuel CALVO FRANCO
> >>>> > <[EMAIL PROTECTED]> escribió:
> >>>> >>
> /*--
> >>>> >>
> >>>> >>Bienvenidos a:
> >>>> >>PGDay 2008 Rio de la Plata
> >>>> >>Organizado por la comunidad de PostgreSQL de Bs As (BaPUG)
> >>>> >>Web: www.postgres-arg.org
> >>>> >>
> >>>> >>
> 
> >>>> >>
> >>>> >>
> >>>> >>El día Sábado 22 de noviembre de 2008, se celebrará el 1er
> >>>> >> PGDay de Argentina, el cual intenta concentrar a la comunidad de
> >>>> >> latinoamérica con el fin de organizar los proyectos como comunidad
> >>>> >> en el cono sur.
> >>>> >
> >>>> > Hola,
> >>>> > Felicitaciiones por la inicitiva, muy necesaria por cierto, como
> dicen
> >>>> > uds: pg lo amerita.
> >>>> >
> >>>> > Desde PL y de muy buena gana, le estamos dando difusión al evento:
> >>>> > http://www.preguntaslinux.org/-ar-pgday-regional-t-4886.html
> >>>> >
> >>>> > Veo link roto en
> >>>> > http://www.postgres-arg.org/participar
> >>>> >
> >>>> > Avisen si hacen banners y algo tipo:
> >>>> > http://www.crisolargentina.org.ar/drupal/?q=node/51
> >>>> >
> >>>> > Exitos!
> >>>> >
> >>>> >
> >>>> > --
> >>>> > Cordiales saludos,
> >>>> > Peter Eisinger
> >>>> >
> >>>> > http://PreguntasLinux.Org Comunidad de Software Libre
> >>>> > Foro GNU/Linux/FLOSS/*NIX Support Installfest FLISoL SFD
> >>>> >
> >>>>
> >>>>
> >>>>
> >>> --
> >>> Teófilo Oviedo
> >>> ACTIVE S.R.L.
> >>> http://www.active.com.py
> >>>
> >>> --
> >>> TIP 2: puedes desuscribirte de todas las listas simultáneamente
> >>>(envía "unregister TuDirecciónDeCorreo" a [EMAIL PROTECTED])
> >>>
> >>
> >>
> >>
> >> --
> >> Cumprimentos
> >> jchavez
> >> linux User #397972 on http://counter.li.org/
> >>
> >
> >
> >
> > --
> >Emanuel Calvo Franco
> >   Syscope Postgresql DBA
> > BaPUG / AOSUG Member
> > --
> > TIP 2: puedes desuscribirte de todas las listas simultáneamente
> >(envía "unregister TuDirecciónDeCorreo" a [EMAIL PROTECTED])
> >
>
>
>
> --
> Cumprimentos
> jchavez
> linux User #397972 on http://counter.li.org/
> --
> TIP 4: No hagas 'kill -9' a postmaster
>



-- 
Mauricio A. Reyes A.

[EMAIL PROTECTED]
Codigo Postal 929-3732


[pgsql-es-ayuda] consulta sobre una base

2008-11-18 Por tema Mauricio Reyes
Es primera vez que escribo a la lista a ver si me pueden ayudar

tengo un select

$sql="SELECT  DISTINCT ON (ageneral.opciones)
ageneral.rut,ageneral.opciones,ageneral.aportemin,ageneral.diferencia,remesa.aportminister_total,remesa.codigo
,remesa.total_girado,rendicion.aportercero_total FROM
ageneral,remesa,rendicion where ageneral.rut=remesa.rut  order by
ageneral.opciones ";//, remesa ;
$result = pg_query($sql);
$resultmax= ($result);

y quiero que me deje la suma del campo ,remesa.total_girado,  en una
variable para poder tener la suma que el trae desde la base de datos .
-- 
Mauricio A. Reyes A.

[EMAIL PROTECTED]
Codigo Postal 929-3732


[pgsql-es-ayuda] postgres 8.3.0 en mauinas con 64 bits

2009-05-13 Por tema Mauricio Rojas
Hola a todos:
 
Tengo un gran problema con una instalación.  Bueno les cuento que instale 
postgres 8.3.0 en Redhat 4 64.
 
El único problema es que cuando quiero instalar php con compatibilidad 
postgres. El make de php me dice versión incompatible y trata de buscar un 
archivo pg_conf_x64 que no lo encuentra.
 
Por alguien me puede ayudar
 
Gracias
 
 
 

[pgsql-es-ayuda] Equivalente de @@TRANCOUNT en postgresql

2015-08-07 Por tema mauricio pullabuestan
Buen día.
Estoy revisando una aplicación que utiliza Postgresql 9.4, al parecer esta 
dejando abierto un begin transaction, con Sql Server utilizo @@TRANCOUNT para 
saber si existe una transacción, cual sería el equivalente en PostgreSql.
Hay manera de revisar el historial de DML que afectaron una db y ver si existen 
transacciones pendientes.

El servidor esta en una maquina virtual con centos 5.4 me conecto a esta por 
navicat o PGAdmin III, existe manera de mandar a reiniciar PostgreSql desde 
navicat o pgAdmin o tengo que hacerlo desde la maquina virtual cual serían los 
comandos.
Saludos 
Mauricio.

[pgsql-es-ayuda] Saber cuantas tablas dependen de otra tabla

2015-08-27 Por tema mauricio pullabuestan
Buen día.

En una base de datos tengo una tablacon varias tablas dependientes es decir 
tengo declara integridad referencial entre estas tablas
Estamos en proceso de desarrollo ymigración, existe varios sistemas que están 
ocupando estastablas, por varios motivos tenemos la necesidad de volver a 
migrar latabla padre (por así decirlo)Tenemos un programa para migrar que:   
   - inserta 
   - elimina los datos actuales y luego inserta.

Al ser ser una tabla padre que tienes tablasdependientes no me va a permitir 
eliminar los datos, como puedomediante código conocer las relaciones de la 
tabla padre, paraapagarlas y después de migrar volver a prender las relaciones, 
esposible hacer esto por código?
Estamos conscientes que se van apresentar problemas, que tendríamos que 
arreglarlos al paso.
Otra posible solución, sería creartablas auxiliares, migrar datos y luego hacer 
un Merge, este procesosería largo, tedioso y se tendría que hacer por cada 
tabla padre,es por eso que tratamos de automatizarlo mediante este programa.
Los datos que se migran son tablas deVisual Foxpro y los nombres de los campos 
son completamentedistintos, además de tener muchos campos, es por eso que 
nosapoyamos en un programa.
Saludos.Mauricio


Re: [pgsql-es-ayuda] Saber cuantas tablas dependen de otra tabla

2015-08-27 Por tema mauricio pullabuestan
Gerardo y Alvaro gracias por la ayuda.
Las relaciones no son deferables, pg_contrainst y 
information_schema.table_constraints tiene parte de la información que necesito.
Hacer un ALTER TABLE DROP CONSTRAINT y luego ALTER TABLE ADD CONSTRAINT es lo 
que necesito, pero como puedo obtener la información para hacerlo.
Ej. quiero migrar la tabla Item que está relacionado con movimientos, precios, 
stock, proformas, etc. como obtengo un listado de las tablas relacionadas, el 
nombre y la definición de la relación, necesito que esto sea transparente para 
el usuario, que simplemente escoja la tabla a migrar y el programa se ocupe de 
hacer ALTER TABLE DROP CONSTRAINT, TRUNCATE, MIGRAR Y ALTER TALBE ADD CONSTRAINT
Saludos.Mauricio
 


 El Jueves 27 de agosto de 2015 11:14, Gerardo Herzig  
escribió:
   

 La vista pg_contraints seria un buen punto de partida:
http://www.postgresql.org/docs/current/static/catalog-pg-constraint.html

Puede tambien ser util hacer "psql -E db_name". Luego, haciendo un \d 
nombre_tabla se expondran las consultas internas realizadas. Con un poco de 
trabajo, podras deducir como `psql' te muestra la conformacion de foreign keys.

Otra opcion. Si las FK estan creadas como "deferrables", puedes diferirlas al 
final de la transaccion.
http://www.postgresql.org/docs/current/static/sql-set-constraints.html

HTH
Gerardo

- Mensaje original -
> De: "mauricio pullabuestan" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Jueves, 27 de Agosto 2015 12:14:21
> Asunto: [pgsql-es-ayuda] Saber cuantas tablas dependen de otra tabla
> 
> 
> 
> 
> Buen día.
> 
> 
> 
> 
> En una base de datos tengo una tabla con varias tablas dependientes
> es decir tengo declara integridad referencial entre estas tablas
> 
> 
> Estamos en proceso de desarrollo y migración, existe varios sistemas
> que están ocupando estas tablas, por varios motivos tenemos la
> necesidad de volver a migrar la tabla padre (por así decirlo)
> Tenemos un programa para migrar que:
> 
>    1.
> inserta
>    2.
> elimina los datos actuales y luego inserta.
> 
> 
> 
> Al ser ser una tabla padre que tienes tablas dependientes no me va a
> permitir eliminar los datos, como puedo mediante código conocer las
> relaciones de la tabla padre, para apagarlas y después de migrar
> volver a prender las relaciones, es posible hacer esto por código?
> 
> 
> Estamos conscientes que se van a presentar problemas, que tendríamos
> que arreglarlos al paso.
> 
> 
> Otra posible solución, sería crear tablas auxiliares, migrar datos y
> luego hacer un Merge, este proceso sería largo, tedioso y se tendría
> que hacer por cada tabla padre, es por eso que tratamos de
> automatizarlo mediante este programa.
> 
> 
> Los datos que se migran son tablas de Visual Foxpro y los nombres de
> los campos son completamente distintos, además de tener muchos
> campos, es por eso que nos apoyamos en un programa.
> 
> 
> Saludos.
> Mauricio
> 
> 
>

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

  

[pgsql-es-ayuda] Nivel de aislamiento y concurrencía

2015-09-07 Por tema mauricio pullabuestan
Buen día.


Tengo una función que devuelve el próximo número secuencialpara mis documentos, 
los cuales no pueden tener gaps ni overlaps


CREATE OR REPLACEFUNCTION prbsecuencia.movimiento_id(v_movimiento_id integer)

  RETURNS integer AS

$BODY$

Declare v_key_newinteger;

Begin

Update prbsecuencia.secuencia 

 Set secuencia = secuencia + 1

 Where movimiento_id =v_movimiento_id

 RETURNING secuencia INTO v_key_new;

  IF NOT FOUND THEN

    Insert Into prbsecuencia.secuencia Values (v_movimiento_id,1) RETURNING 1 
INTO v_key_new;

END IF;

 Return v_key_new;

 

end; $BODY$

  LANGUAGE plpgsql VOLATILE

  COST 100;

ALTER FUNCTION prbsecuencia.movimiento_id(integer)

  OWNER TO postgres;


 
Entonces desde mi aplicación hago:


 
Begin transaction 

   Select nuevo_id From prbsecuencia.movimiento_id(10)t (nuevo_i)


 
  insert a la tabla cabecera, detalle y una par de tablas más.


 
Commit 


 
Si falla la transacción hago un Rollback.


 
Mis conocimientos en postgresql son básicos, tengo entendido que elnivel de 
aislamiento por default en Postgresql es Read Committed, según elnivel de 
aislamiento y la función no debería tener problemas, para probar hiceuna 
pequeña aplicación con un 

for de 1 a 2 

1.- Comienza una transacción

2.- Recupera el próximo secuencial 

3.- Inserta datos a un par de tablas 

4.- termina la transacción 

Next


 
Instancie 4  veces la aplicacióny corrí la aplicación todo iba bien hasta más o 
menos 9000 interacciones decada instancia entonces se produjo un bloqueo en la 
cuarta instancia, tuve quematar la instancia y las otras 3 instancias pudieron 
acabar el proceso, todoresulto como esperaba, todas la instancias obtuvieron el 
número correspondienteno hubo Gaps y overlaps.


 
La duda porque se dio el bloqueo?


 
Con postgresql basta con el nivel de aislamiento por default para garantizar 
ladistribución correcta o se puede reforzar, como con Sql Server utilizo hints.


 
Como podría hacer para que desde una función llamar a la función  
prbsecuencia.movimiento_id() con 2 parametros, el id de movimiento y una 
variable,dentro de la función se le asigne el próximo número de secuencia a la 
variablepara luego usar la variable ya con el valor correspondiente algo así:


 
CREATE OR REPLACE FUNCTION prbsecuencia.movimiento(parametro1 integer, 
parametro2integer)

  RETURNS Boolean AS

$BODY$

Declare key_newinteger;

Begin


 
Select * From prbsecuencia.movimiento_id(10,key_new);

 Insert Into cabecera (campo1, campo2, campo3) Values(key_new, ‘valor1’,valor2);


 
Insert Into detalle (camp1,campo2, campo3) Values(key_new, ‘a’, ‘b’)

 Return true;

 

end; 

$BODY$

  LANGUAGE plpgsql VOLATILE

  COST 100;

 Por lo que entiendo con el default Read Committed esto en un ambiente 
multiusuarioy con una alta concurrencia no debería tener problemas, si los 
tuvieran cual esla manera correcta de hacerlo.


 

 
Saludos,

Mauricio 



Re: [pgsql-es-ayuda] Nivel de aislamiento y concurrencía

2015-09-08 Por tema mauricio pullabuestan
Hola Horacio.
Gracias por responder
Justamente estoy probando la mejor alternativa para hacer una función que 
dispense correlativos, para toda la aplicación.
Una pregunta, cuando hago un update mitabla set secuencia = secuencia + 1 where 
id = 12 dentro de una transacción y con Read Committed, que tipo de bloqueo se 
aplica? por registro, por pagina o tabla teniendo en cuenta que la tabla es 
pequeña de no mas de 200 registros.
En caso de ser bloqueo diferente a registro seria perjudicial tener una sola 
tabla que tenga los correlativos?
Saludos.Mauricio


 Mauricio. Cuenca-Ecuador 


 El Lunes 7 de septiembre de 2015 22:02, Horacio Miranda 
 escribió:
   

 En mi experiencia, deberías tener un proceso ( único proceso que asigne 
folios a tus documentos ).

muchos procesos pueden insertar datos, pero solo un proceso debiera ser 
el encargado de asignar esos folios. ( cuando era DBA para el registro 
civil de Chile ) fue la única forma de garantizar que los bloqueos se 
mantuvieran al mínimo.

Puedo estar equivocado, pero bajo mucho trafico la aplicación no se 
bloquea y los números de documentos son correlativos.

Es posible para tu aplicación usar esa lógica ?

On 9/8/2015 2:48 PM, mauricio pullabuestan wrote:
> Buen día.
>
> Tengo una función que devuelve el próximo número secuencial para mis
> documentos, los cuales no pueden tener gaps ni overlaps
>
> CREATE OR REPLACE FUNCTION prbsecuencia.movimiento_id(v_movimiento_id
> integer)
>    RETURNS integer AS
> $BODY$
> Declare v_key_new integer;
> Begin
> Update prbsecuencia.secuencia
>  Set secuencia = secuencia + 1
>  Where movimiento_id = v_movimiento_id
> RETURNING secuencia INTO v_key_new;
>  IF NOT FOUND THEN
>      Insert Into prbsecuencia.secuencia Values (v_movimiento_id, 1)
> RETURNING 1 INTO v_key_new;
> END IF;
> Return v_key_new;
> end; $BODY$
>    LANGUAGE plpgsql VOLATILE
>    COST 100;
> ALTER FUNCTION prbsecuencia.movimiento_id(integer)
>    OWNER TO postgres;
> Entonces desde mi aplicación hago:
> Begin transaction
>    Select nuevo_id From prbsecuencia.movimiento_id(10) t (nuevo_i)
>    insert a la tabla cabecera, detalle y una par de tablas más.
> Commit
> Si falla la transacción hago un
> Rollback.
> Mis conocimientos en postgresql son básicos, tengo entendido que el
> nivel de aislamiento por default en Postgresql es Read Committed, según
> el nivel de aislamiento y la función no debería tener problemas, para
> probar hice una pequeña aplicación con un
> for de 1 a 2
> 1.- Comienza una transacción
> 2.- Recupera el próximo secuencial
> 3.- Inserta datos a un par de tablas
> 4.- termina la transacción
> Next
> Instancie 4  veces la aplicación y corrí la aplicación todo iba bien
> hasta más o menos 9000 interacciones de cada instancia entonces se
> produjo un bloqueo en la cuarta instancia, tuve que matar la instancia y
> las otras 3 instancias pudieron acabar el proceso, todo resulto como
> esperaba, todas la instancias obtuvieron el número correspondiente no
> hubo Gaps y overlaps.
> La duda porque se dio el bloqueo?
> Con postgresql basta con el nivel de aislamiento por default para
> garantizar la distribución correcta o se puede reforzar, como con Sql
> Server utilizo hints.
> Como podría hacer para que desde una función llamar a la función
>  prbsecuencia.movimiento_id() con 2 parametros,  el id de movimiento y
> una variable, dentro de la función se le asigne el próximo número de
> secuencia a la variable para luego usar la variable ya con el valor
> correspondiente algo así:
> CREATE OR REPLACE FUNCTION prbsecuencia.movimiento(parametro1 integer,
> parametro2 integer)
>    RETURNS Boolean AS
> $BODY$
> Declare key_new integer;
> Begin
> Select * From prbsecuencia.movimiento_id(10, key_new);
> Insert Into cabecera (campo1, campo2, campo3) Values(key_new, ‘valor1’,
> valor2);
> Insert Into detalle (camp1, campo2, campo3) Values(key_new, ‘a’, ‘b’)
> Return true;
> end;
> $BODY$
>    LANGUAGE plpgsql VOLATILE
>    COST 100;
> Por lo que entiendo con el default Read Committed esto en un ambiente
> multiusuario y con una alta concurrencia no debería tener problemas, si
> los tuvieran cual es la manera correcta de hacerlo.
> Saludos,
> Mauricio

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


  

Re: [pgsql-es-ayuda] Sustentacion de Postgresql

2015-09-11 Por tema mauricio pullabuestan
Hola Javier.
Soy nuevo en Postgresql.
Algo que me llamo mucho la atención es la replicación multi master bi 
direccional que próximamente sera nativo, solo con esto ya ganamos bastante, 
suma lo que te comentan Carlos, Javier, Anthony y Alvaro ya tienes muchas 
razones
Vengo de Sql Server y casi tienen las mismas cosas pero este es de pago.
Saludos. 
Mauricio 


 El Viernes 11 de septiembre de 2015 9:09, Javier Lugo Porras 
 escribió:
   

  Te menciono dos puntos para tu sustentacion:
 
 1. Entiendo que Mysql lo adquirio ORACLE,,,hay que pagar subcripcion, etc... vs
 Postgresql es un opensource,,,dando asi la libertad de usarlo en un numero 
ilimitado de equipos sin tener ese inconvenientes de licenciamiento etc...
 
 2. Hay actualizaciones con frecuencia en un año.
 3. puedes instalarlo en linux, windows y creo que OS...tambien...
 4. con el FDW,,,podras conectarte a otros RDMS mysql, oracle, ms-sql, etc., 
desde el mismo postgresql...
 
 hay muchas caracteristicas y ventajas de que uses postgresqlno dudes...
 
 saludos...
 
 Javier Lugo Porras
 www.multe-commerce.com
 
 
 
 On 09/11/2015 08:57 a.m., Luis Fernando Ortiz Vera wrote:
  
 
 Respetada comunidad hoy recurro a ustedes dado que necesito saber las mas 
importantes características que Postgres tiene sobre MySql; toda vez que tengo 
que justificar porque un proyecto de software utiliza este RDBMS y no el muy 
popular MySql.  
  Conozco las características comunes descritas en la pagina oficial, pero me 
gustaría saber cualidades de fondo desde el punto de vista del kernel del 
sistema de Postgres que lo hacen mas competitivo que MySql. 
  Agradezco toda la ayuda que me puedan dar 
  
  -- 
   
Luis Fernando Ortiz Vera. +Luis Fernando Ortiz Vera | @lfernandortiz 
 |Colombia| 

 
 

  

[pgsql-es-ayuda] Error "temporary" is not a known variable. al crear funcion con Select * INTO TEMPORARY tarifa_rs From t

2015-09-23 Por tema mauricio pullabuestan
Buen día 

Necesito crear una función que recibe 2 string con formato json,al compilar me 
da el error "temporary" is not a known variable.
El código es el siguiente:
CREATE OR REPLACE FUNCTION prb.listado_fn(In w_cab_json varchar, In w_det_json 
varchar)RETURNS TABLE (tarea NUMERIC, operacion VARCHAR, observacion VARCHAR, 
centro VARCHAR, proceso VARCHAR, dpto VARCHAR,                seccion VARCHAR, 
articulo VARCHAR, unidad VARCHAR)AS$BODY$ BEGIN
DROP TABLE IF EXISTS tarifa_rs;
With tAS (Select j.tarea, j.operacion, j.observacion, j.ms_oper, j.mo_tasa, 
j.gf_porcentaje, j.gf_tasa,        sum(j.ms_oper) over (PARTITION BY j.tarea) 
as ms_tar,        CASE j.un When 'Uno' Then 1 When 'Cien' Then 100 When 'Mil'  
Then 1000 END :: NUMERIC(4, 0) As factorFrom 
json_populate_recordset(null::prb.tarifa_detalle_type, w_det_json) j)Select 
t.tarea, t.operacion, t.observacion, t.ms_oper, t.mo_tasa, t.gf_porcentaje, 
t.gf_tasa, t.ms_tar,        row_number() Over(PARTITION By t.tarea ORDER BY 
t.operacion desc) As rn,        Round( (((t.mo_tasa /60) * (t.ms_tar / 
t.factor)) + t.mo_tasa /60) * (t.ms_tar / t.factor)) * (t.gf_porcentaje / 
100)) + t.gf_tasa)), 3) As costo_total        INTO TEMPORARY tarifa_rsFrom t;
Update tarifa_rs    Set ms_tar = 0, costo_total = 0  Where tarifa_rs.rn > 1;
RETURN Query Select d.tarea, d.operacion, d.observacion, d.centro, d.proceso, 
c.dpto, c.seccion, c.articulo, c.unidad From tarifa_rs d CROSS JOIN (Select 
*From json_populate_record(null::prb.tarifa_cabecera_type, w_cab_json::json)) 
cORDER BY d.tarea, d.operacion;
DROP TABLE IF EXISTS tarifa_rs;
END;$BODY$  LANGUAGE plpgsql VOLATILE  COST 100  ROWS 1000;
Cuando corro el código sin crear la función, todo funciona bien, crea la tabla 
temporal y me devuelve los resultados que espero, pero si intento hacer la 
funcion tengo el error, si comento  INTO TEMPORARY tarifa_rs compila sin 
problemas
Como puedo corregir el problema para crear la función.Hay alguna diferencia 
importante en el perform o consumo de recursos al hacer unRETURNS TABLE (tarea 
NUMERIC, operacion VARCHAR, observacion VARCHAR) en lugar de dimencionar los 
camposRETURNS TABLE (tarea NUMERIC(12,2), operacion VARCHAR(6), observacion 
VARCHAR(100))

Saludos.Mauricio

Re: [pgsql-es-ayuda] Error "temporary" is not a known variable. al crear funcion con Select * INTO TEMPORARY tarifa_rs From t

2015-09-25 Por tema mauricio pullabuestan
Gracias Alvaro.
Me sirvió el create temp table..
SaludosMauricio 


 El Miércoles 23 de septiembre de 2015 17:01, Alvaro Herrera 
 escribió:
   

 mauricio pullabuestan escribió:
> Buen día 
> 
> Necesito crear una función que recibe 2 string con formato json,al compilar 
> me da el error "temporary" is not a known variable.
> El código es el siguiente:
> CREATE OR REPLACE FUNCTION prb.listado_fn(In w_cab_json varchar, In 
> w_det_json varchar)RETURNS TABLE (tarea NUMERIC, operacion VARCHAR, 
> observacion VARCHAR, centro VARCHAR, proceso VARCHAR, dpto VARCHAR,           
>      seccion VARCHAR, articulo VARCHAR, unidad VARCHAR)AS$BODY$ BEGIN
> DROP TABLE IF EXISTS tarifa_rs;
> With tAS (Select j.tarea, j.operacion, j.observacion, j.ms_oper, j.mo_tasa, 
> j.gf_porcentaje, j.gf_tasa,        sum(j.ms_oper) over (PARTITION BY j.tarea) 
> as ms_tar,        CASE j.un When 'Uno' Then 1 When 'Cien' Then 100 When 'Mil' 
>  Then 1000 END :: NUMERIC(4, 0) As factorFrom 
> json_populate_recordset(null::prb.tarifa_detalle_type, w_det_json) j)Select 
> t.tarea, t.operacion, t.observacion, t.ms_oper, t.mo_tasa, t.gf_porcentaje, 
> t.gf_tasa, t.ms_tar,        row_number() Over(PARTITION By t.tarea ORDER BY 
> t.operacion desc) As rn,        Round( (((t.mo_tasa /60) * (t.ms_tar / 
> t.factor)) + t.mo_tasa /60) * (t.ms_tar / t.factor)) * (t.gf_porcentaje / 
> 100)) + t.gf_tasa)), 3) As costo_total        INTO TEMPORARY tarifa_rsFrom t;
> Update tarifa_rs    Set ms_tar = 0, costo_total = 0  Where tarifa_rs.rn > 1;
> RETURN Query Select d.tarea, d.operacion, d.observacion, d.centro, d.proceso, 
> c.dpto, c.seccion, c.articulo, c.unidad From tarifa_rs d CROSS JOIN (Select 
> *From json_populate_record(null::prb.tarifa_cabecera_type, w_cab_json::json)) 
> cORDER BY d.tarea, d.operacion;
> DROP TABLE IF EXISTS tarifa_rs;
> END;$BODY$  LANGUAGE plpgsql VOLATILE  COST 100  ROWS 1000;
> Cuando corro el código sin crear la función, todo funciona bien, crea la 
> tabla temporal y me devuelve los resultados que espero, pero si intento hacer 
> la funcion tengo el error, si comento  INTO TEMPORARY tarifa_rs compila sin 
> problemas

Hola, el problema es que SELECT INTO en plpgsql no es lo mismo que
SELECT INTO en SQL.  En plpgsql, INTO indica almacenar el resultado de
la consulta en una variable, mientras que en SQL indica crear una tabla.
Son dos cosas totalmente diferentes.  Creo que deberías poder
solucionar tu problema usando CREATE TEMP TABLE AS en vez de tratar de
usar SELECT INTO.

Lo otro es que en realidad no necesitas una tabla temporal para esto.
Puedes hacer simplemente "RETURN QUERY WITH t AS ..." y te olvidas del
DROP TABLE IF EXISTS.

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


  

[pgsql-es-ayuda] Consulta que no tome en cuenta las tildes

2015-10-22 Por tema mauricio pullabuestan
Buen día
Tengo una tabla personal con un campo cargo en donde el usuario puede ingresar 
los cargos, existe registros en donde ingresa "Métodos" o "Metodos" lo cual es 
un problema.
En Sql Server hay un parámetro de configuración donde le indicaba no distinguir 
acentos y otro parámetro para no distinguir entre mayúsculas y minúsculas y a 
los sql no tienen nada de especial.
Existe en postgresq algo similar?
Quiero evitar hacer esto:
SELECT codigo, nombresFROM personal where cargo ILIKE '%Métodos%' Or cargo 
ILIKE '%Metodos%' ORDER BY nombres;
Saludos. 
Mauricio

[pgsql-es-ayuda] pgAgent

2016-01-22 Por tema mauricio pullabuestan
Buen día.
Tengo un servidor Centos con 2 instancias de PosgresqlPostgreSQL 9.5beta1 on 
x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55), 
64-bitPostgreSQL 9.4.5 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.1.2 
20080704 (Red Hat 4.1.2-55), 64-bit Tengo pgAdmin 1.20 en mi PC con W7, baje 
pgAgent-3.4.0-Source el cual tiene varias carpetas, en la carpeta Sql tengo 
varios archivos .sql
pgagent.sqlpgagent_update.sqlpgagent_unpackaget--3.4.sql
Cual es la manera correcta de instalarlo?Existen algún riesgo de malograr 
postgresql o la data?
Saludos.Mauricio


[pgsql-es-ayuda] Calculo de dígito verificador EAN13 mediante sql

2016-02-12 Por tema mauricio pullabuestan
Buen día.
Tengo el siguiente sql para calcular el dígito verificador de EAN13.

With t AS (  Select s.numero::INTEGER, ROW_NUMBER() OVER () rwn  From (  Select 
  regexp_split_to_table('7861091605917', E'[^0-9]*') as numero) s ), vAS(  
Select sum(t.numero * CASE WHEN mod(rwn, 2) = 0 THEN 3 ELSE 1 END) As total   
From t   Where rwn <= 12)  SELECT CASE WHEN mod(v.total, 10) = 0 Then 0 ELSE 10 
- Mod(v.total, 10) END AS digito_verificador  From v;
Mi duda es si la función regexp_split_to_table va a respetar el orden de string 
para que row_number() lo numere y no tener problemas en el calculo, que depende 
de la posición de cada dígito.
Estoy por crear una función con este código, la cual va a ser llamada 
esporádicamente. Saludos.Mauricio

[pgsql-es-ayuda] Uso de Create Types

2016-03-11 Por tema mauricio pullabuestan
Buen día.
Tengo una tabla con muchos campos (al momento no se le puede normalizar por 
estar en producción), estoy por crear una función para darle mantenimiento, 
además se verán afectadas algunas tablas mas, el paso de muchos parámetros se 
hace engorroso, estoy pensando ocupar los type que describe a esta tabla para 
ocuparlos en la función.

Algo como esto.
La aplicación envía un string que contiene un json, la función la recibe hace 
un select ocupando el type e inserta, algo como esto
INSERT INTO mitabla(campo1, campo2, campo3 ..)Select campo1, campo2, campo3 
From json_populate_record(null::mitype, parametro_tabla :: json) 
Realmente al función va a recibir mas parámetros y afectar a otras tablas. Que 
tan conveniente es utilizar los types para este propósito y que tal se ve 
afectado el perform?Existe otra manera de hacer esto?
Saludos.Mauricio

Re: [pgsql-es-ayuda] Error en una funcion....

2016-04-07 Por tema mauricio pullabuestan
Hola MK.
Primero cambiaría la funcion

CREATE OR REPLACE FUNCTION public.grabar_importaciones()RETURNS void 
AS$BODY$BEGIN
UPDATE productos p SET nombre_producto = r.nombre_producto,      idfamilia      
 = r.idfamilia,      idsubfamilia    = r.idsubfamilia FROM tbl_temporal r  
Where p.idproducto = r.idproducto ;
INSERT INTO productos(idproducto, nombre_producto, idfamilia, idsubfamilia) 
Select r.idproducto, r.nombre_producto, r.idfamilia, r.idsubfamilia 
 From tbl_temporal r LEFT JOIN       productos p USING(idproducto)  Where 
p.idproducto IS NULL;
END;
$BODY$LANGUAGE 'plpgsql' VOLATILE;
Ahora prueba con:Perform * public.grabar_importaciones()

Saludos.Mauricio 

El Miércoles 6 de abril de 2016 10:08, MKHotmail  
escribió:
 

 #yiv0855783965 #yiv0855783965 -- _filtered #yiv0855783965 
{font-family:Wingdings;panose-1:5 0 0 0 0 0 0 0 0 0;} _filtered #yiv0855783965 
{panose-1:2 4 5 3 5 4 6 3 2 4;} _filtered #yiv0855783965 
{font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}#yiv0855783965 
#yiv0855783965 p.yiv0855783965MsoNormal, #yiv0855783965 
li.yiv0855783965MsoNormal, #yiv0855783965 div.yiv0855783965MsoNormal 
{margin:0cm;margin-bottom:.0001pt;font-size:11.0pt;color:black;}#yiv0855783965 
a:link, #yiv0855783965 span.yiv0855783965MsoHyperlink 
{color:#0563C1;text-decoration:underline;}#yiv0855783965 a:visited, 
#yiv0855783965 span.yiv0855783965MsoHyperlinkFollowed 
{color:#954F72;text-decoration:underline;}#yiv0855783965 
span.yiv0855783965EstiloCorreo17 {color:windowtext;}#yiv0855783965 
span.yiv0855783965EstiloCorreo18 {color:#1F497D;}#yiv0855783965 
span.yiv0855783965EstiloCorreo19 {color:#1F497D;}#yiv0855783965 
.yiv0855783965MsoChpDefault {font-size:10.0pt;} _filtered #yiv0855783965 
{margin:70.85pt 3.0cm 70.85pt 3.0cm;}#yiv0855783965 
div.yiv0855783965WordSection1 {}#yiv0855783965 Lo cambie por Y me manda un 
error :  Microsoft OLE DB Provider for ODBC Drivers : ERROR: no existe el tipo 
«tlb_temporal»;Error while executing the query  CREATE OR REPLACE FUNCTION 
public.grabar_importaciones()RETURNS SETOF "tlb_temporal" AS    $BODY$    
DECLARE  r RECORD;   cuenta INTEGER;     BEGIN  FOR r IN 
select * from tbl_temporal    LOOP   SELECT INTO cuenta 
count(*) FROM productos where idproducto = r.idproducto ;   
 IF cuenta > 0 THEN UPDATE productos SET 
nombre_producto = r.nombre_producto, idfamilia = r.idfamilia,   
   idsubfamilia = r.idsubfamilia Where idproducto = r.idproducto ;  
    ELSE INSERT INTO 
productos(idproducto, nombre_producto, idfamilia, idsubfamilia) 
 Values(r.idproducto, r.nombre_producto, r.idfamilia, 
r.idsubfamilia);    END IF ;    
 return next r ;       END LOOP;     return ;      
END;$BODY$LANGUAGE 'plpgsql' VOLATILE;  De: pgsql-es-ayuda-ow...@postgresql.org 
[mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Anthony Sotolongo
Enviado el: miércoles, 06 de abril de 2016 10:02 a.m.
Para: MKHotmail ; pgsql-es-ayuda@postgresql.org
Asunto: Re: [pgsql-es-ayuda] Error en una funcion  Esa función devuelve un 
record por ende tienes que castear tu resultado, deberías llamarla con algo 
como esto:

Select * from  public.grabar_importaciones()  as (att tipo,...);

donde (att tipo,...)  son los atributos de la tabla tbl_temporal


también puedes definir el returns de tu tabla como SETOF "tlb_temporal" y te 
ahorras el casteo


Saludos


On 06/04/16 11:56, MKHotmail wrote:
Select public.grabar_importaciones() ;  MK  De: 
pgsql-es-ayuda-ow...@postgresql.org 
[mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Anthony Sotolongo
Enviado el: miércoles, 06 de abril de 2016 09:55 a.m.
Para: MKHotmail ; pgsql-es-ayuda@postgresql.org
Asunto: Re: [pgsql-es-ayuda] Error en una funcion Hola, como estas llamando 
a esa función?


On 06/04/16 11:49, MKHotmail wrote:
Buenos días, estoy haciendo una función simple…y me arroja este error : 
Microsoft OLE DB Provider for ODBC Drivers : ERROR: se llamó una función que 
retorna un conjunto en un contexto que no puede aceptarlo;Error while executing 
the query Mi función es esta : solo es pasar la información importada de una 
tabla a la de producción(si existe actualiza sino lo agrega..) : CREATE OR 
REPLACE FUNCTION public.grabar_importaciones()RETURNS SETOF "record" AS $BODY$  
 DECLARE  r RECORD;   cuenta INTEGER;     BEGIN FOR r IN 
select * from tbl_temporal    LOOP   SELECT INTO cuenta 
count(*) FROM productos where idproducto = r.idproducto ;   
 IF cuenta > 0 THEN UPDATE productos SET 
nombre_producto = r.nombre_producto, idfamilia = r.idfamilia,   
   idsubfamilia = r.idsubfamilia Where idproducto = r.idproducto ;  
   ELSE 

[pgsql-es-ayuda] Nuevo campo en todas las tablas de la base de datos

2016-04-12 Por tema mauricio pullabuestan
Buen día.

Necesito crear un campo en todas que no tengan un campo en concreto para ello 
tengo 2 funciones, el problema se da es que la funcion 
campo_check_fnc me devuelve también las vista y se produce un error.

Como puedo fitrar que solo me devuelva tablas.

CREATE OR REPLACE FUNCTION public.campo_check_fnc() 
RETURNS void AS 
$BODY$ 
DECLARE rs RECORD; 
BEGIN 
FOR rs IN 
( 
 SELECT table_schema, table_name 
  FROM information_schema.columns 
   Where table_schema Not In ('pg_catalog', 'information_schema', 'public', 
'prueba') 
 And table_schema || table_name Not IN 
   (Select t.table_schema || t.table_name 
 From 
  ( 
   SELECT table_schema, table_name, column_name = 'mi_campo' As 
existe_campo 
FROM information_schema.columns 
 Where table_schema Not In ('pg_catalog', 'information_schema', 
'public', 'prueba') 
   ) t 
  Where t.existe_campo = TRUE 
   ) 
 GROUP BY table_schema, table_name 
  ORDER BY table_schema, table_name ) LOOP 

PERFORM * FROM public.campo_crea_fnc(rs.table_schema::VARCHAR, 
rs.table_name::VARCHAR); 
END LOOP; 
END; 
$BODY$ 
LANGUAGE plpgsql VOLATILE 
COST 100; 
ALTER FUNCTION public.migracion_campo_check_fnc() 
OWNER TO postgres; 




CREATE OR REPLACE FUNCTION public.campo_crea_fnc( 
p_schema character varying, 
p_tabla character varying) 
RETURNS void AS 
$BODY$ 
BEGIN 

EXECUTE 'ALTER TABLE ' || p_schema || '.' || p_tabla || ' ADD COLUMN mi_campo 
CHAR(2) DEFAULT ''NO'''; 
END; 
$BODY$ 
LANGUAGE plpgsql VOLATILE 
COST 100; 

Saludos.
Mauricio

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Nuevo campo en todas las tablas de la base de datos

2016-04-13 Por tema mauricio pullabuestan


Buen día.


Gracias a todos por la ayuda, por ahi me dieron la idea y lo puede hacer así 

Select x.table_schema, x.table_name 
From 
( 
SELECT table_schema, table_name 
FROM information_schema.columns 
Where table_schema Not In ('pg_catalog', 'information_schema', 
'vfp_a_postgresql', 'public', 'prueba') 
And table_schema || table_name Not IN 
(Select t.table_schema || t.table_name 
From 
( 
SELECT table_schema, table_name, column_name = 'mi_campo' As existe_mes 
FROM information_schema.columns 
Where table_schema Not In ('pg_catalog', 'information_schema', 
'vfp_a_postgresql', 'public', 'prueba') 
) t 
Where t.existe_mes = TRUE 
) 
GROUP BY table_schema, table_name 
) x Inner Join pg_tables pt On x.table_schema = pt.schemaname And x.table_name 
= pt.tablename 
ORDER BY x.table_schema, x.table_name

Saludos.Mauricio




Mauricio. Cuenca-Ecuador


El Miércoles 13 de abril de 2016 8:21, Jorge Gonzalez 
 escribió:



Puedes hacer esta:

select 'ALTER TABLE ' || 'public' || '.' || t.tablename || ' ADD COLUMN 
tu_columna tipo_dato;' 
from
(SELECT tablename FROM pg_tables WHERE schemaname = 'public') t

Con esto generas las sentencias que necesitas para agregar el campo.

Saludos.



2016-04-13 8:36 GMT-04:30 Jorge Gonzalez :

Buenos días Mauricio porque no pruebas con esta vista??
>
>-- View: v_tablas
>
>-- DROP VIEW v_tablas;
>
>CREATE OR REPLACE VIEW v_tablas AS 
> SELECT n.nspname AS schmema,
>c.relname AS name,
>a.attnum AS id,
>a.attname AS column_name,
>t.typname AS column_type,
>CASE
>WHEN (a.atttypmod - 4) < 0 THEN 0
>ELSE a.atttypmod - 4
>END AS type_lenght,
>( SELECT COALESCE(( SELECT d.adsrc
>   FROM pg_attrdef d
>  WHERE d.adrelid = c.oid AND d.adnum = a.attnum), ''::text) 
> AS "coalesce") AS default_value,
>a.attnotnull AS not_null,
>CASE
>WHEN (( SELECT count(DISTINCT sqa.attname) AS count
>   FROM pg_class sqc1,
>pg_attribute sqa
>  WHERE sqa.attrelid = sqc1.oid AND sqa.attname = a.attname AND 
> (sqc1.oid IN ( SELECT sqi.indexrelid
>   FROM pg_index sqi,
>pg_class sqc2,
>pg_namespace sqn
>  WHERE sqc2.relname ~~* c.relname::text AND sqc2.oid = 
> sqi.indrelid AND sqi.indisunique = true AND sqn.nspname ~~* 
> "current_schema"()::text > 0 THEN true
>ELSE false
>END AS "unique",
>CASE
>WHEN (( SELECT count(DISTINCT sqa.attname) AS count
>   FROM pg_class sqc1,
>pg_attribute sqa
>  WHERE sqa.attrelid = sqc1.oid AND sqa.attname = a.attname AND 
> (sqc1.oid IN ( SELECT sqi.indexrelid
>   FROM pg_index sqi,
>pg_class sqc2,
>pg_namespace sqn
>  WHERE sqc2.relname ~~* c.relname::text AND sqc2.oid = 
> sqi.indrelid AND sqi.indisprimary = true AND sqn.nspname ~~* 
> "current_schema"()::text > 0 THEN true
>ELSE false
>END AS primary_key,
>( SELECT COALESCE(( SELECT sqd.description
>   FROM pg_description sqd
>  WHERE sqd.objoid = a.attrelid AND sqd.objsubid = a.attnum), 
> ''::text) AS "coalesce") AS description,
>( SELECT COALESCE(( SELECT sqcf.relname
>   FROM pg_attribute sqa
> JOIN pg_class sqc ON sqc.oid = sqa.attrelid AND 
> sqc.relkind = 'r'::"char"
> JOIN pg_namespace sqn ON sqn.oid = sqc.relnamespace
> JOIN pg_constraint sqct ON sqct.conrelid = sqa.attrelid 
> AND sqct.confrelid <> 0::oid AND sqct.conkey[1] = sqa.attnum
> JOIN pg_class sqcf ON sqcf.oid = sqct.confrelid AND 
> sqcf.relkind = 'r'::"char"
> JOIN pg_namespace sqnf ON sqnf.oid = sqcf.relnamespace
> JOIN pg_attribute sqaf ON sqaf.attrelid = sqct.confrelid 
> AND sqaf.attnum = sqct.confkey[1]
>  WHERE sqn.nspname ~~* "current_schema"()::text AND 
> sqc.relname ~~* c.relname::text AND sqa.attname ~~* a.attname::text), 
> ''::name) AS "coalesce") AS foreign_table,
>( SELECT COALESCE(( SELECT sqaf.attname
>   FROM pg_attribute sqa
> JOIN pg_class sqc ON sqc.oid = sqa.attrelid AND 
> sqc.relkind = 'r'::"char"
> JOIN 

Re: [pgsql-es-ayuda] Restar dos campos de tipo fecha de distintos registros

2016-04-18 Por tema mauricio pullabuestan
Hola Alberto.


Como dice Hellmuth usa funciones de ventana, es lo mejor.

Puse el ejemplo de Hellmuth en este link http://sqlfiddle.com/#!15/71cbd/1

Espero no se moleste.
  Saludos.

Mauricio. 

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Actualización demora mucho..

2016-05-16 Por tema mauricio pullabuestan
Buen día.
Tengo una función que hace cálculos y luego actualizo algunos campos de 2 
tablas  (60 y 2 registros cada una) que tienen trigger y relación con 
otras tablas, el update demora mucho, para agilitar el proceso deshabilito los 
trigger, dentro de la función pero el rendimiento no mejora mucho.
Como puedo eliminar las relaciones en las que esta involucrada la tabla y luego 
volver a crear las relaciones.Que tan seguro es hacer esto.
Los campos que actualizo no son parte de ningún indice, está actualización se 
hará esporadicamente 1 ó 2 vez por día o la semana en horas laborables pues se 
necesitan los datos una vez re-calculados,  estoy trabajando con PostgreSQL 
9.4.5 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red 
Hat 4.1.2-55), 64-bit Saludos.Mauricio

Re: [pgsql-es-ayuda] Actualización demora mucho..

2016-05-16 Por tema mauricio pullabuestan
Buen día Alvaro.

Soy nuevo en Postgresql.

El fillfactor de la tabla es default, 100% si no estoy mal, puedes ayudarme con 
un ejemplo para ver si los update son o no HOT.

El porcentaje de actualización es de alrededor del 75 y 80 %.

Una de las tablas es bastanten ancha 109 registros, no se que tanto afecte esto.
Saludos.
Mauricio

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Create tabla unlogged que elimine automáticamente los registros una vez terminada la función

2016-06-02 Por tema mauricio pullabuestan
Buen día.

Tengo una función que utiliza una tabla temporal con un indice don ingreso y 
actualizo datos, luego hago un update a otras tablas en base a a la data de la 
tabla temporal.

Según leí el rendimiento es mejor en una tabla física que una temporal, 
entonces quiero cambiar la tabla temporal con una tabla Unlogged y que al final 
de la función los registros de dicha tabla se eliminen automáticamente.

Esta función es llamada por varios usuarios, como cada uno tiene su propia 
transacción, los datos serán independientes, por lo cual no habría problema con 
la concurrencia.

Mi definición de la tabla seria algo como esto.

Create unlogged table miesquema.item_costo
(
item integer, 
tiene_componenten boolean, 
costo numeric(12, 8),
...
) ON COMMIT DELETE ROWS;

Pero me lanza un error "On Commit solo puede ser usado con tablas temporales", 
existe algún mecanismo para vaciar la tabla al salir de la función? 

Saludos.

Mauricio 
Cuenca-Ecuador

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Create tabla unlogged que elimine automáticamente los registros una vez terminada la función

2016-06-04 Por tema mauricio pullabuestan


Hola Alvaro y Hellmuth.

Buscaba algo diferente a las tablas temporales y encontré un articulo en la web 
no guarde el link.


Pense que al tener una tabla física que al margen de ocuparla y vaciarla 
constantemente Posgresql mantendría estadísticas que harían un desempeño mejor, 
al parecer no es así. 



Voy a probar temp_buffers.


Saludos.Mauricio.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] disable triggers dentro de una función afecta a la conexión actual o todas

2016-08-10 Por tema mauricio pullabuestan
Buen día 

Tengo varias tablas que tiene un trigger que concatenan datos para ingresarlos 
en otra tabla. 

En algunas funciones hago update masivos a estas tablas pero no necesito que el 
trigger se ejecute  

CREATE OR REPLACE FUNCTION miesquema.mifuncion()
RETURNS void AS 
$BODY$ 
BEGIN
...
...
ALTER TABLE miesquema.mitabla DISABLE TRIGGER ALL;
Update miesquema.mitabla 
set campo1 = t.campo1 
  , campo2 = t.campo2 
  , campo3 = t.campo3 
From t 
Where mitabla.id = t.id; 

ALTER TABLE miesquema.mitabla ENABLE TRIGGER ALL; 


END; 
$BODY$ 
LANGUAGE plpgsql VOLATILE 
COST 100;
Hay varios usuarios que actualizan, insertan y elimina en estas tablas y que 
necesita del trigger activo. 

Todos los DML y funciones se ejecutan por medio de aplicaciones y cada una 
maneja su propia conexión. 

Al ejecutar la función que desactiva el trigger y mientras dura la ejecución, 
los triggers están desactivados solo para esta conexión o para todas las 
conexiones? 

Si los triggers están desactivados para todas las conexiones existe alguna 
manera de decir, quiero desactivar los triggers solo para esta conexión? 

Saludos. 
Mauricio

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Restar solamente el tiempo solapado

2016-09-09 Por tema mauricio pullabuestan
n_registro" VALUES ('X0012', 'ACA-1537543', 
'O-10', '2016-09-07 08:48:00', '2016-09-07 08:55:00', '9'); 
INSERT INTO "trabajo_proceso"."orden_registro" VALUES ('X0012', 'ACA-1537441', 
'O-05', '2016-09-08 10:23:00', '2016-09-08 10:27:00', '10'); 
INSERT INTO "trabajo_proceso"."orden_registro" VALUES ('X0012', 'ACA-1537426', 
'O-10', '2016-09-08 10:27:00', '2016-09-08 11:09:00', '11'); 
INSERT INTO "trabajo_proceso"."orden_registro" VALUES ('X0012', 'ARM-8789258', 
'O-15', '2016-09-08 11:09:00', '2016-09-08 11:24:00', '12'); 
INSERT INTO "trabajo_proceso"."orden_registro" VALUES ('X0012', 'ARM-8788558', 
'O-10', '2016-09-08 11:24:00', '2016-09-08 11:26:00', '13'); 
INSERT INTO "trabajo_proceso"."orden_registro" VALUES ('X0012', 'ARM-8785940', 
'O-15', '2016-09-08 11:26:00', '2016-09-08 12:23:00', '14'); 
INSERT INTO "trabajo_proceso"."orden_registro" VALUES ('X0012', 'ACA-1537547', 
'O-11', '2016-09-08 12:23:00', '2016-09-08 12:41:00', '15'); 

ALTER TABLE "trabajo_proceso"."orden_registro" ADD PRIMARY KEY 
("orden_registro_id"); 



DROP TABLE IF EXISTS "trabajo_proceso"."tiempo_para"; 
CREATE TABLE "trabajo_proceso"."tiempo_para" ( 
"empleado_id" varchar(5) COLLATE "default", 
"fecha_incial" timestamp(6), 
"fecha_final" timestamp(6) 
) 
WITH (OIDS=FALSE) ; 

INSERT INTO "trabajo_proceso"."tiempo_para" VALUES ('X0012', '2016-09-07 
06:22:00', '2016-09-07 06:25:00'); 
INSERT INTO "trabajo_proceso"."tiempo_para" VALUES ('X0012', '2016-09-07 
08:03:00', '2016-09-07 08:17:00'); 
INSERT INTO "trabajo_proceso"."tiempo_para" VALUES ('X0012', '2016-09-08 
11:12:00', '2016-09-08 11:18:00'); 



Saludos.
Mauricio

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Problema en actualización con CTE anidadas

2017-03-27 Por tema mauricio pullabuestan
Buen día.


Tengo una función a la cual le paso un item y su nuevo precio, la función debe 
actualizar



1.- los detalles en donde se encuentra el item.


2.- las cabeceras de los detalles que actualizo en el paso 1.


3.- Actualizar el saldo en la tabla clientes de todos los clientes cuyas 
cabeceras se actualizaron en el paso 2.



Aparentemente la función esta bien y debe actualizar las 3 tablas en una sola 
ejecución.

Select * From ordenes.precio_actualiza_fnc('147', 86.58);

Pero cuando lo ejecuto por primera vez solo me actualiza la tabla detalles, 
ejecuto una segunda vez se actualiza la tabla cabecera, ejecuto una tercera vez 
actualiza la tabla clientes.

Las tablas involucradas no tiene trigger, sin resultados esperados cree un 
trigger after en cada tabla para grabar los valores de los campos actualizados 
en otra tabla.

Reviso los datos de los triggers.

Primera ejecución actualiza la tabla detalle los datos muestran la diferencia 
en los datos new y old para esta tabla, para las dos restante los datos siguen 
iguales como si el detalle nunca cambio.

tabla orden_detalle  numero_orden: 0733 precio Old:6.58000 precio New:86.58000 
subtotal Old:6.58 subtotal New:86.58 
tabla orden_cabecera numero_orden: 0733 monto pendiente old:308.98 monto 
pendiente new:308.98 monto_iva old:37.94 monto_iva new:37.94 
tabla clientes   codigo: 446  ordenes Old:308.98pedidos New:308.98 



Segunda ejecución se ve que los datos para la tabla detalle son iguales, en la 
tabla cabecera los datos cambian, pero no para la clientes no cambia siendo que 
ese dato depende de las cabeceras.

tabla orden_detalle  numero_orden: 0733 precio Old:86.58000 precio New:86.58000 
subtotal Old:86.58 subtotal New:86.58 
tabla orden_cabecera numero_orden: 0733 monto pendiente old:308.98 monto 
pendiente new:400.18 monto_iva old:37.94 monto_iva new:49.14 
tabla clientes   codigo: 446  orden Old:308.98pedidos New:308.98 


Tercera ejecución los datos para los primera tabla son iguales y para la tabla 
clientes cambia.


tabla orden_detalle  numero_pedido: 0733 precio Old:86.58000 precio 
New:86.58000 subtotal Old:86.58 subtotal New:86.58 
tabla orden_cabecera numero_pedido: 0733 monto pendiente old:400.18 monto 
pendiente new:400.18 monto_iva old:49.14 monto_iva new:49.14 
tabla clientes   codigo: 446orden Old:308.98pedidos New:400.18 



Estoy trabajado con Postgreslq 9.4.5 64 bits sobre linux 


No tengo idea de lo que puede estar pasando, le dejo la funcion a ver si me 
ayudan a ver que esta mal

Saludos.
Mauricio



CREATE OR REPLACE FUNCTION ordenes.precio_actualiza_fnc(



IN p_item VARCHAR, 



IN p_precio DECIMAL(15, 5)



)



RETURNS void AS



$BODY$




BEGIN 




WITH t (numero_orden)



AS 



(



UPDATE ordenes.orden_detalle d



   Set precio = p_precio



 , subtotal = round(d.pendiente * p_precio * .01 * (100 - d.descuento), 2)



  Where d.item = p_item



And d.pendiente > 0 



And d.estado = ''



RETURNING d.numero_orden



), s (numero_orden, subtotal_iva, iva)



As 



(



Select ds.numero_orden, sum(ds.subtotal + round(ds.subtotal * ds.iva_porcentaje 
* .01, 2)) As subtotal_iva



 , sum(round(ds.subtotal * ds.iva_porcentaje * .01, 2)) iva



From ordenes.orden_detalle ds Inner Join 



t On ds.numero_orden = t.numero_orden



  Where ds.estado = ''



And ds.pendiente > 0 



  GROUP BY ds.numero_orden



), u (cliente_id)



As 



(



UPDATE ordenes.orden_cabecera c



   Set monto_pendiente = s.subtotal_iva



 , monto_iva = s.iva



From s 



  Where c.numero_orden = s.numero_orden



RETURNING c.cliente_id



), v (cliente_id, monto_pendiente)



As 



(



Select cv.cliente_id, sum(cv.monto_pendiente) As monto_pendiente



From ordenes.orden_cabecera cv Inner Join 



u On cv.cliente_id = u.cliente_id



  Where cv.pedido_tipo <> 'B'



And cv.estado = ''



  GROUP BY cv.cliente_id



)



Update cta_x_cob.clientes cl



   Set ordenes = v.monto_pendiente



From v 



  Where cl.cliente_id = v.cliente_id;




END;



$BODY$



  LANGUAGE plpgsql VOLATILE



  COST 100;

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Replicar base de datos con Postgres-BDR

2017-04-07 Por tema mauricio pullabuestan
Buen día.

Tengo instalado en una maquina virtual con ubuntu 16.04 con Postgres 9.6 sin 
ninguna instalación adicional, quiero probar la replicación con Postgres - BDR.
Que tengo que instalar para poder comenzar a replicar?Que tengo que tener en 
cuenta para comenzar a replicar?Pueden darme sugerencias y links al respecto?


Al momento estoy leyendo un articulo en 2ndQuadrant
  
|  
|   
|   
|   ||

   |

  |
|  
|   |  
Postgres-BDR | 2ndQuadrant
   |   |

  |

  |

 
 Saludos Mauricio

Re: [pgsql-es-ayuda] Replicar base de datos con Postgres-BDR

2017-04-10 Por tema mauricio pullabuestan
Hola Jaime.
Gracias por la ayuda, surgió un imprevisto estaré revisando el tema la próxima 
semana, espero contar con tu ayuda.
Saludos.Mauricio 

El Viernes 7 de abril de 2017 13:42, Jaime Casanova 
 escribió:
 

 2017-04-07 12:44 GMT-05:00 mauricio pullabuestan :
>
> Buen día.
>
> Tengo instalado en una maquina virtual con ubuntu 16.04 con Postgres 9.6 sin 
> ninguna instalación adicional, quiero probar la replicación con Postgres - 
> BDR.
>
> Que tengo que instalar para poder comenzar a replicar?
> Que tengo que tener en cuenta para comenzar a replicar?
> Pueden darme sugerencias y links al respecto?
>

Saludos,

BDR funciona sobre 9.4 (de hecho es una versión modificada de 9.4).
Sigue las instrucciones que están en:
https://2ndquadrant.com/es/resources/bdr/bdr-installation-instructions/

>
> Al momento estoy leyendo un articulo en 2ndQuadrant
>

Eso, es lo mejor que puedes hacer.
Sobre que tener en cuenta, recuerda que BDR no es multimaestro
"transparente" eso no existe porque al insertar en diferentes nodos
puedes causar conflictos (cuando en dos nodos se trata de actualizar
el mismo registro por ejemplo, especialmente cuando se actualizan de
forma contradictoria). La aplicación y tus procesos deben estar
preparados para manejar de forma apropiada los conflictos.

-- 
Jaime Casanova                      www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

   

[pgsql-es-ayuda] Hey,

2008-10-29 Por tema Mauricio Lopez Benitez
Hey,

how are you doing recently?

I would like to introduce you a very good company and its website is
www.itshop-hot.com.

It can offer you all kinds of electronic products that you may be in
need,such as laptops ,gps ,TV LCD,cell  phones,ps3,MP3/4,motorcycles and
etc

You can take some time to have a check ,there must be something interesting
you 'd like to  purchase .

The contact MSN: [EMAIL PROTECTED] ;   Email:
[EMAIL PROTECTED]

TEL:  0086+158 3267 3677

Hope you can enjoy yourself in shopping from that company !

Regards


[pgsql-es-ayuda] Arquitectura Pgpool-Stream Replication

2012-04-10 Por tema Mauricio Rafael Rivas Martinez

Buenos Dias

Estoy probando una arquitectura que  consiste en lo siguiente:

1) Dos nodos Pgpools activos con la misma configuracion (Solo pool de 
conexiones y healthCheck ) apuntando al mismo backend MAster-HotStandby
2) Un Backend postgres con 2 nodos usando Stream Replication Nodo 1 
MAster, Nodo 2 HotStanby


El nodo master, recibe las conexiones de los dos nodos activos de Pgpool 
y realizan el failback hacia el HotStandby y lo promueven a master en 
caso de falla.


Alguien ha probado esta arquitectura o similar para que compartamos 
comentarios sobre su funcionamiento.



Gracias

--
Mauricio Rivas
Consultor

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Arquitectura Pgpool-Stream Replication

2012-04-10 Por tema Mauricio Rafael Rivas Martinez
Hola, Lazaro, lo que describes es lo que ya estoy haciendo, el unico 
adicional es que los dos nodos pgpool estan activos es decir el pgpool 
esta configurado en Alta disponibilidad y alto performance.


Espero haberme explicado un poco mas y sigo a la espera de comentarios 
al respecto en caso que alguien ya lo haya probado.



Gracias

Mauricio Rivas
Consultor

Proyecto Optimización, Migración y Soporte Interno de Base de Datos Oracle a 
Tecnologías Libres (OMS BD ORCL - TIL)
Gerencia de Programa Soluciones de TI
Gerencia General de Proyectos Mayores
Gerencia General de Tecnología y Operaciones
Tel:
Cel: +58-412-392-7447
Email: mriva...@cantv.com.ve


El 10/04/2012 09:03 a.m., Lazaro Ruben Garcia Martinez escribió:
Hola, en total serían 4 nodos, 2 pgpool-II y 2 servidores de base de 
datos utilizando streaming replication?


Lo que yo he logrado hacer es tener 4 nodos. En 2 de ellos, tengo un 
Pgpool-II, y en los dos restantes el servidor de base de datos. La 
replicación de los datos, la realizo utilizando Streaming replication, 
y con pgpool-II, garantizo la alta disponibilidad de los servidores de 
base de datos, mediante failover, además del pool de conexiones, y de 
balancear la carga entre ellos. El segundo nodo que tiene pgpool-II, 
es utilizado en caso de que el otro nodo que tiene a pgpool-II falle. 
De esta forma garantizo la alta disponibilidad de pgpool-II. Para 
realizar este proceso, las aplicaciones se conectan a Pgpool-II 
mediante una dirección IP virtual, y para la alta disponibilidad de 
pgpool-II utilizo heartbeat, que actualmente se encuentra dividido en 
4 proyectos diferentes más pgpool-HA. Debes tener en cuenta que no es 
posible tener 2 pgpool-II en ejecución al mismo tiempo.


Acá te dejo algunos vínculos donde podrás encontrar documentación al 
respecto:


http://www.linux-ha.org/wiki/Main_Page
http://pgpool.net/mediawiki/index.php/Main_Page

Lo que mencionas de promover al HotStandby como master, en caso de que 
el nodo maestro falle, se conoce como failover. Failback, según tengo 
tengo entendido, es la operación inversa, o sea, es volver a promover 
al maestro fallido a su estado original, o llevar la aplicación al 
estado en que se encontraba antes de que ocurriese el failover.


Saludos.



Buenos Dias

Estoy probando una arquitectura que  consiste en lo siguiente:

1) Dos nodos Pgpools activos con la misma configuracion (Solo pool de
conexiones y healthCheck ) apuntando al mismo backend
MAster-HotStandby
2) Un Backend postgres con 2 nodos usando Stream Replication Nodo 1
MAster, Nodo 2 HotStanby

El nodo master, recibe las conexiones de los dos nodos activos de
Pgpool
y realizan el failback hacia el HotStandby y lo promueven a master en
caso de falla.

Alguien ha probado esta arquitectura o similar para que compartamos
comentarios sobre su funcionamiento.


Gracias

-- 
Mauricio Rivas

Consultor

-
Enviado a la lista de correo pgsql-es-ayuda
(pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS CIENCIAS
INFORMATICAS...
CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION

http://www.uci.cu
http://www.facebook.com/universidad.uci
http://www.flickr.com/photos/universidad_uci




<http://www.uci.cu/>


Re: [pgsql-es-ayuda] Arquitectura Pgpool-Stream Replication

2012-04-10 Por tema Mauricio Rafael Rivas Martinez
Yunior, cuando el pgpool detecta la falla del Master crea el archivo 
trigger en el standby y este al encontrarlo se promueve a master, estas 
configuraciones las haces en pgpool.conf y en el recovery.conf de postgres.


Gracias

Mauricio Rivas
Consultor

Proyecto Optimización, Migración y Soporte Interno de Base de Datos Oracle a 
Tecnologías Libres (OMS BD ORCL - TIL)
Gerencia de Programa Soluciones de TI
Gerencia General de Proyectos Mayores
Gerencia General de Tecnología y Operaciones
Tel:
Cel: +58-412-392-7447
Email: mriva...@cantv.com.ve


El 10/04/2012 09:27 a.m., Yunior Bauta escribió:

On Martes, 10 de Abril de 2012 09:33:35 Lazaro Ruben Garcia Martinez escribió:

Hola, en total serían 4 nodos, 2 pgpool-II y 2 servidores de base de datos
utilizando streaming replication?

Lo que yo he logrado hacer es tener 4 nodos. En 2 de ellos, tengo un
Pgpool-II, y en los dos restantes el servidor de base de datos. La
replicación de los datos, la realizo utilizando Streaming replication, y
con pgpool-II, garantizo la alta disponibilidad de los servidores de base
de datos, mediante failover, además del pool de conexiones, y de balancear
la carga entre ellos. El segundo nodo que tiene pgpool-II, es utilizado en
caso de que el otro nodo que tiene a pgpool-II falle. De esta forma
garantizo la alta disponibilidad de pgpool-II. Para realizar este proceso,
las aplicaciones se conectan a Pgpool-II mediante una dirección IP
virtual, y para la alta disponibilidad de pgpool-II utilizo heartbeat, que
actualmente se encuentra dividido en 4 proyectos diferentes más pgpool-HA.
Debes tener en cuenta que no es posible tener 2 pgpool-II en ejecución al
mismo tiempo.

Acá te dejo algunos vínculos donde podrás encontrar documentación al
respecto:

http://www.linux-ha.org/wiki/Main_Page
http://pgpool.net/mediawiki/index.php/Main_Page

Lo que mencionas de promover al HotStandby como master, en caso de que el
nodo maestro falle, se conoce como failover. Failback, según tengo tengo
entendido, es la operación inversa, o sea, es volver a promover al maestro
fallido a su estado original, o llevar la aplicación al estado en que se
encontraba antes de que ocurriese el failover.

Saludos.

- Mensaje original -


Buenos Dias

Estoy probando una arquitectura que consiste en lo siguiente:

1) Dos nodos Pgpools activos con la misma configuracion (Solo pool de
conexiones y healthCheck ) apuntando al mismo backend
MAster-HotStandby
2) Un Backend postgres con 2 nodos usando Stream Replication Nodo 1
MAster, Nodo 2 HotStanby

El nodo master, recibe las conexiones de los dos nodos activos de
Pgpool
y realizan el failback hacia el HotStandby y lo promueven a master en
caso de falla.

Alguien ha probado esta arquitectura o similar para que compartamos
comentarios sobre su funcionamiento.

Gracias

--
Mauricio Rivas
Consultor

-
Enviado a la lista de correo pgsql-es-ayuda
(pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS CIENCIAS
INFORMATICAS...
CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION

http://www.uci.cu
http://www.facebook.com/universidad.uci
http://www.flickr.com/photos/universidad_uci

10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS CIENCIAS
INFORMATICAS... CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION

http://www.uci.cu
http://www.facebook.com/universidad.uci
http://www.flickr.com/photos/universidad_uci



10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS CIENCIAS
INFORMATICAS... CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION

http://www.uci.cu
http://www.facebook.com/universidad.uci
http://www.flickr.com/photos/universidad_uci

Cómo consigues que una ves caído el master automáticamente se pueda escribir
en el esclavo que inicialmente está configurado como hot_standby
Saludos y gracias.

10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS CIENCIAS 
INFORMATICAS...
CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION

http://www.uci.cu
http://www.facebook.com/universidad.uci
http://www.flickr.com/photos/universidad_uci
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Arquitectura Pgpool-Stream Replication

2012-04-10 Por tema Mauricio Rafael Rivas Martinez

Ok

La app se conectaria a ambos pgpool activos a traves de un balanceador 
de carga.



Mauricio Rivas
Consultor

Proyecto Optimización, Migración y Soporte Interno de Base de Datos Oracle a 
Tecnologías Libres (OMS BD ORCL - TIL)
Gerencia de Programa Soluciones de TI
Gerencia General de Proyectos Mayores
Gerencia General de Tecnología y Operaciones
Tel:
Cel: +58-412-392-7447
Email: mriva...@cantv.com.ve


El 10/04/2012 10:22 a.m., Lazaro Ruben Garcia Martinez escribió:
Mi duda es, si tienes dos pgpool-II corriendo, a cual de los dos 
pgpool-II se conecta tu app?


Saludos.



Hola, Lazaro, lo que describes es lo que ya estoy haciendo, el
unico adicional es que los dos nodos pgpool estan activos es decir
el pgpool esta configurado en Alta disponibilidad y alto performance.

Espero haberme explicado un poco mas y sigo a la espera de
comentarios al respecto en caso que alguien ya lo haya probado.


Gracias

Mauricio Rivas
Consultor

Proyecto Optimización, Migración y Soporte Interno de Base de Datos Oracle 
a Tecnologías Libres (OMS BD ORCL - TIL)
Gerencia de Programa Soluciones de TI
Gerencia General de Proyectos Mayores
Gerencia General de Tecnología y Operaciones
Tel:
Cel: +58-412-392-7447
Email:mriva...@cantv.com.ve


El 10/04/2012 09:03 a.m., Lazaro Ruben Garcia Martinez escribió:

Hola, en total serían 4 nodos, 2 pgpool-II y 2 servidores de
base de datos utilizando streaming replication?

Lo que yo he logrado hacer es tener 4 nodos. En 2 de ellos,
tengo un Pgpool-II, y en los dos restantes el servidor de base
de datos. La replicación de los datos, la realizo utilizando
Streaming replication, y con pgpool-II, garantizo la alta
disponibilidad de los servidores de base de datos, mediante
failover, además del pool de conexiones, y de balancear la
carga entre ellos. El segundo nodo que tiene pgpool-II, es
utilizado en caso de que el otro nodo que tiene a pgpool-II
falle. De esta forma garantizo la alta disponibilidad de
pgpool-II. Para realizar este proceso, las aplicaciones se
conectan a Pgpool-II mediante una dirección IP virtual, y para
la alta disponibilidad de pgpool-II utilizo heartbeat, que
actualmente se encuentra dividido en 4 proyectos diferentes
más pgpool-HA. Debes tener en cuenta que no es posible tener 2
pgpool-II en ejecución al mismo tiempo.

Acá te dejo algunos vínculos donde podrás encontrar
documentación al respecto:

http://www.linux-ha.org/wiki/Main_Page
http://pgpool.net/mediawiki/index.php/Main_Page

Lo que mencionas de promover al HotStandby como master, en
caso de que el nodo maestro falle, se conoce como failover.
Failback, según tengo tengo entendido, es la operación
inversa, o sea, es volver a promover al maestro fallido a su
estado original, o llevar la aplicación al estado en que se
encontraba antes de que ocurriese el failover.

Saludos.



Buenos Dias

Estoy probando una arquitectura que  consiste en lo siguiente:

1) Dos nodos Pgpools activos con la misma configuracion
(Solo pool de
conexiones y healthCheck ) apuntando al mismo backend
MAster-HotStandby
2) Un Backend postgres con 2 nodos usando Stream
Replication Nodo 1
MAster, Nodo 2 HotStanby

El nodo master, recibe las conexiones de los dos nodos
activos de Pgpool
y realizan el failback hacia el HotStandby y lo promueven
a master en
caso de falla.

Alguien ha probado esta arquitectura o similar para que
compartamos
comentarios sobre su funcionamiento.


Gracias

-- 
Mauricio Rivas

Consultor

-
Enviado a la lista de correo pgsql-es-ayuda
(pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS
CIENCIAS INFORMATICAS...
CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION

http://www.uci.cu
http://www.facebook.com/universidad.uci
http://www.flickr.com/photos/universidad_uci




<http://www.uci.cu/>



<http://www.uci.cu/>




<http://www.uci.cu/>


Re: [pgsql-es-ayuda] opciones de backup

2012-06-19 Por tema Mauricio Rafael Rivas Martinez

Juan,

Creo que lo mejor que puedes hacer es esto:

1) Coloca tus bases de datos en modo archive con wal_level= Hot Standby
2) Haz un respaldo full por lo menos una vez al dia (o segun las 
necesidades) con rsync -av
3) Haz respaldo continuo de los archive wal y conserva a mano aquellos 
que son posteriores al ultimo backup full.
4) Durante el dia puedes hacer respaldos incrementales con el mismo 
comando rsync-av


Todo esto lo puedes hacer sin parar la base de datos la teoria al 
respecto esta en los manuales de postgres en la seccion PITR


Saludos

Mauricio Rivas
Consultor
 
Proyecto Optimización, Migración y Soporte Interno de Base de Datos Oracle a Tecnologías Libres (OMS BD ORCL - TIL)

Gerencia de Programa Soluciones de TI
Gerencia General de Proyectos Mayores
Gerencia General de Tecnología y Operaciones
Tel:
Cel: +58-412-392-7447
Email: mriva...@cantv.com.ve

El 18/06/2012 02:41 p.m., Gilberto Castillo Martínez escribió:


El lun, 18-06-2012 a las 16:03 -0300, Juan escribió:

Gilberto


gracias por contestar.
te respondo entre lineas.

 
 > opciones? comentarios? sugerencias?

  Que diseñes salva incremental
Vos decis con el copy command algo asi? el de copiar los logs a otro
directorio
y luego levantar un postgres y que use estos logs incrementales para
restaurar?
a eso te referis?

No a usar los wal para hacer las salva.


Otra cosa , estuve charlando y estos tipos parece que quieren poder
tener backup/replicacion a prueba de "truncate table blah"  "drop
table bhaaa" para eso pense en poner el postrgres a full log log de
statements ='all' y grepear todo el tiempo "truncate" "delete from"
"drop table" y disparar un proceso que corte los logs si detecta esta
sentencia y excluya el ultimo log asi no replico esa sentencia.
sugerencias? ideas? comentarios?

Uhmmm, eso te puede acabar muy pronto el DD.
No entiendo la idea del "Truncate", de ahí que no te de comentario al
respecto.

Ahora puedes usar un dump ... antes de hacer operaciones raras por si
pasa algo no deseado a los datos.




---
This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE running at 
host imx2.etecsa.cu
Visit our web-site: <http://www.kaspersky.com>, <http://www.viruslist.com>


-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda





Re: [pgsql-es-ayuda] backup incremental de una base de datos

2012-06-26 Por tema Mauricio Rafael Rivas Martinez

Buen Dia

Jose, te recomiendo investigues y acciones de la siguiente forma:

1) Trabaja con PITR
2) Haz backup del data directory con rsync y podras hacerlo incrementales
3) Clasifica tus bases de datos y separalas para que las bases de datos 
dentro de un clusters tengan relación entre ellas y las tareas de 
restore y recuperación las afecten a todas por igual, incluso las bd's 
muy criticas déjalas solas en un cluster.



Mauricio Rivas
Consultor
 
Proyecto Optimización, Migración y Soporte Interno de Base de Datos Oracle a Tecnologías Libres (OMS BD ORCL - TIL)

Gerencia de Programa Soluciones de TI
Gerencia General de Proyectos Mayores
Gerencia General de Tecnología y Operaciones
Tel:
Cel: +58-412-392-7447
Email: mriva...@cantv.com.ve

El 25/06/2012 03:35 p.m., Guillermo Villanueva escribió:

No José, no hay tablas incrementales, el backup es selectivo en cuanto
a las tablas que resguardo, como se que algunas no sufren cambios
durante un largo periodo no las guardo, (se puede programar el pg_dump
para que se ejecute periodicamente y exceptue todo lo que quieras).
Así mi backup diario no es tan grande.
PITR no me resultaba práctico porque es un backup de todo el motor de
BD, no podés seleccionar que base de datos resguardar.

Guillermo Villanueva



El día 24 de junio de 2012 04:55, José González  escribió:

pero las tablas son incrementales?. si es así tendrías un ejemplo o algún
link o script.
gracias, saludos, jose

El 23 de junio de 2012 22:54, Guillermo Villanueva 
escribió:


Utilizo diariamente pg_dump exceptuando tablas gigantes que se modifican
muy poco. Mensualmente hago un backup completo.


El 23 de junio de 2012 23:35, José González  escribió:

si ya conozco el articulo, pero me parece que es mucho para lo que
necesito. No habría otra forma?? Con el pg_dump le hago los backups
completos, pero una vez al mes. Como lo haces tu para el pg_dump? o también
solo completos?


desde ya muchas gracias
Saludos, José

El 23 de junio de 2012 21:33, Guillermo Villanueva
 escribió:


José para hacer backup incremental podés utilizar el concepto: PITR, te
recomiendo la lectura de este artículo http://www.postgresql.org.es/node/238
yo lo usé un tiempo , pero despues terminé haciendo backup selectivo
utilizando pg_dump programados, lo cual me resultó mas simple.
Guillermo Villanueva




El 23 de junio de 2012 17:42, José González 
escribió:


Hola a todos:
Estoy queriendo hacer un backup incremental de una base de datos
especifica. Me podrían orientar un poco. Muchas gracias
saludos, jose



-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda




-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] backup incremental de una base de datos

2012-06-27 Por tema Mauricio Rafael Rivas Martinez
Juan, en base a todo lo que has planteado y te han contestado me parece 
lo siguiente:


1) ya te dijeron por ahi que el camino que quieres tomar para lograr tu 
objetivo es futil, estoy de acuerdo.
2) revisa la permisologia de la base de datos y como ya te inidacron 
llevala al minimo necesario para que todos y cada uno de los usuarios 
(Aplicaciones y personas ) puedan hacer su trabajo. ten presente que la 
permisología siempre debe ser individual y para mejor administración 
basada en roles.
3) si persisten en tu objetivo entonces te recomiendo lo siguiente, crea 
unos trigers que chequen la ejecucion de las sentencias que necesitar 
auditar y/o negar sobre las tablas que requieres vigilar, y asi podras 
llevar registro de quien ejecuta estas sentencias. Esto te servira con 
los DML con los DDL tendrias que revisar mas a fondo.



Gracias




Mauricio Rivas
Consultor
 
Proyecto Optimización, Migración y Soporte Interno de Base de Datos Oracle a Tecnologías Libres (OMS BD ORCL - TIL)

Gerencia de Programa Soluciones de TI
Gerencia General de Proyectos Mayores
Gerencia General de Tecnología y Operaciones
Tel:
Cel: +58-412-392-7447
Email: mriva...@cantv.com.ve

El 26/06/2012 01:39 p.m., Juan escribió:

Alvaro

entre lineas


2012/6/26 Alvaro Herrera <mailto:alvhe...@alvh.no-ip.org>>



Excerpts from Juan's message of mar jun 26 13:16:18 -0400 2012:

> 2012/6/26 Alvaro Herrera mailto:alvhe...@alvh.no-ip.org>>

> > PITR es sigla de "point in time recovery", que en concreto
significa que
> > uno puede recuperar hasta un determinado punto en el tiempo; o
sea que
> > si tienes los WAL desde el pasado hasta más allá del momento
en que se
> > hizo el DROP o el TRUNCATE, puedes detener el sistema y
decirle que
> > empieze a recuperar hasta justo antes del DROP o TRUNCATE.
> >
>
> Como hago eso?
> Si ya existe, donde lo leo? porque no me queda claro como,
entonces estuve
> pensando como hacerlo yo mismo.
> Yo suponia que el segundo postgres en stand by todo el tiempo
recibía los
> wal
> del "master db" ,

En el escenario en que yo estoy hablando, no hay un secundario,
sino un
área de archivado donde los logs se guardan.  Está documentado acá:

24.3.3. Recovering Using a Continuous Archive Backup
...
If you want to recover to some previous point in time (say, right
before
the junior DBA dropped your main transaction table), just specify the
required stopping point in recovery.conf. You can specify the stop
point, known as the "recovery target", either by date/time, named
restore point or by completion of a specific transaction ID.
http://www.postgresql.org/docs/9.1/static/continuous-archiving.html


Creo que si el problema del cual te quieres proteger es alguien que
comete un error, la solución es no dejar que nadie se meta al servidor
de producción, sólo las aplicaciones; que las aplicaciones tengan
permisos mínimos, de manera que puedan hacer poco daño en caso de que
haya algún bug; y usar mecanismos seguros de manera que no haya
hoyos de
inyección de SQL, para evitar los maliciosos (que nunca faltan).

Tratar de parchar el sistema para impedir que alguien que se cuele
en tu
servidor haga daño me parece esfuerzo gastado en la dirección errónea.
Por ej. digamos que proteges el DROP TABLE y el TRUNCATE pero alguien
hace un DELETE de toda la tabla ...  O alguien crea un trigger ON
INSERT
que invoca TRUNCATE.

> entonces lo que necesitaba era "negarle" los logs que
> tienen
> el DROP o TRUNCATE etc,, pero parece por lo que decis que no es asi.

Bueno, no.  No existe un mecanismo para decirle a un standby que se
detenga.  Tampoco existe (que yo sepa) un mecanismo para inspeccionar
cada registro antes de ejecutarlo, que hipotéticamente serviría para
detener la recuperación cuando encuentre algo que no le guste (por ej.
el DROP o TRUNCATE que señalas).


Alvaro, lei el PITR pero pensé que era en caliente o se otra base de 
datos esta
leyendo los logs/WALLS   que le tira  la base que esta procesando 
transacciones
esta es la base que llamo en stand by , pero parece que no, que solo 
archivo los logs

y luego los aplico según corresponde.
Para aplicar el tema de detener o detectar estas sentencias de 
DROP/TRUNCATE etc
pensé que leyendo el log de la base maestra podría detectar cuando 
llegan estas instrucciones
frenar la copia y la db en stand by no debería tener estas 
instrucciones dañinas.

salu2
jmdc

--
Álvaro Herrera mailto:alvhe...@alvh.no-ip.org>>







Re: [pgsql-es-ayuda] sentencias de una bd a otra

2012-06-28 Por tema Mauricio Rafael Rivas Martinez

Buen Dia

Prueba con stream Replication ya que esto crea una copia identica en 
base a las operaciones ejecutadas en el maestro



Gracias

Mauricio Rivas
Consultor
 
Proyecto Optimización, Migración y Soporte Interno de Base de Datos Oracle a Tecnologías Libres (OMS BD ORCL - TIL)

Gerencia de Programa Soluciones de TI
Gerencia General de Proyectos Mayores
Gerencia General de Tecnología y Operaciones
Tel:
Cel: +58-412-392-7447
Email: mriva...@cantv.com.ve

El 28/06/2012 10:58 a.m., Harold Alexander Onore Harold escribió:

Saludos,


Necesito sacar las sentencias que se estan ejecutando en una bd para 
luego registrarlas en otro ...  que prodria utilizar



-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Ayuda con PgPool2 y funciones en pl/Pgsql

2012-07-19 Por tema Rivas Martinez Mauricio Rafael
Buenas tardes

Mi sincera recomendacion usa stream replication y usa el pgpool solo como pool 
de conexion y healthcheck. 

Conectado por MOTOBLUR™

-Mensaje original-
De: "Andres A. Mamani" 
Para: "Lazáro Rubén García Martínez" 
Cc: Miguel Angel Hernandez Moreno , 
"pgsql-es-ayuda@postgresql.org" 
Enviado: jue, jul 19, 2012 16:42:20 GMT-04:30
Asunto: Re: [pgsql-es-ayuda] Ayuda con PgPool2 y funciones en pl/Pgsql

Gracias Lázaro,

respecto a: " utilizarías a pgpool para balancear las consultas y failover
de los server de base de datos"

con esto el problema no persiste? ya que para invocar una función
utilizamos:

 select nombre_funcion(lista parametros);

Entonces pgpool lo considerará como una operación de consulta y no de
insert o update, por lo tanto lo ejecutará en cualquier servidor del
cluster, como ocurre ahora o ... ¿ estoy equivocado?


El 19 de julio de 2012 17:26, Lazáro Rubén García Martínez <
lgarc...@vnz.uci.cu> escribió:

> Para ahorrarte el trabajo de escribir muchos nombres de funciones puedes
> utilizar expresiones regulares, por ejemplo
>
> Supón que tienes las funciones:
>
> fun_modificar_auto
> fun_modificar_casa
>
> entonces dentro de black_function_list puedes escribir:
>
> black_function_list='fun_modificar.*'
>
> Saludos a todos.
> 
> From: pgsql-es-ayuda-ow...@postgresql.org [
> pgsql-es-ayuda-ow...@postgresql.org] On Behalf Of Andres A. Mamani [
> andres.a...@gmail.com]
> Sent: Thursday, July 19, 2012 4:22 PM
> To: Miguel Angel Hernandez Moreno
> Cc: pgsql-es-ayuda@postgresql.org
> Subject: Re: [pgsql-es-ayuda] Ayuda con PgPool2 y funciones en pl/Pgsql
>
> Gracias Miguel,
>
> Pero como tengo muchas funciones, el trabajo sería similar a poner el
> comentario de /*REPLICATION*/ en alguna parte :) .
>
> El 19 de julio de 2012 16:43, Miguel Angel Hernandez Moreno <
> miguel.hdz@gmail.com> escribió:
> Saludos
>
>
> Si hay una forma en el pgpool.conf determinas las funciones que deseas que
> se repliquen
>
> black_function_list = 'nextval,setval';
>
> ahi pones las funciones
>
> gracias y espero te sirva
>
> El 19 de julio de 2012 15:38, Andres A. Mamani  > escribió:
>
> Saludos lista!
>
> Instalé PgPool2 v.3  en mod:
>
> replication_mode=true
> load_balance_mode=true
>
> Configure con 4 servidores con  PostgreSql 9.1, en mi base de datos tengo
> funciones con pl/pgsql donde se realizan update e insert.
>
> Cuando ejecuto estas funciones, lamentablemente la replicación no realiza
> correctamente, provocando inconsistencia en la base de datos.
>
> Lei en el hilo
> http://grokbase.com/t/postgresql/pgsql-es-ayuda/09cp0y78h8/fiabilidad-de-pgpool-ii-postgres
> y me di cuenta del problema, y para la solución se tiene que poner el
> comentario /*REPLICATION*/ al inicio de la función ¿exactamente donde,
> alguien me puede explicar?
>
> ¿No existe otra alternativa? tengo cientos de funciones y hacer esta
> mificación será muy costoso.
>
> ¿Alguien trabajó con otra alternativa, que haga replicacion y balanceo de
> consultas?
>
> Gracias de antemano, por cualquier sugerencia.
>
>
>
>
>
> --
> ISC Miguel Angel Hernandez Moreno
>
>
>
> 
> Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE
> ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
> http://www.antiterroristas.cu
> http://justiciaparaloscinco.wordpress.com
>
> Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE
> ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
> http://www.antiterroristas.cu
> http://justiciaparaloscinco.wordpress.com
>


Re: [pgsql-es-ayuda] Ayuda con PgPool2 y funciones en pl/Pgsql

2012-07-23 Por tema Mauricio Rafael Rivas Martinez

Andres

Las funciones que realizan operaciones DML y que se ejecuten en los 
nodos hot_standby simplemente daran error ya que las bases de datpos de 
esos nodos estan en modo solo lectura


Gracias

Mauricio Rivas
Consultor
 
Proyecto Optimización, Migración y Soporte Interno de Base de Datos Oracle a Tecnologías Libres (OMS BD ORCL - TIL)

Gerencia de Programa Soluciones de TI
Gerencia General de Proyectos Mayores
Gerencia General de Tecnología y Operaciones
Tel:
Cel: +58-412-392-7447
Email: mriva...@cantv.com.ve

El 23/07/2012 09:37 a.m., Lazáro Rubén García Martínez escribió:

Cuando configuras pgpool en modo maestro-esclavo y utilizas SR para la réplica 
(master_slave_mode = on, master_slave_sub_mode = 'stream')
puedes hacer dos cosas con las funciones que modifican la base de datos.

1. Si activas el balance de carga, entonces debes especificarle a pgpool que 
funciones modifican la base de datos, para esto debes poner el nombre de estas 
funciones en la propiedad black_function_list de pgpool, la cual admite 
expresiones regulares. Para este caso, cuando lleguen funciones a pgpool, este 
verifica si las funciones coinciden con las escritas en este listado. En caso 
de coincidir las ejecuta en el nodo maestro, en caso contrario realizaría 
balance de carga y pudieran ejecutarse lo mismo en el nodo maestro que en el 
nodo standby.

2. Si desabilitas el balance de carga, todas las funciones se ejecutarán en el 
master.

Nota: Para estos casos, no es necesario que comentes /* REPLICATION */ delante 
de las consultas.

Saludos a todos.


From: Andres A. Mamani [andres.a...@gmail.com]
Sent: Monday, July 23, 2012 7:54 AM
To: Lazáro Rubén García Martínez
Cc: Jaime Casanova; Miguel Angel Hernandez Moreno; pgsql-es-ayuda@postgresql.org
Subject: Re: [pgsql-es-ayuda] Ayuda con PgPool2 y funciones en pl/Pgsql

Gracias Jaime y Lázaro,

En todo caso creo que mi problema es el diseño de la aplicación, veré
lo que me sugieres Jaime de usar Streaming Replication.

Sin embargo, tengo una duda, al estar los nodos esclavos en
hot_standb=on; que pasa con las funciones que se ejecutan en los nodos
esclavos tipo:
  SELECT graba_datos(valor1, valor2);

¿La consulta se ejecuta? o ¿cómo es que pgpool hará que esa consulta
se ejecute en el nodo maestro? o si o si, tengo que decirle a pgpool
esta consulta es.. /* REPLICATION */

Si es asi, veo que por más que consiga replicar, el problema real lo
tengo con pgpool y el balanceo de consultas, que no hace un análisis
de la función a ajecutar para determinar su naturaleza; en ese caso
¿Qué algernativa me queda?

Saludos.

Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE 
ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com

Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE 
ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda



-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Re: Ayuda con función y refcursor

2013-10-06 Por tema Gunnar Mauricio Lopez Gonzalez
La sentencia que ejeucto es:

select "SC_TEST".fn_seleccionarmaterial('refcursor', 'codigo');
FETCH ALL IN  refcursor;

Gracias,


El 5 de octubre de 2013 17:24, Gunnar Mauricio Lopez Gonzalez <
maulope...@gmail.com> escribió:

> Buenas noches comunidad,
>
> Soy nuevo utilizando postgreSQL y tengo un problema con una función:
>
> CREATE OR REPLACE FUNCTION "SC_TEST".fn_seleccionarmaterial(refcursor,
> pm_codigoacceso character varying)
>   RETURNS refcursor AS
> $BODY$
> begin
>
> OPEN $1 for SELECT
> "CO_FechaIngreso","CO_Procedencia","CO_Titulo","CO_Autor"
> ,"CO_Editorial","CO_Signatura","CO_Inscripcion","CO_CodigoAcceso","CO_Tipo","CO_Estado"
>  FROM "SC_TCU"."TA_Material" WHERE "CO_CodigoAcceso" =
> 'pm_codigoacceso';
> return $1;
> end;
> $BODY$
>   LANGUAGE 'plpgsql' VOLATILE
>   COST 100;
> ALTER FUNCTION "SC_TEST".fn_seleccionarmaterial(refcursor, character
> varying) OWNER TO postgres;
>
> A la hora de que ejecuto la sentencia:
>
> select "SC_TCU".fn_seleccionarmaterial('refcursor', 'codigo');
> FETCH ALL IN  refcursor;
>
> No me muestra ningún valor, aún cuando la palabla "codigo" satisfaga la
> búsqueda.
>
> Hay algo malo en mi función?
>
> Gracias de antemano.
> Saludos,
> --
> M/\U
>



-- 
M/\U


[pgsql-es-ayuda] Ayuda con función y refcursor

2013-10-09 Por tema Gunnar Mauricio Lopez Gonzalez
Buenas noches comunidad,

Soy nuevo utilizando postgreSQL y tengo un problema con una función:

CREATE OR REPLACE FUNCTION "SC_TEST".fn_seleccionarmaterial(refcursor,
pm_codigoacceso character varying)
  RETURNS refcursor AS
$BODY$
begin

OPEN $1 for SELECT
"CO_FechaIngreso","CO_Procedencia","CO_Titulo","CO_Autor"
,"CO_Editorial","CO_Signatura","CO_Inscripcion","CO_CodigoAcceso","CO_Tipo","CO_Estado"
 FROM "SC_TCU"."TA_Material" WHERE "CO_CodigoAcceso" =
'pm_codigoacceso';
return $1;
end;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION "SC_TEST".fn_seleccionarmaterial(refcursor, character
varying) OWNER TO postgres;

A la hora de que ejecuto la sentencia:

select "SC_TCU".fn_seleccionarmaterial('refcursor', 'codigo');
FETCH ALL IN  refcursor;

No me muestra ningún valor, aún cuando la palabla "codigo" satisfaga la
búsqueda.

Hay algo malo en mi función?

Gracias de antemano.
Saludos,
-- 
M/\U


Re: [pgsql-es-ayuda] sobre particionado de tablas

2013-10-14 Por tema Mauricio Rafael Rivas Martinez

Buenos DIas

Me parece que estas buscando hundirte en un vaso de agua, te recomiendo 
lo siguiente:


.- identifica cual es el campo de la tabla con el cual vas a obtener la 
una cantidad de registros por partición mas uniforme, es decir que la 
desviación con respecto al promedio sea menor


De esta forma sera mucho mas sencilla la administración de las particiones.


Mauricio Rivas
Consultor
 
Proyecto Optimización, Migración y Soporte Interno de Base de Datos Oracle a Tecnologías Libres (OMS BD ORCL - TIL)

Gerencia de Programa Soluciones de TI
Gerencia General de Proyectos Mayores
Gerencia General de Tecnología y Operaciones
Tel:
Cel: +58-426-517-2574
Email: mriva...@cantv.com.ve

El 14/10/2013 08:23 a.m., Arcel Labrada Batista escribió:

Buenos días listeros,

estuve buscando como realizar particiones de tablas para tablas muy 
grandes pero no he encontrado nada que me permita hacer particiones 
por cantidad de registros, he visto que se hacen por fechas, pero 
realmente me gustaria para hacerlos por cantidad de registros en las 
tablas que heredan, tengo la disyuntiva además que no puedo agragar un 
nuevo campo a las tablas donde tenga un número secuencial por donde 
podria ser muy fácil controlar esa cantidad de registros, ¿conocen 
alguna manera de hacer esto?, Saludos y gracias de antemano






III Escuela Internacional de Invierno en la UCI del 17 al 28 de 
febrero del 2014. Ver www.uci.cu <http://www.uci.cu/>