RE: [MASSMAIL][pgsql-es-ayuda] concatenar datos largos
Amigos ya se pudo resolver el problema. El tema es que al hacer la consulta en el pgadmin y al resultado ser tan grande parece que el editor no muestra la info. Al volcar la salida hacia un fichero pude comprobar que sí me devolvió bien la información. Si a alguien le llegara a pasar algo parecido ya saben. 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.: 266200 Ext 119, email.: eenriq...@cav.desoft.cu -Mensaje original- De: Gilberto Castillo [mailto:gilberto.casti...@etecsa.cu] Enviado el: martes, 11 de octubre de 2016 10:24 Para: Esneiker Enriquez Cabrera CC: 'Lista Postgres ES' Asunto: Re: [MASSMAIL][pgsql-es-ayuda] concatenar datos largos > Hola amigos de la comunidad. > > Tengo necesidad de concatenar cadenas de texto, para ello estoy > utilizando la función string_agg pero me he encontrado el problema de > que cuando las cadenas son demasiado largas no funciona, parece que > sobrepasan el límite de caracteres que soporta la función. > > Espero que alguien me pueda dar alguna sugerencia al respecto. Usa la doble barra || > > > 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.: 266200 Ext 119, email.: <mailto:eenriq...@cav.desoft.cu> > eenriq...@cav.desoft.cu > > > > -- Saludos, Gilberto Castillo ETECSA, La Habana, Cuba - 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: [MASSMAIL][pgsql-es-ayuda] concatenar datos largos
La doble barra || no me sirve porque es un proceso más complejo el que quiero realizar. Es concatenar las tuplas de una tabla, en una tabla bastante grande. 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.: 266200 Ext 119, email.: eenriq...@cav.desoft.cu -Mensaje original- De: Gilberto Castillo [mailto:gilberto.casti...@etecsa.cu] Enviado el: martes, 11 de octubre de 2016 10:24 Para: Esneiker Enriquez Cabrera CC: 'Lista Postgres ES' Asunto: Re: [MASSMAIL][pgsql-es-ayuda] concatenar datos largos > Hola amigos de la comunidad. > > Tengo necesidad de concatenar cadenas de texto, para ello estoy > utilizando la función string_agg pero me he encontrado el problema de > que cuando las cadenas son demasiado largas no funciona, parece que > sobrepasan el límite de caracteres que soporta la función. > > Espero que alguien me pueda dar alguna sugerencia al respecto. Usa la doble barra || > > > 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.: 266200 Ext 119, email.: <mailto:eenriq...@cav.desoft.cu> > eenriq...@cav.desoft.cu > > > > -- Saludos, Gilberto Castillo ETECSA, La Habana, Cuba - 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] concatenar datos largos
Hola amigos de la comunidad. Tengo necesidad de concatenar cadenas de texto, para ello estoy utilizando la función string_agg pero me he encontrado el problema de que cuando las cadenas son demasiado largas no funciona, parece que sobrepasan el límite de caracteres que soporta la función. Espero que alguien me pueda dar alguna sugerencia al respecto. 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.: 266200 Ext 119, email.: <mailto:eenriq...@cav.desoft.cu> eenriq...@cav.desoft.cu
RE: [pgsql-es-ayuda] triggers dejan de funcionar
Muchas gracias Alvaro, utilicé la forma que me propuso y ahora funciona correctamente, como siempre el foro ha resultado de mucha utilidad. 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 -Mensaje original- De: Alvaro Herrera [mailto:alvhe...@2ndquadrant.com] Enviado el: lunes, 29 de febrero de 2016 16:06 Para: Esneiker Enriquez Cabrera CC: 'Lista Postgres ES' Asunto: Re: [pgsql-es-ayuda] triggers dejan de funcionar Esneiker Enriquez Cabrera escribió: > Esta es una función que dejó de funcionar. > > CREATE OR REPLACE FUNCTION actualizar_archivo_adjunto() > RETURNS trigger AS > $BODY$ > BEGIN > UPDATE mensaje SET archivo_adjunto=1 WHERE mensaje.id=new.id_mensaje; > UPDATE expediente_incidencia SET archivo_adjunto=1, leido=FALSE > WHERE expediente_incidencia.id=new.id_expdte_inc; > RETURN NEW; > END; > $BODY$ > LANGUAGE 'plpgsql' VOLATILE > COST 100; > ALTER FUNCTION actualizar_archivo_adjunto() OWNER TO postgres; > > No hacía el update luego de crear los nuevos esquemas. El search_path > no lo he tocado. ¿tendrás tablas mensaje o expediente_incidencia en los nuevos esquemas? De ser así, es muy posible que la función esté tratando de modificar las nuevas tablas en lugar de las que están en public -- suponiendo que el search_path tenga los otros esquemas antes que public. La solución es poner los nombres de objetos de manera que no sean ambiguos. Por ej. podrías hacer esto UPDATE public.mensaje SET archivo_adjunto=1 WHERE mensaje.id=new.id_mensaje; o bien podrías poner una cláusula SET en el CREATE FUNCTION, por ej. CREATE OR REPLACE FUNCTION public.actualizar_archivo_adjunto() RETURNS trigger SET search_path TO 'public' AS $body$ begin update ... $body$; (Esto hace que el search_path se modifique a valor especificado cada vez que se ejecute la función). De hecho hacerlo de esta forma es importante, porque te protejes de que algún payaso cree objetos antes que los tuyos en search_path y te haga ejecutar código definido por él que tú no querrías. (En otras palabras hay una vulnerabilidad de seguridad en la forma como lo estás haciendo actualmente). -- Álvaro Herrerahttp://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
RE: [pgsql-es-ayuda] triggers dejan de funcionar
Esta es una función que dejó de funcionar. CREATE OR REPLACE FUNCTION actualizar_archivo_adjunto() RETURNS trigger AS $BODY$ BEGIN UPDATE mensaje SET archivo_adjunto=1 WHERE mensaje.id=new.id_mensaje; UPDATE expediente_incidencia SET archivo_adjunto=1, leido=FALSE WHERE expediente_incidencia.id=new.id_expdte_inc; RETURN NEW; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100; ALTER FUNCTION actualizar_archivo_adjunto() OWNER TO postgres; No hacía el update luego de crear los nuevos esquemas. El search_path no lo he tocado. 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 -Mensaje original- De: Alvaro Herrera [mailto:alvhe...@2ndquadrant.com] Enviado el: lunes, 29 de febrero de 2016 15:17 Para: Esneiker Enriquez Cabrera CC: 'Lista Postgres ES' Asunto: Re: [pgsql-es-ayuda] triggers dejan de funcionar Esneiker Enriquez Cabrera escribió: > Hola amigos de la comunidad. > > Estoy utilizando postgres 8.4 y me acabo de encontrar con un problema > que no entiendo por qué está pasando. Resulta que yo tenía una base de > datos en la cual usaba triggers sobre algunas tablas para actualizar > cantidades en otras y todo funcionaba correctamente. Luego comencé a > usar esquemas nuevos para particionar la información histórica, pero > las estructuras del esquema public no sufrieron cambios, y me > encuentro con el problema que los triggers en el esquema public dejaron de funcionar. Por favor define más claramente a qué te refieres con "dejaron de funcionar". Además, es posible que necesites mostrar el código de las funciones involucradas. Además, si usas search_path, será necesario verlo (en particular, si lo cambias). Creo que te refieres a que los tenías creados y luego los borraste y volviste a crear, y esta última creación no funcionó. ¿Es así? -- Álvaro Herrerahttp://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
[pgsql-es-ayuda] triggers dejan de funcionar
Hola amigos de la comunidad. Estoy utilizando postgres 8.4 y me acabo de encontrar con un problema que no entiendo por qué está pasando. Resulta que yo tenía una base de datos en la cual usaba triggers sobre algunas tablas para actualizar cantidades en otras y todo funcionaba correctamente. Luego comencé a usar esquemas nuevos para particionar la información histórica, pero las estructuras del esquema public no sufrieron cambios, y me encuentro con el problema que los triggers en el esquema public dejaron de funcionar. Para que funcionen nuevamente tengo que eliminarlos y volver a crearlos poniendo el prefijo public delante de la llamada de la función. Este es el trigger original: CREATE TRIGGER ti_archivo AFTER INSERT ON archivo FOR EACH ROW EXECUTE PROCEDURE actualizar_archivo_adjunto(); Luego tuve que hacer esto para que comience a funcionar otra vez: CREATE TRIGGER ti_archivo AFTER INSERT ON archivo FOR EACH ROW EXECUTE PROCEDURE public.actualizar_archivo_adjunto(); No entiendo por qué pudo pasar esto, pero sería un problema que cada vez que cree un nuevo esquema los triggers del esquema public dejen de trabajar. Espero que me puedan ayudar al respecto. 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.: <mailto:eenriq...@cav.desoft.cu> eenriq...@cav.desoft.cu
RE: [pgsql-es-ayuda] problema con codificacion
Muchas gracias a ambos, la solución que me dan funciona perfectamente. 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 -Mensaje original- De: Anthony Sotolongo [mailto:asotolo...@gmail.com] Enviado el: viernes, 13 de noviembre de 2015 12:16 Para: Francisco Olarte; Esneiker Enriquez Cabrera CC: Lista Postgres ES Asunto: Re: [pgsql-es-ayuda] problema con codificacion Hola, asegurarte de tener el SET CLIENT_ENCODING TO 'UTF8', pues a veces un cliente de un tipo de codificación y el servidor de otra puede traer sus problemas y lo que te comenta Fransico funciona: select convert_from(decrypt(encrypt('telefónico','password','3dES'),'password','3dES'::text), 'UTF-8'); convert_from -- telefónico (1 row) El 13/11/15 a las 14:05, Francisco Olarte escribió: > 2015-11-13 21:53 GMT+01:00 Esneiker Enriquez Cabrera > <eenriq...@cav.desoft.cu>: >> Escribo porque estoy probando guardar información encriptada en la >> base de datos con codificación utf8 y todo resulta bien, excepto >> cuando la información tiene caracteres especiales, se guarda basura. >> A continuación les pongo un ejemplo. >> select >> encode(decrypt(encrypt('telefónico','password','3des'),'password','3d >> es'::text), >> 'escape'::text); >> el resultado que me retorna es “telef\303\263nico”, en lugar de telefónico. >> Espero que me puedan indicar cómo hacer el tratamiento correcto. > Esto huele a lo de siempre, UTF-8 es una forma de codificar texto en > bytes, la criptografia va en bytes, tenemos el encoding de la base de > datos por un lado, nos hemos liado.etc etc... > > No te lo puedo asegurar, pero el hecho de que necesites encode ya te > da una pista. Encrypt toma bytea como datos, PEEERO, tu le has dado un > texto fiandote de la conversion por defecto, decrypt devuelve bytea. > Luego coges y le dices que te lo imprima en escape, y lo hace bien, de > hecho : > > cdrs=> show client_encoding; > client_encoding > - > UTF8 > (1 row) > > cdrs=> select encode('telefónico', 'escape'); >encode > --- > telef\303\263nico > (1 row) > > El problema es que el decrypt/encrypt es el equivalente a pasat > telefónico a bytea: > > > cdrs=> select 'telefónico'::bytea; >bytea > -- > \x74656c6566c3b36e69636f > (1 row) > > cdrs=> select encode('telefónico'::bytea, 'escape'); >encode > --- > telef\303\263nico > (1 row) > > Y lo que tu quieres es que te interprete esos bytes como utf8, no que > te los imprima escapados, para eso necesitarias una funcion de > conversion de bytes a string, como por ejemplo: > > cdrs=> select convert_from('telefónico'::bytea, 'UTF-8'); > convert_from > -- > telefónico > (1 row) > > No te lo puedo probar porque no tengo instaladas las crypto, pero > juraria que es eso. > > Por cierto, si lo es tu codigo tiene un problema, que dejas la > conversion de texto a bytea a merced del encoding de la conexion y > otroas cosas, lo que no es recomendable, particularmente en > criptografia. Probablement tus problemas vienen de que la conversion > no es reversible: > > > cdrs=> select 'telefónico'::bytea::text; > text > -- > \x74656c6566c3b36e69636f > (1 row) > > Las cosas te iran mejor/mas simples, si al igual que apareas > encrypt/decrypt haces lo mismo con convert_from, convert_to, asi te > aseguras de que lo hace en el encoding que tu le dices > independientemente de la conexion: > > cdrs=> select convert_from(convert_to('telefónico','UTF-8'), 'UTF-8'); > convert_from > -- > telefónico > (1 row) > > Que funciona con otros encoding ( que soporten los caracteres que usas ): > > cdrs=> select convert_from(convert_to('telefónico','LATIN-1'), 'LATIN-1'); > convert_from > -- > telefónico > (1 row) > > A pesar de que: > > > > cdrs=> values(convert_to('telefónico','LATIN-1'), 'LATIN-1') union > values(convert_to('telefónico','UTF-8'), 'UTF-8'); > column1 | column2 > --+- > \x74656c6566c3b36e69636f | UTF-8 > \x74656c6566f36e69636f | LATIN-1 > (2 rows) > > Si haces esto se ve la simetria, > select(convert_from(decrypt(encrypt(convert_to.. no te fies nunca > de las conversiones por defecto cuando estas usando bytea, siempre se > revuelven y te muerden donde menos lo esperas. > > > > Saludos. > Francisco Olarte. > > - > Enviado a la lista de correo pgsql-es-ayuda > (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci n: > http://www.postgresql.org/mailpref/pgsql-es-ayuda - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
[pgsql-es-ayuda] problema con codificacion
Hola amigos, Escribo porque estoy probando guardar información encriptada en la base de datos con codificación utf8 y todo resulta bien, excepto cuando la información tiene caracteres especiales, se guarda basura. A continuación les pongo un ejemplo. select encode(decrypt(encrypt('telefónico','password','3des'),'password','3des'::te xt), 'escape'::text); el resultado que me retorna es telef\303\263nico, en lugar de telefónico. Espero que me puedan indicar cómo hacer el tratamiento correcto. 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.: <mailto:eenriq...@cav.desoft.cu> eenriq...@cav.desoft.cu
[pgsql-es-ayuda] referencias entre base de datos
Saludos a todos los colegas de la comunidad. Les escribo para saber cuál es la mejor forma de acceder a los datos de una base de datos desde otra base de datos. He leído que lo debo hacer con dblink pero quisiera saber si esta es la forma más factible. La necesidad surge debido a que tengo una base de datos en producción, pero como tenía muchos problemas de diseño fue necesario corregirlos para mejorar el rendimiento. Ahora quiero migrar los datos de la base de datos vieja para la mejorada. Espero que me puedan ayudar. 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.: <mailto:eenriq...@cav.desoft.cu> eenriq...@cav.desoft.cu
RE: [pgsql-es-ayuda] referencias entre base de datos
Muchas gracias Anthony, voy a revisarlos. 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.: <mailto:eenriq...@cav.desoft.cu> eenriq...@cav.desoft.cu De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Anthony Sotolongo Enviado el: jueves, 22 de octubre de 2015 7:59 Para: Esneiker Enriquez Cabrera; pgsql-es-ayuda@postgresql.org Asunto: Re: [pgsql-es-ayuda] referencias entre base de datos Hola Esneiker, mira los FDW, son para eso. saludos El 22/10/15 a las 08:44, Esneiker Enriquez Cabrera escribió: Saludos a todos los colegas de la comunidad. Les escribo para saber cuál es la mejor forma de acceder a los datos de una base de datos desde otra base de datos. He leído que lo debo hacer con dblink pero quisiera saber si esta es la forma más factible. La necesidad surge debido a que tengo una base de datos en producción, pero como tenía muchos problemas de diseño fue necesario corregirlos para mejorar el rendimiento. Ahora quiero migrar los datos de la base de datos vieja para la mejorada. Espero que me puedan ayudar. 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 <mailto:eenriq...@cav.desoft.cu>
[pgsql-es-ayuda] historicos y particiones
Hola amigos. Tengo una base de datos donde tengo que hacer históricos de información y una aplicación que va a acceder a esa información. Implementé el mecanismo de partición de la siguiente forma: 1. Tengo en el esquema public la información actual. 2. Tengo un esquema historico_master con las tablas y las reglas para el movimiento de información, además tengo las vistas correspondientes para devolver la información. 3. Tengo un esquema historico_2015 (serían tantos esquemas como cierres se hagan) con las tablas que heredan del esquema historico_master, con sus índices, restricciones, etc. 4. En el fichero de configuración del postgres tengo puesto la propiedad constraint_exclusion = partition Creo que esto está bien, pero cuando hago un explain de un select de una tabla o vista, filtrando por la fecha no veo que postgres vaya directamente al esquema de la fecha especificada, ¿será que tengo algo mal o un mal concepto mío? Igual cuando hago un select de una vista del esquema historico_master y filtro por fecha se demora mucho. Espero me puedan ayudar al respecto. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
RE: [pgsql-es-ayuda] ayuda
Muchas gracias a todos por su colaboración, me han servido muchísimo. 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 -Mensaje original- De: Alvaro Herrera [mailto:alvhe...@2ndquadrant.com] Enviado el: viernes, 14 de agosto de 2015 17:38 Para: Esneiker Enriquez Cabrera CC: 'POSTGRES' Asunto: Re: [pgsql-es-ayuda] ayuda Esneiker Enriquez Cabrera escribió: Hola amigos. Estoy eliminando registros de una base de datos y se me está demorando demasiado, 6 minutos aproximadamente. Mando a realizar el delete en una tabla, y el gestor hace las eliminaciones en las restantes tablas por integridad referencial, pero la demora es mucha. Seguramente alguna de esas otras tablas no tiene índice en la columna correspondiente. -- Álvaro Herrerahttp://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training Services __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 12070 (20150810) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 12070 (20150810) __ 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] historicos y particiones
No hay solapamiento, un ejemplo es CHECK (anno_cerrado = 2015) 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 De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Anthony Sotolongo Enviado el: lunes, 17 de agosto de 2015 13:51 Para: pgsql-es-ayuda@postgresql.org Asunto: Re: [pgsql-es-ayuda] historicos y particiones Hola, te fijaste que no hay solapamiento en los check? On 17/08/15 14:37, Esneiker Enriquez Cabrera wrote: Hola amigos. Tengo una base de datos donde tengo que hacer históricos de información y una aplicación que va a acceder a esa información. Implementé el mecanismo de partición de la siguiente forma: 1. Tengo en el esquema public la información actual. 2. Tengo un esquema historico_master con las tablas y las reglas para el movimiento de información, además tengo las vistas correspondientes para devolver la información. 3. Tengo un esquema historico_2015 (serían tantos esquemas como cierres se hagan) con las tablas que heredan del esquema historico_master, con sus índices, restricciones, etc. 4. En el fichero de configuración del postgres tengo puesto la propiedad constraint_exclusion = partition Creo que esto está bien, pero cuando hago un explain de un select de una tabla o vista, filtrando por la fecha no veo que postgres vaya directamente al esquema de la fecha especificada, ¿será que tengo algo mal o un mal concepto mío? Igual cuando hago un select de una vista del esquema historico_master y filtro por fecha se demora mucho. Espero me puedan ayudar al respecto. 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 12070 (20150810) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 12070 (20150810) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com
[pgsql-es-ayuda] ayuda
Hola amigos. Estoy eliminando registros de una base de datos y se me está demorando demasiado, 6 minutos aproximadamente. Mando a realizar el delete en una tabla, y el gestor hace las eliminaciones en las restantes tablas por integridad referencial, pero la demora es mucha. Antes de realizar la eliminación elimino todos los índices implicados, elimino y luego los vuelvo a crear. La eliminación la estoy ejecutando de la forma: Delete from tabla1 where id in (select id from tabla 2) En la tabla1 hay aproximadamente 7 mil registros, en las restantes hay un poco más. Utilizo postgres 8.4. Agradecería que me dieran algunas orientaciones de cómo podría acelerar esto. Desde ya muchas gracias. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
[pgsql-es-ayuda] duda con regla
Hola amigos. Estoy trabajando con tablas particionadas y en el momento de crear las reglas para el movimiento de los datos hacia las tablas correspondientes tengo duda de si debo especificar cada columna de inserción de valores (marcado en negrita) o si existe alguna otra forma más cómoda y rápida. CREATE OR REPLACE RULE desvioimpar AS ON INSERT TO historico_master.numeros WHERE (new.a % 2) = 1 DO INSTEAD INSERT INTO historico_2015.impar (a,b) VALUES (new.a,new.b); 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
RE: [pgsql-es-ayuda] duda
La única duda que me queda es que tendría todas las vistas en el esquema master las cuales tendrían la información de todas las tablas de todos los históricos, ¿al hacer un select de una vista postgres sería capaz de solo ir a buscar la info en el esquema correspondiente? Claro, teniendo configurada la variable constraint_exclusion = on. Espero sus comentarios. 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 -Mensaje original- De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Gilberto Castillo Enviado el: miércoles, 01 de julio de 2015 16:45 Para: Esneiker Enriquez Cabrera CC: 'POSTGRES' Asunto: Re: [pgsql-es-ayuda] duda Hola a todos los amigos de la comunidad. En el sistema que estoy desarrollando tengo que hacer cierres de información anuales, los cuales consisten en mover las incidencias que han culminado su proceso para otras tablas con el objetivo de liberar la base de datos. Estoy pensando en la opción de utilizar tablas particionadas, donde tendría un esquema por cada año que se haga el cierre. Espero sus comentarios al respecto de si esta puede ser una buena opción o si me recomiendan alguna otra. Ya he pasado por eso y lo solucione creado esquemas para cada año. También puedes particionar las tablas, pero en mi caso los datos de años anteriores no los puede acceder todo el mundo y me invente los esquemas con los permisos apropiados. Saludos, Gilberto Castillo ETECSA, La Habana, Cuba - 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 __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 11864 (20150630) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 11864 (20150630) __ 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
[pgsql-es-ayuda] duda
Hola a todos los amigos de la comunidad. En el sistema que estoy desarrollando tengo que hacer cierres de información anuales, los cuales consisten en mover las incidencias que han culminado su proceso para otras tablas con el objetivo de liberar la base de datos. Estoy pensando en la opción de utilizar tablas particionadas, donde tendría un esquema por cada año que se haga el cierre. Espero sus comentarios al respecto de si esta puede ser una buena opción o si me recomiendan alguna otra. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
RE: [pgsql-es-ayuda] problema con restaura de bd
Muchas gracias Jaime, así funcionó correctamente. 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 -Mensaje original- De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Jaime Casanova Enviado el: lunes, 22 de junio de 2015 16:08 Para: Esneiker Enriquez Cabrera CC: POSTGRES Asunto: Re: [pgsql-es-ayuda] problema con restaura de bd 2015-06-22 14:49 GMT-05:00 Esneiker Enriquez Cabrera eenriq...@cav.desoft.cu: Hola colegas. Tengo una base de datos limpia, sin datos, y estoy tratando de restaurarle los datos desde un backup a través del comando psql desde la consola pero me están saltando problemas con las constraint donde me dice que hay entradas que no existen. Lo que me causa admiración es que todas las llaves foráneas las tengo declaradas como DEFERRABLE INITIALLY DEFERRED, por tanto el gestor no debería chequear las restricciones hasta el final del script digo yo. Los constrainst DEFERRABLE se verifican al final de la *transacción* no del script. Pon Begin; al inicio del script y commit; al final -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte 24x7 y capacitación - 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 __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 11823 (20150622) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 11823 (20150622) __ 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
[pgsql-es-ayuda] problema con restaura de bd
Hola colegas. Tengo una base de datos limpia, sin datos, y estoy tratando de restaurarle los datos desde un backup a través del comando psql desde la consola pero me están saltando problemas con las constraint donde me dice que hay entradas que no existen. Lo que me causa admiración es que todas las llaves foráneas las tengo declaradas como DEFERRABLE INITIALLY DEFERRED, por tanto el gestor no debería chequear las restricciones hasta el final del script digo yo. Agradecería que alguien me ayudara a resolver este problema. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
RE: [pgsql-es-ayuda] optimizacion
Muchas gracias a todos por sus sugerencias, me han sido de gran utilidad. 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 -Mensaje original- De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Gerardo Herzig Enviado el: lunes, 08 de junio de 2015 13:56 Para: Esneiker Enriquez Cabrera CC: POSTGRES Asunto: Re: [pgsql-es-ayuda] optimizacion 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 __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 3890 (20090226) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 3890 (20090226) __ 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
[pgsql-es-ayuda] RE: [pgsql-es-ayuda] sobre índices en la base de datos
Muchas gracias, duda aclarada. 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 -Mensaje original- De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Alvaro Herrera Enviado el: viernes, 05 de junio de 2015 14:57 Para: Esneiker Enriquez Cabrera CC: 'POSTGRES' Asunto: Re: [pgsql-es-ayuda] sobre índices en la base de datos Esneiker Enriquez Cabrera escribió: Hola amigos. Tengo una duda, cuando en postgres se crea una llave foránea, ¿automáticamente el servidor crea un índice por ese campo o hay que crearlo manualmente? Hay que crearlo (a menos que ya lo tengas) -- Álvaro Herrerahttp://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training Services - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda __ 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 __ 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] optimizacion
Porque lo que hago es que cuento registros del negocio (incidencias) que estén asociados a la unidad y al tipo de servicio correspondientes. 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 -Mensaje original- De: Gilberto Castillo [mailto:gilberto.casti...@etecsa.cu] Enviado el: lunes, 08 de junio de 2015 9:30 Para: Esneiker Enriquez Cabrera CC: 'POSTGRES' Asunto: Re: [pgsql-es-ayuda] optimizacion Uhmmm, usar todo esos Count es una locura, pero si es necesario. ¿porque ya que usas un laso no cuenta tu mismo sumando en una variable? 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu --- This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE running at host imx2.etecsa.cu Visit our web-site: http://www.kaspersky.com, http://www.viruslist.com Saludos, Gilberto Castillo ETECSA, La Habana, Cuba __ 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 __ 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
[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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
[pgsql-es-ayuda] sobre índices en la base de datos
Hola amigos. Tengo una duda, cuando en postgres se crea una llave foránea, ¿automáticamente el servidor crea un índice por ese campo o hay que crearlo manualmente? 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
[pgsql-es-ayuda] duda sobre oids
Hola amigos de la comunidad. Les escribo porque tengo una duda respecto a los oids de las tablas en postgres y por más que he buscado en internet no encuentro una aclaración. Quisiera saber si este campo tiene el mismo comportamiento que el UNIQUEIDENTIFIER en sql server, donde se garantiza que el valor sea único, incluso que nunca se repite en el mundo entero. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
RE: [pgsql-es-ayuda] error que tumba el servicio de postgres
Muchas gracias a todos por sus respuestas, me sirvieron de mucho. El problema estaba en una función que se ejecutaba, modifiqué su comportamiento y hasta ahora todo va bien. Saludos, Ing. 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 De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de jvenegasperu . Enviado el: martes, 10 de marzo de 2015 14:08 Para: gilberto.casti...@etecsa.cu CC: Esneiker Enriquez Cabrera; POSTGRES Asunto: Re: [pgsql-es-ayuda] error que tumba el servicio de postgres Hola Esneiker Yo tuve un problema con una consulta con postgis que apagaba el servidor. de manera repentina al ejecutarla mi server tambien es windows ser 2008 Alvaro me comento que probablemente sea un desbordamiento de memoria un problema con la libreria geos. Yo pense que podria tratarse de un problema con los fix que pone el windows update de manera automatica en ese entonces Alvaro tambien me aconsejo migrar Nunca supe la causa probe migrando y todo ok Yo estaba en 9.1 y postgis 1.5 subi a 9.3 y postgis 2 el problema simplemente desaparecio asi que consideralo. El 10 de marzo de 2015, 8:35, Gilberto Castillo gilberto.casti...@etecsa.cu escribió: Hola amigos. Tengo un servidor con Windows 2008 R2 Enterprise en el que tengo instalado Postgres SQL 8.4 y me está sucediendo que el servicio de postgres se está cayendo, revisando el visor de sucesos del sistema encuentro un error que nunca había visto, se los paso para si alguien me puede ayudar al respecto. He estado buscando en internet pero aún no he encontrado nada que me pueda ayudar. Dos sugerencia: 1- Actualizar a Postgresql a una versión superior 8.4 ya hace un año que no tiene soporte. 2- Si puedes quitar windows de tus servidores tomarlo como una buena opción. Los errores de PostgreSQL lo puedes buscar en sus log, ya que con la info de windows la mayoría acá puede hacer muy poco. Además que la mayoría usamos Linux. Saludos, Gilberto Castillo La Habana, Cuba --- This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE running at host imx3.etecsa.cu Visit our web-site: http://www.kaspersky.com, http://www.viruslist.com - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda -- José Mercedes Venegas Acevedo cel claro 940180540 mails: jvenegasp...@gmail.co mailto:jvenegasp...@gmail.com m __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 11288 (20150308) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com
RE: [pgsql-es-ayuda] problema con trigger
Muchas gracias a todos por su ayuda. Saludos, Ing. 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 -Mensaje original- De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Alvaro Herrera Enviado el: martes, 10 de marzo de 2015 16:17 Para: Esneiker Enriquez Cabrera CC: 'POSTGRES' Asunto: Re: [pgsql-es-ayuda] problema con trigger Esneiker Enriquez Cabrera escribió: Hola amigos. Estoy tratando de hacer un trigger que en la inserción o la actualización de una tabla me ejecute una función pero al hacer insert o update me da el error: límite de profundidad de stack alcanzado Oh, FFS. Usa un trigger BEFORE, y modifica en el mismo trigger el campo en el registro NEW, en lugar de hacer un update nuevo. -- Álvaro Herrerahttp://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training Services - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 11288 (20150308) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 11288 (20150308) __ 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
[pgsql-es-ayuda] error que tumba el servicio de postgres
Hola amigos. Tengo un servidor con Windows 2008 R2 Enterprise en el que tengo instalado Postgres SQL 8.4 y me está sucediendo que el servicio de postgres se está cayendo, revisando el visor de sucesos del sistema encuentro un error que nunca había visto, se los paso para si alguien me puede ayudar al respecto. He estado buscando en internet pero aún no he encontrado nada que me pueda ayudar. Este es el error en el visor de sucesos del SO. - System - Provider [ Name] Microsoft-Windows-User Profiles Service [ Guid] {89B1E9F0-5AFF-44A6-9B44-0A07A7CE5845} EventID 1530 Version 0 Level 3 Task 0 Opcode 0 Keywords 0x8000 - TimeCreated [ SystemTime] 2015-03-09T20:19:00.381635700Z EventRecordID 932 Correlation - Execution [ ProcessID] 1008 [ ThreadID] 3752 Channel Application Computer Sistema - Security [ UserID] S-1-5-18 - EventData Detail 2 user registry handles leaked from \Registry\User\S-1-5-21-1073242306-2503760992-3480148298-1003: Process 7564 (\Device\HarddiskVolume2\Windows\System32\conhost.exe) has opened key \REGISTRY\USER\S-1-5-21-1073242306-2503760992-3480148298-1003\Control Panel\International Process 5676 (\Device\HarddiskVolume3\postgresql\bin\postgres.exe) has opened key \REGISTRY\USER\S-1-5-21-1073242306-2503760992-3480148298-1003\Control Panel\International Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
[pgsql-es-ayuda] problema con trigger
Hola amigos. Estoy tratando de hacer un trigger que en la inserción o la actualización de una tabla me ejecute una función pero al hacer insert o update me da el error: límite de profundidad de stack alcanzado ahora no me doy cuenta de qué es lo que estoy haciendo mal, espero que alguien me pueda decir. El código es el siguiente: CREATE OR REPLACE FUNCTION actualizar_estado() RETURNS trigger AS $BODY$ declare cadena character varying(500); BEGIN cadena = ''; select * into cadena from concatenar_nombre_estado(NEW.id); update nmestado set concatenado = cadena where id=NEW.id; RETURN NEW; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100; ALTER FUNCTION actualizar_estado() OWNER TO postgres; CREATE TRIGGER ti_nmestado AFTER INSERT or UPDATE ON nmestado FOR EACH ROW EXECUTE PROCEDURE actualizar_estado(); Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
[pgsql-es-ayuda] duda con particionado de tablas
Hola amigos. Estoy implementando un ejemplo de partición de tablas en postgres pero me he encontrado con un problemita. Describo mi escenario. Estoy usando postgres 8.4 y tengo un esquema que se llama master, en este esquema tengo una tabla que sería mi tabla padre. Tengo otro esquema que se llama histórico 2015 que tiene una tabla que hereda de la tabla del esquema master. Tengo creada una regla que me inserta los valores de la tabla padre a la hija según la condición que le especifico. Esto funciona correctamente, pero el problema está en que me inserta el registro en la tabla padre y en la tabla hija, mientras que en los documentos que solo se debe insertar en la tabla hija. Si elimino el registro de alguna de estas tablas lo elimina de la otra. Alguien me podría dar alguna sugerencia? Muchas gracias. Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
RE: [MASSMAIL][pgsql-es-ayuda] duda con particionado de tablas
Las reglas están definidas de la forma: CREATE OR REPLACE RULE estudiante_2015_insert_rule AS ON INSERT TO historico_master.estudiante WHERE new.anno = 2015 DO INSTEAD INSERT INTO historico_2015.estudiante_2015 (id, nombre, anno) VALUES (new.id, new.nombre, new.anno); CREATE OR REPLACE RULE estudiante_2016_insert_rule AS ON INSERT TO historico_master.estudiante WHERE new.anno = 2016 DO INSTEAD INSERT INTO historico_2016.estudiante_2016 (id, nombre, anno) VALUES (new.id, new.nombre, new.anno); Saludos, Ing. 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 De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Anthony Sotolongo Enviado el: viernes, 20 de febrero de 2015 11:33 Para: Marcos Ortiz; Esneiker Enriquez Cabrera; 'POSTGRES' Asunto: Re: [MASSMAIL][pgsql-es-ayuda] duda con particionado de tablas Hola Eskeiner me sumo a lo que sugiere marcos, a lo mejor estas definiendo mal la regla. Una cosa que debes saber es que si consultas la tabla padre vas a ver los elementos del hijo, pero no quiere decir que estén en el padre fisicamente, puedes probar haciendo un select * from only tabla_padre y si esta implementada la herencia y el redireccionamiento de los registros correctamente, la tabla padre va a estar vacía, los registros van a estar en los hijos solamente. saludos On 20/02/15 12:55, Marcos Ortiz wrote: On 20/02/15 10:18, Esneiker Enriquez Cabrera wrote: Hola amigos. Estoy implementando un ejemplo de partición de tablas en postgres pero me he encontrado con un problemita. Describo mi escenario. Estoy usando postgres 8.4 y tengo un esquema que se llama master, en este esquema tengo una tabla que sería mi tabla padre. Tengo otro esquema que se llama histórico 2015 que tiene una tabla que hereda de la tabla del esquema master. Tengo creada una regla que me inserta los valores de la tabla padre a la hija según la condición que le especifico. Esto funciona correctamente, pero el problema está en que me inserta el registro en la tabla padre y en la tabla hija, mientras que en los documentos que solo se debe insertar en la tabla hija. Si elimino el registro de alguna de estas tablas lo elimina de la otra. Alguien me podría dar alguna sugerencia? Muchas gracias. Bueno, el problema debe estar en la regla que estás definiendo. Generalmente esto se hace con un Trigger de tipo Before, para que se ejecute antes del INSERT en la tabla master. Aquí te dejo el ejemplo de un trigger de este tipo y su función correspondiente. La tabla master es impressions_by_day, y cada partición tiene dos meses de datos: CREATE TRIGGER insert_impressions_by_day_trigger BEFORE INSERT ON impressions_by_day FOR EACH ROW EXECUTE PROCEDURE impressions_by_day_insert_trigger(); CREATE OR REPLACE FUNCTION impressions_by_day_insert_trigger() RETURNS TRIGGER AS $$ BEGIN IF ( NEW.day = DATE '2009-01-01' AND NEW.day DATE '2009-03-01' ) THEN INSERT INTO impressions_by_day_y2009m1ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2009-03-01' AND NEW.day DATE '2009-05-01' ) THEN INSERT INTO impressions_by_day_y2009m3ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2009-05-01' AND NEW.day DATE '2009-07-01' ) THEN INSERT INTO impressions_by_day_y2009m5ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2009-07-01' AND NEW.day DATE '2009-09-01' ) THEN INSERT INTO impressions_by_day_y2009m7ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2009-09-01' AND NEW.day DATE '2009-11-01' ) THEN INSERT INTO impressions_by_day_y2009m9ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2009-11-01' AND NEW.day DATE '2010-01-01' ) THEN INSERT INTO impressions_by_day_y2009m11ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2010-01-01' AND NEW.day DATE '2010-03-01' ) THEN INSERT INTO impressions_by_day_y2010m1ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2010-03-01' AND NEW.day DATE '2010-05-01' ) THEN INSERT INTO impressions_by_day_y2010m3ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2010-05-01' AND NEW.day DATE '2010-07-01' ) THEN INSERT INTO impressions_by_day_y2010m5ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2010-07-01' AND NEW.day DATE '2010-09-01' ) THEN INSERT INTO impressions_by_day_y2010m7ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2010-09-01' AND NEW.day DATE '2010-11-01' ) THEN INSERT INTO impressions_by_day_y2010m9ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2010-11-01' AND NEW.day DATE '2011-01-01' ) THEN INSERT INTO impressions_by_day_y2010m11ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2011-01-01' AND NEW.day DATE '2011-03-01' ) THEN INSERT INTO impressions_by_day_y2011m1ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2011
RE: [MASSMAIL][pgsql-es-ayuda] duda con particionado de tablas
Lo consulté y me muestra datos. Saludos, Ing. 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 De: Anthony Sotolongo [mailto:asotolo...@gmail.com] Enviado el: viernes, 20 de febrero de 2015 12:26 Para: Esneiker Enriquez Cabrera; 'POSTGRES' Asunto: Re: [MASSMAIL][pgsql-es-ayuda] duda con particionado de tablas Consultaste eso que te comenté? select * from only historico_master.estudiante saludos On 20/02/15 13:41, Esneiker Enriquez Cabrera wrote: Las reglas están definidas de la forma: CREATE OR REPLACE RULE estudiante_2015_insert_rule AS ON INSERT TO historico_master.estudiante WHERE new.anno = 2015 DO INSTEAD INSERT INTO historico_2015.estudiante_2015 (id, nombre, anno) VALUES (new.id, new.nombre, new.anno); CREATE OR REPLACE RULE estudiante_2016_insert_rule AS ON INSERT TO historico_master.estudiante WHERE new.anno = 2016 DO INSTEAD INSERT INTO historico_2016.estudiante_2016 (id, nombre, anno) VALUES (new.id, new.nombre, new.anno); Saludos, Ing. 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 De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Anthony Sotolongo Enviado el: viernes, 20 de febrero de 2015 11:33 Para: Marcos Ortiz; Esneiker Enriquez Cabrera; 'POSTGRES' Asunto: Re: [MASSMAIL][pgsql-es-ayuda] duda con particionado de tablas Hola Eskeiner me sumo a lo que sugiere marcos, a lo mejor estas definiendo mal la regla. Una cosa que debes saber es que si consultas la tabla padre vas a ver los elementos del hijo, pero no quiere decir que estén en el padre fisicamente, puedes probar haciendo un select * from only tabla_padre y si esta implementada la herencia y el redireccionamiento de los registros correctamente, la tabla padre va a estar vacía, los registros van a estar en los hijos solamente. saludos On 20/02/15 12:55, Marcos Ortiz wrote: On 20/02/15 10:18, Esneiker Enriquez Cabrera wrote: Hola amigos. Estoy implementando un ejemplo de partición de tablas en postgres pero me he encontrado con un problemita. Describo mi escenario. Estoy usando postgres 8.4 y tengo un esquema que se llama master, en este esquema tengo una tabla que sería mi tabla padre. Tengo otro esquema que se llama histórico 2015 que tiene una tabla que hereda de la tabla del esquema master. Tengo creada una regla que me inserta los valores de la tabla padre a la hija según la condición que le especifico. Esto funciona correctamente, pero el problema está en que me inserta el registro en la tabla padre y en la tabla hija, mientras que en los documentos que solo se debe insertar en la tabla hija. Si elimino el registro de alguna de estas tablas lo elimina de la otra. Alguien me podría dar alguna sugerencia? Muchas gracias. Bueno, el problema debe estar en la regla que estás definiendo. Generalmente esto se hace con un Trigger de tipo Before, para que se ejecute antes del INSERT en la tabla master. Aquí te dejo el ejemplo de un trigger de este tipo y su función correspondiente. La tabla master es impressions_by_day, y cada partición tiene dos meses de datos: CREATE TRIGGER insert_impressions_by_day_trigger BEFORE INSERT ON impressions_by_day FOR EACH ROW EXECUTE PROCEDURE impressions_by_day_insert_trigger(); CREATE OR REPLACE FUNCTION impressions_by_day_insert_trigger() RETURNS TRIGGER AS $$ BEGIN IF ( NEW.day = DATE '2009-01-01' AND NEW.day DATE '2009-03-01' ) THEN INSERT INTO impressions_by_day_y2009m1ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2009-03-01' AND NEW.day DATE '2009-05-01' ) THEN INSERT INTO impressions_by_day_y2009m3ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2009-05-01' AND NEW.day DATE '2009-07-01' ) THEN INSERT INTO impressions_by_day_y2009m5ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2009-07-01' AND NEW.day DATE '2009-09-01' ) THEN INSERT INTO impressions_by_day_y2009m7ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2009-09-01' AND NEW.day DATE '2009-11-01' ) THEN INSERT INTO impressions_by_day_y2009m9ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2009-11-01' AND NEW.day DATE '2010-01-01' ) THEN INSERT INTO impressions_by_day_y2009m11ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2010-01-01' AND NEW.day DATE '2010-03-01' ) THEN INSERT INTO impressions_by_day_y2010m1ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2010-03-01' AND NEW.day DATE '2010-05-01' ) THEN INSERT INTO impressions_by_day_y2010m3ms2 VALUES (NEW.*); ELSIF ( NEW.day = DATE '2010-05-01' AND NEW.day DATE '2010-07-01' ) THEN INSERT INTO impressions_by_day_y2010m5ms2 VALUES (NEW
[pgsql-es-ayuda] duda al hacer histórico
Hola amigos de la comunidad. Tengo una base de datos de una aplicación de incidencias donde en el esquema public se realiza todo el trabajo. Resulta que al finalizar cada año se deben sacar de este esquema todas las incidencias que se hayan terminado, sería algo como hacer un histórico. La duda está en que si tengo un esquema histórico donde ponga las incidencias que saque del esquema public cada tabla en el esquema histórico debería tener un campo que sea por ejemplo el año del cierre. Además de mover las incidencias tendría que mover los nomencladores. Entonces en cada consulta tendría que preguntar por el año del cierre. Estoy pensando que quizás la opción más favorable sería crear un esquema por cada cierre, de forma tal que en cada esquema solo esté la información de ese período, luego las consultas se ejecutarían más rápidamente. ¿Podrían decirme algo al respecto? Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
[pgsql-es-ayuda] duda
Hola amigos de la comunidad. Estoy teniendo problemas de rendimiento con una función que estoy realizando. Resulta que tengo dos tablas A y B y tengo que hacer un reporte estadístico en el cual tengo que sacar cada registro de la tabla A con cada registro de la tabla B y en cada uno de ellos hacer una serie de subconsultas para obtener estadísticos, ejemplo Tabla A Tabla B Uno X DosY Tres Z Resultado Criteriocolumna1Columna2 Columna3 Citerio2 Uno 0 0 0 X Uno 0 0 0 Y Uno 0 0 0 Z Dos0 0 0 X Dos0 0 0 Y Dos0 0 0 Z Tres 0 0 0 X Tres 0 0 0 Y Tres 0 0 0 Z Donde columna1, columna2 y columna3 serían el resultado de 3 subconsultas. Para ello uso dos For anidado pero no estoy seguro que esto sea lo más adecuado. Agradecería si alguien me diera alguna idea. Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
[pgsql-es-ayuda] exportación
Hola amigos de la comunidad. Tengo que sacar datos de una base de datos sqlserver 2000 para unas tablas en postgres. Quisiera saber si existe alguna herramienta que me permita hacer esto, estuve pensando en los dts de sqlserver pero no sé si serán el camino correcto. Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] error de instalación postgres
Ya está el problema resuelto, seguí las indicaciones sugeridas más abajo y todo funcionó correctamente. Muchas gracias. Saludos, Ing. 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 De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de jvenegasperu . Enviado el: lunes, 01 de diciembre de 2014 17:58 Para: Ing. Esneiker Enriquez Cabrera CC: Sergio Valdes Hurtado; POSTGRES Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] error de instalación postgres Hola Esneiker Haber primero desinstala lo que hiciste luego borra el directorio data y el directorio de postgres imagino estan dentro de Archivos de programa Luego hazle clic derecho al instalador y ponle ejecutar como administrador. cuando este instalando estoy suponiendo lo estas haciendo con el instalador de enterprise db Te pedira la ruta para los ejecutables de postgres primero esos pueden quedar dentro de Archivos de programa pero el directorio data no lo pongas dentro de archivos de programa porque a veces no se porque razon el cluster simplemente no inicializa. Asi que pon el directorio data en un directorio fuera de Archivos de Programa. yo sugiero en otro disco duro. por ejemplo yo instalo generalmente asi: Los archivos ejecutables de postgres en esta ruta: C:\Program Files\PostgreSQL\9.4 el directorio data de postgres en: D:\pg94data cuando quieras modificar algun parametro de postgres los archivos postgres.conf y pg_hba.conf los encontraras en D:\pg94data prueba haber como te va saludos El 1 de diciembre de 2014, 15:24, Ing. Esneiker Enriquez Cabrera eenriq...@cav.desoft.cu escribió: Lo hice como administrador. Saludos, Ing. 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 De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Sergio Valdes Hurtado Enviado el: lunes, 01 de diciembre de 2014 15:22 Para: Ing. Esneiker Enriquez Cabrera CC: POSTGRES Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] error de instalación postgres cuando ejecutaste el instalador, lo hiciste como un usuario común o como administrador? El 1 de diciembre de 2014, 17:01, Ing. Esneiker Enriquez Cabrera eenriq...@cav.desoft.cu escribió: Hola amigos de la comunidad. Tengo un problema durante la instalación de postgres 9.1 en una pc con Windows 8.1, en el paso de crear el clúster de la base de datos el programa de instalación me da el error siguiente: Problem running post-install step. Installation may not complete correctly. La inicialización del cluster de la bd falló. A alguien le ha ocurrido algo similar o como podría resolverlo? Muchas gracias. Saludos, Ing. 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 -- Sergio Valdés H. -- José Mercedes Venegas Acevedo cel claro 940180540 mails: jvenegasp...@gmail.co mailto:jvenegasp...@gmail.com m
[pgsql-es-ayuda] error de instalación postgres
Hola amigos de la comunidad. Tengo un problema durante la instalación de postgres 9.1 en una pc con Windows 8.1, en el paso de crear el clúster de la base de datos el programa de instalación me da el error siguiente: Problem running post-install step. Installation may not complete correctly. La inicialización del cluster de la bd falló. A alguien le ha ocurrido algo similar o como podría resolverlo? Muchas gracias. Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
[pgsql-es-ayuda] RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] error de instalación postgres
Lo hice como administrador. Saludos, Ing. 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 De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Sergio Valdes Hurtado Enviado el: lunes, 01 de diciembre de 2014 15:22 Para: Ing. Esneiker Enriquez Cabrera CC: POSTGRES Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] error de instalación postgres cuando ejecutaste el instalador, lo hiciste como un usuario común o como administrador? El 1 de diciembre de 2014, 17:01, Ing. Esneiker Enriquez Cabrera eenriq...@cav.desoft.cu escribió: Hola amigos de la comunidad. Tengo un problema durante la instalación de postgres 9.1 en una pc con Windows 8.1, en el paso de crear el clúster de la base de datos el programa de instalación me da el error siguiente: Problem running post-install step. Installation may not complete correctly. La inicialización del cluster de la bd falló. A alguien le ha ocurrido algo similar o como podría resolverlo? Muchas gracias. Saludos, Ing. 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 -- Sergio Valdés H.
[pgsql-es-ayuda] sobre actualización de vistas
Hola a todos. Colegas escribo porque tengo una duda y quisiera que alguien me la pudiera aclarar. Resulta que en mi base de datos tengo muchas vistas y existen dependencias entre esas vistas, el problema resulta cuando quiero hacer modificaciones a una vista que POSTGRES no me deja cambiar porque tiene vistas dependientes. En este caso como ustedes harían la modificación a la vista? Yo hasta hoy tengo un script donde elimino todas las vistas y luego las vuelvo a crear ya con las nuevas modificaciones pero no estoy seguro que esto sea lo recomendable. Desde ya muchas gracias. Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
[pgsql-es-ayuda] ayuda con ciclo anidado
Hola amigos, escribo porque estoy haciendo una función y en el momento de ejecutarla en el pgadminIII para que se cree en la base de datos me da el error: error de sintaxis en o cerca de «loop», esto es en el loop que cierro después de cadena_subordinadas = '';. Agradecería si alguien me pudiera indicar cómo resolverlo puesto que he revisado varias veces y no encuentro el problema, adjunto una imagen del código para que se vea mejor. Desde ya muchas gracias. Saludos, Ing. 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 codigo.sql Description: Binary data - 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 ciclo anidado
El código está escrito en plpgsql, aún cuando le quito el begin y end me sigue dando el mismo problema. Saludos, Ing. 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 De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Guillermo E. Villanueva Enviado el: martes, 07 de octubre de 2014 15:15 Para: Ing. Esneiker Enriquez Cabrera CC: POSTGRES Asunto: Re: [pgsql-es-ayuda] ayuda con ciclo anidado Suponiendo que el código está en plpgsql, tenés un begin y end dentro del if que no deberías poner. Guillermo Villanueva El 7 de octubre de 2014, 15:21, Ing. Esneiker Enriquez Cabrera eenriq...@cav.desoft.cu escribió: Hola amigos, escribo porque estoy haciendo una función y en el momento de ejecutarla en el pgadminIII para que se cree en la base de datos me da el error: error de sintaxis en o cerca de «loop», esto es en el loop que cierro después de cadena_subordinadas = '';. Agradecería si alguien me pudiera indicar cómo resolverlo puesto que he revisado varias veces y no encuentro el problema, adjunto una imagen del código para que se vea mejor. Desde ya muchas gracias. Saludos, Ing. 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 - 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 ciclo anidado
Muchas gracias Álvaro, efectivamente me faltaba un end if, del cual no me había dado cuenta con tantas veces que lo revisé. Saludos, Ing. 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 -Mensaje original- De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Alvaro Herrera Enviado el: martes, 07 de octubre de 2014 15:43 Para: Ing. Esneiker Enriquez Cabrera CC: 'Guillermo E. Villanueva'; 'POSTGRES' Asunto: Re: [pgsql-es-ayuda] ayuda con ciclo anidado Ing. Esneiker Enriquez Cabrera escribió: El código está escrito en plpgsql, aún cuando le quito el begin y end me sigue dando el mismo problema. Te falta un end if, pero realmente el gran problema es que el diseño de todo esto es malo (por decirlo elegantemente). -- Álvaro Herrerahttp://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training Services - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda - 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] duda sobre trigger
Hola a todos. Cómo puedo en un trigger preguntar si se modificó una columna específica de una tabla? Por ejemplo si se modificó la columna stock. En la documentación de los trigger no lo encuentro. Muchas gracias Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
RE: [pgsql-es-ayuda] duda sobre trigger
El código de la función es: CREATE OR REPLACE FUNCTION actualizar_carpeta_mensaje() RETURNS trigger AS $BODY$ BEGIN IF (TG_OP = 'DELETE') THEN update carpeta_mensaje set nodo_terminal = true where id = OLD.id_padre and id not in (select id_padre from carpeta_mensaje where eliminado is false and id_padre is not null); END IF; IF (TG_OP = 'UPDATE') THEN if (NEW.eliminado IS TRUE) then update carpeta_mensaje set nodo_terminal = true where id in (select id_padre from carpeta_mensaje where eliminado is true and id_padre is not null); end if; if (NEW.eliminado IS FALSE) then update carpeta_mensaje set nodo_terminal = false where id in (select id_padre from carpeta_mensaje where eliminado is false and id_padre is not null); end if; END IF; IF (TG_OP = 'INSERT') THEN if(NEW.id_padre is not null) then update carpeta_mensaje set nodo_terminal = false where id = NEW.id_padre; update carpeta_mensaje set id_menu_padre = m.id_menu_padre from carpeta_mensaje m where m.id = NEW.id_padre and carpeta_mensaje.id = NEW.id; end if; END IF; RETURN NEW; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION actualizar_carpeta_mensaje() OWNER TO postgres; Al ejecutar update carpeta_mensaje set eliminado = false el servidor me retorna: ERROR: límite de profundidad de stack alcanzado HINT: Incremente el parámetro de configuración «max_stack_depth» (actualmente 2048kB), después de asegurarse que el límite de profundidad de stack de la plataforma es adecuado. CONTEXT: sentencia SQL: «SELECT 1 FROM ONLY public.nmusuario x WHERE id OPERATOR(pg_catalog.=) $1 FOR SHARE OF x» sentencia SQL: «update carpeta_mensaje set nodo_terminal = false where id in (select id_padre from carpeta_mensaje where eliminado is false and id_padre is not null)» PL/pgSQL function actualizar_carpeta_mensaje line 14 at sentencia SQL sentencia SQL: «update carpeta_mensaje set nodo_terminal = false where id in (select id_padre from carpeta_mensaje where eliminado is false and id_padre is not null)» y esto una cantidad de veces exagerada. Espero que me puedan ayudar con este tema que aparentemente debería ser una cuestión muy simple. Saludos, Ing. 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 De: Ing. Esneiker Enriquez Cabrera [mailto:eenriq...@cav.desoft.cu] Enviado el: jueves, 03 de abril de 2014 13:54 Para: 'POSTGRES' Asunto: duda sobre trigger Hola a todos. Cómo puedo en un trigger preguntar si se modificó una columna específica de una tabla? Por ejemplo si se modificó la columna stock. En la documentación de los trigger no lo encuentro. Muchas gracias Saludos, Ing. 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 9621 (20140401) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com
RE: [pgsql-es-ayuda] duda sobre trigger
Muchas gracias, no me había dado cuenta de ese detalle. Saludos, Ing. 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 De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Fernando Hevia Enviado el: jueves, 03 de abril de 2014 15:04 Para: Ing. Esneiker Enriquez Cabrera CC: POSTGRES Asunto: Re: [pgsql-es-ayuda] duda sobre trigger 2014-04-03 15:40 GMT-03:00 Ing. Esneiker Enriquez Cabrera eenriq...@cav.desoft.cu: El código de la función es: ... Al ejecutar update carpeta_mensaje set eliminado = false el servidor me retorna: ERROR: límite de profundidad de stack alcanzado HINT: Incremente el parámetro de configuración «max_stack_depth» (actualmente 2048kB), después de asegurarse que el límite de profundidad de stack de la plataforma es adecuado. CONTEXT: sentencia SQL: «SELECT 1 FROM ONLY public.nmusuario x WHERE id OPERATOR(pg_catalog.=) $1 FOR SHARE OF x» sentencia SQL: «update carpeta_mensaje set nodo_terminal = false where id in (select id_padre from carpeta_mensaje where eliminado is false and id_padre is not null)» PL/pgSQL function actualizar_carpeta_mensaje line 14 at sentencia SQL sentencia SQL: «update carpeta_mensaje set nodo_terminal = false where id in (select id_padre from carpeta_mensaje where eliminado is false and id_padre is not null)» y esto una cantidad de veces exagerada. Espero que me puedan ayudar con este tema que aparentemente debería ser una cuestión muy simple. El error indica que tienes un problema de recursividad: haces un update sobre carpeta_mensaje que dispara la función trigger actualizar_carpeta_mensaje que hace un update sobre la tabla carpeta_mensaje que dispara el trigger actualizar_carpeta_mensaje que hace un update ... y así. Necesitas en tu función una condición de salida para cortar la recursividad. Por ejemplo: IF (TG_OP = 'INSERT') THEN if(NEW.id_padre is not null AND NEW.id_padre != OLD.id_padre) then update carpeta_mensaje set nodo_terminal = false where id = NEW.id_padre; update carpeta_mensaje set id_menu_padre = m.id_menu_padre from carpeta_mensaje m where m.id http://m.id/ = NEW.id_padre and carpeta_mensaje.id http://carpeta_mensaje.id/ = NEW.id; end if; END IF; Si id_padre no cambió entonces esto no se dispara y el trigger tiene una oportunidad de salir sin hacer cambios sobre su misma tabla. Esta misma lógica aplica a las otras condiciones que tienes en la función que luego disparan cambios sobre la misma tabla. Saludos, Fernando. __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 9621 (20140401) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com
[pgsql-es-ayuda] valor incrementado en una vista
Hola a todos. Estoy tratando de mostrar un campo autoincrementado (id) en una vista que este campo no dependa de ninguna tabla pero no lo logro hacer, probé con la función generate_series pero nada. La idea sería devolver algo como: Idnombre dirección 1 a b 2 wc 3 c s Los valores de las columnas nombre y dirección se obtienen de una consulta de union all. Existe alguna forma de hacer esto? Muchas gracias. Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
[pgsql-es-ayuda] problema con setof
Hola a todos. Estoy teniendo problemas con retornar valores en una función, revisé el historial de las conversaciones que se han hecho aquí en la lista sobre este tema pero no me resuelven. El problema es que en una función voy creando dinámicamente una consulta donde el número de columnas a retornar es variable según condiciones que se validan. No puedo retornar un setof record ni un setof table porque entonces tendría que conocer de antemano la cantidad de columnas que devolvería. Ojalá alguien me pueda decir cómo resolver este problema. Muchas gracias. Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
RE: [pgsql-es-ayuda] problema con setof
No puedo devolver un cursor porque la herramienta que se utiliza en el proyecto para los reportes no entiende los cursores. Gracias a todos. Saludos, Ing. 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 De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Fede Martinez Enviado el: jueves, 06 de marzo de 2014 9:57 Para: Adrián Misael Peña Montero CC: Ing. Esneiker Enriquez Cabrera; POSTGRES Asunto: Re: [pgsql-es-ayuda] problema con setof Por qué no un set of records y los campos que no queres los devolves en null? El 6 de marzo de 2014, 11:46, Adrián Misael Peña Montero amp...@uci.cu escribió: Trabaja con cursores. Saludos From: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] On Behalf Of Ing. Esneiker Enriquez Cabrera Sent: Thursday, March 6, 2014 9:02 AM To: 'POSTGRES' Subject: [pgsql-es-ayuda] problema con setof Hola a todos. Estoy teniendo problemas con retornar valores en una función, revisé el historial de las conversaciones que se han hecho aquí en la lista sobre este tema pero no me resuelven. El problema es que en una función voy creando dinámicamente una consulta donde el número de columnas a retornar es variable según condiciones que se validan. No puedo retornar un setof record ni un setof table porque entonces tendría que conocer de antemano la cantidad de columnas que devolvería. Ojalá alguien me pueda decir cómo resolver este problema. Muchas gracias. Saludos, Ing. 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 9498 (20140304) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com _ I Conferencia CientÃfica Internacional UCIENCIA 2014 en la UCI del 24 al 26 de abril de 2014, La Habana, Cuba. Ver uciencia.uci.cu http://uciencia.uci.cu/ Imagen quitada por el remitente. __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 9498 (20140304) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com ~WRD000.jpg
[pgsql-es-ayuda] operaciones con fecha
Hola a todos. Estoy haciendo una consulta donde tengo que hacer operaciones con fecha para por ejemplo saber el número de días transcurridos de una fecha a otra y me he encontrado un inconveniente, resulta que en algunos casos la operación me puede quedar como '10/02/2014'::date null y aquí el resultado sería null, pero yo quiero que en este caso el resultado sea cero, la opción que se me ocurre es utilizar un case que primero me haga el cálculo y luego evaluar si el resultado es null que me devuelva cero, de lo contrario que me retorne la cantidad de días, pero creo que esto sería ineficiente puesto que tendría que hacer la operación con las fechas dos veces. Si alguien conoce de alguna otra forma que lo pudiera hacer se lo agradecería. Muchas gracias. Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu
RE: [pgsql-es-ayuda] operaciones con fecha
Muchas gracias a todos por su respuesta, la respuesta de Martín me resolvió el problema. Saludos, Ing. 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 -Mensaje original- De: martin.marq...@gmail.com [mailto:martin.marq...@gmail.com] En nombre de Martín Marqués Enviado el: miércoles, 05 de marzo de 2014 11:49 Para: Ing. Esneiker Enriquez Cabrera CC: POSTGRES Asunto: Re: [pgsql-es-ayuda] operaciones con fecha El día 5 de marzo de 2014, 13:30, Ing. Esneiker Enriquez Cabrera eenriq...@cav.desoft.cu escribió: Hola a todos. Estoy haciendo una consulta donde tengo que hacer operaciones con fecha para por ejemplo saber el número de días transcurridos de una fecha a otra y me he encontrado un inconveniente, resulta que en algunos casos la operación me puede quedar como '10/02/2014'::date – null y aquí el resultado sería null, pero yo quiero que en este caso el resultado sea cero, la opción que se me ocurre es utilizar un case que primero me haga el cálculo y luego evaluar si el resultado es null que me devuelva cero, de lo contrario que me retorne la cantidad de días, pero creo que esto sería ineficiente puesto que tendría que hacer la operación con las fechas dos veces. Si alguien conoce de alguna otra forma que lo pudiera hacer se lo agradecería. COALESCE(fecha1::DATE - fecha2::DATE, '0 days'::interval) Es bueno que siempre retorne el mismo tipo de dato. Saludos, -- Martín Marqués http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training Services __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 9498 (20140304) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 9498 (20140304) __ 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
[pgsql-es-ayuda] duda al separar valores positivos y negativos de una columna
Hola comunidad. Les escribo porque tengo una tabla con una columna llamada importe, cuyos valores pueden ser positivos y negativos. Quiero hacer una consulta la cual me devuelva los valores positivos en una columna y los valores negativos en otra. Hice la consulta pero logré obtener los resultados de la siguiente forma: 1 -3 2 -10 3 -7 4 O sea, obtuve valores null. Lo ideal fuera obtenerlos así: 1 -3 2 -10 3 -7 4 null Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu -- Este mensaje ha sido analizado por MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio.
RE: [pgsql-es-ayuda] duda al separar valores positivos y negativos de una columna
Muchas gracias a todos por su colaboración, la solución de Jairo me ayudó mucho. Saludos, Ing. 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 De: Jairo Graterón [mailto:jgrate...@gmail.com] Enviado el: jueves, 16 de enero de 2014 10:32 Para: Ing. Esneiker Enriquez Cabrera CC: POSTGRES Asunto: Re: [pgsql-es-ayuda] duda al separar valores positivos y negativos de una columna Se separa los positivos y negativos y luego se une usando funciones Windows. SELECT positivos, negativos FROM (SELECT importe as positivos,row_number() OVER() FROM tabla where importe = 0 ) as T1 LEFT JOIN (SELECT importe as negativos,row_number() OVER() FROM tabla where importe 0 ) as T2 ON T1.row_number=T2.row_number El 16 de enero de 2014, 8:57, Ing. Esneiker Enriquez Cabrera eenriq...@cav.desoft.cu escribió: Hola comunidad. Les escribo porque tengo una tabla con una columna llamada importe, cuyos valores pueden ser positivos y negativos. Quiero hacer una consulta la cual me devuelva los valores positivos en una columna y los valores negativos en otra. Hice la consulta pero logré obtener los resultados de la siguiente forma: 1 -3 2 -10 3 -7 4 O sea, obtuve valores null. Lo ideal fuera obtenerlos así: 1 -3 2 -10 3 -7 4 null Saludos, Ing. 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 9293 (20140115) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com -- Este mensaje ha sido analizado por http://www.mailscanner.info/ MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio. -- Este mensaje ha sido analizado por http://www.mailscanner.info/ MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio. __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 9293 (20140115) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com -- Este mensaje ha sido analizado por MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio.
[pgsql-es-ayuda] duda para incrementar segundos a una fecha
Hola a todos. Estoy haciendo una función para actualizar una fecha en una tabla de la siguiente forma, existe una columna fecha de tipo date y tengo que poner esos valores para otra columna de tipo datetime, incrementando en 1 el campo segundos como en el siguiente ejemplo: Fechafechahora 2013-01-01 2013-01-01 00:00:01 2013-01-01 2013-01-01 00:00:02 2013-01-01 2013-01-01 00:00:03 En alguna parte de la función tengo la sentencia: update partediario set fechahora = fecha+ INTERVAL '1 second' where id = aid; pero eso no me sirve porque siempre pondría 1 segundo, quiera algo como: update partediario set fechahora = fecha+ INTERVAL 'i second' where id = aid; pero esta segunda forma no funciona. Agradecería que alguien me pudiera ayudar. Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu -- Este mensaje ha sido analizado por MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio.
[pgsql-es-ayuda] duda sobre unicidad de columnas
Hola a todos. Estoy usando postgres 9.1 donde tengo algunas tablas en las cuales quiero crear restricciones de unicidad en algunas columnas, por ejemplo que el campo nombre no permita valores duplicados. El caso es que el gestor me deja guardar los valores tales como Nombre uno y nombre uno porque los maneja como valores diferentes, cuando desde el punto de vista del negocio representan el mismo valor. ¿Cuál sería la forma más eficiente de hacer esto? Gracias anticipadas. Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu -- Este mensaje ha sido analizado por MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio.
RE: [pgsql-es-ayuda] direccion ip en tabla de auditoria
Hola, hace algún tiempo me pasó lo mismo y en una búsqueda en Google obtuve un código que resolvía este problema, funciona correctamente. Te va en adjunto, la ip se coge en php y luego debes insertarla en tu tabla. Saludos, Ing. 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 De: pgsql-es-ayuda-ow...@postgresql.org [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de jvenegasperu . Enviado el: miércoles, 21 de agosto de 2013 4:11 Para: Ayuda Asunto: [pgsql-es-ayuda] direccion ip en tabla de auditoria hola a todos e seguido este blog para implementar una auditoria de tablas http://www.swapbytes.com/2010/09/como-implementar-auditoria-simple-en.html bueno todo funciona bien se crea una tabla para la auditoria y luego dentro se van guardando las acciones de insertar borrar actualizar de cada tabla pero quisiera agregar el campo direccion IP a esta tabla ¿Como puedo capturar la ip de la que se conecta el usuario a la BD? como se haria esto cuando los usuarios se conectan desde una pagina web a la BD les agradezco la ayuda que me puedan brindar -- José Mercedes Venegas Acevedo cel: Mov. 949808846 mails: jvenegasp...@php.net jvenegasp...@gmail.com PHP Spanish Docs translator member. http://www.php.net/manual/es/index.php -- Este mensaje ha sido analizado por http://www.mailscanner.info/ MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio. __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 8690 (20130815) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com -- Este mensaje ha sido analizado por MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio. ? public function obtenerIpUsuario() { if( @$_SERVER['HTTP_X_FORWARDED_FOR'] != '' ) { $client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? @$_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? @$_ENV['REMOTE_ADDR'] : 'Ip desconocida' ); // los proxys van añadiendo al final de esta cabecera // las direcciones ip que van ocultando. Para localizar la ip real // del usuario se comienza a mirar por el principio hasta encontrar // una dirección ip que no sea del rango privado. En caso de no // encontrarse ninguna se toma como valor el REMOTE_ADDR $entries = split('[, ]', @$_SERVER['HTTP_X_FORWARDED_FOR']); reset($entries); while (list(, $entry) = each($entries)) { $entry = trim($entry); if ( preg_match(/^([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)/, $entry, $ip_list) ) { // http://www.faqs.org/rfcs/rfc1918.html $private_ip = array( '/^0\\./', '/^127\\.0\\.0\\.1/', '/^192\\.168\\..*/', '/^172\\.((1[6-9])|(2[0-9])|(3[0-1]))\\..*/', '/^10\\..*/'); $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]); if ($client_ip != $found_ip) { $client_ip = $found_ip; break; } } } } else { $client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? @$_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? @$_ENV['REMOTE_ADDR'] : Ip desconocida ); } return $client_ip; } ?- 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] ejecutar script automático en postgres
Hola comunidad. Tengo una duda y no encuentro en internet como resolverla. Estoy trabajando con postgres 9.1 y php y quiero que cada cierto tiempo se ejecute una consulta en el servidor postgres de forma automática, he visto lugares donde se dice que cree una tarea programada o un cron dependiendo de si el SO es Windows o Linux pero no quiero que dependa del propio sistema operativo. ¿Existirá en postgres alguna forma para hacer esto, que desde el propio servidor cada cierto tiempo se pueda ejecutar el script? Gracias anticipadas. Saludos, Ing. 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.: mailto:eenriq...@cav.desoft.cu eenriq...@cav.desoft.cu -- Este mensaje ha sido analizado por MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio.
[pgsql-es-ayuda]
Hola comunidad. Estoy tratando de hacer una importación de datos en postgres 8.3 y el tema es que las constraints de las tablas las tengo con la propiedad deferrable initially deferred, pero al ejecutar el script donde están los comandos copy from me dan error puesto que se viola el orden de inserción en las tablas, o sea, debería tener ordenadas las sentencias teniendo en cuenta las dependencias de las tablas. El problema es que en el manual dice que cuando se declaran las constraint con esta propiedad postgres no chequea la integridad referencial hasta que llegue al final del script y en mi caso lo está haciendo antes. Alguien tiene alguna respuesta para esto? Muchas gracias. Saludos, Ing. Esneiker Enriquez Cabrera. Excelencia en Software. Desoft S.A. en Ciego de Ávila. Joaquín de Agüero Esq. Calle 2. Ciego de Ávila. Cuba. email:eenriq...@cav.desoft.cu Teléfono: 53-33-266200
[pgsql-es-ayuda] ayuda
Hola comunidad. Tengo una duda, estoy llamando al postgres de la siguiente forma: C:\Program Files\PostgreSQL\8.3\bin\psql.exe U postgres Y cuando se ejecuta me pide la contraseña, pero yo quiero pasarle la contraseña para que no me la pida, esto es una necesidad que tengo porque estoy mandando a ejecutar consultas sql desde un fichero y si no le pongo la contraseña da error. Alguien podría decirme como pasarle la contraseña? He buscado en la ayuda pero no encuentro nada. Muchas gracias. Ing. Esneiker Enriquez Cabrera. Excelencia en Software. Desoft S.A. en Ciego de Ávila. Joaquín de Agüero Esq. Calle 2. Ciego de Ávila. Cuba. email:eenriq...@cav.desoft.cu Teléfono: 53-33-266200
[pgsql-es-ayuda] error
Hola comunidad. Estoy tratando de ejecutar un script de base de datos usando el pgsql de la siguiente forma C:\Program Files\PostgreSQL\8.3\bin\psql.exe -f E:\carpeta\ScriptBD.sql -U postgres -d prueba Entonces el script se empieza a ejecutar y el problema es que cuando voy a la base de datos no se han creado bien todas las tablas y vistas, incluso no inserta los valores en las tablas. O sea, crea la base de datos en parte. Alguien tiene idea del por qué ocurre esto? En la ejecución del script usando esta forma puedo ver que se generan algunos errores pero cuando ejecuto la consulta en el pgadmin se ejecuta todo bien. Muchas gracias. Saludos, Ing. Esneiker Enriquez Cabrera. Excelencia en Software. Desoft S.A. en Ciego de Ávila. Joaquín de Agüero Esq. Calle 2. Ciego de Ávila. Cuba. email:eenriq...@cav.desoft.cu Teléfono: 53-33-266200
[pgsql-es-ayuda] duda con encriptación
Hola a todos. Estoy usando la función mcrypt de php para encriptar una cadena que tengo que almacenar en una tabla en una base de datos de postgres pero el problema es que cuando mando a ejecutar la función de actualización o inserción desde el php da error, ya probé usando el escape E y si ejecuto la función en el pgadmin el postgres lo entiende bien y hace la operación. Este es el error que me da desde el php: ERROR: invalid byte sequence for encoding \UTF8\: 0xa2\nHINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by \client_encoding\.. Consulta = UPDATE sistema SETduracion_clave = '120', organismo = 'Mic',entidad = 'Desoft',dir_ip_correo = '10.14.0.25', dominio = 'cav', permitir_usuarios_externos = 'true',tiempo_respuesta = '50',fecha_automatica = 'false',denegar_automatico = 'false', direccion_localizacion = 'sdf', proveedor = 'fgh', enviar_email = 'true',cod_pais = 'Cu',cod_entidad = 'D',cod_archivo = 'AC',usar_directorio_activo = 'true', smtp_secure = '1', servidor_smtp = '10.14.0.25',usuario_smtp = 'eenriquez', clave_smtp = E'@¢0@\x19\x1„gªiUä`2½z@Â4ý‡ë\Ô También probé aplicar utf8_encode al campo pero tampoco funciona. Alguien me podría ayudar? Gracias. Ing. Esneiker Enriquez Cabrera. Excelencia en Software. Desoft S.A. en Ciego de Ávila. Joaquín de Agüero Esq. Calle 2. Ciego de Ávila. Cuba. email:eenriq...@cav.desoft.cu Teléfono: 53-33-266200
[pgsql-es-ayuda] duda con funciones
Hola a todos, tengo dudas con respecto a la devolución de valores en las funciones de postgres. 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. -- Saludos, Ing. Esneiker Enriquez Cabrera. Excelencia en Software. Desoft S.A. en Ciego de Ávila. Joaquín de Agüero Esq. Calle 2. Ciego de Ávila. Cuba. email:eenriq...@cav.desoft.cu Teléfono: 53-33-266200 - 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