Re: [pgsql-es-ayuda] Vacuum

2017-06-05 Por tema Gerardo Herzig


- Mensaje original -
> De: "Diego" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Lunes, 5 de Junio 2017 8:43:18
> Asunto: [pgsql-es-ayuda] Vacuum
> 
> Buenos días Postgresistas,
> 
> Hoy les escribo para consultarles sobre una situación que me pasa con
> una tabla.
> Esta tabla tiene 31 registros y 3 campos, una pk y un indice, después de
> un tiempo me doy cuenta que ocupa 595 MBs y 577 MBs de indices.
> 
> Le hice un Vacuum manual a la tabla y arrojo lo siguiente sin reducir el
> tamaño:
> 
> 

Vacuum "a secas" no elimina espacio, mas bien lo reorganiza. Lo que vos queres 
se logra con VACUUM FULL, o recreandola (en la manera supongo que hiciste).

HTH,
Gerardo

-
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] Load-balancing con hot-standby

2017-05-22 Por tema Gerardo Herzig
- Mensaje original -
> De: "lodopidolo" 
> Para: pgsql-es-ayuda@postgresql.org, "dir postgresql" 
> 
> Enviados: Lunes, 22 de Mayo 2017 8:16:08
> Asunto: [pgsql-es-ayuda] Load-balancing con hot-standby
> 
> Hola, he configurado una sistema hot-standby con synchronous replication
> mediante streaming replication. Querría tener una dirección única donde
> las peticiones de modificación fueran al servidor primario y las de
> consulta se balancearan automáticamente entre cualquiera de los dos.
> 
> Al parecer esto se puede hacer con pgpool, pero no sé si se puede
> utilizar pgpool con esta configuración que tengo, ni que otras
> alternativas hay para balanceo con hot-standby.
> 
> Un saludo.
> 
Asi es, pgpool es el balancer mas popular para postgres, y viene especialmente 
preparado para lidiar con esos ambientes de replicacion.

Una aclaracion un tanto al margen: Si estas utilizando replicacion *sincronica* 
con solamente 2 hosts, significa que si la replica se te cae, las transacciones 
van a quedar a la espera indefinidamente. Por eso, en general, cuando tenes 2 
hosts se usa replicacion asincronica.

Saludos,
Gerardo

-
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] calculo preciso de años meses y dias

2017-05-15 Por tema Gerardo Herzig
Me suena a que tiene que ver conque febrero pueda ser año bisiesto, o como ya 
apuntaron por ahi, al cambio de horario.
De todos modos, la resta de fechas pareceria funcionar mejor:

postgres=# select '29-04-2017'::timestamp - '15-02-2017',  
'01-05-2017'::timestamp - '15-02-2017';
 ?column? | ?column? 
--+--
 73 days  | 75 days
(1 row)


HTH
Gerardo

- Mensaje original -
> De: "felix gonzales" 
> Para: "PostgreSQL" 
> Enviados: Lunes, 15 de Mayo 2017 10:16:50
> Asunto: [pgsql-es-ayuda] calculo preciso de años meses y dias
> 
> buen día lista,
> 
> Necesito obtener años meses y días precisos. utilizando la función AGE
> tengo la dificultad que la primera y ultima linea me devuelve lo mismo,
> alguna alternativa?
> 
> select AGE('29-04-2017','15-02-2017');
> select AGE('30-04-2017','15-02-2017');
> select AGE('01-05-2017','15-02-2017');
> 
> cualquier comentario bienvenido.
> 
> --
> Felix Gonzales
> 

-
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] Topología Aplicada

2017-04-20 Por tema Gerardo Herzig


- Mensaje original -
> De: "Néstor Ramires" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Jueves, 20 de Abril 2017 11:35:30
> Asunto: [pgsql-es-ayuda] Topología Aplicada
> 
> 
> Hola. Ante todo, vengo de trabajar en MicroStation Geographics, mi
> intención es migrar toda la información a una base de datos postgis
> y en ese tramo se me presentó este problema.
> 

Creo que tendras mejor suerte probando en un foro de postgis. Por ej:
http://lists.osgeo.org/mailman/listinfo/postgis-users (foro oficial)

Saludos,
Gerardo

-
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] Problemas con permisos.

2017-03-30 Por tema Gerardo Herzig
> 
> Buenas lista.
> 
> Soy Enrique Llácer, llevo bastante tiempo trabajando con postgreSQL y
> hoy me he encontrado con un problema que no consigo solucionarlo ni
> encuentro documentación al respecto.
> 
> Estoy usando windows 10 y postgresql 9.5, todas las tablas tienen
> Grant All, por lo que todos los usuarios acceden sin problemas.
> 
> GRANT ALL ON TABLE public.mitabla TO postgres;
> GRANT ALL ON TABLE public.mitabla TO public;
> 
> el problema me ha sugido al incluir en una función, entre su código,
> una instrucción para deshabilitar/habilitar un trigger; este error
> lo está dando, también, desde el pgAdmin, siempre que no entre como
> superusuario postgres
> 
> 
> 
> ERROR: debe ser dueño de la relación mitabla
> CONTEXT: sentencia SQL: «ALTER TABLE mitabla DISABLE TRIGGER
> mitrigger»
>
 
ALTER sirve para los datos de la tabla. Lo que no te deja modificar es la 
metadata, que es otra cuestion.
Podes cambiar el owner de la tabla haciendo
ALTER TABLE port_status OWNER TO _usuario_;

O bien podes hacer la funcion que mencionas con la clausula SECURITY DEFINER, 
como dice en 
https://www.postgresql.org/docs/9.5/static/sql-createfunction.html

HTH
Gerardo


-
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] Substring y expresiones regulares

2017-03-23 Por tema Gerardo Herzig
- Mensaje original -
> De: "baru gerardi" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Jueves, 23 de Marzo 2017 13:13:29
> Asunto: [pgsql-es-ayuda] Substring y expresiones regulares
> 
> 
> 
> 
> 
> 
> 
> Buenos dias
> Necesito extraer de un campo de texto los nros de DNI contenidos en
> él.
> Sé que los mismos se encuentran luego de la cadena 'DNI:'
> 
> Con substring(texto from 'DNI:') ubico la cadena
> 
> pero necesito que liste de ahí en adelante los nros que encuentre,
> teniendo en cuenta:
> 1. que desconozco cuantos espacios hay entre 'DNI:' y el primer
> dígito y
> 2. que puede haber puntos entre los dígitos
> 
> 
> Desde ya, gracias por la ayuda


Que tal una expresion regular para borrar todo lo que *no* sean numeros:

select regexp_replace(texto, '[^0-9]', '','g') from tabla;

postgres=# select *, regexp_replace(dni, '[^0-9]', '','g') as solo_numeros from 
dnis;
dni | solo_numeros 
+--
 DNI:12.382.712 | 12382712
 DNI:12382712   | 12382712
 DNI:123827..12 | 12382712
(3 rows)


HTH

Gerardo

-
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] Re: [pgsql-es-ayuda] Función con select se ejecutar muy lenta comparada con la ejecución de select fuera de la función

2016-12-21 Por tema Gerardo Herzig


- Mensaje original -
> De: "José Alberto Sánchez Nieto (Trabajo)" 
> Para: "Ernesto Lozano" 
> CC: pgsql-es-ayuda@postgresql.org
> Enviados: Miércoles, 21 de Diciembre 2016 15:10:05
> Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Función con select se ejecutar 
> muy lenta comparada con la ejecución de
> select fuera de la función
> 
> Hola Ernesto, la versión que utilizo es la 9.6.1 y lo que utilizo es
> lo siguiente:
> - Desde shell:
> select * from d_articulo where id_articulo = ‘2097’
> Con el explain plan me dice que utiliza un index scan lo cual es
> correcto ya que tengo un índice por ese campo y el tiempo de
> ejecución es 0.045ms
> 
> 
> -Desde función:
> CREATE OR REPLACE FUNCTION prueba_velocidad(
> v_id_articulo character varying
> RETURNS void AS
> $BODY$
> DECLARE
> vv_reg_articulo record;
> BEGIN
> EXECUTE ‘SELECT * FROM d_articulo WHERE id_arjticulo = ‘ ||
> quote_literal($1)
> INTO vv_reg_articulo
> USING v_id_articulo;
> 
> 
> RETURN;
> END;
> $BODY$
> LANGUAGE plpgsql STABLE
> COST 100;
> ALTER FUNCTION prueba_velocidad(character varying)
> OWNER TO valmanar;
> 
> 
> Y la ejecuto con: select prueba_velocidad(‘2097’) dándome unos
> tiempos de 0.229ms
> He probado sin el quote_literal simplemente con $1 y tampoco,
> evidentemente también probé sin el execute poniendo la query normal
> cómo la del shell y sigue dándome unos tiempos muy altos. ¿Qué puede
> ser?.
> Gracias por la ayuda y saludos.

Me suena razonable esos tiempos, porque estas añadiendo un overhead considerable
1) Utilizando pl/pgsql en lugar de SQL,
2) Utilizando EXECUTE

Proba haciendo una funcion el SQL, ya que para este caso al menos, usar pl no 
tiene mucho sentido.

HTH
Gerardo

-
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] Pgadmin 4

2016-11-23 Por tema Gerardo Herzig
Creo que necesitas configurar el apache para que escuche en otro puerto [1], 
aunque no termino de entender lo de "me choca"

[1] https://httpd.apache.org/docs/2.4/vhosts/examples.html

HTH
Gerardo
- Mensaje original -
> De: "Javier Lugo Porras" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Miércoles, 23 de Noviembre 2016 12:06:52
> Asunto: [pgsql-es-ayuda] Pgadmin 4
> 
> 
> 
> Buen dia grupo...estoy probando el pgadmin 4 pero x default usa el
> port 80 ... rebusque la configuracion del apache y python...no
> encontre donde cambiarlo...lei la documentacionpero no muestra
> donde cambiar el puerto ...me choca con mis aplicaciones
> existentes..
> 
> Si alguien sabe...welcome!!!
> 

-
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] Permisos en cluster con varias bases

2016-11-03 Por tema Gerardo Herzig


- Mensaje original -
> De: "Federico Sansone" 
> Para: "POSTGRES" 
> Enviados: Jueves, 3 de Noviembre 2016 13:54:48
> Asunto: [pgsql-es-ayuda] Permisos en cluster con varias bases
> 
> 
> 
> Buen día estimados, les pido ayuda para pensar una solución a un
> problema de diseño.
> Tenemos la necesidad de armar un cluster que va a recibir varias
> bases pequeñas de distintos usuarios y no tenemos posibilidad de
> aislar los entornos a nivel infraestructura.
> 
> Si quisiéramos que los usuarios vean su base y solo su base y no las
> demás que opciones tenemos?
> 
> Usar Schemas es una opción? Entiendo que si hay dos tablas que se
> llaman igual en los distintos Schemas vamos a tener que modificar
> las aplicaciones para aclarar el Schema y la tabla, incluso si lo
> ponemos en el search_path, o estoy equivocado?
> 
> Se pueden separar los logs por base?
> 
> Muchas gracias!
> 

Si tenes un schema por cada usuario, podes hacer un 
"ALTER USER usuario1 set search_path TO schema_user1"

Y asi para los demas. Asi cada usuario ya tiene el search_path por default y no 
hace falta que modifiques mucho las apps.

Otra opcion es una base por usuario. Asi la separacion es mas "de verdad", 
aunque un clavo si tenes que actualizar datos en tablas en comun para todos los 
clientes.

Si queres separar los logs por base, entonces vas a necesitar una instancia de 
postgres por cada usuario (escuchando en diferentes puertos)

HTH
Gerardo

-
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] Funcion con parametros

2016-10-31 Por tema Gerardo Herzig
Simplemente debe existir una version de ufp_lista_ccosto(), sin parametros de 
entrada declarados.

Podes comprobarlo haciendo \df ufp_lista_ccosto en psql
Cuantas funciones te muestra?
Si adivino bien, entonces te va a mostrar al menos 2 versiones. Y bueno, en 
todo caso borra las versiones de la funcion que no necesites.

HTH
Gerardo
- Mensaje original -
> De: "Felipe Araoz Ramos" 
> Para: "PostgreSQL-foro" 
> Enviados: Domingo, 30 de Octubre 2016 21:20:20
> Asunto: [pgsql-es-ayuda] Funcion con parametros
> 
> 
> Buena noche amigos
> 
> 
> He hecho una funcion simple que me lista una tabla filtrando por un
> campo, sin embargo cuando ejecuto la funion sin paramtros tambien me
> la muestra,
> deberia ser asi?
> 
> 
> 
> 
> 
> CREATE OR REPLACE FUNCTION ufp_lista_ccosto (IN character)
> RETURNS TABLE(t_elem character varying, t_des1 character varying,
> t_area character varying) AS
> $BODY$
> declare
> x_empr alias for $1;
> begin
> return query
> SELECT ccosto.t_elem,ccosto.t_des1,ccosto.t_area
> FROM fpcost ccosto
> where ccosto.t_empr=x_empr
> ORDER BY ccosto.t_elem;
> end;
> $BODY$
> LANGUAGE plpgsql VOLATILE
> COST 100
> ROWS 1000;
> 
> 
> cuando ejecuto
> SELECT * from ufp_lista_ccosto('01') me mestra filtrando
> 
> 
> 
> SELECT * from ufp_lista_ccosto(), me mestra todo
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Felipe Araoz Ramos
> RPM #941990605 / 941990605
> 
> Lima-Perù
> 
> 
> 
> 

-
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] Consulta quizas de novato

2016-10-12 Por tema Gerardo Herzig


- Mensaje original -
> De: "Aland Laines" 
> Para: "POSTGRES" 
> Enviados: Miércoles, 12 de Octubre 2016 19:50:48
> Asunto: [pgsql-es-ayuda] Consulta quizas de novato
> 
> 
> 
> 
> 
> Hola compañeros, tengo dos tablas
> 
> dependencias
> 
> id dependecia
> 
> 1 nombre1
> 
> 2 nombre2
> 3 nombre3
> 
> 
> codigos
> 
> id codigo
> 
> 1 codigo1
> 2 codigo2
> 3 codigo3
> 4 codigo4
> 5 codigo5
> 6 codigo6
> 7 codigo7
> 8 codigo8
> 
> 
> 
> 
> 
> 
> quiero combinar estas dos tabla en un vista de esta forma:
> 
> 
> nombre codigo
> 
> =
> 
> nombre1 codigo1
> nombre1 codigo2
> nombre1 codigo3
> nombre1 codigo4
> nombre1 codigo5
> nombre1 codigo6
> nombre1 codigo7
> nombre1 codigo8
> nombre2 codigo1
> nombre2 codigo2
> nombre2 codigo3
> nombre2 codigo4
> nombre2 codigo5
> nombre2 codigo6
> nombre2 codigo7
> nombre2 codigo8
> nombre3 codigo1
> nombre3 codigo2
> nombre3 codigo3
> nombre3 codigo4
> nombre3 codigo5
> nombre3 codigo6
> nombre3 codigo7
> nombre3 codigo8
> 
> 
> 
Creo que estamos hablando del producto cartesiano de ambas tablas.
Seria algo como 
SELECT dependencia, codigo from dependencias cross join codigo;

HTH
Gerardo

-
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] pg_dumpall desde maquina remota

2016-09-20 Por tema Gerardo Herzig


- Mensaje original -
> De: "Kernel" 
> Para: "Ayuda" 
> Enviados: Martes, 20 de Septiembre 2016 4:52:07
> Asunto: [pgsql-es-ayuda] pg_dumpall desde maquina remota
> 
> 
> Hola estoy intentando hacer un backup completo de un gestor desde una
> maquina en remota y algo
> 
> no debo de estar haciendo bien , me explico :
> 
> 
> Maquina principal 192.168.1.1
> Maquina remota 192.168.2.1
> 
> pg_hba.conf de la maquina principal
> 
> # IPv4 local connections:
> local   all all   trust
> # IPv6 local connections:
> hostall all 127.0.0.1/32  trust
> hostall all ::1/128   trust
> host all prueba 192.168.1.1 255.255.255.255 trust
> host all all192.168.2.1 255.255.255.255 trust
> 
> Password del usuario prueba es prueba
> 
> desde la maquina principal ejecuto
> 
>   pg_dumpall -U prueba -s -f /tmp/DBs.sql (ok)
>   pg_dump   dbdatos -U prueba -s -f /tmp/DBdatos.sql  (ok)
> 
>   todo esto lo ejecuto sin problemas , no me pide ni password ni nada
> 
>   desde la remota 192.168.2.1 , ejecuto :
> 
>   psql dbdatos -h 192.168.1.1 -U prueba  (ok sin problemas no
>   pide
> password )
> 
>   pg_dumpall -h 192.168.1.1 -U prueba -s -f /tmp/DBs.sql
>   (se
> queda parado, no pide password)
>   pg_dump   dbdatos -h 192.168.1.1 -U prueba -s -f /tmp/DBdatos.sql
>(se
> queda parado, no pide password)
> 
> 
> He probado a crear el fichero /home/prueba/.pgpass , con permisos
> 600,
> pero nada
> 
> 192.168.1.1:5432:dbdatos:prueba:prueba
> 
Que pasa si lo sacas por STDIN? 

-
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] ¿Existen problemas cuando una BD es frecuentemente modificada en su estructura?

2016-09-02 Por tema Gerardo Herzig


- Mensaje original -
> De: "Arturo" 
> Para: "Postgresql" 
> Enviados: Viernes, 2 de Septiembre 2016 11:36:02
> Asunto: [pgsql-es-ayuda] ¿Existen problemas cuando una BD es frecuentemente 
> modificada en su estructura?
> 
> Buenos días:
> 
> Tengo una duda, por condiciones que no puedocambiar, tengo que hacer,
> y he hecho, muchas modificaciones en la estrctura de bases de datos
> que ya están en funcionamiento (en producción), es decir he creado
> nuevas tablas, agregado y quitado columnas a tablas existente,
> cambiado agregado y borrado funciones.
> 
> Aunque la base de datos sigue funcionando normalmente, solo he visto
> un poco mermada la velocidad pero se lo atribuyo al creciente numero
> de datos.
> 
> Mi pregunta es:
> ¿De qué manera afecta todas estas modificaciones a una base de datos
> en producción?
> 
> ¿Debería levantar un backup y eliminar la base de datos original, y
> asi obtener una base de datos con todas las estructuras creadas "de
> una sola vez"?
> 
> ¿Sería esto beneficioso de alguna manera?

Bueno, levantar un backup (hecho con pg_dump) te dejara las tablas e indices 
"limpitos" de la suciedad tipica que se junta con el tiempo en cualquier base 
de datos, equivalente a hacer un "vacuum full" y un reindex de todas las bases.


HTH
Gerardo
> 
> Agradezco su tiempo cualquier respuesta, sugerencia o experiencia
> previa compartida será, como es obvio, muy agradecida.
> 
> --
> Arturo Munive
> 
> -
> 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] Ayuda con función...

2016-08-25 Por tema Gerardo Herzig
1) Creo que tu profesor de "bases de datos" se quedo en Pascal.
2) Con que argumento estas invocando a esta funcion?

- Mensaje original -
> De: "Carlos T. Groero Carmona" 
> Para: "Lista PostgreSql" 
> Enviados: Jueves, 25 de Agosto 2016 21:42:38
> Asunto: [pgsql-es-ayuda] Ayuda con función...
> 
> 
> Hola lista, ante todo gracias por cualquier comentario o
> sugerencia...
> Tengo esta función que tiene como parámetro de entrada un número, y
> luego devuelve ese número invertido...ejemplo...entro el 531 y tiene
> que devolver el 135, la función o ejercicio tiene como principal
> características que no puedo usar ningún tipo de función o tipo de
> dato para cadena...solo puedo usar tipos de datos y funciones
> numéricas...ya la hice...y cuando la debugeo me funciona bien, pero
> cuando la ejecuto me devuelve este error:
> 
> 
> ERROR: invalid input syntax for integer: "31."
> CONTEXT: PL/pgSQL function some_user.reverse_order(integer) line 18
> at assignment
> 
> 
> la función es la siguiente...
> 
> 
> 
> CREATE OR REPLACE FUNCTION some_user.reverse_order (
> var integer
> )
> RETURNS integer AS'
> DECLARE
> var_lgh integer ;
> var_div integer :=$1::integer;
> var_s integer :=1;
> result_e integer:=0;
> tf BOOLEAN := true;
> var_x integer;
> lth integer :=trunc(log($1))+1;
> -- variable_name datatype;
> BEGIN
> if $1>0 then
> BEGIN
> WHILE tf LOOP
> var_x:=lth-var_s;
> var_lgh:=div(var_div,power(10.0,var_x)); -- dividendo
> result_e:=result_e+var_lgh*power(10,var_s-1);
> var_div:=mod(var_div,power(10.0,var_x)); -- resto
> var_s:=var_s+1;
> IF var_s>lth THEN
> tf:=false;
> end if;
> END loop;
> 
> END;
> ELSE
> IF $1=0 THEN
> RAISE NOTICE ''The entered parameter is zero, please provide a
> greater than zero value.'';
> ELSE
> RAISE EXCEPTION ''The entered parameter is less than zero, please
> provide a greater than zero value.'';
> end if;
> end if;
> return result_e::integer;
> END;
> 'LANGUAGE 'plpgsql'
> VOLATILE
> CALLED ON NULL INPUT
> SECURITY INVOKER
> COST 100;
> 
> 
> una vez más gracias por cualquier comentario...
> 
> 
> Carlos

-
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] postgresql.conf

2016-08-09 Por tema Gerardo Herzig

> 
> 
> 
> por medio del presente agradezco su tiempo y su atencion, tengo dudas
> acerca de mi archivo de configuracion, mi servidor es windows server
> enterprice service pack 1 y tiene 6GB de ram.
> 
> la aplicacion que se conecta a el tiene problea y llena la memoria
> virtual de su servidor de aplicaciones, en la tabla de bloqueos me
> muestra unas consultas que quedan en "idle in transaction"
> 
> 

Entonces primero tenes que revisar ese servidor de apps, y buscar ahi pistas de 
por que se queda sin memoria.

Gerardo

-
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] exportar datos concatenados

2016-07-28 Por tema Gerardo Herzig
Es mas, luego de tomar mi cafe creo que que hacer un dump | restore de esa 
tabla haria lo que necesitas. O sea si tu objetivo es transportar la tabla 
completamirate las ayudas de pg_dump y pg_restore (son los comandos que usa 
internamente pg_admin para hacer/restaurar backups)

HTH
Gerardo

- Mensaje original -
> De: "Gerardo Herzig" <gher...@fmed.uba.ar>
> Para: eenriq...@cav.desoft.cu
> CC: pgsql-es-ayuda@postgresql.org
> Enviados: Jueves, 28 de Julio 2016 10:51:42
> Asunto: Re: [pgsql-es-ayuda] exportar datos concatenados
> 
> Creo que haciendolo en SQL te va a resultar engorroso. Si entendi
> bien tu consigna, entonces yo haria un pg_dump, y luego trabajaria
> esa resultante con sed o algo asi para limpiar un poco la salida.
> 
> HTH
> Gerardo
> 
> - Mensaje original -
> > De: eenriq...@cav.desoft.cu
> > Para: pgsql-es-ayuda@postgresql.org
> > Enviados: Jueves, 28 de Julio 2016 10:32:32
> > Asunto: [pgsql-es-ayuda] exportar datos concatenados
> > 
> > Hola amigos.
> > Estoy prensentando un problema y les escribo porque quizas alguno
> > de
> > ustedes ha tenido la misma situacion y me pueda ayudar. La cuestion
> > es que tengo una tabla log donde guardo por cada tabla los
> > registros
> > que se han modificado en la base de datos, y debo tener una funcion
> > que me devueva una cadena sql con los registros que estan en la
> > tabla log, para luego ejecutar esa consulta en otra bd. Estas 2
> > bases de datos no tienen conectividad entre ellas.
> > 
> > la tabla log tiene esta definicion
> > 
> > CREATE TABLE public.actualizacion
> > (
> > id integer NOT NULL DEFAULT
> > nextval('actualizacion_id_seq'::regclass),
> > id_elemento integer NOT NULL,
> > fecha timestamp without time zone NOT NULL,
> > operacion integer NOT NULL,
> > tabla character varying(50) NOT NULL,
> > estado integer NOT NULL DEFAULT '-1'::integer,
> > CONSTRAINT "PK33" PRIMARY KEY (id)
> > )
> > WITH (
> > OIDS=FALSE
> > );
> > 
> > El resultado que me tendria que arrojar la funcion seria por
> > ejemplo
> > insert into pais (id,nombre) values (1,'a'),(2,'b'),(3,'c');insert
> > into provincia (id,nombre,id_pais) values (1,'x',1),(2,'y',1)
> > 
> > Basicamente debo hacer lo mismo que hace el pgadmin para hacer
> > backups y luego concatenar las sentencias. Es un trabajo muy
> > complejo y quizas alguien lo ha tenido que implementar y me pueda
> > asesorar.
> > 
> > Muchas gracias a todos por su atencion.
> 
> -
> 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] exportar datos concatenados

2016-07-28 Por tema Gerardo Herzig
Creo que haciendolo en SQL te va a resultar engorroso. Si entendi bien tu 
consigna, entonces yo haria un pg_dump, y luego trabajaria esa resultante con 
sed o algo asi para limpiar un poco la salida.

HTH
Gerardo

- Mensaje original -
> De: eenriq...@cav.desoft.cu
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Jueves, 28 de Julio 2016 10:32:32
> Asunto: [pgsql-es-ayuda] exportar datos concatenados
> 
> Hola amigos.
> Estoy prensentando un problema y les escribo porque quizas alguno de
> ustedes ha tenido la misma situacion y me pueda ayudar. La cuestion
> es que tengo una tabla log donde guardo por cada tabla los registros
> que se han modificado en la base de datos, y debo tener una funcion
> que me devueva una cadena sql con los registros que estan en la
> tabla log, para luego ejecutar esa consulta en otra bd. Estas 2
> bases de datos no tienen conectividad entre ellas.
> 
> la tabla log tiene esta definicion
> 
> CREATE TABLE public.actualizacion
> (
> id integer NOT NULL DEFAULT
> nextval('actualizacion_id_seq'::regclass),
> id_elemento integer NOT NULL,
> fecha timestamp without time zone NOT NULL,
> operacion integer NOT NULL,
> tabla character varying(50) NOT NULL,
> estado integer NOT NULL DEFAULT '-1'::integer,
> CONSTRAINT "PK33" PRIMARY KEY (id)
> )
> WITH (
> OIDS=FALSE
> );
> 
> El resultado que me tendria que arrojar la funcion seria por ejemplo
> insert into pais (id,nombre) values (1,'a'),(2,'b'),(3,'c');insert
> into provincia (id,nombre,id_pais) values (1,'x',1),(2,'y',1)
> 
> Basicamente debo hacer lo mismo que hace el pgadmin para hacer
> backups y luego concatenar las sentencias. Es un trabajo muy
> complejo y quizas alguien lo ha tenido que implementar y me pueda
> asesorar.
> 
> Muchas gracias a todos por su atencion.

-
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] [psql-es-ayuda] ordenamiento con Ñ

2016-07-01 Por tema Gerardo Herzig
> estaba usando collate C, debido a que si no lo pongo, el ordenamiento
> queda asi
> ALVARES
> DE LA CRUZ
> DELGADO
> DE TRINIDAD
> FONSECA
> MENDOZA
> 
> 
> Debiendo estar los q marque en negristas, juntos. al usar es_AR los
> deja de la manera anterior

Ah pero...esa inquietud (de los espacios) no es la misma que la inquietud 
original del primer mail!
Tambien dijiste que la collation es_AR no ordenaba correctamente las ñ...Por 
favor para la proxima, clarifica mejor tus preguntas, asi tendras respuestas 
mas precisas.

Gerardo

-
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] [psql-es-ayuda] ordenamiento con Ñ

2016-07-01 Por tema Gerardo Herzig
Aha, parece que el problema esta en las locale. Tendrias que preguntar en algun 
foro de centos, seguramente haya algun parche para la version de locale que 
estes usando, o debas actualizar.

Saludos
Gerardo

- Mensaje original -
> De: "Eveling Velásquez" <lings...@yahoo.es>
> Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> CC: "Pgsql-es-ayuda" <pgsql-es-ayuda@postgresql.org>
> Enviados: Viernes, 1 de Julio 2016 13:32:57
> Asunto: Re: [pgsql-es-ayuda] [psql-es-ayuda] ordenamiento con Ñ
> 
> 
> 
> Hola
> 
> 
> el resultado es el siguiente
> 
> 
> cat /orden
> ALVARES
> DE LA CRUZ
> DE TRINIDAD
> ÃRINDA
> FONSECA
> MENDOZA
> NORORI
> OSORIO
> 
> 
> 
> 
> sort /orden
> ALVARES
> DE LA CRUZ
> DE TRINIDAD
> FONSECA
> MENDOZA
> NORORI
> ÃRINDA
> OSORIO
> 
> 
> 
> 
> locale
> LANG=en_US.UTF-8
> LC_CTYPE="en_US.UTF-8"
> LC_NUMERIC="en_US.UTF-8"
> LC_TIME="en_US.UTF-8"
> LC_COLLATE="en_US.UTF-8"
> LC_MONETARY="en_US.UTF-8"
> LC_MESSAGES="en_US.UTF-8"
> LC_PAPER="en_US.UTF-8"
> LC_NAME="en_US.UTF-8"
> LC_ADDRESS="en_US.UTF-8"
> LC_TELEPHONE="en_US.UTF-8"
> LC_MEASUREMENT="en_US.UTF-8"
> LC_IDENTIFICATION="en_US.UTF-8"
> LC_ALL=
> 
> [root@srv01-bd ~]#
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> El Jueves, 30 de junio, 2016 20:06:23, Gerardo Herzig
> <gher...@fmed.uba.ar> escribió:
> 
> 
> 
> - Mensaje original -
> > De: "Eveling Velásquez" < lings...@yahoo.es >
> > Para: "Gerardo Herzig" < gher...@fmed.uba.ar >
> > CC: "Pgsql-es-ayuda" < pgsql-es-ayuda@postgresql.org >
> > Enviados: Jueves, 30 de Junio 2016 15:05:24
> > Asunto: Re: [pgsql-es-ayuda] [psql-es-ayuda] ordenamiento con Ñ
> > 
> > 
> > 
> > Al ejecutar la sentencia
> > with apellidos (apellido) as (values ('ALVARES'),
> > ('DE LA CRUZ'),
> > ('DE TRINIDAD'),
> > ('FONSECA'),
> > ('MENDOZA'),
> > ('NORORI'),
> > ('OSORIO'),
> > ('ÑURINDA'),
> > ('ÑAMENDI'),
> > ('PEREZ'),
> > ('PEÑA')
> > 
> > )select * from apellidos order by apellido collate "es_AR";
> > 
> > 
> > el resultado es:
> > 
> > 
> > "ALVARES"
> > "DE LA CRUZ"
> > "DE TRINIDAD"
> > "FONSECA"
> > "MENDOZA"
> > "ÑAMENDI"
> > "NORORI"
> > "ÑURINDA"
> > "OSORIO"
> > "PEÑA"
> > "PEREZ"
> > 
> > 
> > 
> Me huele a que tenes un problema con las bilbiotecas "locale" en ese
> server.
> Tenes acceso a una consola en ese server? De ser asi, create un
> archivo de texto con esos apellidos, y luego ordenalos con el
> comando sort de linux. Algo asi:
> root@admin-server :~# cat /tmp/archivo.txt
> ALVARES
> DE LA CRUZ
> DE TRINIDAD
> ÑURINDA
> FONSECA
> MENDOZA
> NORORI
> OSORIO
> 
> root@admin-server :~# sort /tmp/archivo.txt
> ALVARES
> DE LA CRUZ
> DE TRINIDAD
> FONSECA
> MENDOZA
> NORORI
> ÑURINDA
> OSORIO
> 
> Y, tambien corroborar cuales locale estas usando a nivel SO:
> root@admin-server :~# locale
> LANG=en_US.UTF-8
> LANGUAGE=en_US:en
> LC_CTYPE=es_ES.UTF-8
> LC_NUMERIC="en_US.UTF-8"
> LC_TIME="en_US.UTF-8"
> LC_COLLATE=en_US.UTF-8
> LC_MONETARY="en_US.UTF-8"
> LC_MESSAGES="en_US.UTF-8"
> LC_PAPER="en_US.UTF-8"
> LC_NAME="en_US.UTF-8"
> LC_ADDRESS="en_US.UTF-8"
> LC_TELEPHONE="en_US.UTF-8"
> LC_MEASUREMENT="en_US.UTF-8"
> LC_IDENTIFICATION="en_US.UTF-8"
> LC_ALL=
> 
> Que te sale a vos?
> 
> 
> 
> 
> -
> 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
> 
> 

-
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] [psql-es-ayuda] ordenamiento con Ñ

2016-06-30 Por tema Gerardo Herzig
- Mensaje original -
> De: "Eveling Velásquez" <lings...@yahoo.es>
> Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> CC: "Pgsql-es-ayuda" <pgsql-es-ayuda@postgresql.org>
> Enviados: Jueves, 30 de Junio 2016 15:05:24
> Asunto: Re: [pgsql-es-ayuda] [psql-es-ayuda] ordenamiento con Ñ
> 
> 
> 
> Al ejecutar la sentencia
> with apellidos (apellido) as (values ('ALVARES'),
> ('DE LA CRUZ'),
> ('DE TRINIDAD'),
> ('FONSECA'),
> ('MENDOZA'),
> ('NORORI'),
> ('OSORIO'),
> ('ÑURINDA'),
> ('ÑAMENDI'),
> ('PEREZ'),
> ('PEÑA')
> 
> )select * from apellidos order by apellido collate "es_AR";
> 
> 
> el resultado es:
> 
> 
> "ALVARES"
> "DE LA CRUZ"
> "DE TRINIDAD"
> "FONSECA"
> "MENDOZA"
> "ÑAMENDI"
> "NORORI"
> "ÑURINDA"
> "OSORIO"
> "PEÑA"
> "PEREZ"
> 
> 
> 
Me huele a que tenes un problema con las bilbiotecas "locale" en ese server.
Tenes acceso a una consola en ese server? De ser asi, create un archivo de 
texto con esos apellidos, y luego ordenalos con el comando sort de linux. Algo 
asi:
root@admin-server:~# cat /tmp/archivo.txt 
ALVARES
DE LA CRUZ
DE TRINIDAD
ÑURINDA
FONSECA
MENDOZA
NORORI
OSORIO

root@admin-server:~# sort /tmp/archivo.txt 
ALVARES
DE LA CRUZ
DE TRINIDAD
FONSECA
MENDOZA
NORORI
ÑURINDA
OSORIO

Y, tambien corroborar cuales locale estas usando a nivel SO:
root@admin-server:~# locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=es_ES.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE=en_US.UTF-8
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Que te sale a vos?



-
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] [psql-es-ayuda] ordenamiento con Ñ

2016-06-30 Por tema Gerardo Herzig


- Mensaje original -
> De: "Eveling Velásquez" <lings...@yahoo.es>
> Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> CC: "Pgsql-es-ayuda" <pgsql-es-ayuda@postgresql.org>
> Enviados: Jueves, 30 de Junio 2016 13:32:59
> Asunto: Re: [pgsql-es-ayuda] [psql-es-ayuda] ordenamiento con Ñ
> 
> 
> 
> Centos 7
> Version PG 9.5
> 
> client_encoding UTF8
> server_encoding UTF8
> lc_collate en_US.UTF-8
> lc_ctype en_US.UTF-8
> el tipo de dato de la columna es character varying
> 
> 
> 
> 
> Use collate "es_AR" y el orden es el misno, la Ñ al final no despues
> d la N
> 
> 
> Eveling Velasquez
> 
> 
> 
> 
> 
> 
> 
> 
> El Jueves, 30 de junio, 2016 9:54:51, Gerardo Herzig
> <gher...@fmed.uba.ar> escribió:
> 
> 
> 
> > 
> > Buen dia
> > Necesito hacer un ordenamiento como el siguiente:
> > 
> > 
> > ALVARES
> > DE LA CRUZ
> > DE TRINIDAD
> > FONSECA
> > MENDOZA
> > NORORI
> > ÑURINDA
> > OSORIO
> > 
> > 
> > hago un order by collate "C" y el resultado es
> > 
> > 
> > 
> > ALVARES
> > DE LA CRUZ
> > DE TRINIDAD
> > FONSECA
> > MENDOZA
> > NORORI
> > OSORIO
> > 
> > ÑURINDA
> > 
> > 
> > 
> > quedando la letra Ñ al final, debiendo quedar después de la N
> 
> Si, es el comportamiento esperado para la Collation "C" (de acuerdo a
> las docs):
> """
> On all platforms, the collations named default, C, and POSIX are
> available. Additional collations may be available depending on
> operating system support. The default collation selects the
> LC_COLLATE and LC_CTYPE values specified at database creation time.
> The C and POSIX collations both specify "traditional C" behavior, in
> which only the ASCII letters "A" through "Z" are treated as letters,
> and sorting is done strictly by character code byte values.
> """
> 
> Tenes que especificar una collation que respete las normas de
> ordenamiento correspondiente a tu idioma:
> 
> postgres=# with apellidos (apellido) as (values ('ALVARES'),
> ('DE LA CRUZ'),
> ('DE TRINIDAD'),
> ('FONSECA'),
> ('MENDOZA'),
> ('NORORI'),
> ('OSORIO'),
> ('ÑURINDA')
> 
> )
> 
> select * from apellidos order by apellido collate "es_AR";
> apellido
> 
> -
> ALVARES
> DE LA CRUZ
> DE TRINIDAD
> FONSECA
> MENDOZA
> NORORI
> ÑURINDA
> OSORIO
> (8 filas)
> 
> Por cierto, por que usas collation "C"? Cual es la default collation
> para la base en la que estas trabajando?
> 
> Gerardo
> 
Mmm perdon, copiaste exactamente la misma query que hice yo? No podra ser que 
tengas algun caracter raro (no visible) dentro de esos string?

-
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] [psql-es-ayuda] ordenamiento con Ñ

2016-06-30 Por tema Gerardo Herzig
> 
> Buen dia
> Necesito hacer un ordenamiento como el siguiente:
> 
> 
> ALVARES
> DE LA CRUZ
> DE TRINIDAD
> FONSECA
> MENDOZA
> NORORI
> ÑURINDA
> OSORIO
> 
> 
> hago un order by collate "C" y el resultado es
> 
> 
> 
> ALVARES
> DE LA CRUZ
> DE TRINIDAD
> FONSECA
> MENDOZA
> NORORI
> OSORIO
> 
> ÑURINDA
> 
> 
> 
> quedando la letra Ñ al final, debiendo quedar después de la N

Si, es el comportamiento esperado para la Collation "C" (de acuerdo a las docs):
"""
On all platforms, the collations named default, C, and POSIX are available. 
Additional collations may be available depending on operating system support. 
The default collation selects the LC_COLLATE and LC_CTYPE values specified at 
database creation time. The C and POSIX collations both specify "traditional C" 
behavior, in which only the ASCII letters "A" through "Z" are treated as 
letters, and sorting is done strictly by character code byte values.
"""

Tenes que especificar una collation que respete las normas de ordenamiento 
correspondiente a tu idioma:

postgres=# with apellidos (apellido) as (values ('ALVARES'),
('DE LA CRUZ'),
('DE TRINIDAD'),
('FONSECA'),
('MENDOZA'),
('NORORI'),
('OSORIO'),
('ÑURINDA')

)

select * from apellidos order by apellido collate "es_AR";
  apellido   
-
 ALVARES
 DE LA CRUZ
 DE TRINIDAD
 FONSECA
 MENDOZA
 NORORI
 ÑURINDA
 OSORIO
(8 filas)

Por cierto, por que usas collation "C"? Cual es la default collation para la 
base en la que estas trabajando?

Gerardo

-
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] Pregunta sobre indices

2016-06-23 Por tema Gerardo Herzig


- Mensaje original -
> De: "Alberto Cuevas" 
> Para: "pgsql" 
> Enviados: Jueves, 23 de Junio 2016 1:47:20
> Asunto: [pgsql-es-ayuda] Pregunta sobre indices
> 
> 
> Hola, tengo una consulta sobre Indices.
> 
> 
> Por lo que he leído los Indices me sirven para que la búsqueda sea
> mas rápida.
> 
> 
> Tengo una tabla (por dar un ejemplo) que tiene un PK y 2 FK
> 
> 
> CREATE TABLE cliente (
> id_cliente INTEGER NOT NULL (PK)
> id_sucursal INTEGER NOT NULL (FK)
> id_documento INTEGER NOT NULL (FK)
> 
> 
> 
> Mi pregunta es cuando se crea en una tabla los campos Primary Key y
> Foreign Key estos por defecto ya son Indices? o debo de crearlos
> independientemente?
> 

Las PK se implementan utilizando UNIQUE INDEXES sobre el/los campos 
participantes en la PK.
La declaracion de FK no crea (implicitamente) ningun indice, aunque ciertamente 
es requisito que el campo al que "apunta" la FK sea una PK en la tabla 
"apuntada"

HTH
Gerardo

-
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] bases de datos con secuencias solo pares o impares

2016-06-14 Por tema Gerardo Herzig
Supongo que con automatico querras decir "definido al momento de creacion".
Fijate que cuando definis un campo serial, internamente crea una sequence y se 
la asocia al campo. Algo asi (untested):

CREATE SEQUENCE numerador_par increment by 2 START 2;
create table numeros_pares (id integer not null default 
nextval('numerador_par'), data text);


Algo similar podes hacer para asociar una secuencia que comience con 1, 
incrementos de a 2, dandote asi numeros impares.

HTH
Gerardo

- Mensaje original -
> De: "Hellmuth Vargas" 
> Para: "raul andrez gutierrez alejo" 
> CC: "Lista Postgres ES" 
> Enviados: Martes, 14 de Junio 2016 12:26:54
> Asunto: Re: [pgsql-es-ayuda] bases de datos con secuencias solo pares o 
> impares
> 
> 
> Hola Lista
> 
> 
> Muchas gracias por la respuesta, pero se requiere qeu sea automático
> porque se están generando varias tablas en diferente tiempo por
> varios desarrolladores y mientras que se detecta la creación podría
> insertarse valores pares en una base impar. Por eso en principio
> explore el tema de Event Triggers
> 
> 
> El 14 de junio de 2016, 10:06, raul andrez gutierrez alejo <
> rauland...@gmail.com > escribió:
> 
> 
> 
> seria así:
> 
> ALTER SEQUENCE nombre_secuencia INCREMENT 2;
> 
> 
> 
> 
> 
> 
> El 14 de junio de 2016, 9:52, Alejandra Bautista <
> alejandrab...@gmail.com > escribió:
> 
> 
> 
> 
> 
> Hola:
> 
> Podrías iniciar tu secuencia en 1 o en 2 y en el increment porner el
> número 2.
> 
> Saludos!
> 
> 
> 
> 
> 
> El 14 de junio de 2016, 8:18, Hellmuth Vargas < hiv...@gmail.com >
> escribió:
> 
> 
> 
> Hola Lista
> 
> 
> Tengo varias base de datos PostgreSQL con varias aplicación con
> Hibenate donde a cada momento realizan nuevos desarrollos creado
> nuevas tablas y sus correspondiente secuencias. Quisiera
> preguntarles como podría implementar la manera que siempre que se
> creen secuencias en la base de datos esta sean pares o impares
> automaticamente. He estado revisando el tema de los Event Triggers
> mas no logro que altere la secuencia. De antemano les agradezco su
> atención.
> 
> 
> 
> --
> 
> 
> Cordialmente,
> 
> Ing. Hellmuth I. Vargas S.
> Esp. Telemática y Negocios por Internet
> 
> 
> 
> 
> 
> 
> --
> 
> Raul Andres Gutierrez Alejo
> 
> 
> 
> --
> 
> 
> Cordialmente,
> 
> Ing. Hellmuth I. Vargas S.
> Esp. Telemática y Negocios por Internet
> Oracle Database 10g Administrator Certified Associate
> 
> EnterpriseDB Certified PostgreSQL 9.3 Associate
> 
> 

-
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] ELIIMINAR LLAVE FORANEA

2016-05-23 Por tema Gerardo Herzig
Lo mas probable no es que se quede pensando (aunque es un termino muy 
simpatico), sino que se quede esperando un "lock" (para quitar la FK) que 
"nunca" le es otorgado, o al menos dentro de los tiempos tuyos de espera (que 
desconzco)

Si estoy en lo cierto, entonces cuando ejecutas esa instruccion, conectate con 
otra consola y ejecuta lo siguiente:

select * from pg_stat_activity where current_query = 'alter table 
ulsa.clases_cursos drop CONSTRAINT fk_clases_curso_ciclo;';

Fijate en la columna "waiting". Si mi intuicion es correcta, estara en 't'. 
Significa que esta waiting por algo...ese algo es el proceso que esta 
bloqueando la tabla ulsa.clases_cursos. Luego resta ver que es lo que esta 
bloqueando tu query.

Ve esta pagina, te servira de referencia:
https://wiki.postgresql.org/wiki/Lock_Monitoring

HTH
Gerardo

- Mensaje original -
> De: "Maria Antonieta Ramirez" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Lunes, 23 de Mayo 2016 11:49:33
> Asunto: [pgsql-es-ayuda] ELIIMINAR LLAVE FORANEA
> 
> 
> 
> 
> Buen dia
> 
> 
> 
> 
> Por medio del presente, quiero preguntar lo siguiente..
> 
> 
> 
> 
> tengo una llave foranea la cual quiero borrar de la siguiente forma:
> 
> 
> 
> 
> 
> alter table ulsa.clases_cursos drop CONSTRAINT fk_clases_curso_ciclo;
> 
> 
> 
> 
> pero no lo hace, se queda pensando y no responde , hay alguna forma
> de desabilitar primero la restriccion para despues eliminarla, o
> como le puedo hacer?
> 
> 
> 
> 
> 
> 
> 
> por su atencion .. 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


Re: [pgsql-es-ayuda] Reporte Web de datos Postgrsql

2016-05-14 Por tema Gerardo Herzig
Una pregunta complicada, no tecnicamente, sino porque se trata de gustos...

Lo mas sencillo podria ser instalar un phpmyadmin, enseñarle que queries debe 
ejecutar, y ya.
Sino podrias armar algunos php, o python para mostrarle los datosEl resto 
es maquillaje! 

Gerardo
- Mensaje original -
> De: "Micky Khan" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Sábado, 14 de Mayo 2016 15:21:28
> Asunto: [pgsql-es-ayuda] Reporte Web de datos Postgrsql
> 
> 
> Holas.
> 
> 
> Una consulta, nunca hice reportes ni se mucho de web.
> Ahora me solicitan que la informacion que tenemos en nuestra BD de
> Postgresql la puedan visualizar desde cualquier lugar y mas aun el
> dueño que ahora viaja constantemente.
> 
> 
> Tengo un servidor Windows Server 2003 con Postgresql 9.3
> 
> 
> Que me recomiendan, que debo de instalar a mi servidor para que
> puedan visualizar los reportes.
> 
> 
> Gracias
> 
> <_>
> (o o)
> ( ° )
> <>-<>
> Micky Khan

-
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] PLPython en Windows

2016-05-14 Por tema Gerardo Herzig
Mmmm yo no soy usuario de windows, perdon. Por lo visto [0], no hay 
python-devel en windows.
Vi algunos posts sobre el asunto [1], lamento pero no conozco windows como para 
ser util.

Gerardo


[0] 
http://stackoverflow.com/questions/16448710/how-to-get-python-dev-for-windows
[1] 
http://stackoverflow.com/questions/24216627/how-to-install-pl-python-on-postgresql-9-3-x64-windows-7
- Mensaje original -
> De: "Freddy Martinez" <freddy311...@gmail.com>
> Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> CC: "PostgreSQL Lista Castellano" <pgsql-es-ayuda@postgresql.org>
> Enviados: Viernes, 13 de Mayo 2016 23:52:41
> Asunto: Re: [pgsql-es-ayuda] PLPython en Windows
> 
> Hola Gerardo y gracias por responder
> 
> 
> el python-devel no es el python instalado en el sistema? porque yo
> tengo instalado python en windows, no sé a qué te refieres con
> python devel. Me podrias decir por favor?
> 
> 
> saludos cordiales
> 
> 
> 
> 
> 
> 
> =
> "El tamaño de tus logros depende del tamaño de tus metas."
> C++ and Qt Senior Developer
> B.S. Computer Science
> Buenos Aires, Argentina
> 
> 
> 
> 
> On May 13, 2016, at 10:20, Gerardo Herzig < gher...@fmed.uba.ar >
> wrote:
> 
> 
> Te debe faltar el "python-devel" para windows.
> 
> Gerardo
> 
> - Mensaje original -
> 
> 
> De: "Freddy Martinez" < freddy311...@gmail.com >
> Para: "PostgreSQL Lista Castellano" < pgsql-es-ayuda@postgresql.org >
> Enviados: Viernes, 13 de Mayo 2016 0:24:19
> Asunto: [pgsql-es-ayuda] PLPython en Windows
> 
> Hola a todos… soy usuario de Mac y puedo usar sin problema alguno
> plpython, pero en Windows me dice esto cuando ejecuto CREATE
> EXTENSION plpythonu:
> 
> 
> 
> ERROR: could not access file "$libdir/plpython2": No such file or
> directory
> 
> 
> ** Error **
> 
> 
> ERROR: could not access file "$libdir/plpython2": No such file or
> directory
> SQL state: 58P01
> 
> 
> 
> 
> 
> tengo instalado python 2.7.11
> 
> 
> alguna idea ?
> 
> 
> saludos
> 
> =
> "El tamaño de tus logros depende del tamaño de tus metas."
> C++ and Qt Senior Developer
> B.S. Computer Science
> Buenos Aires, Argentina
> 
> 
> 

-
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] Saber en que columna el usuario hizo una modificacion

2016-05-14 Por tema Gerardo Herzig
Mmmm lo complicado de hacerlo con triggers es obtener ese dato del usuario.
Si tenes alguna forma de obtenerlo (gracias a algun id de sesion, o algo asi), 
entonces con un trigger podrias, con algo de trabajo, determinar que columnas 
de que tabla cambiaron, darle formato y grabarlo en esa tabla de auditoria

HTH
Gerardo

- Mensaje original -
> De: "José Fermín Francisco Ferreras" 
> Para: "Lista PostgreSQL" 
> Enviados: Viernes, 13 de Mayo 2016 23:50:37
> Asunto: [pgsql-es-ayuda] Saber en que columna el usuario hizo una modificacion
> 
> 
> Buenas noches!!
> 
> 
> Me gustaría saber como guardar en una tabla de historial los cambios
> realizados solo en las columnas cuyos datos fueron modificados en
> otra tabla (cliente).
> 
> 
> Por ejemplo:
> 
> 
> tabla: cliente
> 
> 
> campos: id, nombre, apellido, fecha_nac, cedula, direccion
> 
> 
> 
> 
> tabla: historial
> 
> 
> id: 1
> fecha: 2016-01-01 10:00:00
> usuario: 5
> modifico dato columna: nombre
> 
> 
> id:2
> fecha: 2016-01-01 14:50:10
> usuario: 2
> modifico dato columna: cedula
> id:3
> fecha: 2016-01-01 14:50:10
> usuario: 2
> modifico dato columna: direccion
> 
> 
> 
> 
> 
> 
> 
> ing. José Fermín Francisco Ferreras
> San Francisco de Macorís, Rep. Dom.
> 

-
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] PLPython en Windows

2016-05-13 Por tema Gerardo Herzig
Te debe faltar el "python-devel" para windows.

Gerardo

- Mensaje original -
> De: "Freddy Martinez" 
> Para: "PostgreSQL Lista Castellano" 
> Enviados: Viernes, 13 de Mayo 2016 0:24:19
> Asunto: [pgsql-es-ayuda] PLPython en Windows
> 
> Hola a todos… soy usuario de Mac y puedo usar sin problema alguno
> plpython, pero en Windows me dice esto cuando ejecuto CREATE
> EXTENSION plpythonu:
> 
> 
> 
> ERROR: could not access file "$libdir/plpython2": No such file or
> directory
> 
> 
> ** Error **
> 
> 
> ERROR: could not access file "$libdir/plpython2": No such file or
> directory
> SQL state: 58P01
> 
> 
> 
> 
> 
> tengo instalado python 2.7.11
> 
> 
> alguna idea ?
> 
> 
> saludos
> 
> =
> "El tamaño de tus logros depende del tamaño de tus metas."
> C++ and Qt Senior Developer
> B.S. Computer Science
> Buenos Aires, Argentina
> 

-
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] Failover para Streaming Replication

2016-05-11 Por tema Gerardo Herzig
> 
> Buenas Tardes Estimad@s
> 
> 
> Necesito orientación para habilitar failover en el tema streaming
> replicación sin WAL..
> 
> 
> Escenario:
> 
> 
> Un Master (192.168.10.1) (ref nodo1)
> Un Esclavo (192.168.10.2) (ref nodo2)
> 
> Esclavo : recovery.conf
> 
> 
> 
> standby_mode = 'on'
> primary_conninfo = 'host=192.168.10.1 port=5432 user=rep'
> trigger_file = '/mi_path_data/pg_failover_trigger'
> 
> 
> 
> ---
> 
> 
> (*) ..Tengo la duda de si en el Master deba habilitarse este
> parámetro pero tomé la conf de un ejemplo de alguien que tenía
> iguales el postgres.conf en maestro y esclavo y le
> funcionaba.. y en mi caso también funcionó.. (o talvez no
> tuvo ningún efecto en el buen funcionamiento).
> 
> 
> La configuración anterior me permitió hacer pruebas que fueron
> exitosas en cuanto a lo que replicación se refiere... quedando el
> master para las transacciones.. y el esclavo como lectura.
> Sin embargo, ahora necesito planificar un failover (manual)... sin
> usar pgpool o repmngr o pgHA.. o herramientas similares. Googleando
> me encontré con una solución que indicaba que ante una caída del
> Master simplemente había que crear en el esclavo el archivo
> pg_failover_trigger especificado en el recovery.conf del
> esclavo. Al hacer esto el esclavo dejaba de ser esclavo y se
> transformaba en Maestro.. 

Hasta ahi es cierto. Crear ese archivo en la replica desliga al slave del 
master, o sea lo convierte en "master", pero ya no guarda ninguna relacion con 
el "otro master". Ambas instancias de postgres comenzaron a diverger una de 
otra, y ya no puedes "retomar" la condicion de "master - slave", a menos que 
hagas todo de nuevo.

De manera nativa, streaming replication no tiene ningun mecanismo de failover 
ni switch-over.
Entonces, suponiendo un failover (o un switch-over planificado), podrian 
pensarse los siguientes pasos:

1) Bajas (o se pierde) el nodo1
2) "toucheas" el archivo trigger_failover en nodo2, o su comando equivalente 
"pg_ctl promote" (tambien en nodo2)
3) Cambias la ip del nodo1, o haces los ajustes necesarios en tus DNS
4) Te aseguras que el nodo1 no vuelva a levantar, o le cambias la IP.

Cuando el nodo1 vuelva a estar operativopues tendras que recrear streaming 
replication nuevamente, con tu nodo2 apuntando su replica al nodo1. Esto te 
dejara la cosa lista para hacer un "switch back", o sea poner operativo tu 
nodo1 nuevamente como master.

HTH
Gerardo

-
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] Agrupamiento de Segundo Nivel

2016-05-10 Por tema Gerardo Herzig
Sin conocer la estructura de la/s tabla/s, y un lotecito de prueba, no veo como 
alguien podria ayudarte.

Gerardo

- Mensaje original -
> De: "Rusel Fichi" 
> Para: "pgsql-es-ayuda" 
> Enviados: Martes, 10 de Mayo 2016 7:56:55
> Asunto: [pgsql-es-ayuda] Agrupamiento de Segundo Nivel
> 
> 
> Hola Estimados,
> 
> 
> Tengo un inconveniente, actualmente estoy migrando unos reportes que
> están escritos en PHP y debo pasar a Birt Report, ya he migrado
> varios de los reportes que tienen consultas sencillas y medianamente
> complejas, esta vez me encuentro con un reporte que debe tener dos
> niveles de agrupamiento cosa que ya no puedo hacer en BIRT usando un
> query normal , procesar la data a través de algun lenguaje no se si
> sea posible con esta herramienta, por los momentos deberia poder
> hacerlo en un solo query, es decir debería obtener algo así:
> 
> 
>   

-
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] sentencia cluster

2016-05-04 Por tema Gerardo Herzig
http://www.postgresql.org/docs/current/static/sql-cluster.html

Ahi esta todo lo que necesitas saber.

HTH
Gerardo

- Mensaje original -
> De: "heriberto giron" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Miércoles, 4 de Mayo 2016 19:49:53
> Asunto: [pgsql-es-ayuda] sentencia cluster
> 
> 
> Buenas tardes
> 
> 
> Alguna persona me puede indicar como es el uso de la sentencia
> cluster y si en verdad agiliza o mejora las respuesta de los select,
> si en verdad los realiza mas repido
> 
> 
> 
> 
> 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


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

2016-04-18 Por tema Gerardo Herzig


- Mensaje original -
> De: "Carlos T. Groero Carmona" <cton...@gmail.com>
> Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> Enviados: Lunes, 18 de Abril 2016 14:49:46
> Asunto: Re: [pgsql-es-ayuda] Restar dos campos de tipo fecha de distintos 
> registros
> 
> 
> 
> Hola a todos, aprovecho la pregunta de Alberto para indagar sobre
> algo, restar campos de tipo date suele sencillo, pero cuando se
> incluyen años bisiestos como el 2016 postgresql suma un dia mas de
> ser necesario? Por ejemplo en este año tu restas (mm/dd/yy) 03/02/16
> - 28/02/16 y el resultado debe ser 3 porque es bisciesto cuando
> normalmente seria 2. En PHP hay funciones para verificar si el año
> es bisciesto o no pero sumarle el dia tienes que implementar tu un
> metodo para eso.
>

Claro
postgres=# select '2016-03-02'::date - '2016-02-28'::date;
 ?column? 
--
3
(1 fila)
 
> Otra cosa de la que no estoy seguro y quisiera saber es si en alguno
> de los formatos date de PostgreSQL se incluye algún valor para el
> dia de la semana, ya que seria util para obtener resultados sobre
> dias laborables, restas dos fechas y el resultado es 5 días pero se
> incluye sábado y domingo por lo tanto tu quisieras obtener 3.

Postgres no sabe sobre "dias laborales". Para saber que dia de la semana es:
postgres=# select extract (dow from now());
 date_part 
---
 1
(1 fila)
1 para lunes, 2 para martes.0 para el domingo. 

HTH
Gerardo

-
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] Restar dos campos de tipo fecha de distintos registros

2016-04-18 Por tema Gerardo Herzig
Un registro no "conoce" al registro proximo ni al anterior. Basicamente se me 
ocurren estas maneras:
postgres=# select * from test;
 ord | fechainicial | fechafinal 
-+--+
   1 | 2015-10-01   | 2015-12-01
   2 | 2015-08-01   | 2015-10-01
   3 | 2015-06-01   | 2015-08-01
   4 | 2015-05-01   | 2015-06-01
   5 | 2015-04-01   | 2015-05-01
   6 | 2015-03-01   | 2015-04-01
   7 | 2015-02-01   | 2015-03-01
   8 | 2015-01-01   | 2015-01-28
   9 | 2014-12-01   | 2015-01-01
  10 | 2014-11-01   | 2014-12-01
(10 filas)

postgres=# select *, fechafinal - (select fechainicial from test where ord = 
t.ord - 1) from test t;
 ord | fechainicial | fechafinal | ?column? 
-+--++--
   1 | 2015-10-01   | 2015-12-01 | 
   2 | 2015-08-01   | 2015-10-01 |0
   3 | 2015-06-01   | 2015-08-01 |0
   4 | 2015-05-01   | 2015-06-01 |0
   5 | 2015-04-01   | 2015-05-01 |0
   6 | 2015-03-01   | 2015-04-01 |0
   7 | 2015-02-01   | 2015-03-01 |0
   8 | 2015-01-01   | 2015-01-28 |   -4
   9 | 2014-12-01   | 2015-01-01 |0
  10 | 2014-11-01   | 2014-12-01 |0
(10 filas)

2) Usando pl/pgsql, abris un cursor y recorres registro por registro, haciendo 
un select similar al (subselect) de mas arriba,

3) Calculo que con recursive with puede llegarse a algo, pero me estoy 
equivocando en algo y no me sale bien.

HTH
Gerardo

- Mensaje original -
> De: "Alberto Cuevas" <betocuevas@gmail.com>
> Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> CC: pgsql-es-ayuda@postgresql.org
> Enviados: Lunes, 18 de Abril 2016 15:03:22
> Asunto: Re: [pgsql-es-ayuda] Restar dos campos de tipo fecha de distintos 
> registros
> 
> 
> Muchas gracias por responder, disculpen por no dar un ejemplo mas
> claro, mi tabla tiene los registros similar a esto:
> 
> 
> |Ord. | FechaInicial | FechaFinal |
> |1 | 01/10/2015 | 01/12/2015 |
> |2 | 01/08/2015 | 01/10/2015 |
> |3 | 01/06/2015 | 01/08/2015 |
> |4 | 01/05/2015 | 01/06/2015 |
> |5 | 01/04/2015 | 01/05/2015 |
> |6 | 01/03/2015 | 01/04/2015 |
> |7 | 01/02/2015 | 01/03/2015 |
> |8 | 01/01/2015 | 28/01/2015 |
> |9 | 01/12/2014 | 01/01/2015 |
> |10 | 01/11/2014 | 01/12/2014 |
> 
> 
> Debo restar FechaFinal - FechaInicial es decir:
> 
> 
> FechaFinal de Ord. 2 - FechaInicial de Ord.1 = 0 dias
> FechaFinal de Ord. 3 - FechaInicial de Ord.2 = 0 dias
> ......
> 
> Y asi sucesivamente..
> 
> 
> Espero me puedan entender.
> 
> 
> Saludos.
> 
> 
> 
> 
> 
> El lun., 18 abr. 2016 a las 12:20, Gerardo Herzig (<
> gher...@fmed.uba.ar >) escribió:
> 
> 
> Vas a tener que orquestar 2 selects distintos para sacar tu "fecha
> inicial" y tu "fecha final". Supongo que tu tabla de ejemplo es
> esquematica, pero mas alla de la posible complejidad del select, el
> tipo date soporta el operador de resta "habitual":
> 
> (select fechafinal from TABLA where ord = 1) - (select fechainicial
> from TABLA where ord=2)
> 
> En tu ejemplo, el resultado seria negativo, por cierto, pero calculo
> que eso lo podras contemplar.
> HTH
> Gerardo
> - Mensaje original -
> > De: "Alberto Cuevas" < betocuevas@gmail.com >
> > Para: pgsql-es-ayuda@postgresql.org
> > Enviados: Lunes, 18 de Abril 2016 13:36:18
> > Asunto: [pgsql-es-ayuda] Restar dos campos de tipo fecha de
> > distintos registros
> > 
> > 
> > 
> > 
> > 
> > 
> > Hola a todos necesito restar dos campos de tipo fecha de distintos
> > registros.
> > 
> > FechaFinal - FechaInicial
> > 
> > | Ord. | FechaInicial | FechaFinal |
> > | 2 | 26/02/2016 | 02/03/2016 |
> > | 1 | 18/02/2016 | 24/02/2016 |
> > 
> > 24/02/2016 - 26/02/2016 = 2 dias
> > 
> > Por favor si me pueden ayudar .
> > 
> > Saludos
> > 
> > 
> > 
> > 
> > 
> > 
> 

-
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] chmod desde postgres/plsql

2016-04-13 Por tema Gerardo Herzig
Podes utilizar pl/python, o cualquier otro lenguaje soportado que permita 
salidas al SO.

HTH
Gerardo

- Mensaje original -
> De: "Kernel" 
> Para: "Ayuda" 
> Enviados: Miércoles, 13 de Abril 2016 10:29:07
> Asunto: [pgsql-es-ayuda] chmod desde postgres/plsql
> 
> 
> hola,
> 
> estoy creando un fichero desde plsql con un execute ('copy '), y
> me
> gustaria saber si hay alguna forma de hacer un chmod 666 al fichero
> que
> he creado.
> ¿puedo ejecutar comandos de sistema?
> 
> -
> 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] Mantenimiento a base de datos

2016-04-06 Por tema Gerardo Herzig
Sabe que tanto vacuum full como reindex van a bloquear la tabla contra otras 
consultas de "lectura" a las tablas afectadas. Asegurate de avisar y/o 
conseguir una ventana de downtime.

Durante el proceso, te convendra subir la variable maintenance_work_mem a una 
porcion considerable de la RAM, asi el proceso sera mas rapido.

HTH,
Gerardo

- Mensaje original -
> De: "MARIA ANTONIETA RAMIREZ SOLIS" 
> Para: "FORO POSTGRES" 
> Enviados: Miércoles, 6 de Abril 2016 15:48:22
> Asunto: [pgsql-es-ayuda] Mantenimiento a base de datos
> 
> 
> 
> 
> 
> 
> Buena tarde
> 
> 
> Les agradezco el tiempo tomado para leer mi correo...
> 
> 
> Tengo una duda, quiero hacer mantenimiento en mi base de datos
> postgresql version 9.4, cual es la mejor forma de hacerlo, primero
> correr el vacumm full y despues la reindexacion?
> 
> 
> Sin mas por el momento quedo en espera de sus comentarios
> 
> 
> 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


Re: [pgsql-es-ayuda] Vista con pase de parámetros

2016-04-06 Por tema Gerardo Herzig
Hasta donde se, no existen las vistas parametrizadas. 
Supongo que una funcion seria lo mas cercano.

HTH
Gerardo

- Mensaje original -
> De: "Virginia" 
> Para: "Ayuda" 
> Enviados: Miércoles, 6 de Abril 2016 12:03:23
> Asunto: [pgsql-es-ayuda] Vista con pase de parámetros
> 
> 
> Buen día,
> 
> Quisiera saber si me pueden orientar acerca de vistas con pase de
> parámetros, éstas funcionan en postgresql? Si es así, cómo se hacen?
> pueden orientarme?
> Lo que necesito es pasar ésta consulta de php:
> 
> SELECT distinct (e.empid), e.empresa, nt.fecha_vencimiento, (SELECT
> cp2_notas_tareas.no_renovacion FROM cp2_notas_tareas WHERE
> cp2_notas_tareas.tipo = 861 AND cp2_notas_tareas.tarea_id = (SELECT
> max(tareas.notareas_id) FROM cp2_notas_tareas tareas where
> tareas.empid = e.empid AND to_char(DATE(tareas.fecha_vencimiento)
> ,'-mm') = 'PARAMETRO1 TIPO ANHO-MES' AND tareas.categorias_nt_id
> = 8 AND tareas.tipo = 860 )) as renovo, (SELECT mc.descripcion FROM
> cp2_motivos_categorias mc, cp2_notas_tareas aux WHERE mc.valor =
> aux.no_renovacion AND aux.tarea_id = (SELECT max(tareas.notareas_id)
> FROM cp2_notas_tareas tareas where tareas.empid = e.empid AND
> to_char(DATE(tareas.fecha_vencimiento) ,'-mm') = 'PARAMETRO1
> TIPO ANHO-MES' AND tareas.categorias_nt_id = 8 AND tareas.tipo = 860
> ) limit 1) as motivo, (SELECT cp2_notas_tareas.descripcion FROM
> cp2_notas_tareas WHERE cp2_notas_tareas.tipo = 861 AND
> cp2_notas_tareas.tarea_id = (SELECT max(tareas.notareas_id) FROM
> cp2_notas_tareas tareas where tareas.empid = e.empid AND
> to_char(DATE(tareas.fecha_vencimiento) ,'-mm') = 'PARAMETRO1
> TIPO ANHO-MES' AND tareas.categorias_nt_id = 8 AND tareas.tipo = 860
> )) as observacion, (SELECT cp2_notas_tareas.notareas_id FROM
> cp2_notas_tareas WHERE cp2_notas_tareas.tipo = 861 AND
> cp2_notas_tareas.tarea_id = (SELECT max(tareas.notareas_id) FROM
> cp2_notas_tareas tareas where tareas.empid = e.empid AND
> to_char(DATE(tareas.fecha_vencimiento) ,'-mm') = 'PARAMETRO1
> TIPO ANHO-MES' AND tareas.categorias_nt_id = 8 AND tareas.tipo = 860
> )) as ntid FROM empresas e INNER JOIN cp2_notas_tareas nt ON
> (nt.empid = e.empid) LEFT JOIN pagos_empresas pe ON (e.empid =
> pe.empid) INNER JOIN paquetes pq ON (pe.paqid = pq.paqid) WHERE
> nt.categorias_nt_id = 8 AND pe.pagid = (SELECT pagid FROM
> pagos_empresas INNER JOIN paquetes ON (pagos_empresas.paqid =
> paquetes.paqid) WHERE pagos_empresas.empid = e.empid AND nt.tipo =
> 860 AND nt.notareas_id = (SELECT max(tareas.notareas_id) FROM
> cp2_notas_tareas tareas where tareas.empid = e.empid AND
> to_char(DATE(tareas.fecha_vencimiento) ,'-mm') = 'PARAMETRO1
> TIPO ANHO-MES' AND tareas.categorias_nt_id = 8 AND tareas.tipo = 860
> ) ORDER BY pagos_empresas.pagid DESC LIMIT 1) AND
> to_char(DATE(nt.fecha_vencimiento) ,'-mm') = 'PARAMETRO1 TIPO
> ANHO-MES' ORDER BY nt.fecha_vencimiento, e.empresa ASC
> 
> 
> A una vista pero no sé cómo hacer el pase del PARAMETRO1 TIPO
> ANHO-MES
> 
> Gracias por su 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] Configuración óptima

2016-04-04 Por tema Gerardo Herzig


- Mensaje original -
> De: "Sergio Valdes Hurtado" 
> Para: "Lista PostgreSql" 
> Enviados: Lunes, 4 de Abril 2016 17:32:59
> Asunto: [pgsql-es-ayuda] Configuración óptima
> 
> 
> 
> Estimados, tengo Postgresql 9.5.1 en un servidor virtual con Windows
> 2008 R2 Standard,con las siguientes caracteristicas:
> 
> * Procesador Intel Xeon E5640 2.66 GHz (4 procesadores)
> 
> * Memoria RAM 16 GB
> 
> * Sistema operativo de 64 bits
> 
> 
> La configuración de postgres es la siguiente:
> 
> # - Memory -
> 
> shared_buffers = 128MB # min 128kB
> # (change requires restart)
> #huge_pages = try # on, off, or try
> # (change requires restart)
> #temp_buffers = 8MB # min 800kB
> #max_prepared_transactions = 0 # zero disables the feature
> # (change requires restart)
> # Note: Increasing max_prepared_transactions costs ~600 bytes of
> shared memory
> # per transaction slot, plus lock space (see
> max_locks_per_transaction).
> # It is not advisable to set max_prepared_transactions nonzero unless
> you
> # actively intend to use prepared transactions.
> #work_mem = 4MB # min 64kB
> #maintenance_work_mem = 64MB # min 1MB
> #autovacuum_work_mem = -1 # min 1MB, or -1 to use
> maintenance_work_mem
> #max_stack_depth = 2MB # min 100kB
> dynamic_shared_memory_type = windows # the default is the first
> option
> # supported by the operating system:
> # posix
> # sysv
> # windows
> # mmap
> # use none to disable dynamic shared memory
> 
> 
> 
> Este equipo se usa preferentemente para consultas estadísiticas y se
> insertan registros una vez al mes en una serie de tablas.
> 
> 
> Esta base de datos anteriormente estaba instalada en un PC con
> bastantes menos recursos y las consultas iban más rápidas que en el
> servidor actual, por lo que les quería pedir ayuda con la
> configuración de postgresql.
> 
Si la configuracion es la misma que la anterior (cosa que no mencionas, pero 
podria intuir que asi es), entonces lo primero que miraria seria los recursos 
del servidor fisico asociado a esa VM. La virtualizacion y las bases de datos 
suelen llevarse bastante mal. Peor aun cuando usan RAID 5 (lo cual suele ser 
habitual en entornos de virtualizacion).


Windows es otro problema por si mismo. 

Mi primer propuesta seria que utilices una maquina fisica. El segundo, que 
utilices linux.
Si nada de eso es posible, pues entonces monitorea la eficiencia de tus 
subsistemas de IO, tanto en la VM como en el host fisico, ya que en esos 
entornos el cuello de botella mas evidente suelen ser los discos.

En linux, herramientas como vmstat, iostat, sar e iotop son de uso habitual en 
estos casos. Desconozco sus analogos para windows.

HTH
Gerardo

-
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] Proyectar cálculo del tamaño de índices.

2016-03-29 Por tema Gerardo Herzig
Mm creo que te enroscaste de mas con el requerimiento.
Hay una funcion que devuelve el tamaño de los objetos:
select pg_relation_size('nombre_de_tabla_o_indice');

Solucion quick and dirtie: Dispara un cron cada, no se, media hora, 10 minutos, 
con algo asi:
SELECT now(), indexname, pg_relation_size(indexname::regclass) 
from pg_indexes where tablename = 'esa_tabla_tuya' 
union select now(), 'esa_tabla_tuya', pg_relation_size('esa_tabla_tuya');

Y graba los resultados en una tabla, la cual podes procesar dentro de algunos 
dias, y proyectar el tamaño a futuro, basado en la tasa de crecimiento actual.

Tal vez podrias ayudarte con alguna herramienta graficadora de metricas, para 
una salida mas pulida, pero creo que la idea basica se cubre con un query asi, 
o similar.

HTH
Gerardo

- Mensaje original -
> De: "Alfredo Rico" 
> Para: "Postgresql" 
> Enviados: Martes, 29 de Marzo 2016 20:34:26
> Asunto: [pgsql-es-ayuda] Proyectar cálculo del tamaño de índices.
> 
> 
> Buen día amigos, gusto en saludarles.
> 
> 
> Esto me tiene de cabeza. Tengo una tabla transaccional para almacenar
> información de saldos de créditos. Día tras día se almacena nueva
> información de todos los créditos de los clientes. Existe una
> columna FECHA_SNAPSHOT que agrupa la información en cada día. La
> definición de la tabla es la siguiente:
> 
> 
> 
> 
> fecha_snapshot | date | not null | plain | |
> rc_credito_numero_credito | character varying(25) | not null |
> extended | |
> rc_credito_tc_cliente_codigo | character varying(20) | not null |
> extended | |
> rc_credito_tc_agencia_codigo | character varying(10) | not null |
> extended | |
> saldo_capital | numeric(20,2) | not null | main | |
> saldo_capital_vigente | numeric(20,2) | not null | main | |
> saldo_capital_reestructurado | numeric(20,2) | not null | main | |
> saldo_capital_vencido | numeric(20,2) | not null | main | |
> saldo_capital_litigio | numeric(20,2) | not null | main | |
> tasa_interes | numeric(7,4) | not null | main | |
> cuotas_vencidas | integer | not null default 0 | plain | |
> dias_mora | integer | not null default 0 | plain | |
> intereses_vigentes | numeric(20,2) | not null default 0 | main | |
> intereses_mora_vigentes | numeric(20,2) | not null default 0 | main |
> |
> intereses_reestructurados | numeric(20,2) | not null default 0 | main
> | |
> intereses_vencidos | numeric(20,2) | not null default 0 | main | |
> intereses_cobrados | numeric(20,2) | not null default 0 | main | |
> porcentaje_provision_especifica | numeric(7,4) | not null default 0 |
> main | |
> porcentaje_provision_generica | numeric(7,4) | not null default 0 |
> main | |
> porcentaje_provision_rendimiento | numeric(7,4) | not null default 0
> | main | |
> monto_provision_especifica | numeric(20,2) | not null default 0 |
> main | |
> monto_provision_generica | numeric(20,2) | not null | main | |
> monto_provision_rendimiento | numeric(20,2) | not null | main | |
> consecutivo | integer | | plain | |
> tc_cuenta_contable_codigo | character varying(20) | not null |
> extended | |
> rc_calificacion_codigo_riesgo_credito | character varying(10) | not
> null | extended | |
> rc_calificacion_codigo_riesgo_cliente | character varying(10) | not
> null | extended | |
> rc_calificacion_codigo_riesgo_sicri | character varying(10) | not
> null | extended | |
> rc_situacion_contable_codigo | character varying(10) | not null |
> extended | |
> rc_estado_pago_codigo | character varying(10) | not null | extended |
> |
> rc_producto_crediticio_codigo | character varying(10) | not null |
> extended | |
> fecha_reprecio | date | | plain | |
> created_at | timestamp with time zone | default now() | plain | |
> updated_at | timestamp with time zone | default now() | plain | |
> Indexes:
> "rc_carteras_creditos_pkey" PRIMARY KEY, btree (fecha_snapshot,
> rc_credito_numero_credito, rc_credito_tc_cliente_codigo,
> rc_credito_tc_agencia_codigo)
> "idx_rc_carteras_creditos_rc_calificaciones1" btree
> (rc_calificacion_codigo_riesgo_credito)
> "idx_rc_carteras_creditos_rc_calificaciones2" btree
> (rc_calificacion_codigo_riesgo_cliente)
> "idx_rc_carteras_creditos_rc_calificaciones3" btree
> (rc_calificacion_codigo_riesgo_sicri)
> "idx_rc_carteras_creditos_rc_creditos1" btree
> (rc_credito_numero_credito, rc_credito_tc_cliente_codigo,
> rc_credito_tc_agencia_codigo)
> "idx_rc_carteras_creditos_rc_estados_pagos1" btree
> (rc_estado_pago_codigo)
> "idx_rc_carteras_creditos_rc_productos_crediticios1" btree
> (rc_producto_crediticio_codigo)
> "idx_rc_carteras_creditos_rc_situaciones_contables1" btree
> (rc_situacion_contable_codigo)
> "idx_rc_carteras_creditos_tc_cuentas_contables1" btree
> (tc_cuenta_contable_codigo)
> Foreign-key constraints:
> "fk_rc_carteras_creditos_rc_calificaciones1" FOREIGN KEY
> (rc_calificacion_codigo_riesgo_credito) REFERENCES
> rc_calificaciones(codigo)
> "fk_rc_carteras_creditos_rc_calificaciones2" FOREIGN KEY
> 

Re: [pgsql-es-ayuda] Dudas sobre postgres - wal

2016-03-29 Por tema Gerardo Herzig
No hay ningun costo. De hecho, la funcionalidad ya esta compilada en esos 
postgres que tenes ahi. Solo hace falta configurarlos. Dependiendo de la 
version de postgres, hay distintas formas de implementarlo. Revisa la 
documentacion de la version adecuada.

Saludos,
Gerardo

- Mensaje original -
> De: "Juan Pablo Moreno Rodriguez - GFI" <jpmor...@sanitas.es>
> Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> CC: "Reyes Carrera Avelar - GFI" <rcarr...@sanitas.es>, 
> pgsql-es-ayuda@postgresql.org
> Enviados: Martes, 29 de Marzo 2016 14:49:44
> Asunto: RE: [pgsql-es-ayuda] Dudas sobre postgres - wal
> 
> Sabes si tiene coste por core , maquina , etc ,..imagino que es libre
> , no?
> 
> 
> 
> 
> 
> 
> 
> Juan Pablo Moreno Rodriguez
> Infraestructure Services
> GFI Informática
> 
> GFI Centro
> Tfno.: 91.585.91.39
> Mov.: +34 674 358 740
> C/ Serrano Galvache 56
> Edificio Encina. Planta 7
> 28033 Madrid
> 
> 
> -Mensaje original-
> De: Gerardo Herzig [mailto:gher...@fmed.uba.ar]
> Enviado el: martes, 29 de marzo de 2016 19:36
> Para: Juan Pablo Moreno Rodriguez - GFI
> CC: Reyes Carrera Avelar - GFI; pgsql-es-ayuda@postgresql.org
> Asunto: Re: [pgsql-es-ayuda] Dudas sobre postgres - wal
> 
> 
> 
> - Mensaje original -
> > De: "Juan Pablo Moreno Rodriguez - GFI" <jpmor...@sanitas.es>
> > Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> > CC: "Reyes Carrera Avelar - GFI" <rcarr...@sanitas.es>,
> > pgsql-es-ayuda@postgresql.org
> > Enviados: Martes, 29 de Marzo 2016 13:54:19
> > Asunto: RE: [pgsql-es-ayuda] Dudas sobre postgres - wal
> >
> > Gracias Gerardo , efectivamente es para replicar , de un servidor a
> > otro de respaldo.
> >
> >
> >
> Ahi va. En 8.x tenes warm-standby:
> http://www.postgresql.org/docs/8.2/static/warm-standby.html
> 
> En 9.x tenes replicacion:
> http://www.postgresql.org/docs/9.2/static/runtime-config-replication.html
> y hot standby:
> http://www.postgresql.org/docs/9.2/static/hot-standby.html
> 
> Todo esto es nativo de postgres, sin necesidad de instalar ningun
> modulo adicional.
> 
> Saludos,
> Gerardo
> 
> 
> 
> 
> ADVERTENCIA:
> Este mensaje o comunicación, su contenido y sus archivos adjuntos son
> confidenciales y están exclusivamente dirigido al usuario o usuarios
> de
> destino. Si por un error de envío o transmisión ha recibido este
> mensaje
> y usted no es el destinario final, no está autorizado a usar,
> imprimir,
> copiar o difundir este mensaje bajo ningún concepto, agradeciéndole
> que proceda de inmediato a la destrucción del mismo y nos comunique
> esta incidencia por esta misma via.
> Asimismo cualquier acción tomada o dejada de tomar basada en la
> información
> contenida en este mensaje queda prohibida y puede ser ilegal.
> 
> WARNING:
> The information, contents and attachments of this email are
> confidential and
> are exclusively addressed to addressee or addresses stated. If you
> have received
> this message by mistake or failure in transmission and you are not
> the
> intended recipient, you are not allowed to use, print, copy or
> distribute
> this message under any circumstances, please immediately destroy and
> inform us about it by this same mean .
> Likewise, any action taken or omitted with respect to the information
> in this message is prohibited and may be unlawful.
> 

-
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] Dudas sobre postgres - wal

2016-03-29 Por tema Gerardo Herzig


- Mensaje original -
> De: "Juan Pablo Moreno Rodriguez - GFI" <jpmor...@sanitas.es>
> Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> CC: "Reyes Carrera Avelar - GFI" <rcarr...@sanitas.es>, 
> pgsql-es-ayuda@postgresql.org
> Enviados: Martes, 29 de Marzo 2016 13:54:19
> Asunto: RE: [pgsql-es-ayuda] Dudas sobre postgres - wal
> 
> Gracias Gerardo , efectivamente es para replicar , de un servidor a
> otro de respaldo.
> 
> 
> 
Ahi va. En 8.x tenes warm-standby:
http://www.postgresql.org/docs/8.2/static/warm-standby.html

En 9.x tenes replicacion:
http://www.postgresql.org/docs/9.2/static/runtime-config-replication.html
y hot standby:
http://www.postgresql.org/docs/9.2/static/hot-standby.html

Todo esto es nativo de postgres, sin necesidad de instalar ningun modulo 
adicional.

Saludos,
Gerardo

-
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] Dudas sobre postgres - wal

2016-03-29 Por tema Gerardo Herzig
> 
> Hola buenas tardes ; soy Juan Pablo Moreno de Sanitas, estoy en el
> área de Sistemas-Unix.
> 
> 
> 
> Nos han surgido dudas, sobre el postgres y wal.
> 
> Tenemos varias versiones de postgres 8.x a 9.2.4 , estamos mirando la
> posibilidad del wal, y aumentar la carga productiva de esta BBDD.
> 
> 
> 
> Las dudas son :
> 
> 
> 
> · Esta funcionalidad/paquete está disponible para todas las versiones
> de postgres, o partir de que version?.
> 
> · Esta incluido en el paquete ( rpm ) estándar de Postgres.
> 
> · Tiene algún tipo de coste de utilización por cpu , core , etc,….
> 

El wal, en el uso habitual del termino, es una suerte de "buffer de escritura", 
y todos los postgres lo usan. Siempre. No podes no usarlo.
Ahora, si entiendo por "aumentar la carga productiva"...yo diria que eso es 
replicar+balanceo de carga?

Replicar se puede, a partir de la version 9.0. Con 8.x tambien se puede, pero 
es mayor la ventana de tiempo entre el master y el slave.
Balanceo de carga lo podes hacer con pgpool.

Tal vez si nos comentas mas concretamente que es lo quieren hacer, tengas 
mejores respuestas que esta.

Saludos,
Gerardo


-
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] Inconveniente con restaurar respaldo

2016-03-21 Por tema Gerardo Herzig


- Mensaje original -
> De: "Edwin De La Cruz" <edwinsp...@gmail.com>
> CC: "Lista Postgres ES" <pgsql-es-ayuda@postgresql.org>
> Enviados: Domingo, 20 de Marzo 2016 19:29:03
> Asunto: Re: [pgsql-es-ayuda] Inconveniente con restaurar respaldo
> 
> El día 18 de marzo de 2016, 21:46, Gerardo Herzig
> <gher...@fmed.uba.ar> escribió:
> > Y si ejecutas directamente pg_restore en el server (o en una
> > estacion que tenga la misma version de postgres que el de
> > produccion) te devuelve el mismo error?
> >
> > Gerardo
> >
> > - Mensaje original -
> >> De: "Edwin De La Cruz" <edwinsp...@gmail.com>
> >> Para: "Lista Postgres ES" <pgsql-es-ayuda@postgresql.org>
> >> Enviados: Viernes, 18 de Marzo 2016 19:13:30
> >> Asunto: [pgsql-es-ayuda] Inconveniente con restaurar respaldo
> >>
> >> Saludos cordiales.
> >> Espero su ayuda ya que estoy al borde del llanto.
> >> Tengo una aplicación que usa postgres, he sacado un respaldo una
> >> vez
> >> por semana sin aparentes problemas.
> >>
> >> El dia de ayer estuve borrando unos indices que me estaban dando
> >> problemas y estaban un poco crecidos de tamaña y ademas ya no me
> >> eran
> >> utiles.
> >> En ese proceso cuando borrarba uno de ellos cada vez se empezaba a
> >> demorar mas y mas al punto de que la maquina llego al 100% de
> >> proceso
> >> y no se podia trabajar.
> >>
> >> Probe a reiniciar la maquina y apenas llegana a Debian (Jessie) el
> >> proceso de postgres se disparaba.
> >>
> >> Asi, lento y todo saque una vez mas un respaldo, borre la base de
> >> datos, reinicie la maquina, cree nuevamente la base de datos, la
> >> restaure con el respaldo y o sorpresa, solo tengo las tablas y
> >> datos
> >> en ellas pero NADA de FUNCIONES, TRIGGERS, VIEWs, etc.
> >>
> >> Al restaurar me aparecio muchos mensajes como este:
> >>
> >> Error: Schema node not found for object INDEX
> >> index_ej_idaccount_201510 [owner: postgres]
> >>
> >> Probe con respaldos de fecha anteriores y sucede lo mismo.
> >>
> >> Solo me funcionó con un respaldo de hace mas de un año.
> >> He perdido todas mis vistas y mas que nada me duele haber perdido
> >> las
> >> funciones y triggers que eran complejos...
> >>
> >> Para sacar respaldos y para restaurar use pgAdminIII.
> >>
> >> Hay alguna forma de solo restaurar las vistas, funciones y
> >> triggers?
> >>
> >> Si intento ver los objetos que hay en el respaldo usando
> >> pgAdminIII
> >> me
> >> aparece el mensaje que indique mas arriba.
> >>
> >> Estoy desesperado ya que es el trabajo de mas de un año.
> >>
> >> Espero me puedan dar una guia de como solucionarlo.
> >>
> >> Gracias.
> >>
> >>
> >> Mis proyectos de software libre en:
> >> Github - edwinspire
> >>
> >> -
> >> 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
> >>
> 
> Saludos nuevamente.
> Bueno despues de sufrir un buen tiempo al siguiente dia hice las
> cosas
> con mas calma y se me ocurrio crear una nueva base de datos con otro
> nombre y restaurar ahi solo el esquema, funcionó casi completamente,
> algunas llaves foraneas e indices no se restauraron pero no son gran
> cosa, lo puedo volver a hacer a mano.
> 
> Intente restaurar unicamente los datos pero me daba errores, que no
> recuerdo. Asi que se me ocurrio restaurar tabla por tabla pasando de
> respaldo.tar a tabla.sql y una vez con tabla.sql restaurarlo usando
> psql.
> 
> Las tablas pequeñas se restauraron sin problema, pero las grandes
> estan demorando mucho mucho tiempo.
> 
> Ejemplo:
> un archivo tabla.sql que pesa 40 Megas demoro en restaurarse un hora
> mas o menos, pero tengo una tabla que pesa 626 Megas y va casi 12
> horas restaurandose y no termina.
> El problema que tengo es que tengo otras tablas que pesan 10 Gigas!
> 
> El comando que uso para restaurar luce asi:
> 
> psql -U postgres -d oms <
> "/home/openams/tempo/20160318_0825_events_jobs_201601.sql"
> 
> Ademas de esto la tabla que se esta rastaurando esta como bloqueada,
> no puedo hacer inserts ni select, ni nada.
> 
> Existe alguna forma mas rapida de restaurar u

Re: [pgsql-es-ayuda] Consulta no se devuelve en varias columnas

2016-03-20 Por tema Gerardo Herzig
Proba invocandola con *

SELECT * from f_usuario_login(...)

(con asterisco, o con los campos que quieras devolver.)



- Mensaje original -
> De: "Marcos Pastor" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Domingo, 20 de Marzo 2016 16:19:29
> Asunto: [pgsql-es-ayuda] Consulta no se devuelve en varias columnas
> 
> 
> 
> Estimados estoy haciendo la siguiente funcion y me devuelve un solo
> campo record con los valores entre comas, como puedo hacer para que
> me devuelva en vaias columnas, a mi criterio el codigo esta bien
> tengo postgre 9.5. Intente tambien con returns setof record y
> parametros out y me sale lo mismo.
> 
> 
> Codigo de funcion:
> 
> CREATE OR REPLACE FUNCTION public.f_usuario_login(
> vf_usuario character,
> vf_clave character
> )
> RETURNS table(persona character varying(13), periodo integer, ruc
> character varying(13), perfil integer, activo character varying(1))
> AS
> $BODY$
> declare
> id_persona character varying(13);
> ruc_insti character varying(13);
> periodo_act integer;
> perfiles integer;
> begin
> if not exists (select * from usuario where usuario=vf_usuario) then
> raise exception 'El usuario % no existe en nuestra base de datos.',
> vf_usuario;
> else
> select ruc_institucion_fk, ced_persona_fk into ruc_insti, id_persona
> from usuario where usuario=vf_usuario and clave=vf_clave;
> if not found then
> raise exception 'La contraseña ingresada no es correcta, por favor
> vuelva a intentarlo';
> else
> periodo_act := (select f_getperiodo_act(ruc_insti));
> if (periodo_act = -1) then
> raise exception 'El periodo no ha sido actualizado, por favor
> contáctese con el Administrador del sistema.';
> else
> return query select * from usuarios_actuales where
> ced_persona_fk=id_persona and id_periodo_fk=periodo_act and
> id_institucion_fk=ruc_insti and status='A';
> if not found then
> raise exception 'El usuario no tiene permiso para este periodo, por
> favor contáctese con el Administrador del sistema.';
> end if;
> end if;
> end if;
> end if;
> end;$BODY$
> LANGUAGE plpgsql VOLATILE
> COST 100;
> 
> 
> Adjunto la imagen del output.
> 
> 
> Saludos,
> 
> 
> -
> 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] Inconveniente con restaurar respaldo

2016-03-18 Por tema Gerardo Herzig
Y si ejecutas directamente pg_restore en el server (o en una estacion que tenga 
la misma version de postgres que el de produccion) te devuelve el mismo error?

Gerardo

- Mensaje original -
> De: "Edwin De La Cruz" 
> Para: "Lista Postgres ES" 
> Enviados: Viernes, 18 de Marzo 2016 19:13:30
> Asunto: [pgsql-es-ayuda] Inconveniente con restaurar respaldo
> 
> Saludos cordiales.
> Espero su ayuda ya que estoy al borde del llanto.
> Tengo una aplicación que usa postgres, he sacado un respaldo una vez
> por semana sin aparentes problemas.
> 
> El dia de ayer estuve borrando unos indices que me estaban dando
> problemas y estaban un poco crecidos de tamaña y ademas ya no me eran
> utiles.
> En ese proceso cuando borrarba uno de ellos cada vez se empezaba a
> demorar mas y mas al punto de que la maquina llego al 100% de proceso
> y no se podia trabajar.
> 
> Probe a reiniciar la maquina y apenas llegana a Debian (Jessie) el
> proceso de postgres se disparaba.
> 
> Asi, lento y todo saque una vez mas un respaldo, borre la base de
> datos, reinicie la maquina, cree nuevamente la base de datos, la
> restaure con el respaldo y o sorpresa, solo tengo las tablas y datos
> en ellas pero NADA de FUNCIONES, TRIGGERS, VIEWs, etc.
> 
> Al restaurar me aparecio muchos mensajes como este:
> 
> Error: Schema node not found for object INDEX
> index_ej_idaccount_201510 [owner: postgres]
> 
> Probe con respaldos de fecha anteriores y sucede lo mismo.
> 
> Solo me funcionó con un respaldo de hace mas de un año.
> He perdido todas mis vistas y mas que nada me duele haber perdido las
> funciones y triggers que eran complejos...
> 
> Para sacar respaldos y para restaurar use pgAdminIII.
> 
> Hay alguna forma de solo restaurar las vistas, funciones y triggers?
> 
> Si intento ver los objetos que hay en el respaldo usando pgAdminIII
> me
> aparece el mensaje que indique mas arriba.
> 
> Estoy desesperado ya que es el trabajo de mas de un año.
> 
> Espero me puedan dar una guia de como solucionarlo.
> 
> Gracias.
> 
> 
> Mis proyectos de software libre en:
> Github - edwinspire
> 
> -
> 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] lock up cache in function

2016-03-08 Por tema Gerardo Herzig
La ultima vez que me paso eso, habia una UI "colgada" editando la funcion.
Asegurate que no haya nadie conectado a la base, o programa tu backup para un 
horario de menos concurrencia.

Podra ser?

Gerardo

- Mensaje original -
> De: "Flavio Roche" <fero...@uci.cu>
> Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> CC: "Mario De León" <cds...@gmail.com>, pgsql-es-ayuda@postgresql.org
> Enviados: Lunes, 7 de Marzo 2016 17:21:47
> Asunto: lock up cache in function
> 
> Buenos dias lista, tengo el siguiente problema...
> 
> Necesito hacerle un backup a una de mis BD(postgre 9.4),pero a la
> hora de realizarlo me da el error 'lock up cache in function y el
> oid d la function', trato d eliminar dicha función y tambien m da el
> mismo error,es decir cualquier cosa que quiera hacer con dicha
> funcion(select,drop,etc) me da el mismo error,alguna
> sugerencia,ahora mismo ya no utilizo esa funcion,quiero borrarla
> para hacer el backup q necesito.Alguna idea para borrar dicha
> función.Saludos..
> 

-
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] Comportamiento de postgres

2016-03-07 Por tema Gerardo Herzig
Ok. Me parece importante (por no decir crucial) ver los logs.

Vas a tener que modificar las siguientes variables en el postgresql.conf:

log_line_prefix = '<(%p) %u@%h: - %d - %t (%c -> %l) = (%e)>' 
log_statement = 'all'
log_connections = on
log_disconnections = on
log_duration = on

Una vez que reiniciaste el postgres, hace ese UPDATE, y mostranos la porcion 
del log, desde la conexion (por eso el log_connections) hasta la desconexion 
(si no se desconecta, entonces hasta el COMMIT)

Saludos
Gerardo

- Mensaje original -
> De: "Mario De León" <cds...@gmail.com>
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Domingo, 6 de Marzo 2016 21:56:56
> Asunto: Re: [pgsql-es-ayuda] Comportamiento de postgres
> 
> Gracias Gerardo:
> El servidor es 9.5 en windows, se dejó la configuración del
> instalador y
> se agregaron los permisos para usuario en localhost.
> En la aplicación el driver es  JDBC42, sin instalador y con java 8.
> La aplicación se desarrolló en linux con java 8 y el servidor en
> localhost. Ahí funciona perfectamente.
> Este es el bloque más representativo del update.
> 
> String sql = "UPDATE cuenta SET visible=? WHERE indice=?";
> PreparedStatement prepareStatement = conexion.prepareStatement(sql);
> prepareStatement.setBoolean(1, false);
> prepareStatement.setLong(2, indice);
> prepareStatement.executeUpdate();
> 
> Saludos.
> 
> El 06/03/16 a las 17:54, Gerardo Herzig escribió:
> > Lo mas probable es que sea un asunto de aplicacion. Para ello, yo
> > comenzaria por 2 cosas:
> >
> > 1) En los logs (seteando log_statement = all) podras ver cuando
> > realmente se ejecuto tal UPDATE. Eventualmente, tambien deberias
> > ver el COMMIT (si es que los estas usando explicitamente)
> >
> > 2) Proba de ejecutar un UPDATE directamente desde una consola
> > (psql), y chequea que el UPDATE se refleje correctamente usando la
> > aplicacion. Si en la aplicacion no se refleja, entonces chequealo
> > de nuevo usando psql.
> >
> > No provees practicamente ninguna informacion, pero me huele a algun
> > temita con el cache del conector del entorno (.net?), o algo asi
> >
> > Si seguis con dudas, comenza por informar
> > * version de postgres
> > * mostrar los logs (suena a crucial para este caso)
> >
> >
> > Saludos
> > Gerardo
> > - Mensaje original -
> >> De: "Mario De León" <cds...@gmail.com>
> >> Para: pgsql-es-ayuda@postgresql.org
> >> Enviados: Domingo, 6 de Marzo 2016 16:40:02
> >> Asunto: [pgsql-es-ayuda] Comportamiento de postgres
> >>
> >> Saludos lista:
> >> Es un sistema instalado en windows. Al ejecutarse un update, tarda
> >> mucho
> >> tiempo en reflejarse en los select, puede tratarse de días, la
> >> computadora se apaga al finalizar el día y las operaciones son en
> >> forma
> >> local. Las tablas contienen muy pocos registros, menos de 10, las
> >> tablas
> >> varían de 10 a 62 columnas y tienen su llave maestra. Alguna idea
> >> de
> >> que
> >> pueda pasar o como buscar documentación de este problema.
> >>
> >> Muchas gracias por su apoyo.
> >>
> >> -
> >> 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
> 

-
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] Comportamiento de postgres

2016-03-06 Por tema Gerardo Herzig
Lo mas probable es que sea un asunto de aplicacion. Para ello, yo comenzaria 
por 2 cosas:

1) En los logs (seteando log_statement = all) podras ver cuando realmente se 
ejecuto tal UPDATE. Eventualmente, tambien deberias ver el COMMIT (si es que 
los estas usando explicitamente)

2) Proba de ejecutar un UPDATE directamente desde una consola (psql), y chequea 
que el UPDATE se refleje correctamente usando la aplicacion. Si en la 
aplicacion no se refleja, entonces chequealo de nuevo usando psql.

No provees practicamente ninguna informacion, pero me huele a algun temita con 
el cache del conector del entorno (.net?), o algo asi

Si seguis con dudas, comenza por informar
* version de postgres
* mostrar los logs (suena a crucial para este caso)


Saludos
Gerardo
- Mensaje original -
> De: "Mario De León" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Domingo, 6 de Marzo 2016 16:40:02
> Asunto: [pgsql-es-ayuda] Comportamiento de postgres
> 
> Saludos lista:
> Es un sistema instalado en windows. Al ejecutarse un update, tarda
> mucho
> tiempo en reflejarse en los select, puede tratarse de días, la
> computadora se apaga al finalizar el día y las operaciones son en
> forma
> local. Las tablas contienen muy pocos registros, menos de 10, las
> tablas
> varían de 10 a 62 columnas y tienen su llave maestra. Alguna idea de
> que
> pueda pasar o como buscar documentación de este problema.
> 
> Muchas gracias por su apoyo.
> 
> -
> 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] Replicacion asincrona de base de datos en vez de cluster

2016-02-18 Por tema Gerardo Herzig
Programas como slony [0] tienen la granularidad (para replicar) de una tabla. 
Bien podes tener una replica en el sentido "server -> tiendas", en convivencia 
con otra "tienda -> server". El chiste es que este ultimo caso no es, 
tecnicamente, replicacion, sino que mas bien es un conglomerado de datos, donde 
todos los datos de las tiendas se acumulan en el server central.

Si usas el mecanismo de "particionado" [1], podes particionar por el campo 
"tienda_id". Luego lo que vas a replicar son cada particion (hacia la particion 
correspondiente en el master). De este modo podes usar slony sin demasiados 
problemas.


HTH
Gerardo

[0] http://slony.info/
[1] http://www.postgresql.org/docs/current/static/ddl-partitioning.html
- Mensaje original -
> De: "Ruben Fitó" 
> Para: "Horacio Miranda" 
> CC: pgsql-es-ayuda@postgresql.org
> Enviados: Jueves, 18 de Febrero 2016 6:01:22
> Asunto: Re: [pgsql-es-ayuda] Replicacion asincrona de base de datos en vez de 
> cluster
> 
> 
> 
> Buenos dias,
> 
> 
> Gracias Horacio por tu respuesta,
> 
> 
> Efectivamente necesitamos un sistema "OFFLINE" en la tiendas.
> 
> 
> La arquitectura inicial que habíamos planteado con "Streaming
> Replication" era:
> 
> 
>   BBDDSERVER  TIENDA
>   Configuración   RW ->   RO
>   Transacciones   RO  <- RW
> 
> 
> Según este esquema tenemos que, por cada TIENDA, necesitamos 2 BBDD
> con sus réplicas para 2 objetivos distintos: Configuración i
> Transacciones.
> 
> 
> En caso de la BBDD de configuración, la RW se encuentra en nuestro
> server i la réplica en la tienda. Esto nos permite:
> 
> 
> * Configurar la tienda de manera centralizada.
> * Des de la BBDD de la tienda nunca se podran modificar los
> datos.
> * Siempre tendremos una sincronización "real-time" de ese modo
> evitamos procesos batch, triggers, entre otros, que tengan que
> actualizar la BBDD de la tienda.
> 
> 
> 
> En caso de las transacciones pasa lo mismo pero des de la otra
> dirección:
> 
> 
> * La tienda va apuntando las transacciones i en "real-time" se
> sincroniza con el la BBDD del server.
> * Des del server no se podran hacer manipulaciones de
> transacciones. Algo muy interesante en nuestro mundillo.
> * El server recibe, de forma centralizada, todos los datos de
> todas las tiendas.
> 
> 
> 
> En realidad, esta arquitectura son todo ventajas, exceptuando la gran
> complejidad de configurar i mantener 2 clústeres en server i 2 en
> tienda, por cada tienda.
> 
> 
> Por parte de la tienda, una vez creados los 2 clústeres, ya no hay
> que hacer mucho mas, pero por el lado del servidor, gestionar,
> configurar, acceder i mantener 2 clústeres por las 56 tiendas que
> tiene la empresa es una barbaridad de trabajo y recursos.
> 
> 
> Lo ideal seria que sólo haya un único cluster en el servidor i uno en
> cada tienda.
> 
> 
> Por ello, estamos buscando alternativas al "Streaming Replication"
> que puedan darnos las mismas garantias:
> 
> 
> * Sincronización Asíncrona. (Qué rara esta frase, jejejeje)
> * Que se sincronizen todos los cambios hechos, no sólo por cada
> conexión.
> * Que sean BBDD RO.
> * Gestión cero, por nuestra parte, para restablecer conexión.
> * Garantizar la integridad de datos, concurrencia, etc..
> * Evitar deadlocks.
> * Y más...
> 
> 
> 
> Entendemos que un "Streaming Replication" es como una copia en
> binario(archivos WAL) de todo lo sucedido en la base de datos, y que
> no es posible hacer una replicación por un subconjunto de datos
> diferentes.
> 
> 
> Por este motivo, os pedimos consejo, ya que las alternativas(fdw,
> dblink) por ahora analizadas, no cumplen con nuestros requisitos.
> 
> 
> Gracias.
> 
> 
> Un saludo
> 
> 
> 
> 
> 
> 
> 
> 
> 2016-02-18 5:10 GMT+01:00 Horacio Miranda < hmira...@gmail.com > :
> 
> 
> On 2/17/2016 2:02 AM, Ruben Fitó wrote:
> 
> 
> Buenos dia lista,
> 
> Para empezar, tenemos un sistema de replicación "Streaming
> replication"
> con postgresql 9.3.
> 
> Hemos comprovado que este sistema es estable y que aguanta caídas de
> varias horas (segun hemos configurado).
> 
> Ahora tenemos intención de hacer algo parecido pero no por clúster
> sino
> por diferentes bases de datos por un mismo cluster.
> 
> 
> Estoy un poco confundido, quieres replicar parcialmente de una base
> de datos a otra ?
> 
> 
> 
> Hemos estado buscando en la documentación y hemos visto que existen
> diferentes módulos de sincronización como dblink o pg_fwd, pero no
> hemos
> podido comprobar su eficacia.
> 
> 
> Según los otros email creo que lo que necesitas es tener dos bases de
> datos ( una replicada ) y otra local. Los cambios se hacen en la
> base de datos local y la base de datos local tiene permisos
> read_only hacia la base de datos que quieres replicar.
> 
> 
> 
> 
> Conocéis algún sistema de sincronización parecido al que
> necesitamos??
> 
> Creo que streams desde la base de datos central 

Re: [pgsql-es-ayuda] como pasar parametros de tipo text

2016-02-11 Por tema Gerardo Herzig
M si entendi bien, basicamente veo 2 opciones:
1) "Construir" el array desde la app (php?), o
2) Usar sobrecarga de funciones, como algo asi

CREATE FUNCTION my_funcion(text) ...
as
$$
select * from my_funcion(regexp_split_to_array($1, ',');
$$ language sql;

O sea, "casteas" via otra funcion SQL.
regexp_split_to_array() convierte, justamente, el texto (que asumo esta 
separado por comas) en un array.

HTH
Gerardo

- Mensaje original -
> De: "heriberto giron" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Miércoles, 10 de Febrero 2016 18:46:39
> Asunto: [pgsql-es-ayuda] como pasar parametros de tipo text
> 
> 
> 
> cree una funcion que recibe como parametro una array de tipo text
> 
> comp puedo pasar un parametro de typo texto a esta funcion
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> --
> 
> 
> -

-
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] PITR Point in Time Recovery en linea administrado

2015-11-20 Por tema Gerardo Herzig


- Mensaje original -
> De: "Hellmuth Vargas" 
> Para: "Lista Postgres ES" 
> Enviados: Viernes, 20 de Noviembre 2015 11:45:35
> Asunto: [pgsql-es-ayuda] PITR Point in Time Recovery en linea administrado
> 
> 
> Buenos dias Lista
> 
> 
> 
> 
> Dado que en algunas oportunidades (mas de las que quisiera) se borran
> datos de tablas,o incluso las tablas mismas, se actualizan con datos
> errores, etc etc, etc (otro tema es que entren usuario con
> privilegios a hacer estas calamidades... ) para subsanar esto hay
> que restaurar backups y con los WAL archivados restaurar los datos
> alterados, esto toma tiempo, mas cuando las bases son grandes y mas
> cuando no se sabe exactamente la hora del suceso; para la versión
> 9.4 existe la posibilidad de mantener una replica retasada un X
> tiempo (
> http://www.depesz.com/2013/12/20/waiting-for-9-4-allow-time-delayed-standbys-and-recovery/
> ) que ayuda bastante, pues es una base EN LINEA con la foto de
> nuestra base de hace X tiempo, mas si el cambio fue antes de este
> tiempo, ni modos... Entonces la pregunta es:
> 
> 
> Que posibilidades hay de mantener una replica en linea retrasada X
> tiempo (casi una semana, por ejemplo) pero que se pudiera
> administrar la aplicación de los WAL de forma manual, para permitir
> operaciones como (todas ojala dentro de una transaccion para poder
> devolver el cambio en el caso que uno se 'pasara' de la hora del
> suceso):
> 

Se puede jugar con el "recovery_command" en la replica, haciendo un script que 
solo aplique el wal solo si la fecha de creacion del archivo supera, digamos, 7 
dias.
> 
> 
> 
> - Aplicación de cambios hasta un timestamp defnido
Eso  se puede hacer hace tiempo, via recovery.conf

> - Aplicación de WAL interactivamente, algo como aplique el siguiente
> WAL para que por tanteo se pueda llegar a los datos mas próximos
> antes de la calamidad

Mmmm no estoy seguro qeu haya funcion/es para procesar WALs 
interactivamente...por algun motivo me hace ruido qeu las hubiere.
Pero de haberlas, podria utilizarse, supongo
> 
> 
> Y con todas las bondades de las replicas en linea. Muchas gracias
> Lista y quedo atento a sus comentarios.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> --
> 
> 
> Cordialmente,
> 
> Ing. Hellmuth I. Vargas S.
> Esp. Telemática y Negocios por Internet
> Oracle Database 10g Administrator Certified Associate
> 
> EnterpriseDB Certified PostgreSQL 9.3 Associate
> 
> 

-
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] acumular datos tipo horas

2015-11-05 Por tema Gerardo Herzig


- Mensaje original -
> De: "felix gonzales" 
> Para: "PostgreSQL" 
> Enviados: Jueves, 5 de Noviembre 2015 13:04:18
> Asunto: [pgsql-es-ayuda] acumular datos tipo horas
> 
> 
> 
> Saludos Lista!
> 
> 
> Para obtener el total en horas, minutos y segundos (de los datos mas
> abajo indicados) probablemente haya que pasar todos a segundos y
> luego calcular las h:m:s , alguna otra idea? se agradece cualquier
> aporte.
> 
> 
> 
> time_acum
> 
> 12:00:18
> 00:02:17
> 05:00:26
> 00:07:17
> 00:48:23
> 10:11:24
> 18:12:23
> 24:23:20
> 
> hh:mm:ss ???
> 
> 
> 

Y que tal select sum(time_acum) from  ?

Gerardo

-
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] duda sobre indices

2015-10-22 Por tema Gerardo Herzig


- Mensaje original -
> De: "Igniris Valdivia" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Jueves, 22 de Octubre 2015 17:44:05
> Asunto: [pgsql-es-ayuda] duda sobre indices
> 
> buenas tardes a todos
> tengo una duda
> tengo un indice btree que contiene dos campos digamos id1 e id2 pues
> se
> debe garantizar la unicidad de la combinacion de estos campos
> ahora en la consulta donde la uso se usan los operadores igual e IN
> como
> por ejemplo:
> 
> id1=id3 AND id2 IN (1,2,3)
> 
> y como el indice es compuesto la busqueda del IN la hace secuencial
> 
> que pudiera hacer para arreglar eso sin tener que crear un nuevo
> indice
> solo para el capo id2 pues considero que esto ralentizaria aun mas la
> consulta en lugar de optimizarla
> 
> gracias de antemano
> saludos
> 

Lo primero que debes hacer es mostrar un EXPLAIN ANALYZE de tu consulta.
Sino estamos jugando a las adivinanzas. Y es dificil.

Saludos,
Gerardo

-
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] insert eficiente

2015-10-02 Por tema Gerardo Herzig


- Mensaje original -
> De: "Fernando Rodiño" 
> Para: "Ayuda" 
> Enviados: Jueves, 1 de Octubre 2015 19:45:08
> Asunto: [pgsql-es-ayuda] insert eficiente
> 
> 
> Buenas tardes a todos
> 
> 
> 
> Acudo a su amable ayuda para lo siguiente:
> 
> 
> Tenemos una implementación de Postgres 9.3 y estamos en un proceso
> con Pentaho Data Integration donde se hace un mapeo de unos archivos
> planos a una tabla, se realiza una adecuación de estos datos y se
> hace un insert masivo a una tabla destino X, hasta ahí todo
> funciona, el problema que tenemos es que es mucha información y la
> tabla destino tiene varios indexes que hacen más demorada la
> operación, en Postgres 8.4 uno podía inactivar los indexes mientras
> ejecutaba la operación, pero en Postgres 9.3 no funciona esa
> estrategia o almenos como se hacia en Postgres 8.4 no funciona:
> update pg_index set indisvalid = false where indexrelid =
> 'i_nombre_index'::regclass; Alguien conoce una estrategia para
> realizar este tipo de operaciones que funcione en postgres 9.3
> 
> 
> Muchas gracias por su ayuda.
> 

Para los bulk inserts suele ayudar:
* borrar los indices (y recrearlos luego de la insercion)
* set maintenance_work_mem TO 'una buena porcion de la RAM' (para acelerar la 
creacion de los indices)
* set syncronous_commit to 'OFF' (si puedes tomar el riesgo de perder alguna 
transaccion)
* deshabilitar (temporalmente) autovacuum para la tabla que recibe esos datos

HTH
Gerardo

-
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] duda sobre ciclos anidados

2015-09-29 Por tema Gerardo Herzig
Debes copiar *exactamente* la porcion de codigo afectada, y *exactamente* el 
error.
Sino no se entiende nada.

Saludos,
Gerardo

- Mensaje original -
> De: "Igniris" 
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Martes, 29 de Septiembre 2015 11:53:40
> Asunto: [pgsql-es-ayuda] duda sobre ciclos anidados
> 
> Hola a todos
> tengo una funcion en plpgsql en la que estoy haciendo un for sobre un
> record en este hay una insercion y dentro de este for hay otro con
> otra
> insercion pero que depende de la primera y cuando se ejecuta me dice
> que
> el identificador todavia no existe en la 1ra tabla que pudiera hacer?
> Saludos y 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
> 

-
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] Borrado de una tabla

2015-09-24 Por tema Gerardo Herzig


- Mensaje original -
> De: "Enrique Escobar" 
> Para: "Lista Postgres ES" 
> Enviados: Miércoles, 23 de Septiembre 2015 23:36:05
> Asunto: [pgsql-es-ayuda] Borrado de una tabla
> 
> 
> 
> 
> Buena noche
> 
> Diran que algo burda la consulta pero me atore.
> 
> Tengo una base llamada tuti y necesito borrar una tabla del esquema
> nombre llamada fruti, (la tabla se llama frutas_09_08). Lo que hago
> es esto. (Desde la línea de comando). No deseo usar pgadmin porque a
> esta tabla no tiene abierto el puerto.
> 
> Textualmente pongo esto. (sin los puntos lo pongo para que no cambie
> de mayúscula a minúscula).
> 
> . su – postgres
> 
> . psql –U Postgres –d tuti
> 
> . DROP TABLE fruti.frutas_09_08
> 
> 
> 
> El problema es que no esta borrando nada. Como ven que se me paso por
> alto?.
> 
> Mil gracias como siempre.
> 

El ; al final del comando?

-
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] Criterio para crear indices

2015-09-17 Por tema Gerardo Herzig


- Mensaje original -
> De: "Edwin De La Cruz" 
> Para: "Jaime Casanova" , 
> pgsql-es-ayuda@postgresql.org
> Enviados: Jueves, 17 de Septiembre 2015 12:44:06
> Asunto: Re: [pgsql-es-ayuda] Criterio para crear indices
> 
> El día 17 de septiembre de 2015, 10:39, Edwin De La Cruz
>  escribió:
> > Mis proyectos de software libre en:
> > Github - edwinspire
> >
> >
> > El día 17 de septiembre de 2015, 10:23, Jaime Casanova
> >  escribió:
> >> 2015-09-17 9:57 GMT-05:00 Edwin De La Cruz :
> >>> Saludos.
> >>> Buenos tengo dos criterios para las particiones.
> >>> la tabla events es la tabla "general" que tiene campos comunes
> >>> para
> >>> todas las tablas hijas.
> >>>
> >>> El resto de tablas hijas tienen campos adicionales que en la
> >>> tabla no
> >>> existen, esa fue la primera razon por la que particioné.
> >>>
> >>> Luego al ver que el desempeño iba cayendo fue que decido
> >>> particionar
> >>> las tablas hijas y dividirlas por meses.
> >>>
> >>> Ahora bien, el cuello de botella esta en la consulta:
> >>>
> >>>  SELECT idevent FROM events WHERE ideventtype =
> >>> ANY(et.auto_close_on_event_defined)
> >>> AND status = 0 AND idaccount = NEW.idaccount AND zu = NEW.zu AND
> >>> idevent != NEW.idevent
> >>>
> >>> Si comento esta linea de código todo va bien, pero cuando la
> >>> activo se
> >>> presenta el problema, es ahi donde debo atachar y resilver pero
> >>> no se
> >>> como.
> >>>
> >>
> >> la razón por la que el desempeño fue cayendo es que como mencione
> >> la
> >> consulta no tiene una manera de excluir particiones.
> >> para eso debes agregar a la consulta una clausula en el where que
> >> haga
> >> referencia a como esta particionada la tabla Y agregar los
> >> constraints
> >> check que mencione a las tablas hijas (ambas cosas deben hacerse,
> >> no
> >> solo una)
> >>
> >> al crear mas particiones por debajo solo hiciste las cosas peor de
> >> lo
> >> que estaban.
> >> la razón por la que te baja el rendimiento es que al tener varias
> >> particiones y no excluir ninguna lees la misma cantidad de
> >> registros
> >> que antes solo que ahora las lees de distintas tablas y
> >> adicionalmente
> >> ahora agregas pasos adicionales a tu consulta pues debes mezclar
> >> los
> >> resultados de las distintas tablas.
> >>
> >> finalmente, estas consciente de que los campos adicionales en las
> >> tablas hijas no serán visibles si consultas desde la tabla padre,
> >> verdad?
> >>
> >
> > Si lo se, precisamente asi necesito que funcione, lo normal es que
> > haga la consulta a la tabla padre, si necesito mayor informacion
> > (los
> > campos de la tabla hija), solo entonces consulto a la hija.
> >
> >> nuevamente, podrías mostrar el plan de ejecución? es decir, la
> >> salida
> >> del explain analyze (por favor en un archivo de texto adunto)
> >>
> >
> > Aqui va:
> >
> > EXPLAIN ANALYZE SELECT idevent, ts, loaded, dateevent, status,
> > idaccount, code, priority,
> >ideventtype, description, idadmin, last_comment, account,
> >zu,
> >note
> >   FROM events;
> >
> >
> >
> >
> > "Append  (cost=0.00..334407.05 rows=7227407 width=189) (actual
> > time=0.015..13199.182 rows=6727718 loops=1)"
> > "  ->  Seq Scan on events  (cost=0.00..0.00 rows=1 width=260)
> > (actual
> > time=0.000..0.000 rows=0 loops=1)"
> > "  ->  Seq Scan on events_201509  (cost=0.00..181671.35
> > rows=3722635
> > width=220) (actual time=0.013..1682.899 rows=3389222 loops=1)"
> > "  ->  Seq Scan on events_jobs  (cost=0.00..276.40 rows=2840
> > width=316) (actual time=0.026..2.045 rows=2840 loops=1)"
> > "  ->  Seq Scan on events_dbsizes  (cost=0.00..2105.30 rows=53930
> > width=225) (actual time=0.003..74.458 rows=53930 loops=1)"
> > "  ->  Seq Scan on events_diskspace  (cost=0.00..0.00 rows=1
> > width=196) (actual time=0.000..0.000 rows=0 loops=1)"
> > "  ->  Seq Scan on events_sqlserver_uptime  (cost=0.00..3.94
> > rows=94
> > width=170) (actual time=0.014..0.053 rows=94 loops=1)"
> > "  ->  Seq Scan on events_jobs_201509  (cost=0.00..21829.20
> > rows=224220 width=275) (actual time=0.003..727.342 rows=232047
> > loops=1)"
> > "  ->  Seq Scan on events_jobs_201508  (cost=0.00..6.80 rows=80
> > width=291) (actual time=3.902..3.957 rows=67 loops=1)"
> > "  ->  Seq Scan on events_jobs_201507  (cost=0.00..1.01 rows=1
> > width=281) (actual time=0.003..0.003 rows=1 loops=1)"
> > "  ->  Seq Scan on events_jobs_201411  (cost=0.00..1.01 rows=1
> > width=285) (actual time=0.004..0.005 rows=1 loops=1)"
> > "  ->  Seq Scan on events_jobs_201506  (cost=0.00..8.39 rows=39
> > width=295) (actual time=0.003..0.040 rows=39 loops=1)"
> > "  ->  Seq Scan on events_dbsizes_201509  (cost=0.00..120743.85
> > rows=2990385 width=147) (actual time=0.015..8242.433 rows=2819164
> > loops=1)"
> > "  ->  Seq Scan on events_diskspace_201509  (cost=0.00..5452.39
> > rows=161639 width=131) (actual 

Re: [pgsql-es-ayuda] Criterio para crear indices

2015-09-16 Por tema Gerardo Herzig
- Mensaje original -
> 
> 
> 
> Esta es la parte del código donde se vuelve extremadamente lento
> dentro del trigger:
> 
> SELECT idevent FROM events WHERE ideventtype =
> ANY(et.auto_close_on_event_defined)
> AND status = 0 AND idaccount = NEW.idaccount AND zu = NEW.zu AND
> idevent != NEW.idevent
> 
> 
> El campo zu antes era tipo texto, lo cambie a bigint, eso mejoro un
> poco pero sigue lento, no se que mas hacer.
> Que campos debo indexar o que podria hacer?
> 
> 
> /*
> FOR idevent_for_close_on_restore IN SELECT idevent FROM events WHERE
> ideventtype = ANY(et.auto_close_on_event_defined)
> AND status = 0 AND idaccount = NEW.idaccount AND zu = NEW.zu AND
> idevent != NEW.idevent LOOP
> 
> INSERT INTO event_comments(
> comment_event, status,
> idevent)
> VALUES ('Event closed for restoring event idevent '||NEW.idevent, 7,
> idevent_for_close_on_restore);
> 
> END LOOP;
> */
> 
> 
> Todo esto pertenece a una aplicacion web de monitoreo de servidores y
> aplicaciones (o algo asi), la he publicado en
> http://openamsdemo-edwinspire.rhcloud.com/oams_contacts.php
> 
> Aunque aun no esta la base de datos instalada.
> 
> 
> Atte:
> Edwin De La Cruz (edwinspire)
> Quito - Ecuador

Una de las reglas que suelen servir para definir la utilidad de un indice, es 
que el mismo componga o contenga una deficion parecida al "where" de tu select.

Tal vez un indice por (idaccount, zu)
Si "status = 0" representa una porcion pequeña de la tabla, entonces crear un 
indice parcial seria ventajoso tambien.

Otra chance es que lo lento sean las inserciones en event_comments, y no el 
select previo.

Toma ese select, reemplaza los "NEW.campo" por valores reales, y probalo 
separado del resto del trigger. 

HTH
Gerardo



-
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] Criterio para crear indices

2015-09-16 Por tema Gerardo Herzig


- Mensaje original -
> De: "Edwin De La Cruz" <edwinsp...@gmail.com>
> Para: pgsql-es-ayuda@postgresql.org
> CC: "Gerardo Herzig" <gher...@fmed.uba.ar>
> Enviados: Miércoles, 16 de Septiembre 2015 16:17:18
> Asunto: Re: [pgsql-es-ayuda] Criterio para crear indices
> 
> El 16/09/15 a las 13:01, Gerardo Herzig escribió:
> > /*
> > >FOR idevent_for_close_on_restore IN SELECT idevent FROM events
> > >WHERE
> > >ideventtype = ANY(et.auto_close_on_event_defined)
> > >AND status = 0 AND idaccount = NEW.idaccount AND zu = NEW.zu AND
> > >idevent != NEW.idevent LOOP
> > >
> > >INSERT INTO event_comments(
> > >comment_event, status,
> > >idevent)
> > >VALUES ('Event closed for restoring event idevent '||NEW.idevent,
> > >7,
> > >idevent_for_close_on_restore);
> > >
> > >END LOOP;
> > >*/
> 
> Si dejo el codigo como se muestra a continuacion:
> 
> FOR idevent_for_close_on_restore IN SELECT idevent FROM events WHERE
> ideventtype = ANY(et.auto_close_on_event_defined)
> AND status = 0 AND idaccount = NEW.idaccount AND zu = NEW.zu AND
> idevent != NEW.idevent LOOP
> /*
> INSERT INTO event_comments(
> comment_event, status,
> idevent)
> VALUES ('Event closed for restoring event idevent '||NEW.idevent, 7,
> idevent_for_close_on_restore);
> */
> END LOOP;
> 
> igual se vuelve muy lento el script, probé hace unas semanas atras
> con ANALIZE EXPLAIN y se demoró unos 40 segundos en correr, y eso
> que solo era prueba. Lo que pude ver es que recorre todas las
> particiones y las particiones de las particiones de la tabla events,
> que de momento como dije son mas de 40 millones de registros
> repartidos en unas 15 tablas.
> El indice lo creo solo en la tabla padre o en todas las hijas, creo
> que lo logico seria en todas las hijas, pues son las que contienen
> datos.
> 

Exacto, conviene hacerlo para todas las hijas.

Puede que aun tenga que recorrer todas las particiones (depende del criterio qe 
hayas usado para particionar), pero la espectativa es que lo haga mas rapido si 
hay indices.

Saludos,
Gerardo

-
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] instalar pldebugger en windows

2015-09-15 Por tema Gerardo Herzig
Supongamos que el error se debe a que windows usa las contrabarras (como en la 
epoca del DOS).
Si postgres no logro levantar la mecanica de "logging", entonces busca el 
archivo $PGDATA/serverlog, que contiene los errores que ocurran en esa 
instancia.

Ese log te sabra contestar.
Sino, levanta a mano utilzando los ejecutables (man postmaster), asi podes ver 
el error directamente en la terminal.

HTH
Gerardo

- Mensaje original -
> De: "jvenegasperu ." 
> Para: "Ayuda" 
> Enviados: Martes, 15 de Septiembre 2015 13:23:45
> Asunto: [pgsql-es-ayuda] instalar pldebugger en windows
> 
> 
> 
> 
> 
> Buenos dias a todos
> 
> he estado tratando de intalar el pldebugger en windows estoy
> trabajando con un postgres 9.4 a instalado sobre windows 7 a 64
> 
> estoy siguiendo las instrucciones de este blog parecia un post muy
> corto y sencillo.
> 
> http://xdrtas.blogspot.pe/2011/02/0007-instalar-pldebugger-en-postgresql.html
> 
> cuando agrego la linea
> 
> 
> shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll'
> 
> 
> al reiniciar postgres ya no arranca alguien sabe de alguna
> configuracion adicional que me podria estar faltando?
> 
> 
> 
> 
> 
> 
> --
> 
> 
> 
> 
> 
> José Mercedes Venegas Acevedo
> cel Mov RPM #955853768
> 
> mails: jvenegasp...@gmail.co m

-
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 OIDS en pg_class

2015-09-13 Por tema Gerardo Herzig


- Mensaje original -
> De: "Alessandra Campos Alfaro" <alessc...@gmail.com>
> Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> Enviados: Viernes, 11 de Septiembre 2015 21:43:42
> Asunto: Re: [pgsql-es-ayuda] ayuda con OIDS en pg_class
> 
> 
> 
> 
> 
> 
> 
> Hola Gerardo
> 
> a)Si se mira en en el pg_admin,la tabla company_user
> tiene un OID 23444

Mmm OK. 
> b) si consulto
> 
> select * from pg_class where relfilenode=23444
> no devuelve registos porque no encuentra el id
> 

Hasta donde entiendo, tendrias que buscar "where oid=23444". Igualmente, 
pg_class tiene un campo "relname", que contiene el nombre de la tabla...
Que aparece con
select * from pg_class where relname = 'company_user'?

Contesta a la lista por favor, asi todos pueden seguir el hilo.

HTH
Gerardo

-
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] Buscar datos en detalle

2015-09-13 Por tema Gerardo Herzig
Mmmm bueno que tal con
select numero_formulario from
   (select numero_formulario, array_agg(producto) as array_productos_vendidos 
group by 1
   ) foo
where 'Naranja' != ALL(array_productos_vendidos);
?

(Luego discutimos sobre performance :)
Gerardo

- Mensaje original -
> De: "José Fermín Francisco Ferreras" 
> Para: "Lista PostgreSQL" 
> Enviados: Sábado, 12 de Septiembre 2015 19:52:25
> Asunto: [pgsql-es-ayuda] Buscar datos en detalle
> 
> 
> Buenas tardes!!
> 
> 
> Estoy teniendo problemas con una consulta. Resulta que necesito
> consultar en dos tablas:
> -Maestro
> numero_formulario**
> productor
> fecha
> hora
> monto_total
> 
> 
> detalles
> numero_formulario*-
> codigo_producto
> producto
> cantidad
> 
> 
> Resulta que necesito buscar en cuales formularios no se facturó el
> producto llamado "Naranja"
> 
> 
> Lista de producto que se venden:
> naranja
> pera
> piña
> sandia
> 
> 
> 
> 
> 
> ing. José Fermín Francisco Ferreras
> San Francisco de Macorís, Rep. Dom.
> 

-
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 OIDS en pg_class

2015-09-11 Por tema Gerardo Herzig
Sera mucho pedir las consultas exactas que estas haciendo?
Suena un tanto extraño lo que decis.

Gerardo

- Mensaje original -
> De: "Alessandra Campos Alfaro" 
> Para: "Lista Postgres ES" 
> Enviados: Viernes, 11 de Septiembre 2015 17:28:43
> Asunto: [pgsql-es-ayuda] ayuda con OIDS en pg_class
> 
> 
> 
> 
> 
> 
> BUenas tardes
> 
> estoy encontrando que en mi bd que el OID que tiene la tabla, no
> corresponde con el OID(relfilenode) que esta en el catalogo pg_class
> por lo que al parecer hay una falla en la actualziacion del pg_class
> 
> UDs sabrian como se puede corregir esto?vpor ejemplo al tratar de
> obtener el nombre de una tabla basada en su OID, no me devuelve nada
> por que no encuenra el OID(relfilenode) en el pg_class
> 
> agradezco si alguien me peude ayuda cone ste tema.
> 
> 
> 
> 
> Aless
> 
> 
> 

-
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] Saber cuantas tablas dependen de otra tabla

2015-08-27 Por tema Gerardo Herzig
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 jmaurici...@yahoo.es
 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�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] consulta con join

2015-08-27 Por tema Gerardo Herzig
 
 
 Buenas Tardes Lista
 
 tengo una consulta que une dos tablas con un Join. Asi
 
 Select * from tabla_1
 left join tabla_2 on tabla_2.id_tabla2=tabla1.id_tabla_2
 where tabla_1.id_tabla_2 is not null
 
 Pero cuando hago esta la consulta, demora mas que cuando la hago de
 esta forma:
 
 
 
 Select * from tabla_1
 left join tabla_2 on tabla_2.id_tabla2=tabla1.id_tabla_2
 where tabla_2.id_tabla_2 is not null
 
 
 Alguien pudiera ayudarme a entender cual es la diferencia y como
 opera el join que pueda hacer que tarde mas una consulta que la
 otra? pues me temo que tengo varias consultas mas formuladas en este
 aspecto.
 
 
 
 Aless
 

La manera mas simple que se me ocurre, es que en tabla_2 haya mas registros que 
en tabla_1.

La aproximacion a este tipo de problemas suele comenzar con el analisis del 
plan de ejecucion.

La sentencia EXPLAIN [1] hace eso. Hace un EXPLAIN ANALYZE de ambos selects, y 
a partir de ahi hay que estudiar un poco las diferencias a nivel de plan.
[1] http://www.postgresql.org/docs/current/static/sql-explain.html

HTH
Gerardo

-
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] Loggear consultas de triggers

2015-08-19 Por tema Gerardo Herzig
Yo en esos casos de apuro opto por el depurador del hombre pobre:
Encierro las partes que quiero depurar con

inicio = clock_timestamp();
..
..
[codigo codigo]
fin = clock_timestamp();

raise notice 'tiempo de bloque de ejecucion = %', fin - inicio;


Tambien podrias, claro, guardar los tiempos en una tabla. Supongo que con un 
par de iteraciones lograras encontrar la parte lenta.


HTH
Gerardo

- Mensaje original -
 De: motum hesa mot...@gmail.com
 Para: Lista PostgreSQL pgsql-es-ayuda@postgresql.org
 Enviados: Miércoles, 19 de Agosto 2015 17:14:44
 Asunto: [pgsql-es-ayuda] Loggear consultas de triggers
 
 
 Buenas tardes.
 
 
 Actualmente en un servidor estoy teniendo unos problemas pues un
 Insert está tardando más de 5 segundos, esta tabla tiene un trigger
 AFTER INSERT en este trigger se realizan algunos cálculos y consulta
 a otra tabla, una vez realizado los datos que están aquí son
 insertados a otra tabla, esta otra tabla a su vez tiene un trigger
 BEFORE INSERT, este es el trigger más pesado (más de 2 mil lineas) y
 realiza consultas, llamadas a funciones y al final inserta los datos
 procesados a una tabla histórica.
 
 
 Desgraciadamente el log de PostgreSQL sólo me dice que el INSERT está
 tardando mucho, me gustaría saber qué consultas dentro del trigger
 están tardando tanto para poder empezar a optimizarlas,¿es esto
 posible?. Intente con log_statement=all pero no me sirivió mucho
 
 
 Estoy usando PostgreSQL 9.3.8 en FreeBSD 10.1
 
 
 Muchas gracias de antemano.
 
 
 
 

-
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] Equivalente de @@TRANCOUNT en postgresql

2015-08-10 Por tema Gerardo Herzig


- Mensaje original -
 De: mauricio pullabuestan jmaurici...@yahoo.es
 Para: PostgreSQL Lista Castellano pgsql-es-ayuda@postgresql.org
 Enviados: Viernes, 7 de Agosto 2015 12:16:43
 Asunto: [pgsql-es-ayuda] Equivalente de @@TRANCOUNT en postgresql
 
 
 
 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.
 

La vista pg_stat_activity es tu amiga. En 9.4, la columna state en 'idle in 
transaction' deberia corresponderse con un backend que hizo un BEGIN, no ha 
cerrado la conexion, y se encuentra oscioso. Con la columna pid, 
client_addr, application_name puedes tener mejor certeza de cual es el 
aplicativo que se esta comportando de esa manera.

http://www.postgresql.org/docs/9.4/static/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW

HTH

Gerardo

-
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] error en el cambio de estructura

2015-06-19 Por tema Gerardo Herzig
 Cuando quise cambiar el tipo de dato de una tabla no me permitia ya
 que tengo vistas vinculadas.
 
 Busque en la red algo que me permita modificar el campo y no tenga
 problemas con las vistas creadas; encontre este codigo :
 
 
 
 UPDATE pg_attribute SET atttypmod = 15+2
 
 WHERE attrelid = 'mesas'::regclass
 
 AND attname = 'mesa';
 
 
 
 Lo ejecuta bien
 
 Ahora, probando me muestra un dato en la tabla y otro dato en la
 vista...
 
 
 
 Por ejemplo : en la tabla : 1020301 y en la vista 102030111
 
 
 
 Que paso ?? o que es lo mas recomendable o como se maneja en todo
 caso la tabla pg_attribute
 
 O si hay alguna otra manera de modificar la estructura y que no haya
 problemas con la vistas...
 
 
Paso que te metiste con las internas de postgres.Tablas como pg_attribute 
manejan la meta-data de la base de datos. Lo aconsejable es usar el comando 
adecuado (SQL), como ALTER TABLE. Si esto colisiona con una definicion de una 
vista, entonces lo mas prudente es DROPear la/s vistas, hacer el cambio en la 
tabla, y luego recrear la vista.

Saludos,

Gerardo

-
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] Problemas para cargar grandes bases de datos desde archivos .csv

2015-06-15 Por tema Gerardo Herzig
(Por favor recuerda postear a la lista)

 GRACIAS por la información, efectivamente algo andaba mal con los
 archivos. La verdad no se que es. dividi el archivo segun casos y en
 una me funciono de una, al probar de nuevo ya no al final me
 manda error con el tipo de los datos no es integer.

Cuando mencionas un error, por favor copia y pega *exactamente* cual es el 
error, y *exactamente* que comando estas ejecutando.

 Como el archivo es muy grande los abro con el SPSS y de ahi lo grabo
 en CSV cuando le elimino las variables que no me interesan etc.

Am...no tengo idea de que es SPSS :/ 

 Estoy entrando en colapso yaeste tipo de comando genera algun
 log? porque si supiera que variable de las que estan en el archivo
 dan problemas podria tratar de arreglarlo. El tema que cuando lo
 abro con el excel y trato de grabarlo de nuevo no me deja porque
 genera datos incompatibles con CSV...

Te invito a revisar la configuracion de tu servidor, donde (y que) se guarda. 
Comienza por aqui:
http://www.postgresql.org/docs/current/static/runtime-config-logging.html

 
 
 Conoces alguna forma de editar el archivo de manera que no me afecte
 al querer grabarlo...?
 

Linux + vi? 

Saludos,
Gerardo

-
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] Problemas para cargar grandes bases de datos desde archivos .csv

2015-06-12 Por tema Gerardo Herzig


- Mensaje original -
 De: Paola Alejandra de Montserrat Cordero Bon paola.corder...@gmail.com
 Para: pgsql-es-ayuda@postgresql.org
 Enviados: Viernes, 12 de Junio 2015 2:57:33
 Asunto: [pgsql-es-ayuda] Problemas para cargar grandes bases de datos desde 
 archivos .csv
 
 
 
 
 
 
 Estimados:
 
 Después de mucho buscar y experimentar script ejecute la siguiente
 para poder cargar archivo .CSV con alrededor de 3.500.000 de
 registros. El comando que utilice en psql fue:
 
 -c \copy tabla from dato.csv using delimiters ';' with header csv
 
 el problema que ya lleva dos horas y no tengo idea de si esta
 trabajando bien o solo esta en un loop
 
 agradeceria me pudieran ayudar...tengo muchos otros archivos que
 cargar.
 
 
Puntualizando en tu inquietud: Para saber si la copia esta realmente 
ejeutandose, podes hacer un
select * from pg_stat_activity. De ahi, obtenes el pid del COPY, y ejecutar 
un strace desde el SO, y ver si el proceso se esta moviendo.

Otra columna interesante de pg_stat_activity es waiting, lo cual te indica si 
el COPY esta activo, o a la espera de algo.

Tambien puede haber una falta de configuracion, triggers en ejecucion, otras 
consultas en curso, etc etc etc.

Saludos,
Gerardo

-
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] optimizacion

2015-06-08 Por tema Gerardo Herzig
Asi como se veme suena a un

SELECT... from ...GROUP BY unidad, tipo_servicio

junto con un crosstab (para convertir filas en columnas)

http://www.postgresql.org/docs/9.4/static/tablefunc.html


HTH
Gerardo
- Mensaje original -
 De: Esneiker Enriquez Cabrera eenriq...@cav.desoft.cu
 Para: POSTGRES pgsql-es-ayuda@postgresql.org
 Enviados: Lunes, 8 de Junio 2015 9:20:02
 Asunto: [pgsql-es-ayuda] optimizacion
 
 
 
 
 Saludos a todos los amigos de la comunidad.
 
 Les escribo porque tengo un problema y no logro encontrar una buena
 forma de resolverlo. Tengo una función para obtener reportes
 estadísticos donde debo retornar el nombre de las unidades
 organizativas, los nombres de los tipos de servicios y los totales,
 de la siguiente forma:
 
 Unidad
 
 Tipo de servicio
 
 T1
 
 T2
 
 T3
 
 T4
   
 
   
 
   
 
   
 
   
 
   
 
 
 
 
 
 El problema es que entre la tabla de unidades organizativas y tipos
 de servicio no hay relación directa, sino a través de otras tablas
 del negocio. Necesito tirar todas las unidades contra todos los
 tipos de servicio.
 
 La solución que he dado hasta el momento es con un ciclo for recorrer
 la tabla tipo de servicio e ir calculando los totales e irlos
 insertando en una tabla temporal para al final devolver los valores,
 donde evidentemente esto provoca problemas de rendimiento, el código
 es el siguiente(cortado para no abrumar):
 
 
 
 for aid_elemento,adescripcion from vw_nmtipo_servicio order by
 tipo_servicio loop
 
 SQLText = 'INSERT INTO estadistico SELECT id, nombre,
 
 (SELECT COUNT(distinct vw_registro_expediente_incidencia.id) FROM
 vw_registro_expediente_incidencia WHERE ...) AS t1,
 
 (SELECT COUNT(distinct vw_registro_expediente_incidencia.id) FROM
 vw_registro_expediente_incidencia ...) AS t2,
 
 (SELECT COUNT(distinct vw_registro_expediente_incidencia.id) FROM
 vw_registro_expediente_incidencia ...) AS t3,
 
 (SELECT COUNT(distinct vw_registro_expediente_incidencia.id) FROM
 vw_registro_expediente_incidencia ...) AS t4
 
 '''||adescripcion_elemento||'''::character varying as criterio1 FROM
 nmunidad_org WHERE (nmunidad_org.id IN ('||alista_id_nivel||'))';
 
 execute SQLText;
 
 SQLText = '';
 
 end loop;
 
 
 
 Espero que me puedan dar alguna recomendación para optimizar el
 diseño.
 
 Saludos,
 
 M.Sc. Esneiker Enriquez Cabrera
 Esp. B en Ciencias Informáticas
 
 Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de
 Ávila. Cuba.
 Telf.: 53 33 22 8971, email.: eenriq...@cav.desoft.cu
 
 
 
 __ Información de ESET NOD32 Antivirus, versión de la base de
 firmas de virus 11728 (20150603) __
 
 ESET NOD32 Antivirus ha comprobado este mensaje.
 
 http://www.eset.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] BDR

2015-06-04 Por tema Gerardo Herzig


- Mensaje original -
 De: Guillermo E. Villanueva guillermo...@gmail.com
 Para: pgsql-es-ayuda pgsql-es-ayuda@postgresql.org, Alvaro Herrera 
 alvhe...@2ndquadrant.com, Jaime Casanova
 ja...@2ndquadrant.com
 CC: Martin Diaz mardia...@yahoo.com.ar
 Enviados: Jueves, 4 de Junio 2015 15:53:42
 Asunto: [pgsql-es-ayuda] BDR
 
 
 Buenas tardes, hace un tiempo , cuando recién salía BDR pude realizar
 unas pruebas y la replicación bidireccional funcionó perfectamente.
 Hasta ese momento no se podía implementar en una topología estrella
 y quería saber si ahora se puede o sigue siendo una función no
 considerada con BDR.
 Me refiero a topología estrella a un servidor central A y otros
 servidores B, C, D ... conectados a A. (no hay conexión entre los
 demas servidores)
 Todos pueden hacer modificaciones las cuales las replican solo hacia
 A y luego A las redistribuye a los demas.
 Si no se puede con BDR, es posible hacerlo con otra herramienta?
 
 
 Saludos!
 Y desde ya muchas gracias por sus comentarios.
 
 
Con slony es posible simular esa clase de trabajo.
Para simplificar, supongamos un centro de estrella C, y tres sucursales, X, 
Y, Z, y una unica tabla a replicar.

La idea es particionar la tabla por un campo identificatorio de sucursal, 
supongamos sucursal_id?
De modo qeu la tabla contenga tantas particiones como sucursales. A nivel 
local, cada sucursal actualiza los datos dentro de la particion asignada a 
dicha sucursal.

Entonces...via slony pueden manejarse las particiones subyacentes, de modo que:

X replica su particion hacia C, y luego 
C propaga (forwardea) esos cambios hacia Y y Z

Y replica su particion hacia C, y luego C propaga hacia X y Z,
Z replica su particion hacia C, y luego C propaga hacia X e Y

De esa forma consigues un simil replicacion estrella. Se entiende?

HTH,
Gerardo

-
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] retornar una tabla dinámica

2015-05-28 Por tema Gerardo Herzig
En postgres, las funciones deben tener un tipo de retorno dado, fijo, no 
variable.
No se puede asignar dinamicamente un conjunto de campos de salida.

Saludos,
Gerardo

- Mensaje original -
 De: Freddy Martinez Garcia freddy311...@gmail.com
 Para: PostgreSQL Lista Castellano pgsql-es-ayuda@postgresql.org
 Enviados: Jueves, 28 de Mayo 2015 15:16:47
 Asunto: [pgsql-es-ayuda] retornar una tabla dinámica
 
 Hola lista…
 
 supongamos que tenga el siguiente procedimiento almacenado
 
 create or replace function dynamic_table()
 returns table (id integer, name text, fecha1 date, fecha2 date) as
 $$
 begin
 
 - -  aqui la definicion de funcion
 
 end;
 $$
 language plpgsql;
 
 ahora, el problema que tengo es que los datos de retornos tengo que
 construirlos, es decir, necesito ir haciendo varios queries en
 varias tablas que incluso, no tienen relaciones entre sí, porque los
 datos que yo devuelvo en esta función son el resultado de un
 procesamiento que hago internamente dentro del procedimiento.
 
 hasta el momento lo que yo siempre he hecho es devolver el resultado
 de un query, pero nunca he creado dinámicamente el resulset que voy
 a retornar y luego devolverlo al final de la consulta, que esto es
 exactamente lo que yo necesito hacer…
 
 
 ¿cómo hago esto? ¿cuál sería la mejor manera de hacerlo?
 
 gracias a todos
 
 
 =
 El tamaño de tus logros depende del tamaño de tus metas.
 C++ and Qt Senior Developer
 Lic. Computer Science
 Buenos Aires, Argentina
 
 
 -
 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] arreglo de text

2015-05-27 Por tema Gerardo Herzig
select * from arreglo_string(array['valor1', 'valor2']) ,
o
select * from arreglo_string('{''valor1'', ''valor2''}')

Yo me siento mas comodo con la primer forma.

Saludos,
Gerardo

- Mensaje original -
 De: Freddy Martinez Garcia freddymg311...@gmail.com
 Para: PostgreSQL Lista Castellano pgsql-es-ayuda@postgresql.org
 Enviados: Miércoles, 27 de Mayo 2015 16:32:22
 Asunto: [pgsql-es-ayuda] arreglo de text
 
 hola lista, mis saludos a todos
 
 necesito pasar un array de text a un procedimiento almacenado, el
 tema es que cuando invoco el procedimiento, no me queda claro cómo
 definir que las comillas forman parte de la cadena, es decir… por
 ejemplo
 
 create or replace function arreglo_string(valor text[]) returns void
 as
 $$
 begin
   — hacer cualquier cosa con arreglo de text
 end;
 $$
 language ppgsql;
 
 el problema está a la hora de llamar esta función…
 
 debería ser algo así:
 
 select * from arreglo_string(‘{‘valor 1’, ‘valor 2'}’)
 
 esto obviamente es un error sintáctico, porque las comillas se
 cierran entre valores…
 
 mi pregunta es: ¿cómo paso un arreglo de valores varchar o text a una
 función como esta?
 
 saludos cordiales
 
 
 =
 El tamaño de tus logros depende del tamaño de tus metas.
 C++ and Qt Senior Developer
 Lic. Computer Science
 Buenos Aires, Argentina
 
 
 -
 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] Ayuda para optimizar consulta

2015-05-09 Por tema Gerardo Herzig


- Mensaje original -
 De: Guillermo E. Villanueva guillermo...@gmail.com
 Para: gilberto castillo gilberto.casti...@etecsa.cu
 CC: pgsql-es-ayuda pgsql-es-ayuda@postgresql.org
 Enviados: Viernes, 8 de Mayo 2015 8:24:20
 Asunto: Re: [pgsql-es-ayuda] Ayuda para optimizar consulta
 
 
 Buenos días, les cuento que hice varias pruebas, entre ellas crear un
 índice en ambas tablas del join con las columnas:
 
 
 
 uploaddet_importcomp
 
 
 
 * fil_ clasedoc
 * fil_ tipodoc
 * fil_ nrodoc
 * fil_ nacim
 
 
 
 
 
 
 historicotemp
 
 
 * aficlasedoc
 * historicotemp.afitipodoc
 * historicotemp.afidni
 * historicotemp.afifechanac
 
 
 
 
 
 También probé haciéndo un índice con las columnas concatenadas, de
 todas maneras el planificador siempre decía que iba a hacer un seq
 scan y un sort por esos campos. Solo fue un poco mas rápido cuando
 cambié de left a inner así que tuve que cambiar la lógica de la
 aplicación.
 Una pregunta concreta, ¿hay algún índice que se pueda crear con estas
 columnas para que el planificador lo aproveche y mejore la
 performance?
 
 
No necesariamente. Si el where de la consulta devuelve una parte 
significativa de la tabla, entonces seguramente el planificador decidira que es 
mas performante leer directamente (de manera secuencial) de la tabla, para 
luego aplicarle un filtro.

Para corroborar las velocidades secuencial vs index, intenta leer sobre estas 
variables:
set enable_indexscan
set enable_bitmapscan
set enable_seqscan

Para que puedas comprobar empiricamente las alternativas del planificador.

Saludos,
Gerardo

-
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] TRIGGER EN POSTGRES

2015-04-13 Por tema Gerardo Herzig
[Para hacer una consulta diferente, por favor crea un nuevo mail, asi no se 
mezclan los topicos]
 DUDA: Sabes tengo una duda espero me pudieras apoyar ... si quiero
 desactivar las llaves hay algun comando como en mysql, que me
 permita desactivar las llaves de todas las tablas , hacer una
 actividad y despues activarlas de nuevo.??
 

Si te refieres a deshabilitar las Foreign Keys, entiendo que no se pueden 
deshabilitar. Hay formas programaticas de volcar su definicion a un archivo 
de texto, para luego poder eliminar las FK, hacer lo que deseas, y recrear las 
FK, como en [1].

Si buscas deshabilitar unicamente los triggers, podes ejecutar el siguiente 
comando:

ALTER TABLE nombre_tabla DISABLE TRIGGER ALL;
[hacer el trabajo que quieres, y luego]
ALTER TABLE nombre_tabla ENABLE TRIGGER ALL;

HTH

Gerardo

-
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] TRIGGER EN POSTGRES

2015-04-12 Por tema Gerardo Herzig
 
 Buena tarde
 Por medio del presente les pido apoyo, ya que tengo un problema,
 tengo dos tablas:
 esquema_pago y esquema_pago_backup , en mysql tengo un trigger que
 cuando se insertan datos en la tabla esquema_pago, se insertan
 tambien en esquema pago backup, migre la base y estoy tratando de
 poner lo mismo en postgres , ya cree una funcion y el trigger pero
 no me copia los datos a la tabla de esquema_pago_backup, espero que
 me puedan hechar la mano, soy nueva en postgres.
 
[...] 
 
 CREATE OR REPLACE FUNCTION
 educaciondistancia.inserta_esquema_pago_backup()
 RETURNS trigger AS
 $BODY$
 BEGIN
 NEW.curso := NEW.curso;
 NEW.numPago := NEW.numPago;
 NEW.montoPagar := NEW.montoPagar;
 NEW.estatus := NEW.estatus;
 NEW.usuario := NEW.usuario;
 NEW.fecha := NEW.fecha;
 
 
 RETURN NEW;
 END
 $BODY$
 LANGUAGE plpgsql VOLATILE
 COST 100;
 ALTER FUNCTION educaciondistancia.inserta_esquema_pago_backup()
 OWNER TO postgres;
 

Perdon, si no me engaña la vista, no veo ningun insert en la funcion 
inserta_esquema_pago_backup().
Verdad?

HTH
Gerardo

-
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] Utilidad o herramienta para estimación de crecimiento de bases de datos

2015-02-19 Por tema Gerardo Herzig
La funcion pg_database_size() existe desde la version 8.1.

La variante para el tamaño de las tablas es pg_relation_size()


Saludos,
Gerardo

- Mensaje original -
 De: Marcos Ortiz mlor...@uci.cu
 Para: pgsql-es-ayuda@postgresql.org
 Enviados: Jueves, 19 de Febrero 2015 10:31:34
 Asunto: [pgsql-es-ayuda] Utilidad o herramienta para estimación de 
 crecimiento de bases de datos
 
 Saludos a toda la lista.
 Estamos en el desarrollo de una nueva aplicación con PostgreSQL 9.4 y
 necesitamos hacer la estimación del crecimiento de la base de datos.
 La vía tradicional es recorrer cada uno de los campos de cada tabla,
 ver su tipo de dato y ver cuánto espacio ocupa cada uno, luego ver
 con todos los campos cuánto se lleva la tupla, y luego repetir este
 proceso por cada una de las tablas.
 Pero pienso que debe haber alguna utilidad o herramienta moderna para
 realizar esto de forma automatizada y rápida. ¿Conocen de alguna
 herramienta enfocada en este problema?
 
 
 
 

-
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] Fwd: consulta sobre sequencias globales de BDR

2015-02-03 Por tema Gerardo Herzig


- Mensaje original -
 De: Jaime Casanova ja...@2ndquadrant.com
 Para: Gerardo Herzig gher...@fmed.uba.ar
 CC: Hellmuth Vargas hiv...@gmail.com, Lista Postgres ES 
 pgsql-es-ayuda@postgresql.org
 Enviados: Martes, 3 de Febrero 2015 1:24:08
 Asunto: Re: [pgsql-es-ayuda] Fwd: consulta sobre sequencias globales de BDR
 
 2015-01-30 18:56 GMT-05:00 Gerardo Herzig gher...@fmed.uba.ar:
  Probaste con postgres-xc? Es un postgres modificado para usarse en
  entornos distribuidos, con soluciones nativas de replicacion y
  balanceo. Tal vez pueda ser util aqui.
 
 
 Como maneja postgres-xc el problema de las secuencias? no encontré
 nada concreto pero me imagino que asigna los valores a través del GTM
 (el cual no es solo un punto central de fallas sino también un
 posible
 cuello de botella).
 

Exacto Jaime. Y ciertamente, en situaciones de alta carga es candidato a 
convertirse en cuello de botella. Lo que se recomienda en esos casos es usar un 
gtm proxy para alivianar la carga del gtm.

http://postgres-xc.sourceforge.net/docs/1_1/app-gtm-proxy.html

Saludos,
Gerardo

-
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] Fwd: consulta sobre sequencias globales de BDR

2015-01-30 Por tema Gerardo Herzig
Probaste con postgres-xc? Es un postgres modificado para usarse en entornos 
distribuidos, con soluciones nativas de replicacion y balanceo. Tal vez pueda 
ser util aqui.

http://sourceforge.net/projects/postgres-xc/

Saludos,
Gerardo

- Mensaje original -
 De: Hellmuth Vargas hiv...@gmail.com
 Para: Lista Postgres ES pgsql-es-ayuda@postgresql.org
 Enviados: Viernes, 30 de Enero 2015 6:27:22
 Asunto: [pgsql-es-ayuda] Fwd: consulta sobre sequencias globales de BDR
 
 
 
 Hola lista
 
 No llego el anterior correo, lo reenvío..
 -- Mensaje reenviado --
 De: Hellmuth Vargas  hiv...@gmail.com 
 Fecha: ene 29, 2015 2:49 AM
 Asunto: consulta sobre sequencias globales de BDR
 Para: Lista Postgres ES  pgsql-es-ayuda@postgresql.org 
 Cc:
 
 
 
 Hola Lista:
 
 
 Estoy realizado pruebas con BDR de PostgreSQL anunciado
 recientemente, comparto una hilo de conversación que sostuve con
 Jaime Casanova, entre otros, sobre el tema especifico del
 comportamiento de secuencias globales. La inquietud surge porque
 trabajo en un call center donde se realizan miles de transacciones
 por segundo de diferentes clientes a un único cluster de base de
 datos PostgreSQL (con replicacion asincronica obviamente), y por
 balanceo de carga, disponibilidad, seguridad entre otros, seria
 extraordinario contar con la replicacion multimaster.
 
 
 --
 
 
 
 Buenos días
 
 
 Actualmente me encuentro realizando una prueba con BDR, para esto he
 seguido las pautas descritas en
 
 
 https://wiki.postgresql.org/wiki/BDR_Quick_Start
 
 
 luego ejecute las siguientes sentencias:
 
 
 
 bdrdemo=# CREATE SEQUENCE seq_tabla2 USING bdr;
 CREATE SEQUENCE
 
 
 
 bdrdemo=# create table prueba2(id bigint primary key default
 nextval('seq_tabla2'), origen text);
 CREATE TABLE
 --servidor 1
 
 bdrdemo=# insert into prueba2(origen) select '' from
 generate_series(0,1) as a(id);
 INSERT 0 2
 
 
 
 --servidor 2
 
 bdrdemo=# insert into prueba2(origen) select '' from
 generate_series(0,1) as a(id);
 INSERT 0 2
 
 
 
 
 -- Acontinuación envío estas dos sentencias cada una en cada uno de
 los servidores:
 
 
 --servidor 1
 
 
 
 
 bdrdemo=# insert into prueba2(origen) select '' from
 generate_series(0,2) as a(id);
 ERROR: could not find free sequence value for global sequence
 public.seq_tabla2
 HINT: The sequence is refilling from remote nodes. Try again soon.
 Check that all nodes are up if the condition persists.
 
 
 --servidor 2
 
 
 bdrdemo=# insert into prueba2(origen) select '' from
 generate_series(0,2) as a(id);
 ERROR: could not find free sequence value for global sequence
 public.seq_tabla2
 HINT: The sequence is refilling from remote nodes. Try again soon.
 Check that all nodes are up if the condition persists.
 
 
 
 
 y genera el error que hay se presenta, toca esperar un buen tiempo
 para que vuelva a estar disponible
 
 
 -- servidor 1
 
 bdrdemo=# select nextval('seq_tabla2');
 ERROR: could not find free sequence value for global sequence
 public.seq_tabla2
 HINT: The sequence is refilling from remote nodes. Try again soon.
 Check that all nodes are up if the condition persists.
 bdrdemo=# select nextval('seq_tabla2');
 ERROR: could not find free sequence value for global sequence
 public.seq_tabla2
 HINT: The sequence is refilling from remote nodes. Try again soon.
 Check that all nodes are up if the condition persists.
 bdrdemo=# select nextval('seq_tabla2a');
 nextval
 -
 10001
 (1 row)
 
 
 
 
 -- servidor 2
 
 
 
 bdrdemo=# select nextval('seq_tabla2');
 ERROR: could not find free sequence value for global sequence
 public.seq_tabla2
 HINT: The sequence is refilling from remote nodes. Try again soon.
 Check that all nodes are up if the condition persists.
 bdrdemo=# select nextval('seq_tabla2');
 nextval
 --
 14314001
 (1 row)
 
 
 
 
 
 
 -- pero trato nuevamente de enviar el insert masivo y vuelve a
 generar error:
 
 
 -- servidor 1
 
 
 
 
 bdrdemo=# insert into prueba2(origen) select '' from
 generate_series(0,2) as a(id);
 ERROR: could not find free sequence value for global sequence
 public.seq_tabla2
 HINT: The sequence is refilling from remote nodes. Try again soon.
 Check that all nodes are up if the condition persists.
 
 
 
 
 -- servidor 2
 
 
 bdrdemo=# insert into prueba2(origen) select '' from
 generate_series(0,2) as a(id);
 ERROR: could not find free sequence value for global sequence
 public.seq_tabla2
 HINT: The sequence is refilling from remote nodes. Try again soon.
 Check that all nodes are up if the condition persists.
 
 
 
 
 La pregunta es si este comportamiento es normal? o debo configurar
 algo adicional o estoy haciendo algo mal? LE agradezco de antemano
 su atención, colaboración y tiempo
 
 
 
 
 
 --
 

Re: [pgsql-es-ayuda] Off-Topic: Herramienta para monitorizar PostgreSQL

2014-11-29 Por tema Gerardo Herzig
Podrias decirnos que tiene tu herramienta que no posean las otras que viste?

Yo acostumbro usar collectd, y tiene un plugin para postgres, que permite tomar 
la informacion de la que hace mencion el README (ademas del otro centenar de 
cosas que hace collectd, claro)

Saludos,
Gerardo
 Para: pgsql-es-ayuda@postgresql.org
 Enviados: Viernes, 28 de Noviembre 2014 11:55:26
 Asunto: [pgsql-es-ayuda] Off-Topic: Herramienta para monitorizar PostgreSQL
 
 Buenas comunidad, por estos días estoy intentando desarrollar una
 herramienta para monitorizar PostgreSQL, no queria reinventar la
 rueda,
 pero las herramientas que vi no me daban algunos detalles que
 necesitaba, y entonces puse manos a la obra y intenté construir la
 propia, la cual quiero compartir con ustedes para obtener una
 retroalimentación de sus comentarios.
 La misma esta en:https://github.com/asotolongo/amt4pg
 No es una versión liberada, es algo así como un beta beta
 Las pruebas que realicé con la misma fue en Ubuntu 14.04.
 
 Saludos
 Proceso de Acreditación de la Maestría en Gestión de Proyectos
 Informáticos.
 En busca de la Excelencia. Del 24 al 28 de noviembre de 2014.
 
 -
 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] Error de constraint

2014-08-29 Por tema Gerardo Herzig
Lo primero que van a pedirte, como minimo, es que muestres la descripcion de 
las tablas implicadas (segun lo ve postgres, por ejemplo con el comando \d 
nombre_tabla de psql), y una consulta (la mas pequeña que reproduzca el error), 
que muestre el problema.

De lo contrario, solo puede pasar que
a) Solo te contestaran los que posean bolas de cristal, o
b) piensen (a veces acertadamente) que es algun error de quien suscribe, y 
directamente  no contestaran tu consulta.

HTH
Gerardo
- Mensaje original -
 De: Juan smalltalker.marc...@gmail.com
 Para: Ayuda pgsql-es-ayuda@postgresql.org
 Enviados: Viernes, 29 de Agosto 2014 16:20:26
 Asunto: [pgsql-es-ayuda] Error de constraint
 
 
 Gente
 
 
 
 
 Tengo el siguiente escenario, tengo una tabla A que tiene un campo
 que tiene una constraint hacia otra tabla B , en teoria no puedo
 ingresar registros a la tabla A si
 en cierto campo pongamos nombre_de_algo no está en la tabla B en el
 campo nombre_de_algo pero una querie con not in me mustra
 nombres_de_algo que no estan en la tabla B, no deberia porque viola
 la contraint.
 alguna idea?
 
 
 version de postgres 9.1 en windows.
 
 
 gracias saludos
 
 
 jmdc

-
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] Como calcular la volumetria de crecimiento en tiempo de una base de datos PostgreSQL

2014-04-08 Por tema Gerardo Herzig
Alfredo: Los datos que devuelve pg_relation_size (y otras similares) se basan 
en datos estadisticos. Si reportan tamaños diferentes, puede simplemente que 
una este mejor actualizada que la otra, en terminos de sus analisis 
estadisticos.

Entonces, comienza por hacer caso a los consejos de la gente que sabe, como 
Jaime, y ejecuta un VACUUM ANALYZE en ambos servidores.
Luego, si quieres, puedes leer sobre las estadisticas internas de postgres en 
http://www.postgresql.org/docs/9.3/static/monitoring-stats.html

Saludos.
Gerardo


- Mensaje original -
 De: Alfredo Rico alfredor...@gmail.com
 Para: Postgresql pgsql-es-ayuda@postgresql.org
 Enviados: Martes, 8 de Abril 2014 13:16:47
 Asunto: [pgsql-es-ayuda] Como calcular la volumetria de crecimiento en tiempo 
 de una base de datos PostgreSQL
 
 
 Buen día amigos reciban un cordia saludo.
 
 
 Hemos desarrollado una aplicación para banca en donde hay varias
 tablas del negocio en las que se estiman cargas diarias.
 
 
 Pongo algunas relaciones para dar una idea
 
 
 1 CLIENTES tiene 1 o muchas CUENTAS
 
 
 1 CUENTAS tiene 1 o muchas MOVIMIENTOS_CUENTA por dia (cada día
 llegará nueva informaciónque se discrima por una columna
 FECHA_DE_DATOS)
 -
 
 
 
 1 CLIENTES tiene 1 o muchas CREDITOS
 
 
 1 CREDITO tiene 1 o muchas TRANSACCIONES_CREDITOS por día (cada
 día llegará nueva informaciónque se discrima por una columna
 FECHA_DE_DATOS)
 
 
 -
 
 
 Cada tabla tiene diferentes columnas con tipos VARCHAR, NUMERIC, DATE
 BOOLEAN en esencia.
 
 
 Si se conociera la cantidad de transacciones diarias en promedio para
 las CUENTAS o para los CREDITOS de que forma puedo estimar una
 volumetría lo más acertada posible que me diga que en X tiempo se
 debe considerar aumentar los storage.
 
 
 También tengo este caso particular que me causó mucha confusión.
 Tengo dos aplicaciones instaladas en dos bancos diferentes. Dejé la
 tabla MAESTRO_CLIENTES con 500.000 registros en ambas bases de datos
 (fisicamente distantes y disconexas entre ellas) y la función
 pg_size_pretty me reporta en una de ellas 46 MB y en la otra 185MB
 (siendo ambas tablas con la misma estructura DML) teniendo la misma
 cantidad de registros.
 
 
 Por favor agradezco sus consejos y alguna documentación que me
 recomienden en la que me pueda apoyar.
 
 
 Muchas gracias de antenamo.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 --
 Saludos Cordiales.-
 Alfredo Rico.
 San Cristóbal - Venezuela.

-
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] fzpgloader

2011-11-04 Por tema Gerardo Herzig
El vie, 21-10-2011 a las 17:47 +0100, Alejandro Carrillo escribió:
 http://code.google.com/p/fzpgloader/
 Sus sugerencias han ayudado a crear esto.
 Espero sus opiniones.

Si entendí el mecanismo, hay que modificar el archivo de configuracion
cada vez que se requiere importar una tabla desde un archivo diferente?

Si es asi, no parece muy practico. En lo mas mínimo. Lo habitual en
estos casos es que esa clase de parametros vengan bien como parametros
en la llamada al programa (desde linea de comandos) , o bien que la
interface lo pregunte de manera interactiva (en modo gui).

No veo con claridad (en la documentacion) que formato tiene que tener
el archivo de origen, si permite que el primer renglon sean los nombres
de los campos, que pasa si la tabla destino ya existe, etc.

En las fuentes podrias incluir un archivo de ejemplo, y que lo suba a
una tabla, asi no tengo que estar probando yo.

Saludos.

Gerardo



-
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 en error de funcion en postgres

2011-05-13 Por tema Gerardo Herzig
El vie, 13-05-2011 a las 08:08 -0500, yanguma escribió:
 Buenos dias, 
 
 Tengo el siguiente error en una funcion de postgres
 
 
 ERROR:  numeric field overflow
 DETAIL:  A field with precision 16, scale 2 must round to an absolute
 value less than 10^14.
 CONTEXT:  PL/pgSQL function mov_inv_actividad line 5047 at
 assignment
 
 ** Error **
 
 ERROR: numeric field overflow
 SQL state: 22003
 Detail: A field with precision 16, scale 2 must round to an absolute
 value less than 10^14.
 Context: PL/pgSQL function mov_inv_actividad line 5047 at assignment
 

Hola Ricardo:
Busca la/s lineas donde se esten formateando/casteando numeros:

ej
select valor::numeric(16,2)
select to_number(,'.99')

O cosas asi.

Basicamente te esta diciendo que el numero a representar es mas grande
que la mascara que le estas aplicando.

Saludos.
Gerardo

-
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] coincidencias en postgres?

2011-02-25 Por tema Gerardo Herzig
El jue, 24-02-2011 a las 16:44 -0600, Daniel Juárez escribió:
 Hola que tal, queria preguntarles si existia ya algo implementado en
 postgres para detectar errores de dedo? esto es, que el sistema
 manejador me de palabras parecidas a la que recibe como un quiza
 quiso decir con un query, no se queria ver si habia algo que me
 sirviera para esta tarea o tengo que aventarmelo a pata. De antemando
 muchas gracias y ojala me puedan contestar.
 
 
 Daniel Juárez Cruz

Si entendi la pregunta, creo que lo que se le parece es la funcion de
levenshtein[0]. Hay varias implementaciones por ahi dando vueltas,
supongo que podrias probarla.

[0] http://www.postgresql.org/docs/9.0/static/fuzzystrmatch.html

Saludos.
Gerardo

-
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] uso de select (function()).* es mucho mas lento que select * from function()

2011-02-10 Por tema Gerardo Herzig
El mié, 09-02-2011 a las 14:20 -0300, Alvaro Herrera escribió:
 Excerpts from Gerardo Herzig's message of jue feb 03 15:45:38 -0300 2011:
  Hola chicos. Estoy teniendo problemas con la lentitud de una funcion.
  Estoy usando la funcion _xxfunction() dentro de un subselect, entonces
  uso su forma select (_xxfunction()).* (en lugar de select * from...,
  sino dentro del subquery me genera error sintactico), y el tema es que
  tarda mucho mas un modo que el otro:
  
  test=# SELECT (_xxfunction(123)).* ;
  (4 filas)
  Duración: 1069,465 ms
  
  
  test=# SELECT * from _xxfunction(123) ;
  (4 filas)
  Duración: 228,699 ms
  
  Alguna idea de porque de esto?  Alguna alternativa?
  Gracias!
 
 Si mal no recuerdo, al hacer ().* se ejecuta la función tantas veces
 como columnas haya en el resultado.  Quizás funcione algo como
 
 select foo.* from (select * from _xxfunction(123) offset 0) as foo;
 

Gracias Alvaro, si, tenes razon, pasa que no exprese bien mi problema,
que es ligeramente distinto (creo)

Yo tengo que lograr algo como 

select * from _xxfunction(codigo) from (select codigo from tabla)
Y esto tiene un error de sintaxis.

Si uso la forma select (_xxfunction(codigo)).* from (select codigo from
tabla)
elimino el error sintactico, pero como bien decis, llamo muchas veces a
la funcion, y se torna demasiado lento.

Y no logro dar con el modo correcto para evitar el uso de (f()).*

Gracias!
Gerardo

-
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] uso de select (function()).* es mucho mas lento que select * from function()

2011-02-03 Por tema Gerardo Herzig
Hola chicos. Estoy teniendo problemas con la lentitud de una funcion.
Estoy usando la funcion _xxfunction() dentro de un subselect, entonces
uso su forma select (_xxfunction()).* (en lugar de select * from...,
sino dentro del subquery me genera error sintactico), y el tema es que
tarda mucho mas un modo que el otro:

test=# SELECT (_xxfunction(123)).* ;
(4 filas)
Duración: 1069,465 ms


test=# SELECT * from _xxfunction(123) ;
(4 filas)
Duración: 228,699 ms

Alguna idea de porque de esto?  Alguna alternativa?
Gracias!

Gerardo

-
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] rows - array

2010-11-26 Por tema Gerardo Herzig
Hola chicos: Estoy buscando, en 8.3, algo como lo siguiente:

Una funcion que me permita convertir un row (resultante de una funcion
determinada) y me devuelva un array con los valores de las columnas
(casteado, digamos, a text), y no logro dar con la tecla.

Lo ideal seria que el recorset que reciba esta funcion pueda ser
generico, asi puedo utilizarlo para 'arraysear' resultados que provienen
de diferentes funciones. Se entiende?

Tambien podria ser una funcion que devuelva los campos concatenados,
pero de nuevo, tendria que ser generica para cualquier recordset que
esta funcion reciba.

Estoy en 8.3.

Pistas?

Gerardo
-
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] rows - array

2010-11-26 Por tema Gerardo Herzig
On 11/26/2010 06:51 PM, Alvaro Herrera wrote:
 Excerpts from Gerardo Herzig's message of vie nov 26 17:33:40 -0300 2010:
 Hola chicos: Estoy buscando, en 8.3, algo como lo siguiente:

 Una funcion que me permita convertir un row (resultante de una funcion
 determinada) y me devuelva un array con los valores de las columnas
 (casteado, digamos, a text), y no logro dar con la tecla.

 Lo ideal seria que el recorset que reciba esta funcion pueda ser
 generico, asi puedo utilizarlo para 'arraysear' resultados que provienen
 de diferentes funciones. Se entiende?
 
 Instala contrib/hstore y examina las funciones que provee.  Al menos en
 9.0 puedes construir lo que quieres desde las piezas que hay ahí.
 
 En 8.3 hstore es harto más primitivo, pero quizás se pueda de todas formas.
 Si no, quizás puedas hacer un backport del hstore de 9.0 a 8.3 (creo
 que existe en pgfoundry, no estoy seguro).
 

Gracias como siempre Alvaro, pero tengo limitaciones a la hora de
instalar programas 'auxiliares'. Incluso tengo limitantes de no usar
plpython, solo sql y pl/sql.

Saludos.
Gerardo
-
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] Cargar datos como fecha

2010-09-28 Por tema Gerardo Herzig
Sergio Valdes Hurtado wrote:
 Estimados,
 tengo que cargar una serie de datos (alrededor de 300.000) desde un
 archivo de texto a una tabla y lo haré con copy from, pero mi problema
 real es que hay dos campos que me gustaría cargarlos como fecha, pero
 desde el origen traen sólo el mes y el año (07/2010) .
 ¿qué puedo hacer para cargarlos como fecha?
 Gracia de antemano por su ayuda

Si el campo de fecha es unicamente identificable (o sea, eso de MM/
aparece siempre en la misma parte del renglon), supongo que podrias
pasarle alguna herramienta del tipo sed o awk para modificar el
contenido del archivo.

Algo como...
gher...@comechingon:~ cat archivo.txt
INSERT INTO fechas values ('07/2010');
INSERT INTO fechas values ('12/2009');

gher...@comechingon:~ sed 's!\([0-9]*\)/\([0-9]*\)!01/\1/\2!' archivo.txt
INSERT INTO fechas values ('01/07/2010');
INSERT INTO fechas values ('01/12/2009');

Un poco esoterico, no? Pero algo asi te sirve?

HTH
Gerardo




-
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] estadistica de uso del cache

2010-09-03 Por tema Gerardo Herzig
Hola chicos: Tengo una funcion un tanto grande, la cual repetidas veces
a una funcion X con distintos parametros, los cuales muchas veces se
repiten. Es decir, muchas veces se realizara la misma llamada a la
funcion con los mismos parametros.

Esa funcion X la tengo definida como STABLE, para ver si aprovecha a
usar el resultado del cache.

La pregunta es: Tengo alguna posibilidad de saber si efectivamente esta
usando esos resultados sacandolos del cache?

Gracias!
Gerardo
-
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] duda con funciones

2010-08-02 Por tema Gerardo Herzig
Esneiker wrote:
 Hola a todos, hace varios días hice una consulta al foro sobre una duda con
 las funciones de postgres y no recibí ninguna respuesta, por favor si
 alguien sabe como hacer lo que plantea más abajo le agradecería que me
 indicara una posible solución porque lo que pregunto es muy fácil de hacer
 en otros gestores de base de datos pero hacerlo en postgres  me está
 resultando muy difícil.
 
 He aquí la duda enviada anteriormente:
 
 El caso es que tengo una función en la cual retorno un cursor con el 
 resultado de una consulta y desde mi aplicación la llamo usando el fetch 
 all in, pero necesito que dicha función además de devolver el resultado 
 de una consulta me devuelva también valores en parámetros de salida, 
 ejemplo, la función me devuelve en el cursor con datos numéricos pero 
 necesito sacar totales y porcientos a partir de los datos devueltos y 
 necesitaría que dichos totales y porcientos fueran devueltos en los  
 parámetros de salida, esto se puede hacer? habría alguna otra forma de 
 hacerlo?
 
 Muchas gracias.
 
Creo que no termino bien de entender la pregunta: A que te referis con
parametros de salida? Los datos van a volver en forma de tabla. Si
necesitas mas valores de retorno, van (tal vez) a ser mas parametros OUT
en tu funcion...
Por que no mostras un ejemplo de lo que estas haciendo? Porque asi como
esta, parece que nadie va a poder ayudarte pues la pregunta no esta bien
formulada.

Saludos.
Gerardo
-
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] diferencias con funcion definida setof y no setof

2010-06-25 Por tema Gerardo Herzig
Emanuel Calvo Franco wrote:
 El día 24 de junio de 2010 16:10,  gher...@fmed.uba.ar escribió:
 Hola chicos. Me asalto una duda.
 Cuando defino una funcion cualquiera, digamos
 CREATE FUNCTION pp()
 returns setof public.pp
 as
 $$
 select * from public.pp where id=99;
 $$

 En la tabla pp *no* existe ese id 99Bien.
 test=# SELECT * from pp();
  id| descripcion|
 +-+
 (0 filas)


 Cuando la ejecuto, me devuelve 0 registros. Fantastico

 Ahora, si defino la misma funcion, pero devolviendo simplemente
 `returns public.pp', al ejecutar la funcion me trae 1 (un!) registro con
 null'es
 test=# SELECT * from pp();
  id | descripcion
 +-
| |
 (1 fila)

 ??
 Algun motivo para esta variacion de comportamiento?
 PG 8.3.11

 
 En realidad la funcion no retorna valor, la fila que te esta
 devolviendo es la del select invocante:
 
 SELECT NULL; (te devolvera una fila)
 SELECT pp(); (una fila)
 SELECT * FORM pp(); una fila
 
 
 En la primera, la funcion al ser fuente de datos, es distinto porque
 la consulta toma los datos del set (que esta vacio), sin embargo
 cuando ejecutas una consulta 'sin' fuentes' de datos, te devolvera 1
 fila ( now(), current_date, etc.)
 
 
Aha...aha...aha...ok...
No lo entiendo, pero se que no me convence. Es decir, esto rompe con
la logica de la capa de arriba de un sistema en el cual participo, en
el cual muchas veces usan la longitud del RecordSet o similar (de .NET)
para saber si la consulta obtuvo algun resultado. Con este asunto, esa
tecnica, que tiene (a mi entender) mucho sentido comun, no sirve, pues
el RecordSet nunca tiene longitud 0, lo que seria esperable para una
consulta que no encontro ningun registro!

Gracias por tu tiempo, Emanuel!

Saludos.
Gerardo
-
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] castear variable tipo RECORD a TEXT[]

2010-05-31 Por tema Gerardo Herzig
Emanuel Calvo Franco wrote:
 alvherre=# select tabla, (registro_new::gerardo).* from logtable where
 tabla = 'gerardo';
 Pues estare auditando multiples tablas (la clausula `where' no sera por
 tabla, sino por usuario/periodo de tiempo). Pero supongo que podre hacer
 algo con querys dinamicos. Muy util tu ejemplo, muchas gracias por el
 trabajo que te tomaste!

 
 En todo caso, podrías hacer una función de consulta que 'destripe' el record
 de acuerdo a la estructura de la tabla.
 
 De hecho me parece más genérico y limpio que especificar columna por columna.
 
Ciertamente, en eso estoy ahora. No es terriblemente compleja, pero
tiene algo de querys dinamicos que queria evitar. Supongo que si pudiese
trabajar con arrays, seria mas facil encontrar, por ejemplo, la
diferencia simetrica entre 2 arrays (new y old), y asi encontrar lo
que ha cambiado de ese registro.

Gracias a todos por su tiempo!

Gerardo
-
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] castear variable tipo RECORD a TEXT[]

2010-05-31 Por tema Gerardo Herzig
Alvaro Herrera wrote:
 Excerpts from Gerardo Herzig's message of lun may 31 14:34:47 -0400 2010:
 
 Ciertamente, en eso estoy ahora. No es terriblemente compleja, pero
 tiene algo de querys dinamicos que queria evitar. Supongo que si pudiese
 trabajar con arrays, seria mas facil encontrar, por ejemplo, la
 diferencia simetrica entre 2 arrays (new y old), y asi encontrar lo
 que ha cambiado de ese registro.
 
 Creo que para una cosa así sería mucho más sencillo usar PL/Perl, que te
 permita enumerar los campos de cada registro en forma simple
 (for my $attr (keys %$NEW), o algo por el estilo).
 
Coincido Alvaro, podria usar plpython, y todo seria bastante simple,
pero mi jefe quiere que solamente se use sql o plsql (razones
tecnico/administrativas. Cosas que pasan)


Gracias de nuevo por tu tiempo!
Gerardo

-
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] castear variable tipo RECORD a TEXT[]

2010-05-28 Por tema Gerardo Herzig
alvherre wrote:
 Excerpts from Gerardo Herzig's message of mié may 26 18:04:22 -0400 2010:
 Hola a todos. No estoy pudiendo castear correctamente una variable
 RECORD a un array.

 Estoy escribiendo un trigger, y me gustaria guardar NEW (y OLD) en forma
 de vectores. Hay alguna manera de hacerlo en plpgsql (quiero decir, sin
 recurrir a contribs)?
 
 ¿Por qué no guardas el registro completo serializado a texto, en vez de
 procesar atributo por atributo?
 
 alvherre=# create table gerardo (a int, b text, c timestamp);
 CREATE TABLE
 alvherre=# create function serializa(gerardo) returns text language plpgsql 
 as $$ begin return $1::text ; end $$;
 CREATE FUNCTION
 alvherre=# insert into gerardo values (1, 'gerardo', now());
 INSERT 0 1
 alvherre=# insert into gerardo values (2, 'herzig', now());
 INSERT 0 1
 alvherre=# select serializa(gerardo.*) from gerardo;
 serializa 
 --
  (1,gerardo,2010-05-27 21:06:54.526301)
  (2,herzig,2010-05-27 21:06:59.989333)
 (2 filas)
 
 Me imagino que debe poder hacerse con NEW y OLD también ...
 
 alvherre=# create or replace function trig() returns trigger language plpgsql 
 as $$ begin raise notice '%' , NEW::text; return NEW; end ; $$;
 CREATE FUNCTION
 alvherre=# create trigger gerardo_trig before insert on gerardo for each row 
 execute procedure trig();
 CREATE TRIGGER
 alvherre=# insert into gerardo values (3, 'fmed', now());
 NOTICE:  (3,fmed,2010-05-27 21:10:18.286279)
 INSERT 0 1
 
 Esto lo puedes expandir en columnas con * como harías con un registro de una
 tabla:
 
 alvherre=# select ('(3,fmed,2010-05-27 21:10:18.286279)'::gerardo).*;
  a |  b   | c  
 ---+--+
  3 | fmed | 2010-05-27 21:10:18.286279
 (1 fila)
 
 
 
 Esto funciona para un trigger genérico:
 
 alvherre=# create table logtable (tabla text, registro_new text);
 CREATE TABLE
 
 alvherre=# create or replace function log_trig () returns trigger language 
 plpgsql as $$ begin insert into logtable (tabla, registro_new) values 
 (tg_relname, new::text); return new; end ; $$;
 CREATE FUNCTION
 
 alvherre=# create table franco (a numeric, b inet, c timestamp with time 
 zone);
 CREATE TABLE
 
 alvherre=# create trigger franco_trig before insert on franco for each row 
 execute procedure log_trig();
 CREATE TRIGGER
 
 alvherre=# create trigger gerardo_trig before insert on gerardo for each row 
 execute procedure log_trig();
 CREATE TRIGGER
 
 alvherre=# insert into gerardo values (3, 'fmed', now());
 INSERT 0 1
 
 alvherre=# insert into franco values (42, '192.168.0.3', now());
 INSERT 0 1
 alvherre=# select * from logtable;
   tabla  |   registro_new   
 -+--
  gerardo | (3,fmed,2010-05-27 21:16:30.573531)
  franco  | (42,192.168.0.3,2010-05-27 21:17:02.494054-04)
 (2 filas)
 
 
 Y puedes expandirlo de esta forma:
 
 alvherre=# select tabla, (registro_new::gerardo).* from logtable where tabla 
 = 'gerardo';
   tabla  | a |  b   | c  
 -+---+--+
  gerardo | 3 | fmed | 2010-05-27 21:16:30.573531
 (1 fila)
 
 
 No creo que se pueda poner un cast dependiendo del valor de la primera
 columna, pero creo que con eso tienes bastante de lo que querías hacer.
 
 A todo esto, ¿alguna razón para no usar tablelog de pgfoundry?
 
Hola. Gracias por tu tiempo. Supongo que tendre algunos problemas
extras, debido a que no podre hacer la expansion en forma directa
p.e.
 alvherre=# select tabla, (registro_new::gerardo).* from logtable where
tabla = 'gerardo';
Pues estare auditando multiples tablas (la clausula `where' no sera por
tabla, sino por usuario/periodo de tiempo). Pero supongo que podre hacer
algo con querys dinamicos. Muy util tu ejemplo, muchas gracias por el
trabajo que te tomaste!

Probare y vere como me trata.

Gracias de nuevo!
Gerardo
-
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] castear variable tipo RECORD a TEXT[]

2010-05-27 Por tema Gerardo Herzig
Emanuel Calvo Franco wrote:
 Estoy escribiendo un trigger, y me gustaria guardar NEW (y OLD) en forma
 de vectores. Hay alguna manera de hacerlo en plpgsql (quiero decir, sin
 recurrir a contribs)?

 
 DECLARE
 variable text[];
 BEGIN
 ...
 
 variable := ('{' || NEW.col1::text || ',' || NEW.col2  '}')::text[];
 
 END;
 
 
 También utilizando array_append (aunque no es más comoda).
 
 
 Tampoco se si estás queriendo guardar el RECORD completo como un
 elemento del array, en tal caso, castealo a text y 'appendealo' al
 array.
 
 
 
 
Si, podria funcionar...aunque el trigger es generico (es un trigger de
auditoria), y NEW.colx va a variar...pero, supongo que podre 'loopear'
sobre la estructura de la tabla en cuestion.
Estaba pensando en algo mas directo, pero tu idea deberia funcionar.

Gracias!
Gerardo
-
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 sobre join de 10 tablas

2010-05-10 Por tema Gerardo Herzig
Hola chicos. Tengo una consulta que, basicamente es un join de unas 10
tablas, y quiero ver si puedo acelerar la ejecucion.

Ademas del uso de indices,
hay en algun lugar algunas buenas costumbres sobre como hacer un join
de muchas tablas?

Gracias!
Gerardo
-
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] eliminando acentos de un texto codificado en latin1

2010-04-09 Por tema Gerardo Herzig
hola chicos: Estoy intentando (y fracasando miserablemente) de 'aplanar'
 un texto en latin1, para eliminarle vocales acentuadas, y demas.

P.e. si hago un

fulltext=# SELECT texto from paginas;
...BRorg\341nica de la C\341tedra...

Donde yo quiero que me quede ...BRorganica de la Catedra...
Es evidente que ese \341 no puedo cambiarlo usando algo como
regexp_replace(new_text, E'\341', 'a', 'g'), pues sigo viendo
exactamente lo mismo.

La codificacion de la base es 'LATIN1'.

Ideas, sugerencias...?

Gracias!
Gerardo

--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
   http://archives.postgresql.org/pgsql-es-ayuda


  1   2   >