ayuda con Vistas actualizables postgres 9.5

2019-02-12 Thread jvenegasperu
Buen dia a todos alguien puede dar un ejemplo de implementación para este
mensaje que me esta dando postgres?

Las vistas que no extraen desde una única tabla o vista no son
automáticamente actualizables. HINT: Para activar las actualizaciones en la
vista, provea un disparador INSTEAD OF UPDATE o una regla incondicional ON
UPDATE DO INSTEAD

abajo dejo  la definicion de la vista que estoy trabajando todas las tablas
se enlazan a la tabla fcom_ficha_catastral por el id de esta tabla que va a
todas las tablas hijas
estoy armando la vista para algunos campos que se actualizan mas a menudo.

Cuando intento actualizar uno de los campos de esta vista me da el mensaje
de error que cito lineas arriba estoy usando postgres 9.5.

create view detalle_ficha_corregir as
select f.fechareg,f.id
,FECHA_ENCUESTA,EMPADRONADOR,NRO_FISICO,ape_paterno_actual,
ape_materno_actual,nombres_actual,ape_paterno_nuevo,ape_materno_nuevo,nombres_nuevo,
direccion_actual,direccion_nuevo,tservicio_id,observac from
fcom_ficha_catastral f left join fcom_datos_usuario u on
u.ficha_catastral_id = f.id
left join fcom_datos_inmueble i on i.ficha_catastral_id = f.id
WHERE
NRO_FISICO > 0 and fecha_encuesta > '2018-10-02'


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


falla con winsock y estadisticas de postgres

2019-01-16 Thread jvenegasperu
Buen dia a todos

Estoy usando postgres 9.5 sobre windows 10 single home language para una
pequeña red lan con 3 equipos

Estoy recibiendo estos mensajes concurrentemente en el log de postgres y
sospecho que es la causa que cada cierto tiempo no pueda guardar los
cambios desde qgis en los equipos en red porque en el equipo local estoy
grabando con normalidad
alguna idea de como resolver esto?

2019-01-15 20:20:43 -05 LOG:  no se pudo recibir datos del cliente:
unrecognized winsock error 10054
2019-01-15 20:47:48 -05 LOG:  no se pudo cambiar el nombre al archivo
temporal de estadísticas de «pg_stat_tmp/global.tmp» a
«pg_stat_tmp/global.stat»: Permission denied
2019-01-15 20:47:53 -05 LOG:  usando estadísticas añejas en vez de
actualizadas porque el recolector de estadísticas no está respondiendo
2019-01-15 21:59:16 -05 LOG:  no se pudo recibir datos del cliente:
unrecognized winsock error 10054

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: Instalación Automatizada

2018-12-23 Thread jvenegasperu
Hola Ivan

El dom., 23 de dic. de 2018 12:20 AM, Ivan Perales M. <
ivan.pera...@gmail.com> escribió:

> Buen dia,
> Estoy analizando la posibilidad de incluir postgres en el installer de una
> aplicación que lo requiere, para ello pretendo utilizar los binarios de EDB
> de la versión 10. El archivo zip a descargar pesa más de 180 megas, lo cual
> al descomprimirlo veo que hay carpetas que no necesariamente se requiere
> para la operación, en concreto son 3: doc, include y pgAdmin4, por más que
> busqué no encontré si estoy violando algún tipo de regla al rehacer otro
> zip sin esas carpetas, el cual me da un tamaño mucho menor de 46 megas y
> creando un cluster, cargando una base de datos y haciendo pruebas no se
> produjo ningún error, por lo que comprobé que no son necesarias, así que
> solo bastaría saber si violo alguna regla.
>

Bueno yo hace un tiempo cree un instalador con innosetup utilizando el
instalador de EDB pero no usando el zip sino empleando el ejecutable que
tiene una manera de instalarse en desatendido pones todos los parámetros e
instala sin preguntar nada al usuario. Hasta ahí todo ok


> Además, se que los EDB compila postgres usando visual c++, por lo que se
> requieren estos redistributables, sabe alguien cuales en particular ocupa
> postgres? tampoco lo encontré en todo el sitio de EDB y en el installer
> gráfico no dice las versiones. Con algunas pruebas que hize con el 2008 y
> 2013 era suficiente, pero mas vale confirmar.
>

Respecto a esto comentarte que el ejecutable de EDB instala también los
vcredist 2013 en el caso de postres 10 lo hace automático en mi caso para
64 bits con postgres.

Ahora si tu finalidad es reducir espacio en el instalador si fuera tu
quitaría doc y pgadmin pero mantendría include y comenta por favor como se
hace el instalador con los archivos del zip para que quede instalado
postgres. saludos



> Saludos.
>
> --
> Lindolfo Iván Perales Mancinas
> Solo existen 10 tipos de personas en el mundo, las que saben binario y las
> que no.
>


Re: versión de postgres en producción

2018-11-30 Thread jvenegasperu
Hola Hellmuth

Ok haber en mi caso en producción tengo 9.4 y 9.5 no he subido la versión
por estos motivos:

1.- Usamos pgadmin para gestionar la base de datos y pues la nueva version
web de pgadmin que viene en el instalador de EDB es super inestable y
omnidb tampoco nos convencio.
2.- Por motivos de funcionalidades yo cree algunas reglas en el motor que
curiosamente a partir de 9.6 ya no funcionan correctamente al conversar con
Jaime me dijo que particularmente las reglas en postgres desapareceran y
que vaya pensando en otra forma de efectuar la funcionalidad de la regla
cosa que todavia no he tenido el tiempo para modificar.
3.- Al tratar de efectuar la migración de 9.4 a la versión 10 de la base de
datos con postgis instalado he tenido algunas dificultades con algunas
tablas que no migraban correctamente.

PD Uso postgres sobre windows y trabajo prinicipalmente dibujando redes de
agua y alcantarillado con QGIS.

En pruebas si estoy usando ya postgres 10 pero estoy migrando las tablas
manualmente una por una y estoy tratando de reescribir la funcionalidad de
las reglas como triggers ya que no he podido migrar las tablas espaciales
de manera transparente. si alguien ha tenido algun problema similar si
podria comentar a que se debe yo sospecho de que se trata de geometrias
invalidas en las tablas.

saludos





El vie., 30 nov. 2018 a las 9:48, Hellmuth Vargas ()
escribió:

> Hola Lista
>
> Quisiera saber que versión(es) tiene actualmente en producción de
> PostgreSQL y si no es la ultima (11) porque no se han subido a esta.
>
> Comienzo yo: tengo servidores en 10 y 9.6. No he subido la versión por que
> la base es 7/24, su tamaño supera los 2TB y no hemos concluido las pruebas
> y ajustes de los sistemas de la versión 10  cuando ya salio la versión 11.
>
> --
> Cordialmente,
>
> Ing. Hellmuth I. Vargas S.
>
>

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: omnidb 2.12

2018-11-22 Thread jvenegasperu
Diculpa no tenemos bola de cristal y si pones la query un log algo jejeje

El jue., 22 nov. 2018 a las 11:57, Kernel () escribió:

> Hola,
>
> Tengo una consulta que cuando la ejecuto con omnidb me tarda unos 54
> segundos, si la ejecuto con pgadminIII, Pgadmin 4,php (pdo),dbforge,
> desde el psql tarda como mucho 1 segundo.
>
> Lo estoy probando con varias versiones de postgresql 9.4 , 9.6 10.5  y
> siempre con idéntico resultado.
>
> ¿por que puede ser?
>
> Un Saludo
>
>

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: Valor de campo no se actualiza en trigger

2018-11-15 Thread jvenegasperu
Alvaro
Buen dia

Gracias por el consejo de hecho el trigger before esta funcionando en
realidad estuve tratando de cambiar a after porque desde qgis donde
trabajan mis usuarios cuando hago las cosas con triggers before la accion
de guardar tarda un poco mas que cuando lo hago con after.

Algun consejo para lograr que el before ocurra mas rapido? estoy suponiendo
que en trigger before postgres envia el mensaje de confirmación de guardado
a qgis cuando se han ejecutado todas las acciones dentro del trigger en
cambio en el after postgres confirma a qgis el guardado en la tabla
mientras va ejecutando las demas acciones sin que qgis este enterado de
ello y de ahi podria eventualmene ocurrir algun problema de actualizacion
como me comentas esto es asi?

El jue., 15 nov. 2018 a las 14:36, Alvaro Herrera ()
escribió:

> jvenegasperu escribió:
> > Anthony
> >
> > anthony tenias razon al cambiar a before funciona la asignacion del new
> > pero al requerir un after entonces hice la actualizacion del campo con
> > update y quedo funcionando gracias
>
> Hacer modificaciones al registro en un trigger AFTER es mala idea. Puede
> traerte problemas después.  Las modificaciones al registro deberían
> quedar todas hechas en triggers BEFORE.
>
> Si el trigger BEFORE no te funciona, recomiendo averiguar por qué.
>
> Saludos
>
> --
> Álvaro Herrerahttps://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: Valor de campo no se actualiza en trigger

2018-11-15 Thread jvenegasperu
Anthony

anthony tenias razon al cambiar a before funciona la asignacion del new
pero al requerir un after entonces hice la actualizacion del campo con
update y quedo funcionando gracias

El jue., 15 nov. 2018 a las 9:00, jvenegasperu ()
escribió:

> Hola Antony
> Buen dia ok
>
> cambie el trigger a before y cuando le asigno un valor directamente si lo
> hace sin embargo cuando trato de asignarle valor desde el resultado de la
> consulta no funciona a que podria deberse.
>
> --Cambiando a BEFORE esto funciona
>   NEW.total := 1000;
>
> Pero esto no
> select into r2 sum(ml_lineales) from padron_limpieza7 where limpieza_id =
> NEW.gid;
> NEW.total := r2.sum;
>
> tambien intente asi
> NEW.total := (select sum(ml_lineales) from padron_limpieza7 where
> limpieza_id = NEW.gid);
>
> pero no esta funcionando a que podria deberse
>
>
>
>
>
>
>
>
>
> El mié., 14 nov. 2018 a las 13:17, Anthony Sotolongo (<
> asotolo...@gmail.com>) escribió:
>
>> Hola José, estás seguro que el trigger debe ser AFTER? Pues para que
>> funcione el nuevo valor del NEW debe ser en un BEFORE.
>>
>>
>> Saludos
>>
>> El mié., 14 de nov. de 2018 3:06 p.m., jvenegasperu <
>> jvenegasp...@gmail.com> escribió:
>>
>>> Buen dia a todos
>>> tengo un trigger sobre una tabla que llame limpieza_colector este
>>> funciona bien excepto la ultima instruccion aqui el codigo
>>>
>>> CREATE TRIGGER limpieza3
>>>   AFTER INSERT OR UPDATE
>>>   ON public.limpieza_colector
>>>   FOR EACH ROW
>>>   EXECUTE PROCEDURE public.limpieza3();
>>>
>>> CREATE OR REPLACE FUNCTION public.limpieza3()
>>>   RETURNS trigger AS
>>> $BODY$
>>>   DECLARE
>>>   tot numeric(7,2);
>>>   r record;
>>>   r2 record;
>>>   i float;
>>>   BEGIN
>>>
>>>
>>> select into r radio_influenciafrom limpieza_colector where gid =
>>> NEW.gid;
>>>
>>> i:= r.radio_influencia;
>>>
>>> --create temp table tabb as
>>> truncate opl_tabb;
>>> insert into opl_tabb(row_number,gid,st_centroid,b)
>>> select
>>> v.row_number,
>>> l.gid,st_centroid(st_intersection(v.the_geom,st_buffer(l.the_geom,i))),
>>> st_distance(st_centroid(st_intersection(v.the_geom,st_buffer(l.the_geom,i))),st_startpoint(st_linemerge(v.the_geom)))
>>> as b
>>> from al_buzon_geo l join
>>> opl_taba v on st_intersects(v.the_geom,st_buffer(l.the_geom,i)) and
>>> st_buffer(v.the_geom,i+1) && l.the_geom;
>>>
>>> --aqui un serie de consultas en otras tablas
>>>
>>> --forma 1
>>>   select into r2 sum(ml_lineales) tot from padron_limpieza7 where
>>> limpieza_id = NEW.gid;
>>>   NEW.total := r2.tot;
>>>
>>> --forma 2
>>>   NEW.total := (select sum(ml_lineales) from padron_limpieza7 where
>>> limpieza_id = NEW.gid);
>>>
>>> --forma 3
>>>   NEW.total := 1000;
>>>
>>>RETURN NEW;
>>>   END;
>>> $BODY$
>>>   LANGUAGE plpgsql VOLATILE
>>>   COST 100;
>>> ALTER FUNCTION public.limpieza3()
>>>   OWNER TO postgres;
>>>
>>> El hecho es que he intentado actualizar el campo total de las 3 formas
>>> que se ven en el codigo el trigger es bastante largo hago una serie de
>>> consultas en otras tablas y actualizaciones todas funciona bien excepto de
>>> actualizar el campo total de la tabla limpieza_colector
>>>
>>> lo que ocurre aqui es que desde qgis se dibuja una linea y al momento de
>>> grabar ejecuto el trigger alguien tiene alguna experiencia de postgres con
>>> qgis.
>>>
>>> Que me de alguna luz porque el trigger no actualiza el campo en la tabla
>>> a que podria deberse si todo lo demas funciona sin problemas
>>>
>>> Atte
>>>
>>> --
>>> José Mercedes Venegas Acevedo
>>> cel Mov RPC 964185205
>>>
>>>
>>>
>
> --
> José Mercedes Venegas Acevedo
> cel Mov RPC 964185205
>
>
>

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: Valor de campo no se actualiza en trigger

2018-11-15 Thread jvenegasperu
Hola Antony
Buen dia ok

cambie el trigger a before y cuando le asigno un valor directamente si lo
hace sin embargo cuando trato de asignarle valor desde el resultado de la
consulta no funciona a que podria deberse.

--Cambiando a BEFORE esto funciona
  NEW.total := 1000;

Pero esto no
select into r2 sum(ml_lineales) from padron_limpieza7 where limpieza_id =
NEW.gid;
NEW.total := r2.sum;

tambien intente asi
NEW.total := (select sum(ml_lineales) from padron_limpieza7 where
limpieza_id = NEW.gid);

pero no esta funcionando a que podria deberse









El mié., 14 nov. 2018 a las 13:17, Anthony Sotolongo ()
escribió:

> Hola José, estás seguro que el trigger debe ser AFTER? Pues para que
> funcione el nuevo valor del NEW debe ser en un BEFORE.
>
>
> Saludos
>
> El mié., 14 de nov. de 2018 3:06 p.m., jvenegasperu <
> jvenegasp...@gmail.com> escribió:
>
>> Buen dia a todos
>> tengo un trigger sobre una tabla que llame limpieza_colector este
>> funciona bien excepto la ultima instruccion aqui el codigo
>>
>> CREATE TRIGGER limpieza3
>>   AFTER INSERT OR UPDATE
>>   ON public.limpieza_colector
>>   FOR EACH ROW
>>   EXECUTE PROCEDURE public.limpieza3();
>>
>> CREATE OR REPLACE FUNCTION public.limpieza3()
>>   RETURNS trigger AS
>> $BODY$
>>   DECLARE
>>   tot numeric(7,2);
>>   r record;
>>   r2 record;
>>   i float;
>>   BEGIN
>>
>>
>> select into r radio_influenciafrom limpieza_colector where gid =
>> NEW.gid;
>>
>> i:= r.radio_influencia;
>>
>> --create temp table tabb as
>> truncate opl_tabb;
>> insert into opl_tabb(row_number,gid,st_centroid,b)
>> select
>> v.row_number,
>> l.gid,st_centroid(st_intersection(v.the_geom,st_buffer(l.the_geom,i))),
>> st_distance(st_centroid(st_intersection(v.the_geom,st_buffer(l.the_geom,i))),st_startpoint(st_linemerge(v.the_geom)))
>> as b
>> from al_buzon_geo l join
>> opl_taba v on st_intersects(v.the_geom,st_buffer(l.the_geom,i)) and
>> st_buffer(v.the_geom,i+1) && l.the_geom;
>>
>> --aqui un serie de consultas en otras tablas
>>
>> --forma 1
>>   select into r2 sum(ml_lineales) tot from padron_limpieza7 where
>> limpieza_id = NEW.gid;
>>   NEW.total := r2.tot;
>>
>> --forma 2
>>   NEW.total := (select sum(ml_lineales) from padron_limpieza7 where
>> limpieza_id = NEW.gid);
>>
>> --forma 3
>>   NEW.total := 1000;
>>
>>RETURN NEW;
>>   END;
>> $BODY$
>>   LANGUAGE plpgsql VOLATILE
>>   COST 100;
>> ALTER FUNCTION public.limpieza3()
>>   OWNER TO postgres;
>>
>> El hecho es que he intentado actualizar el campo total de las 3 formas
>> que se ven en el codigo el trigger es bastante largo hago una serie de
>> consultas en otras tablas y actualizaciones todas funciona bien excepto de
>> actualizar el campo total de la tabla limpieza_colector
>>
>> lo que ocurre aqui es que desde qgis se dibuja una linea y al momento de
>> grabar ejecuto el trigger alguien tiene alguna experiencia de postgres con
>> qgis.
>>
>> Que me de alguna luz porque el trigger no actualiza el campo en la tabla
>> a que podria deberse si todo lo demas funciona sin problemas
>>
>> Atte
>>
>> --
>> José Mercedes Venegas Acevedo
>> cel Mov RPC 964185205
>>
>>
>>

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Valor de campo no se actualiza en trigger

2018-11-14 Thread jvenegasperu
Buen dia a todos
tengo un trigger sobre una tabla que llame limpieza_colector este funciona
bien excepto la ultima instruccion aqui el codigo

CREATE TRIGGER limpieza3
  AFTER INSERT OR UPDATE
  ON public.limpieza_colector
  FOR EACH ROW
  EXECUTE PROCEDURE public.limpieza3();

CREATE OR REPLACE FUNCTION public.limpieza3()
  RETURNS trigger AS
$BODY$
  DECLARE
  tot numeric(7,2);
  r record;
  r2 record;
  i float;
  BEGIN


select into r radio_influenciafrom limpieza_colector where gid =
NEW.gid;

i:= r.radio_influencia;

--create temp table tabb as
truncate opl_tabb;
insert into opl_tabb(row_number,gid,st_centroid,b)
select
v.row_number,
l.gid,st_centroid(st_intersection(v.the_geom,st_buffer(l.the_geom,i))),
st_distance(st_centroid(st_intersection(v.the_geom,st_buffer(l.the_geom,i))),st_startpoint(st_linemerge(v.the_geom)))
as b
from al_buzon_geo l join
opl_taba v on st_intersects(v.the_geom,st_buffer(l.the_geom,i)) and
st_buffer(v.the_geom,i+1) && l.the_geom;

--aqui un serie de consultas en otras tablas

--forma 1
  select into r2 sum(ml_lineales) tot from padron_limpieza7 where
limpieza_id = NEW.gid;
  NEW.total := r2.tot;

--forma 2
  NEW.total := (select sum(ml_lineales) from padron_limpieza7 where
limpieza_id = NEW.gid);

--forma 3
  NEW.total := 1000;

   RETURN NEW;
  END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.limpieza3()
  OWNER TO postgres;

El hecho es que he intentado actualizar el campo total de las 3 formas que
se ven en el codigo el trigger es bastante largo hago una serie de
consultas en otras tablas y actualizaciones todas funciona bien excepto de
actualizar el campo total de la tabla limpieza_colector

lo que ocurre aqui es que desde qgis se dibuja una linea y al momento de
grabar ejecuto el trigger alguien tiene alguna experiencia de postgres con
qgis.

Que me de alguna luz porque el trigger no actualiza el campo en la tabla a
que podria deberse si todo lo demas funciona sin problemas

Atte

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: Seleccionar columnas por su posicion en lugar de su nombre

2018-08-23 Thread jvenegasperu
Alvaro buen dia lo que indicas no es posible porque justamente se necesita
es un cuadro para saber que fechas ocupa cada ciclo y se necesita saber que
dias se ocupa

Actualmente es una tabla donde se van ingresando como filas los dias que se
van a usar en cada ciclo que generalmente son los ultimos dias de cada mes
y los primeros dias de cada mes pero no se sabe exactamente que dia

Si no es posible seleccionar una columna por su posición lo que estoy
pensando hacer es una vista con una consulta como  la que indica Herardo y
luego hacer la union con los resultados de la tabla cruzada.

ya luego en el frontend se sabe que la primera fila son los nombers de
camposy fechas que necesito.

Pero si alguien tiene alguna idea o conoce una forma de hacer esto seria
fantastico al menos del lado del frontend para elaborar reportes seria
fantastico












El jue., 23 ago. 2018 a las 10:10, Alvaro Herrera ()
escribió:

> jvenegasperu escribió:
> > buen dia tengo esta situacion
> >
> > como resultado de hacer una consulta cruzada obtengo datos como se ve en
> la
> > imagen adjunta
> >
> > donde las fechas eran filas y han pasado a ser columnas.
> >
> > ahora el tema es que las fechas siempre van a ser variables mes a mes mi
> > pregunta es si existe forma de seleccionar las columnas por su posicion
> en
> > lugar de su nombre algo como cambiar
> >
> > select nombre1,nombre2 from tabla;
> >
> > por algo quiza como
> >
> > select columnid(1), columnid(2) from tabla/vista;
> >
> > como podria lograr algo asi seleccionar por la posicion de la columan en
> > lugar de su nombre es que no se como se llamara la columna por que es el
> > resultado de la columna cruzada
>
> Una opción es hacer "case ciclo_facturacion when 1 then col1 when 2
> then col2 ... end" pero para eso necesitas saber el nombre de la
> columna.
>
> ¿no sería más fácil no convertir la consulta a "cruzada" y en vez de eso
> traer aquellos registros que tengan NOT NULL en tal columna?  No parece
> que el nombre de la columna te vaya a servir de nada.
>
> --
> Álvaro Herrerahttps://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Seleccionar columnas por su posicion en lugar de su nombre

2018-08-23 Thread jvenegasperu
buen dia tengo esta situacion

como resultado de hacer una consulta cruzada obtengo datos como se ve en la
imagen adjunta

donde las fechas eran filas y han pasado a ser columnas.

ahora el tema es que las fechas siempre van a ser variables mes a mes mi
pregunta es si existe forma de seleccionar las columnas por su posicion en
lugar de su nombre algo como cambiar

select nombre1,nombre2 from tabla;

por algo quiza como

select columnid(1), columnid(2) from tabla/vista;

como podria lograr algo asi seleccionar por la posicion de la columan en
lugar de su nombre es que no se como se llamara la columna por que es el
resultado de la columna cruzada

Atte

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


2UDA en modo consola generar grafica de distribucion normal en windows

2018-05-31 Thread jvenegasperu
Buen dia a todos

Este es mi segundo intento de instalar 2UDA la primera vez el instalador
nunca terminaba de instalar sobre windows 7 creo que era un conflicto con
vcredist que tenia previamente instalados.

Bueno esta vez logre instalarlo el 2UDA Beta con postgres 11 y deseo hacer
lo siguiente:

deseo procesar una tabla de facturaciones mensuales y generar un grafico
como el que dice distributions en este link

http://packages.2ndquadrant.com/2UDA/2UDA_Orange_tutorial-2ndQ.pdf

bueno aqui puede verse el grafico de distribuciones utilizando orange lo
que yo quisiera es si hay forma de mandar hacer la grafica por linea de
comandos conectando a la tabla y BD y luego guardar el resultado de la
distribucion como imagen en una carpeta para luego poder mostrar esa
grafica en formulario web.

o si es posible mostrar la interfaz de orange a traves de la web o que idea
podrian darme para lograr esto

Atte


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


WITH muestra null en las consultas

2018-05-30 Thread jvenegasperu
Buen dia a todos

La consulta que muestro lineas abajo usa varios campos para calculos que
son el resultado de consultas que se van formando con diferentes withs.

por ejemplo si en un primer with asigno el valor 'SI' al campo
asignacion_familiar y mas abajo en otro with el calculo depende de si este
campos es 'SI' o 'NO' al momento de efectuar el select * from query todos
los campos que depende de otro campo en un with anterior se muestran NULL
sin embargo si tiro la query con un insert ahi si me graba los valores
correctos.

de que forma puedo hacer para que al efectuar el select ya muestre el
resultado de los calculos y no tenga que efectuar el insert para saber si
estoy calculando correctamente.

with query2 as (
select '".[periodo4]."' as periodo, row_number() over() as
item,e.per_documento,e.per_apepaterno||' '||e.per_apematerno||'
'||e.per_nombre as apellidos_nombres, dt1.deta_tip_id as
cargo_id,tcomision_id, e.empresa_id,
CASE
WHEN ((select count(*) from rrhh_conyuge where per_id = e.per_id) >0 )
THEN
'SI'
ELSE
'NO'
END as asig_familiar,
(select CASE WHEN (tipo_val_id = 2113) THEN
tasa ELSEtasa/100 END from rrhh_param_aport_porcen_periodo where
aportacion_id = 2116
and periodo = '".[periodo4]."') as rmv,
(select CASE WHEN (tipo_val_id = 2113) THEN
tasa ELSEtasa/100 END from rrhh_param_aport_porcen_periodo where
aportacion_id = 2112
and periodo = '".[periodo4]."') as porc_asig_familiar,
(select valor_inicial::numeric(8,2)
from rrhh_deta_contrato dc join rrhh_contrato c on dc.contrato_id =
c.contrato_id
join deta_tipos dt on dt.deta_tip_id = dc.condicion_id and dt.fijo_char =
'remun_basi'
where c.activo = 1 and
c.dni_empleado = per_documento) as remun_basica,
(select valor_inicial::numeric(8,2)
from rrhh_deta_contrato dc join rrhh_contrato c on dc.contrato_id =
c.contrato_id
join deta_tipos dt on dt.deta_tip_id = dc.condicion_id and dt.fijo_char =
'alimentaci'
where c.activo = 1 and
c.dni_empleado = per_documento) as alimentacion,
(select valor_inicial::numeric(8,2)
from rrhh_deta_contrato dc join rrhh_contrato c on dc.contrato_id =
c.contrato_id
join deta_tipos dt on dt.deta_tip_id = dc.condicion_id and dt.fijo_char =
'movilidad'
where c.activo = 1 and
c.dni_empleado = per_documento) as movilidad,
CASE
WHEN (e.afp_id = 2034) THEN
'SI'
ELSE
'NO'END as snp,
CASE
WHEN (e.afp_id = 2034) THEN
NULL
ELSE
e.afp_id END as afp
from rrhh_personal e
left join
deta_tipos dt1 on dt1.deta_tip_id = e.cargo_id),
query3 as ( select *,
CASE WHEN (asig_familiar = 'SI') THEN
rmv * porc_asig_familiar ELSENULL END as val_asig_familiar,
(select tot_min_tarde from rrhh_asistencia_total_persona a where a.dni
= per_documento and a.periodo = periodo limit 1 ) as desc_tardanz,
CASE WHEN (asig_familiar = 'SI') THEN
remun_basica + (rmv * porc_asig_familiar)
ELSE remun_basica END as remun_bruta
from query2
), query4 as (
select *,
(CASE WHEN (snp = 'SI') THEN
round(remun_bruta * (select total/100 from rrhh_param_afp_periodo where
periodo = '".[periodo4]."'and afp_id = 2034),2) ELSE NULL END) as
val_snp,
(remun_bruta *
(select aporte_obligatorio/100 from rrhh_param_afp_periodo where periodo =
'".[periodo4]."' and afp_id = afp)) as aport_oblig,
CASE WHEN (tcomision_id= 2029) --comision por flujo
THEN
remun_bruta *
(select comision_flujo/100 from rrhh_param_afp_periodo where periodo =
'".[periodo4]."' and afp_id = afp )
WHEN (tcomision_id= 2028) --comision mixta
THEN
remun_bruta *
(select mixta_flujo/100 from rrhh_param_afp_periodo where periodo =
'".[periodo4]."' and afp_id = afp ) ELSE NULL END as comision_afp,
remun_bruta *
(select prima/100 from rrhh_param_afp_periodo where periodo =
'".[periodo4]."' and afp_id = afp )  as prima_afp,
round((remun_basica/30/8/60) * desc_tardanz,2 ) as desc_tardanza
from query3 ), query5 as (
select *,round(coalesce(desc_tardanza,0) + coalesce(val_snp,0) +
coalesce(aport_oblig,0) +
coalesce(comision_afp,0) + coalesce(prima_afp,0),2) as tot_descuentos
from query4 ), query6 as (
select *,remun_bruta - tot_descuentos as remun_neta,
(remun_basica - desc_tardanza) *
(select tasa/100 from rrhh_param_aport_porcen_periodo where periodo =
'".[periodo4]."' and aportacion_id = 2110 )  as aport_essalud,
remun_bruta *
(select tasa/100 from rrhh_param_aport_porcen_periodo where periodo =
'".[periodo4]."' and aportacion_id = 2111 )  as aport_sctr,
(select tasa from rrhh_param_aport_porcen_periodo where periodo =
'".[periodo4]."' and aportacion_id = 2125) as cts,
(select tasa/100 from rrhh_param_aport_porcen_periodo where periodo =
'".[periodo4]."' and aportacion_id = 2110) as param_essalud
from query5 ),
query7 as (select *,aport_essalud + aport_sctr as tot_aport from query6 ),
query8 as (
select *,
(remun_bruta * 14 ) + (remun_bruta * coalesce(cts,0)) as remun_anual,
remun_bruta * 2 * param_essalud as renta_essalud
from query7 ),
query9 as (
select *,remun_anual + renta_essalud 

Re: Descargar versión 11 beta de postgresql

2018-05-28 Thread jvenegasperu
Lazaro
buen dia

Si hay lo puedes bajar de aqui:

https://www.enterprisedb.com/products-services-training/pgdevdownload

saludos

El 28 de mayo de 2018, 8:23, Lazaro Garcia  escribió:

> Buenos días a todos. Existe algún instalador de la versión 11 Beta de
> PostgreSQL para Windows??
>
>
>
> Saludos a todos.
>



-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Detectar modificacion de un tramo de una linea Postgis

2018-04-30 Thread jvenegasperu
Hola buen dia

Quiza alguien tenga una situación similar.

Un usuario a traves de postgis tiene unas lineas trazadas sobre la ciudad
que representan un recorrido con miles de vertices. por diversors factores
ese recorrido puede ser alterado entonces si el linestring tenia 14
vertices luego de la modificación ahora tiene 17 vertices porque se
agregaron 3 tramos mas de lineas igual puede ocurrir si se suprimen por
ejemplo 5 vertices.

En este caso el linestring a pesar de tener miles de vertices se trata de
un unico registro en base de datos una linea con muchisimos tramos.

alguna idea de como podria detectar en que tramos de este unico linestring
ocurrieron los cambios?

Actualmente lo que hago es cada vez que se modifica la geometria se dispara
uin trigger que actualiza otras tablas pero me compara todos los tramos y
ya se esta haciendo pesado. en cambio si solo actuara sobre las geometrais
de las otras tablas donde por interseccion ocurrio la modificacion seria
mucho mas rapido.

saludos

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


modificar tipo de dato postgres

2018-04-15 Thread jvenegasperu
Hola buen dia estoy modificando las longitudes de algunos campos

al ejecutar

ALTER TABLE deta_tipos ALTER COLUMN deta_tip_nombre TYPE character
varying(350)

obtengo este error

ERROR:  no se puede alterar el tipo de una columna usada en una regla o
vista
  DETAIL:  regla «_RETURN» en vista v_rrhh_ausencias depende de la columna
«deta_tip_nombre»

el campo deta_tip_nombre es character varying (50)

no estoy cambiando el tipo de dato estoy modificando su longitud bueno
ahora tengo que borrar modificar y volver a crear la vista hay alguna
manera mas rapida de hacer esto?



-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Funciones Financieras Postgres

2018-03-27 Thread jvenegasperu .
Hola buen

Alguien sabe si existe alguna extension que implemente dentro de postgres
funciones financieras?
Digamos TIR, VAN, Depreciación lineal, entre otros. que este disponible
para adicionarle a postgres



-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: Optimizar consulta a tabla con fechas y horas

2018-03-08 Thread jvenegasperu .
ops=518)"
"Filter: (((empid = m.empid) AND (m.fecha
= fecha) AND ((hora - d1.hora_ingreso) > '-00:59:00'::interval) AND
((hora - d1.hora_salida) <= '00:00:00'::interval) AND (fecha >=
d1.fecha_ini) AND (fecha <= d1.fecha_fin) AND (d1.turno_id = 2)) OR
(d1.turno_id = 4))"
"Rows Removed by Filter: 14112"
"Heap Fetches: 0"
"  SubPlan 10"
"->  Limit  (cost=925.55..925.57 rows=1 width=12) (actual
time=2.361..2.361 rows=0 loops=2164)"
"  ->  GroupAggregate  (cost=925.55..926.57 rows=48 width=12)
(actual time=2.360..2.360 rows=0 loops=2164)"
"Group Key: m1_9.fecha"
"->  Sort  (cost=925.55..925.73 rows=71 width=12)
(actual time=2.358..2.358 rows=0 loops=2164)"
"  Sort Key: m1_9.fecha"
"  Sort Method: quicksort  Memory: 17kB"
"  ->  Index Only Scan using trans_emp_fecha_hora
on trans m1_9  (cost=0.29..923.37 rows=71 width=12) (actual
time=1.786..2.355 rows=0 loops=2164)"
"Filter: (((empid = m.empid) AND (m.fecha
= fecha) AND ((hora - d1.hora_salida) > '-00:59:00'::interval) AND
((hora - d1.hora_salida) <= (d1.sal_max_ta)::interval) AND (fecha >=
d1.fecha_ini) AND (fecha <= d1.fecha_fin) AND (d1.turno_id = 2)) OR
(d1.turno_id = 4))"
"Rows Removed by Filter: 14113"
"Heap Fetches: 0"
"  SubPlan 11"
"->  GroupAggregate  (cost=925.55..926.57 rows=48 width=12)
(actual time=2.373..2.373 rows=0 loops=2164)"
"  Group Key: m1_10.fecha"
"  ->  Sort  (cost=925.55..925.73 rows=71 width=12) (actual
time=2.371..2.371 rows=0 loops=2164)"
"Sort Key: m1_10.fecha"
"Sort Method: quicksort  Memory: 17kB"
"->  Index Only Scan using trans_emp_fecha_hora on
trans m1_10  (cost=0.29..923.37 rows=71 width=12) (actual
time=1.798..2.368 rows=0 loops=2164)"
"  Filter: (((empid = m.empid) AND (m.fecha =
fecha) AND ((hora - d1.hora_salida) > '-00:59:00'::interval) AND
((hora - d1.hora_salida) <= (d1.sal_max_ta)::interval) AND (fecha >=
d1.fecha_ini) AND (fecha <= d1.fecha_fin) AND (d1.turno_id = 2)) OR
(d1.turno_id = 4))"
"  Rows Removed by Filter: 14113"
"  Heap Fetches: 0"
"  SubPlan 12"
"->  Limit  (cost=925.55..925.57 rows=1 width=12) (actual
time=2.348..2.348 rows=1 loops=834)"
"  ->  GroupAggregate  (cost=925.55..926.57 rows=48 width=12)
(actual time=2.347..2.347 rows=1 loops=834)"
"Group Key: m1_11.fecha"
"->  Sort  (cost=925.55..925.73 rows=71 width=12)
(actual time=2.345..2.345 rows=1 loops=834)"
"  Sort Key: m1_11.fecha"
"  Sort Method: quicksort  Memory: 17kB"
"  ->  Index Only Scan using trans_emp_fecha_hora
on trans m1_11  (cost=0.29..923.37 rows=71 width=12) (actual
time=1.077..2.342 rows=1 loops=834)"
"Filter: (((empid = m.empid) AND (m.fecha
= fecha) AND ((hora - d1.hora_salida) > '-00:59:00'::interval) AND
((hora - d1.hora_salida) <= (d1.sal_max_ta)::interval) AND (fecha >=
d1.fecha_ini) AND (fecha <= d1.fecha_fin) AND (d1.turno_id = 2)) OR
(d1.turno_id = 4))"
"Rows Removed by Filter: 14112"
"Heap Fetches: 0"
"Planning time: 2.825 ms"
"Execution time: 49375.842 ms"





2018-03-08 8:48 GMT-05:00 jvenegasperu . <jvenegasp...@gmail.com>:

> Sthepen
> Buen dia
>
> En efecto tengo este indice creado
>
> create index emp_fecha_hora on trans (empid,CAST (dt AS date),CAST(dt as
> time));
>
> y este filtro lo uso varias veces
>
> m1.empid = m.empid AND m.fecha = m1.dt::date AND (m1.dt::time without time
> zone - d.hora_ingreso) > '-00:59:00'::interval
>
> en el explain en la pagina de depesz en el item 14 indica Bitmap Heap Scan
> entiendo que aqui esta usando este tipo de indice? para el filtro
>
> Estoy suponiendo que el item 14 indica que esta usando el indce pero en
> los demas casos no me podrias orientar porque no usa el indice en los demas
> alguna idea?
>
> por lo que me dices supongo que hacer el CAST al crear el indice estaria
> mal?
>
> al hacer el filtro en la consulta esta mal esto m1.dt::time.?
>
> ambas cosas estan mal?
>
> probare creando un campo mas en la tabla donde ya este la hora y no
> necesitar el cast
>

Optimizar consulta a tabla con fechas y horas

2018-03-07 Thread jvenegasperu .
Buen dia ahora me ha tocado lidiar con una tabla de fechas y horas

Tengo la consulta que muestro lineas mas abajo y luego el resultado del
explain analyze por favor alguna sugerencia para mejorar el tiempo de
respuesta

hasta el momento la tabla solo tiene estos dos indices que le agregue pero
solo he logrado dismunir el tiempo en 5 segundos la consulta tarda
aproximadamente 2 minutos

CREATE INDEX trans_dt ON trans (dt);
create index emp_fecha_hora on trans (empid,CAST (dt AS date),CAST(dt as
time));

SELECT m.empid AS dni, m.empname AS nombre_empleado, '201803' AS periodo,
m.fecha,
dia_semana(m.fecha) AS dia_semana, (
SELECT min(m1.dt::time without time zone) AS min FROM trans m1
WHERE m1.empid = m.empid AND m.fecha = m1.dt::date

AND (m1.dt::time without time zone - d.hora_ingreso) >
'-00:59:00'::interval
AND (m1.dt::time without time zone - d.hora_ingreso) <=
d.hora_salida::interval AND
m1.dt >= d.fecha_ini and m1.dt <= d.fecha_fin and d.turno_id = 1 or
d.turno_id = 3 and m1.dt::time without time zone < d.hora_salida
GROUP BY (m1.dt::date)limit 1) AS hor_ing_ma,
CASE WHEN ((( SELECT min(m1.dt::time without time zone) AS min FROM
trans m1
WHERE m1.empid = m.empid AND m.fecha = m1.dt::date
AND (m1.dt::time without time zone - d.hora_ingreso) >
'-00:59:00'::interval
AND (m1.dt::time without time zone - d.hora_salida) <=
'00'::interval
AND m1.dt >= d.fecha_ini and m1.dt <= d.fecha_fin and
d.turno_id = 1
or d.turno_id = 3 GROUP BY (m1.dt::date) limit 1)) -
d.hora_ingreso) >= '00:01:00'::time without time zone::interval
THEN (( SELECT min(m1.dt::time without time zone) AS min
FROM trans m1
WHERE m1.empid = m.empid AND m.fecha = m1.dt::date
AND (m1.dt::time without time zone - d.hora_ingreso) >
'-00:59:00'::interval
AND (m1.dt::time without time zone - d.hora_salida) <=
'00'::interval
AND m1.dt >= d.fecha_ini and m1.dt <= d.fecha_fin
and d.turno_id = 1 or d.turno_id = 3 GROUP BY
(m1.dt::date) limit 1)) - d.hora_ingreso ELSE NULL::interval END AS
tardanz_ma,
( SELECT min(m1.dt::time without time zone) AS min FROM
trans m1
WHERE m1.empid = m.empid AND m.fecha = m1.dt::date
AND (m1.dt::time without time zone - d.hora_salida) >
'-00:59:00'::interval
AND (m1.dt::time without time zone - d.hora_salida) <=
d.sal_max_ma::interval
AND m1.dt >= d.fecha_ini and m1.dt <= d.fecha_fin
and d.turno_id = 1 or d.turno_id = 3 GROUP BY
(m1.dt::date) limit 1) AS hor_sal_ma,
CASE WHEN ((( SELECT min(m1.dt::time without time zone)
AS min FROM trans m1
WHERE m1.empid = m.empid AND m.fecha = m1.dt::date
AND (m1.dt::time without time zone - d.hora_salida) >
'-00:59:00'::interval
AND (m1.dt::time without time zone - d.hora_salida) <=
d.sal_max_ma::interval
AND m1.dt >= d.fecha_ini and m1.dt <= d.fecha_fin
and d.turno_id = 1 or d.turno_id = 3 GROUP BY
(m1.dt::date) limit 1 )) - d.hora_salida) >= '00:01:00'::time without time
zone::interval THEN (( SELECT min(m1.dt::time without time zone) AS min
FROM trans m1 WHERE m1.empid = m.empid AND m.fecha = m1.dt::date AND
(m1.dt::time without time zone - d.hora_salida) > '-00:59:00'::interval AND
(m1.dt::time without time zone - d.hora_salida) <= d.sal_max_ma::interval
AND m1.dt >= d.fecha_ini and m1.dt <= d.fecha_fin and d.turno_id = 1 or
d.turno_id = 3 GROUP BY (m1.dt::date) limit 1 )) - d.hora_salida ELSE
NULL::interval END AS tiem_compensar_ma, ( SELECT min(m1.dt::time without
time zone) AS min FROM trans m1 WHERE m1.empid = m.empid AND m.fecha =
m1.dt::date AND (m1.dt::time without time zone - d1.hora_ingreso) >
'-00:59:00'::interval AND (m1.dt::time without time zone - d1.hora_salida)
<= '00'::interval AND m1.dt >= d1.fecha_ini and m1.dt <= d1.fecha_fin and
d1.turno_id = 2 or d1.turno_id = 4 GROUP BY (m1.dt::date) limit 1 ) AS
hor_ing_ta, CASE WHEN ((( SELECT min(m1.dt::time without time zone) AS min
FROM trans m1 WHERE m1.empid = m.empid AND m.fecha = m1.dt::date AND
(m1.dt::time without time zone - d1.hora_ingreso) > '-00:59:00'::interval
AND (m1.dt::time without time zone - d1.hora_salida) <= '00'::interval AND
m1.dt >= d1.fecha_ini and m1.dt <= d1.fecha_fin and d1.turno_id = 2 or
d1.turno_id = 4 GROUP BY (m1.dt::date) limit 1)) - d1.hora_ingreso) >=
'00:01:00'::time without time zone::interval THEN (( SELECT min(m1.dt::time
without time zone) AS min FROM trans m1 WHERE m1.empid = m.empid AND
m.fecha = m1.dt::date AND (m1.dt::time without time zone - d1.hora_ingreso)
> '-00:59:00'::interval AND (m1.dt::time without time zone -
d1.hora_salida) <= '00'::interval AND m1.dt >= d1.fecha_ini and m1.dt <=
d1.fecha_fin and d1.turno_id = 

modificacion de consulta PostgresProvider.dll

2018-02-16 Thread jvenegasperu .
Hola a todos

Dentro de QGIS existe un archivo postgresprovider.dll escribo aqui para
preguntar si alguno administra o puedes hacer cambios sobre el fuente del
dll para hacer un pequeño cambio

en el se hacen consultas para postgis la consulta esta escrita asi?

SELECT DISTINCT upper(geometrytype("the_geom")),st_srid("the_geom") FROM
"public"."tabla"

Si se escribe sin el upper asi

SELECT DISTINCT geometrytype("the_geom"),st_srid("the_geom") FROM
"public"."tabla"

se obtiene lo mismo en este caso POINT POLYGON; etc

sin embargo la primera consulta tarda 300 milisegundos y la segunda solo
200 haciendo la pruebas en mi equipo alguno aqui en la lista pudiera hacer
el cambio por favor para tener el nuevo dll ya con esta minuscula mejora

saludos


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: [MASSMAIL]Re: Permisos para usuario por columnas

2018-02-15 Thread jvenegasperu .
Hola Gilberto tienes razón.

Nestor, con esto se puede hacer lo que requerimos.

Dejo por aqui el ejemplo que encontre en la doc de de postgres

GRANT SELECT ON mytable TO PUBLIC;
GRANT SELECT, UPDATE, INSERT ON mytable TO admin;
GRANT SELECT (col1), UPDATE (col1) ON mytable TO miriam_rw;


https://www.postgresql.org/docs/9.3/static/sql-grant.html









El 15 de febrero de 2018, 10:37, <gilberto.casti...@etecsa.cu> escribió:

> Hola,
>
> Eso existe desde la versión 9.0 por ahí mas o menos, favor revisen la
> documentación,
>
>
> On 2018-02-15 09:21, Néstor Ramires wrote:
>
>> No sabría decirte, aún no he hecho la experiencia, si puedo decirte
>> que es una de las opciones que se han pensado, podría funcionar bien,
>> de hecho concretamente ésta tabla de la que hablo tiene 11 campos de
>> carga manual y control más el que contiene la geometría, el resto de
>> los datos (se agregan al rededor de 30 campos más) aún no se lo ha
>> trabajado y es algo por resolver.
>>
>>
>> En Sun, 11 Feb 2018 05:39:03 -0300, jvenegasperu .
>> <jvenegasp...@gmail.com> escribió:
>>
>>  Nestor si en efecto la vista para mi no es una opcion se hace demasiado
>>> lento.
>>>
>>> yo solo uso vistas materializadas para mirar desde qgis las vistas
>>> normales
>>> si que demoran con Qgis.
>>>
>>> Pienso que quiza una salida sea tener dos tablas una con solo los campos
>>> para el usuario y otra con todo lo necesario y luego con un trigger
>>> insertar en la tabla mas completa que te parece tal vez funcione bien.
>>>
>>>
>>>
>>> El 9 de febrero de 2018, 7:37, Néstor Ramires <nrami...@rosario.gov.ar>
>>> escribió:
>>>
>>> Me encontré con la misma situación. Aún no lo resuelvo a nivel de
>>>> permisos
>>>> (hay otras prioridades) sin embargo una alternativa que encontramos para
>>>> visualizar y dejar como editable sólo algunos campos en la consulta es
>>>> la
>>>> de crear una vista (con el campo de geometría incluido) como
>>>> contrapartida,
>>>> al nemos en mi caso, Qgis funciona bastante más lento (en una tabal con
>>>> 260.000 registros)
>>>> En vez de cargar la tabla directamente, se carga la vista como capa
>>>> editable.
>>>>
>>>>
>>>>
>>>> En Fri, 09 Feb 2018 02:14:57 -0300, jvenegasperu . <
>>>> jvenegasp...@gmail.com>
>>>> escribió:
>>>>
>>>> Hola a todos buen dia
>>>>
>>>>>
>>>>> Tengo usuarios que hacen insert update delete a tablas a traves de Qgis
>>>>> todo funciona ok sin embargo dentro de la tabla tengo un conjunto de
>>>>> columnas que se llenan de manera automatica de acuerdo a los campos que
>>>>> ingresa el usuario y al producirse la insercion o update se disparan
>>>>> trigers after que guardan en otras tablas dependiendo del contenido de
>>>>> esos
>>>>> campos que el usuario no deberia tocar.
>>>>>
>>>>> Por el momento lo que estoy haciendo es preparar un archivo de trabajo
>>>>> plantilla para qgis y darselo a los usuarios para trabajar en las
>>>>> capas de
>>>>> trabajo que utiliza, en qgis cada capa se corresponde con una tabla de
>>>>> postgres entonces lo que hago es desde la interfaz de qgis ocultar los
>>>>> campos que no debe tocar para que al momento de registrar la
>>>>> información
>>>>> el
>>>>> campo no se muestre sin embargo el usuario puede hacer clic derecho
>>>>> sobre
>>>>> la capa ir a las propiedades y poner visible e incluso editable el
>>>>> campo.
>>>>> y
>>>>> si el usuario modifica esos campos pues toda la automatizacion se va al
>>>>> tacho y a veces hasta se cuelga Qgis
>>>>>
>>>>> Mi consulta es la siguiente es posible darle permisos a un usuario para
>>>>> poder efectuar las operaciones de insert update delete pero al mismo
>>>>> tiempo
>>>>> otorgarle solo visibilidad sobre un conjunto de campos de tal forma de
>>>>> tener el siguiente comportamiento:
>>>>>
>>>>> usuario postgres tiene todos los permisos y puede ver todos los campos
>>>>> hace
>>>>> select a la tabla 1
>>>>>
>>>>> select * from tabla1 devuelve por ejemplo 10 campos. todos los campos
>>>>

actualizar postgres en windows

2018-02-11 Thread jvenegasperu .
Buen dia a todos

Alguno sabe como puedo actualizar postgres 10.1 a 10.2 en windows?

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: Manual Android studio + postgresql

2018-02-11 Thread jvenegasperu .
Hola Jose Fermin

Yo prefiero usar cordova o phonegap cuando se trata de desarrollar para
movil en todo caso el resultado final que lograras es el mismo puedes
seguir este curso.

https://www.linkedin.com/learning/ionic-practico-app-con-rest

Si bien el curso muestra como hacerlo con ionic y mysql pues al final se
compila y genera el codigo fuente para android si quieres el codigo nativo
de android puedes mirar ahi y las instrucciones que estan en php como
mysql_conect las cambias todas por pg_conect es decir solo modificando el
prefijo y poniendo los parametros te va a funcionar igual y bien con
postgres.

saludos








El 10 de febrero de 2018, 23:12, José Fermín Francisco Ferreras <
josefermi...@hotmail.com> escribió:

> Buenas noches!
>
> Algunos de ustedes conoce un buen manual para conectar  Android Studio 3.0
> con postgresql 9.5??
>
>
> Gracias por adelantado!!
>



-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Permisos para usuario por columnas

2018-02-08 Thread jvenegasperu .
Hola a todos buen dia

Tengo usuarios que hacen insert update delete a tablas a traves de Qgis
todo funciona ok sin embargo dentro de la tabla tengo un conjunto de
columnas que se llenan de manera automatica de acuerdo a los campos que
ingresa el usuario y al producirse la insercion o update se disparan
trigers after que guardan en otras tablas dependiendo del contenido de esos
campos que el usuario no deberia tocar.

Por el momento lo que estoy haciendo es preparar un archivo de trabajo
plantilla para qgis y darselo a los usuarios para trabajar en las capas de
trabajo que utiliza, en qgis cada capa se corresponde con una tabla de
postgres entonces lo que hago es desde la interfaz de qgis ocultar los
campos que no debe tocar para que al momento de registrar la información el
campo no se muestre sin embargo el usuario puede hacer clic derecho sobre
la capa ir a las propiedades y poner visible e incluso editable el campo. y
si el usuario modifica esos campos pues toda la automatizacion se va al
tacho y a veces hasta se cuelga Qgis

Mi consulta es la siguiente es posible darle permisos a un usuario para
poder efectuar las operaciones de insert update delete pero al mismo tiempo
otorgarle solo visibilidad sobre un conjunto de campos de tal forma de
tener el siguiente comportamiento:

usuario postgres tiene todos los permisos y puede ver todos los campos hace
select a la tabla 1

select * from tabla1 devuelve por ejemplo 10 campos. todos los campos de la
tabla

si se loguea el usuario1 que tiene restricciones para los campos entonces
si hace

select * from tabla1 le devuelve por ejemplo solo 4 campos que se le asigno
que podia ver

campo1,campo2,campo5,campo7 -- Es decir solo los campos que tiene permiso
para ver.

Este usuario igual podria hacer todas las operaciones con la tabla pero no
puede ver los demas campos de tal forma que los campos que no se ven
tambien se puedan llenar con operaciones pero sin que el usuario que se
logueo pueda verlos.

Es posible hacer algo asi con postgres? como se pdoria lograr?

Espero haberme podido explicar bien ya que este comportamiento ayudaria
mucho en trabajo que realizo con QGIS.

Como comente actualmente lo hago ocultando el campo desde la interfaz de
qgis pero esto no es seguro y ademas entre mas campos trae qgis de la BD
mas pesado y lento se hace para moverse con los datos espaciales.


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: [MASSMAIL]Postgresql problema !!!

2017-12-20 Thread jvenegasperu .
Angelo creo que te podrian ayudar mas facil si copias literalmente la
salida del

select * from pg_stat_activity where pid = ;





El 20 de diciembre de 2017, 13:10, Alvaro Herrera 
escribió:

> Angelo Astorga escribió:
> > Hola Daymel,
> > Me pediste que vía comando top revisara proceso que consume cpu, eso
> hice y
> > el proceso esta asociados con el postmaster, aplique comando vinculado
> con
> > el pid del proceso
> > select * from pg_stat_activity where pid = ;
> >
> > y hace mención a una tabla que posee 2 millones de registro, lo cual no
> veo
> > nada extraño en ello.
>
> ¿qué tipo de mención?
>
> --
> Álvaro Herrerahttps://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>
>


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: Increible omnidb 2.4 y pgadmin 4 ver 2 parecen locomotoras antiguas frente el viejo phpPgAdmin que parece un ferrari

2017-12-13 Thread jvenegasperu .
Rafael Buen dia
Sigo probando omniDB

Gracias por el interes en resolver las demoras

Pues veras ahora estoy listando un simple select st_astext(the_geom),* from
tabla en una tabla con solo 30 registros y omni esta tardando bastante en
responder, para ejecutar la consulta tarda, luego para hacer mas ancho el
st_astext resultado de la consulta tambien tarda y se nota supongo que sera
porque hay muchos datos que mostrar en el campo porque son lineas com
muchos vertices, pero en ese caso por ejemplo pgadmiin lo hace mucha mas
rapido.

saludos





El 12 de diciembre de 2017, 20:11, jvenegasperu . <jvenegasp...@gmail.com>
escribió:

> Hola Rafael
> Espero Jaime siga oficiando de traductor jeje
>
> Rafael tranquilo Con OmniDb si estoy teniendo mejor experiencia que con
> PgAdmin pero por tus comentarios puedo concluir lo siguiente:
>
> PgAdmin es mas lento que omniDB porque me muestra todas las bases de datos
> pudiendo recorrer todos los nodos de cualquiera de ellas en omni no solo
> puedo revisar uno a la vez, si bien omni gana en velocidad para un usuario
> acostumbrado a copiar y pegar codigo entre bases de datos de funciones,
> triggers u otras cosas se vuelve incomodo tener que abrir una base de datos
> a la vez ya que a veces se reutiliza codigo para otras cosas en otras base
> de datos.
> Se que el codigo lo podria tener guardado en un archivo *.sql y problema
> resuelto pero digamos es una no se si buena o mala costumbre tener el
> codigo a un clic
>
> y ok Rafael tranquilo omniDB esta respondiendo bien la demora en las
> funciones y otros objetos es por la cantidad de objetos a listar por
> ejemplo la demora en las funciones es porque estoy revisando bases de datos
> con postgis mas funciones mias creadas entre otras cosas y ahi hay mas de
> 1200 funciones.
>
> ahora con respecto al sistema operativo en el que lo estoy probandolo es
> windows 7 y windows 10 con una pc con 12 Gb de RAM y otra con solo 4 Gb de
> RAM.
>
> saludos
>
> Jose
>
> Espero te sirva la información que te doy disculpa que no pueda grabar la
> pantalla
>
> Saludos
>
> 2017-12-12 17:58 GMT-05:00 Jaime Casanova <jaime.casan...@2ndquadrant.com>
> :
>
>> On 12 December 2017 at 10:40, Rafael Castro
>> <rafael.cas...@2ndquadrant.com> wrote:
>> > Hello,
>> >
>> > I'm sorry to hear that your experience with OmniDB did not satisfy your
>> > expectations
>> > performance wise. Performance is our top priority during development and
>> > there should
>> > be no delay when using the interface.
>> >
>> > I see that the complaints are related to slowness of data fetching when
>> > opening
>> > nodes in the structure tree. A few mentions here:
>> >
>> > - When you open the first node, OmniDB fetches a lot of information
>> about
>> > your
>> > database, which will be used along with all functionalities supported
>> by the
>> > tool.
>> >
>> > - There is an issue when opening the Sequences node, it fetches all data
>> > from all
>> > sequences, that is why you are experiencing slowness, this will be
>> fixed in
>> > the
>> > next release.
>> >
>> > - Other than the two previous mentions, there should be no lag when
>> handling
>> > the
>> > tree, the only delay would be the actual communication between the app
>> and
>> > the database
>> > but if you using a local db the interface should respond very fast.
>> >
>> > In terms of initialization there isn't much to compare phppgadmin with
>> > OmniDB because
>> > the former is a web application to be used with a webserver running
>> php. We
>> > also offer
>> > this option, you can run OmniDB with a webserver of your choice. You can
>> > also
>> > use OmniDB-server, that comes with its own webserver so you don't have
>> to
>> > worry
>> > about installing any additional piece of software. Ultimately, you can
>> use
>> > the app
>> > for a desktop experience, I'm guessing your complaints about
>> initialization
>> > are
>> > related to this option.
>> >
>> > I would like to know more about your environment and tests. Could you
>> please
>> > share
>> > with me the OS you are using?
>> >
>> > Also, it would be very helpful if you could record your screen when
>> using
>> > OmniDB so
>> > we can actually see the problem we are dealing with (including
>> > initialization).
>> >
>> > We are delivering a new version every

Re: Increible omnidb 2.4 y pgadmin 4 ver 2 parecen locomotoras antiguas frente el viejo phpPgAdmin que parece un ferrari

2017-12-12 Thread jvenegasperu .
Hola Rafael
Espero Jaime siga oficiando de traductor jeje

Rafael tranquilo Con OmniDb si estoy teniendo mejor experiencia que con
PgAdmin pero por tus comentarios puedo concluir lo siguiente:

PgAdmin es mas lento que omniDB porque me muestra todas las bases de datos
pudiendo recorrer todos los nodos de cualquiera de ellas en omni no solo
puedo revisar uno a la vez, si bien omni gana en velocidad para un usuario
acostumbrado a copiar y pegar codigo entre bases de datos de funciones,
triggers u otras cosas se vuelve incomodo tener que abrir una base de datos
a la vez ya que a veces se reutiliza codigo para otras cosas en otras base
de datos.
Se que el codigo lo podria tener guardado en un archivo *.sql y problema
resuelto pero digamos es una no se si buena o mala costumbre tener el
codigo a un clic

y ok Rafael tranquilo omniDB esta respondiendo bien la demora en las
funciones y otros objetos es por la cantidad de objetos a listar por
ejemplo la demora en las funciones es porque estoy revisando bases de datos
con postgis mas funciones mias creadas entre otras cosas y ahi hay mas de
1200 funciones.

ahora con respecto al sistema operativo en el que lo estoy probandolo es
windows 7 y windows 10 con una pc con 12 Gb de RAM y otra con solo 4 Gb de
RAM.

saludos

Jose

Espero te sirva la información que te doy disculpa que no pueda grabar la
pantalla

Saludos

2017-12-12 17:58 GMT-05:00 Jaime Casanova :

> On 12 December 2017 at 10:40, Rafael Castro
>  wrote:
> > Hello,
> >
> > I'm sorry to hear that your experience with OmniDB did not satisfy your
> > expectations
> > performance wise. Performance is our top priority during development and
> > there should
> > be no delay when using the interface.
> >
> > I see that the complaints are related to slowness of data fetching when
> > opening
> > nodes in the structure tree. A few mentions here:
> >
> > - When you open the first node, OmniDB fetches a lot of information about
> > your
> > database, which will be used along with all functionalities supported by
> the
> > tool.
> >
> > - There is an issue when opening the Sequences node, it fetches all data
> > from all
> > sequences, that is why you are experiencing slowness, this will be fixed
> in
> > the
> > next release.
> >
> > - Other than the two previous mentions, there should be no lag when
> handling
> > the
> > tree, the only delay would be the actual communication between the app
> and
> > the database
> > but if you using a local db the interface should respond very fast.
> >
> > In terms of initialization there isn't much to compare phppgadmin with
> > OmniDB because
> > the former is a web application to be used with a webserver running php.
> We
> > also offer
> > this option, you can run OmniDB with a webserver of your choice. You can
> > also
> > use OmniDB-server, that comes with its own webserver so you don't have to
> > worry
> > about installing any additional piece of software. Ultimately, you can
> use
> > the app
> > for a desktop experience, I'm guessing your complaints about
> initialization
> > are
> > related to this option.
> >
> > I would like to know more about your environment and tests. Could you
> please
> > share
> > with me the OS you are using?
> >
> > Also, it would be very helpful if you could record your screen when using
> > OmniDB so
> > we can actually see the problem we are dealing with (including
> > initialization).
> >
> > We are delivering a new version every 4 weeks, including new features and
> > bug fixes
> > in each release. If you are able to provide us the details and we verify
> > that there
> > is actually an issue we will fix that as soon as possible.
> >
>
> Traducción (libre) del correo de Rafael:
>
> """
> Hola,
>
> Me apena oir que tu experiencia con OmniDB no alcanzó tus expectativas
> en cuanto a rendimiento se refiere.
> Nuestra prioridad durante el desarrollo siempre va enfocado al
> rendimiento y no debería haber demoras en el uso de la interface.
>
> Puedo ver que las quejas están relacionadas con la lentitud en la
> obtención de datos al abrir nodos en el árbol de estructuras. Voy a
> mencionar algunos puntos aquí:
>
> - Cuando se abre el primer nodo, OmniDB debe obtener mucha información
> sobre su
> base de datos, que se usará con las funcionalidades soportadas por la
> herramienta.
>
> - Hay un problema al abrir el nodo Secuencias, pues recupera todos los
> datos de todas las
> secuencias, es por eso que estás experimentando lentitud, esto se
> solucionará en el
> próximo lanzamiento (release).
>
> - Aparte de las dos menciones anteriores, no debería haber demoras al
> manejar el
> árbol, la única demora sería la comunicación real entre la aplicación
> y la base de datos
> pero si usa una base de datos local, la interfaz debe responder muy rápido.
>
> En términos de inicialización, no hay mucho para comparar phppgadmin
> con OmniDB porque
> la primera es una aplicación web para ser 

Consulta SQL para Listar objetos de Postgres

2017-12-07 Thread jvenegasperu .
Buen dia a todos
Estoy buscando consultas select para listar objetos de postgres estos son
los que necesito:

Catalogs

Events Triggers

Estensions

Foreign Data Wrappers

Gracias por la ayuda

saludos

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


Mejorar velocidad de backup en postgres

2017-11-24 Thread jvenegasperu .
Hola a todos
buen dia

Tengo una base de datos pequeña 10 Gb aproximadamente

la bd contiene una tabla donde se almacenan fotografias esta tabla sola
pesa aproximadamente 3 gigas de imagenes. unas 30 mil imagenes.

al momento de hacer el backup con pg_dump se hace de manera veloz hasta
llegar a esta tabla donde se tarda aproximadamente 25 minutos en efectuar
el backup de esta tabla.

existe alguna manera de acelerar el proceso para el backup de esta tabla?

solo se le hizo un vacum full a la tabla antes de hacer el backup y tardo
25 minutos y aun sin haber efectuado el vacum tardo lo mismo.

estoy usando postgres 10.1 a 64 bits sobre windows server 2012r2

gracias por sus comentarios

Atte

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205


Re: pgMail 1.4 Released!

2017-11-16 Thread jvenegasperu .
Hola Gilberto buen dia
Bueno si hace un tiempo comentamos con asotolongo sobre esto del correo.

Bueno la extension que hizo anthony esta aqui:

https://github.com/asotolongo/pgsmtp

funciona con python 2

yo hice unas modificaciones a lo que hizo Anthony para que funcione con
pyhton 3.4 y la encuentras aqui:

https://github.com/thjack/pgsmtp_email_postgres

la extension funciona bien incluso enviando archivos adjuntos. ya tenemos
para escoger.

Me queda la duda el enlace que tu acabas de mandar requiere plpython
instalado? Me parece que si

saludos a todos

2017-11-16 10:25 GMT-05:00 Gilberto Castillo :

> Hola,
>
> Creo que hace poco se comento sobre este en la lista, no si si a todos
> llega esta notificación y se las reenvío.
>
>
>  Mensaje original 
> Asunto: [MASSMAIL][ANNOUNCE] pgMail 1.4 Released!
> De: "Branden R. Williams" 
> Fecha:  Jue, 16 de Noviembre de 2017, 10:16 am
> Para:   pgsql-hack...@lists.postgresql.org
> pgsql-annou...@postgresql.org
> --
>
> Greetings all!
>
> Just a quick note to let you know I have updated and released a new
> version of pgMail for the community. The last time I posted to this list
> was in 2001, but not too much has changed! This little package gets tons
> of downloads and seems to be very helpful for those who want to be able to
> send an email from within a database—say, for example, when an order moves
> from pending to Shipped.
>
> pgMail is simply a stored function written in TCL which takes 4 or 5
> arguments of type text (Who is it from, who is it to, subject, and body of
> plain text message, with an optional body of HTML text), contacts the
> email server via TCL sockets, and transmits your email.
>
> When used with triggers, pgMail can automagically send email when various
> columns in records are updated, rows are inserted, or even deleted.  For
> instance, if you run a e-commerce website, emails can be sent when product
> is ordered and/or shipped.
>
> This can be used for any setup where you might want to handle all email
> sending from the database layer if the application layer is mixed,
> firewalled, or possibly just slow.
>
> View and download this release at
> https://github.com/captbrando/pgMail/releases/tag/v1.4
> . Feel free to
> join the discussion and request/contribute features!
>
>
> CHANGELOG:
>
> v1.4 - pgMail now supports both HTML messaging and MULTIPART MIME
> messaging. It's backwards compatible. If you want to ONLY send HTML, you
> need to pass an empty string as your 4th argument. But why not just do
> both plain text & HTML? Thanks to Nicklas Aven for the idea and original
> patch! I changed his pull request a bit to avoid duplicate code.
>
> v1.3 - pgMail will now add a properly formatted Date header. This was
> particularly troubling for some Android users. Thanks to Nicklas Aven for
> the patch!
>
> v1.2 - pgMail now properly sends UTF-8 encoded emails. Thanks to Balazs
> Keresztury for the patch!
> - Fixed an issue whereby some servers would reject emails due to
> "Improper use of SMTP command pipelining." Now resolved.
> - Updated to use the Apache 2.0 license.
>
>
>
> Regards,
>
> Branden
>
>
>
>
>


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


Recorre select en memoria por cada registro de otra tabla

2017-11-11 Thread jvenegasperu .
Hola a todos buen dia

Me ha tocado elaborar una planilla de empleados y tengo esta situación

del sueldo de cada trabajador se efectua un descuento de acuerdo a la
empresa que le administra la pension tengo una tabla con los parametros a
usar en ese mes algo asi

periodo|empresa|comision|prima
201711|empresa1|10%|13%
201711|empresa2|11%|13%
201711|empresa3|14%|13%
201712|empresa1|15%|13%
201712|empresa2|12%|13%
201712|empresa3|12%|13%

pienso escribir una funcion que inserte en una tabla planilla el id del
trabajador y multiplique el sueldo por el porcentaje que le corresponda de
acuerdo a la empresa que tenga registrado.

entiendo que esta primera tabla la podre tener en un cursor asi:

OPEN cur FOR SELECT campo FROM tabla where periodo = '201711'

Mi pregunta es como recorro o consulto luego ese cursor pora cada
trabajador para tomar el porcentaje que le corresponda desde otro
cursor donde ire haciendo el insert y el calculo

José Mercedes Venegas Acevedo
cel Mov RPC 964185205
Member of the PHP Documentation Group (Spanish)


Clave de postgres

2017-11-06 Thread jvenegasperu .
Estimados amigos

me encuentro en un hospital y necesitamos acceder a un sistema hecho en
postgres pero no tenemos ningun usuario de acceso con los privilegios
solo tenemos un acceso de solo lectura a algunas tablas.

Existe forma de escalar los permisos de este usuario para poder acceder a
todas las tablas ya no tenemos forma de contactar al proveedor que hizo el
sistema.

Atte

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


Re: select excluyendo columnas

2017-10-26 Thread jvenegasperu .
Hola Hellmuth a lo que se refiere Frank creo yo es al hecho de que si haces
por ejemplo:

create view vista as
select * from tabla limit 1;

y luego miras el sql generado ya tendras tipeado todo el select y luego
quitas solo las columnas que no deseas al menos trabajando con pgadmin yo
lo hago asi siempre que tengo que tipear un monton de campos excepto dos o
tres mejor creo la vista y luego miro el sql generado lo copio y borro solo
los campos que no necesito quiza no la solución mas adecuada pero ayuda
bastante no se si en psql puedas ver la select que te genera la vista pero
trabajando con pgadmin yo lo hago asi. quiza tu preocupacion sea que
generar o usar la vista sea pesado pero el hecho es que la vista no la
usarias nunca es solo un truco para obtener el sql generado por eso te puse
el limit 1 al final.

saludos










El 26 de octubre de 2017, 10:43, Hellmuth Vargas 
escribió:

> Hola Frank
>
> Como son procesos temporales para validar y mover informacion no se
> justificaría crear vistas...
>
> El 26 de octubre de 2017, 10:31, frank cruzado
> escribió:
>
>> Lo único que creo que se acerca un poco a lo que necesitas es que generes
>> Vistas de esa tabla con las columnas que necesitas, dado a que no se pueden
>> excluir o crear una función que te genere la consulta donde reciba como
>> parámetro las columnas que quieres excluir.
>>
>> Saludos
>> Frank C.
>>
>> El 26 de octubre de 2017, 12:24, Ronald Viscarra <
>> ronald.visca...@gmail.com> escribió:
>>
>>> Hola,  tal vez te sirva este link: https://dba.stackexchange.com/
>>> questions/1957/sql-select-all-columns-except-some
>>>
>>> El 26 de octubre de 2017, 11:20, Hellmuth Vargas 
>>> escribió:
>>>
 bueno Alvaro ... gracias :'-(

 El 26 de octubre de 2017, 10:07, Alvaro Herrera escribió:

> Hellmuth Vargas escribió:
> > Hola Lista
> >
> > Últimamente he estado trabajando con tablas con cientos de columnas
> (bases
> > para poblar modelos) y al genera consultas aveces hay que excluir
> unos
> > pocos campos de la tablas, la pregunta que les quiero formular es si
> existe
> > algo como:
> >
> > SELECT a.* EXCEPT a.columa1,a.columna2..
> > FROM  tabla_con_muchas_columnas  AS a
>
> No, no hay ninguna forma de hacer eso :-(
>
> --
> Álvaro Herrerahttps://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>



 --
 Cordialmente,

 Ing. Hellmuth I. Vargas S.
 Esp. Telemática y Negocios por Internet
 Oracle Database 10g Administrator Certified Associate
 EnterpriseDB Certified PostgreSQL 9.3 Associate


>>>
>>>
>>> --
>>> Atte. Ronald Viscarra
>>>
>>
>>
>
>
> --
> Cordialmente,
>
> Ing. Hellmuth I. Vargas S.
> Esp. Telemática y Negocios por Internet
> Oracle Database 10g Administrator Certified Associate
> EnterpriseDB Certified PostgreSQL 9.3 Associate
>
>


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


Re: Crear campo en todas las tablas

2017-10-22 Thread jvenegasperu .
Gracias Anthony

funciono perfecto probado con postgres 9.5 todo bien. me ahorraste la tarde
jejeje.

El 22 de octubre de 2017, 8:34, Anthony Sotolongo <asotolo...@gmail.com>
escribió:

> Hola, una vez tuve que hacer algo similar de agregar el mismo campo a
> muchas tablas y lo resolví con una función que me cree, donde le pasaba el
> esquema, el nombre del atributo y el tipo de dato, recorría mis tablas y
> bum 'add column':
>
> select agregar_atributo('esquema', 'nuevo', 'timestamp');
>
>
> CREATE OR REPLACE FUNCTION agregar_atributo(esquema text, atributo text,
> tipo text)
>   RETURNS integer AS
> $BODY$
>  DECLARE
>  tabla text;
>  comando text;
>
>  cantidad int :=0;
>  flag boolean:=true;
>  BEGIN
>  FOR tabla IN SELECT ns.nspname||'.'|| pg.relname as tb FROM pg_class
> pg join pg_namespace ns  on (pg.relnamespace = ns.oid)
> where pg.relkind='r' and ns.nspname=$1   LOOP
>  comando:='ALTER TABLE  IF EXISTS '|| tabla ||' add  COLUMN '||
> atributo ||' '|| tipo || ' ;' ;
>
>  BEGIN
>RAISE NOTICE 'Ejecutando  % ', comando;
>EXECUTE comando;
>EXCEPTION
>
>WHEN OTHERS THEN
>
>RAISE notice 'Error en tabla %', tabla;
>flag:=false;
>
>
>END;
>   if flag=true then
>cantidad:=cantidad+1;
>   end if;
> flag:=true;
>
> END LOOP;
>
> return cantidad;
>  END;
>  $BODY$
>   LANGUAGE plpgsql ;
>
>
>
> On 22/10/17 09:53, jvenegasperu . wrote:
>
>> Buen día todos
>> Hoy se me presento este caso que necesito agregar un campo a todas las
>> tablas son como 300 tablas así que supongo habra alguna forma con algún
>> script alguien que me pueda ayudar con esto
>>
>
>


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


Crear campo en todas las tablas

2017-10-22 Thread jvenegasperu .
Buen día todos
Hoy se me presento este caso que necesito agregar un campo a todas las
tablas son como 300 tablas así que supongo habra alguna forma con algún
script alguien que me pueda ayudar con esto


Ayuda Extension de Correo y ver schema en PgAdmin 4

2017-09-26 Thread jvenegasperu .
Hola a todos buen dia

Tuve necesidad de enviar correo directamente desde postgres asi que revise
la extensión de Anthony Sotolongo aqui:

https://github.com/asotolongo/pgsmtp

Pero era para python 2.x La modifique para que pueda funcionar con python
3.4 y esta disponible aqui

https://github.com/thjack/pgsmtp_email_postgres

Esta funcionando pero y aqui viene la consulta por alguna razon la primera
instruccion de la extencion

CREATE SCHEMA pgsmtp

A pesar de que se ejecuta sin problemas no puedo ver el schema desde
pgadmin alguien sabe porque?

tambien intente colocando

create schema pgsmtp AUTHORIZATION postgres;

pero tampoco funciono es decir se crea el schema pero no se visualiza en
PgAdmin 4 asi que bueno lo que hice fue

1.- crear manualmente primero el schema en pgadmin
2.- comentar la primera linea del archivo pgsmtppy3--0.1.1.sql

3.- ejecutar

create extension pgsmtppy3;

y luego probar como en el archivo del ejemplo de uso

Que piensan ustedes sera una falla de pgadmin 4 o como debo escribir esa
primera instruccion para que pueda visualizarse el schema.

Por otro lado a la extension le faltan las validaciones es decir que pasa
si no incluyes destinatarios de copia oculta o copia publica que mensajes
de error se deben mostrar.

Aclaro que es la primera vez que escribo algo en python y sin revisar
documentacion pase directamente a ir copiando partes de codigo que encontre
googleando reemplazando el codigo de Anthony porque por aqui los jefes
quieren las cosas para ayer asi que no esperen mucho jejeje

PD Solo probe con postgres 10 beta 4 a 64 bits sobre windows 7 de 64 bits
con los instaladores de EDB.

saludos


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


Libre
de virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>


extension para smtp

2017-09-21 Thread jvenegasperu .
Buen dia a todos

Anthony, se que estas en esta lista veras descargue los archivos de tu
extension pgsmtp queria hacer pruebas de envio de correo con postgres 10
beta 4 en windows.

agregue tus archivos a la carpeta y ejecute

CREATE EXTENSION pgsmtp;

Pero obtengo este error

ERROR: no se pudo compilar la función PL/Python «pg_smtp_mail» DETAIL:
SyntaxError: invalid syntax (, line 38) ** Error **
ERROR: no se pudo compilar la función PL/Python «pg_smtp_mail» SQL state:
38000 Detail: SyntaxError: invalid syntax (, line 38)

Lo unico que hice fue modificar el codigo de tus funciones la palabra
plpythonu por plpython3u ya que postgres 10 segun vi trabaja con python 3.4
bueno yo estoy usando los instaladores de EDB.

Entiendo que la extension la hiciste para Postgres 9.3 y python2 queria
consultarte si has actualizado la extension o podrias actualizarla para
poder usarla en postgres 10.

o quiza alguien mas que sepa como enviar correos desde postgres de alguna
otra forma, o arreglar este error que me esta apareciendo.



José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


Cambiar la encriptacion de clave de usuarios en postgres

2017-09-13 Thread jvenegasperu .
Buen dia a todos

Mi consulta es la siguiente de que manera puedo cambiar la forma como
encripta postgres la clave de los usuarios

si reviso con pgadmin los usuarios tengo esto:

CREATE ROLE usuario LOGIN

  ENCRYPTED PASSWORD 'md5251d4f66cf397018944fa0d3ab41a819'
  NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

Segun la doc esto es MD5. En el sistema que utilizo tengo una tabla de
usuarios que se corresponde con cada usuario creado a nivel de base de
datos en el servidor postgres, pero resulta que ahora debido a que
supuestamente MD5 ya no es tan seguro como antes me han pedido que la
encriptacion de la clave de usuarios sea alguno de estos:

SHA1, SHA256, SHA512

En mi caso tengo una pantalla para crear los usuarios y cada vez que se
graba un registro en la tabla se dispara un trigger que crea el usuario
como un rol de postgres con su respectiva clave

Esto es asi ya que en algunos casos uso la tabla de base de datos para
validar el usuario y en otros casos uso directamente el usuario de base de
datos como cuando uso QGIS.

SI bien las claves estan encriptadas con MD5 quisiera saber con que
instruccion puedo crear el usuario indicando que el metodo de encriptacion
es por ejemplo SHA1 o algun otro y ya no usar MD5.

Atte

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


Conceptos similares a Oracle en postgres

2017-09-12 Thread jvenegasperu .
Hola a todos

encontre este interesante video en youtube

https://www.youtube.com/watch?v=M3q_iztQcu0

donde se habla de optimizar y escribir correctamente sentencias SQL en
oracle

y se habla de result_cache y variables bind entre otros conceptos
interesantes.

espero alguien pueda referirme un material similar para postgres en español

saludos y gracias por su tiempo.

Atte

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


tamaño de registro en Base de datos

2017-09-04 Thread jvenegasperu .
Hola todos buen dia

Tengo una base de datos donde los usuarios ingresan fotografias con
smartphones y en algunos casos las fotos pesan 4 o 5 Megas pero en realidad
es suficiente con la misma foto pero mas pequeña. digamos de unos 400 KB. y
no es funcional pedirles a los usuarios que usen una configuracion mas baja
y no tengo acceso a la aplicacion de donde se recibe la información, asi
que en este caso lo que hago es barrer periodicamente la base de datos
extrayendo la foto de la base de datos redimensionandola y volviendo a
guardar la imagen actualizando el campo en la BD hasta ahi todo bien.

Pero hace unos dias la actividad programada dejo de funcionar por un tema
de permisos que ya se han restablecido pero me nace la pregunta como puedo
saber en postgres cuanto pesa un registro o un campo de la base de datos.
asi podria verificar en que numero de registro se queda la actualización
del campo imagen y continuar a partir de ahi.

Es posible efectuar algo como select numero_registro from tabla where
campo_imagen > tamanio_imagen? con alguna función o alguna idea de como se
podria hacer esto? el campo_imagen es un campo de tipo blob.

saludos y gracias por las soluciones o comentarios que puedan brindarme

Atte

-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


Re: Postgres 10 sobre windows

2017-08-02 Thread jvenegasperu .
Maximi gracias por el dato probé el instalador de EDB y si funciono bien ya
probé postgres 10 beta 2 la funcionalidad de paralelismo anda bien aunque
solo probé con 200 mil registros.

El instalador de EDB usa vcredist 2013 y el de 2UDA tiene vcredist 2015
pero este ultimo me dio problemas al instalar probare en casa con otro
equipo haber como anda.

A propósito si alguien tiene contacto con los que desarrollan PgAdmin de lo
bien que ahora si pensaba recomendarlo resulta que quise buscar un script
para llenar una tabla de prueba como lo hacia en pgadmin 3 pero la query
tool de PgAdmin 4 no tiene buscador de archivos y creo que es una
funcionalidad super básica haber si le agregan esa funcionalidad.

saludos a todos


El 2 de agosto de 2017, 10:25, Maximi89 <maxim...@gmail.com> escribió:

> Hola, encontré esto:
>
> https://www.postgresql.org/download/snapshots/
>
> Dentro de la página anterior llegué al instalador de Windows 10:
>
> https://www.enterprisedb.com/products-services-training/pgdevdownload
>
> El 2 de agosto de 2017, 11:22, Anthony Sotolongo <asotolo...@gmail.com>
> escribió:
>
>> Hola Jose, la 9.6 también tiene funcionalidades de paralelismo, aunque en
>> la 10 seguro está mucho mejor ;-)
>>
>>- https://www.postgresql.org/docs/9.6/static/release-9-6.html
>>- https://wiki.postgresql.org/wiki/NewIn96#Parallel_Query
>>
>>
>> Que con eso de la 9.6 puedes mostrar algo para el curso que haces, pues
>> la verdad la version 10 beta de PG solo la visto para windows anunciada en
>> 2uda beta , que es una solución de 2ndquadrant (
>> https://www.2ndquadrant.com/en/resources/2uda/), y  creo que dentro de
>> esa solución este el PG 10 beta para windows, prueba y nos comentas si
>> pudiste instalar para windows la 10 beta.
>>
>>
>>
>> Saludos
>>
>> On 02/08/17 10:55, jvenegasperu . wrote:
>>
>> Hola buen dia a todos
>>
>> Estoy grabando un curso online de postgres sobre windows
>>
>> Aparecio un pequeño grupo de interesados
>>
>> Estoy grabando con PgAdmin4 revision 1.6 porque las anteriores son un
>> desastre jeje bueno esta revision si bien en la carga inicial tarda un
>> poquitin de ahi en adelante la experiencia es bastante agradable creo que
>> ahora si "la hicieron linda" como decimos por aqui por si alguien lo quiere
>> probar.
>>
>> Y la versión de postgres con la estoy grabando el curso es 9.6.3 pero
>> revise el wiki de postgres e indica que en la versión 10 es posible
>> trabajar en paralelo como se menciona en el siguiente link
>>
>> https://wiki.postgresql.org/wiki/New_in_postgres_10#Addition
>> al_Parallelism
>>
>> Bueno me gustaria grabar una leccion haciendo consultas mostrando esta
>> caracteristica que esta super interesante pero no encuentro algun
>> instalador postgres 10 para windows como es solo demostrativo para el curso
>> me vale el beta
>>
>> Asi queria preguntar si alguien sabe de algun instalador de Postgres 10
>> para windows aunque sea no oficial solo para mostrar la caracteristica es
>> que los jovenes estan entusiasmados y creo que con esa caracteristica sera
>> amor a primera vista jajaja
>>
>> Yo debo tener el curso listo para el 26 de agosto y ojala se pueda ya
>> mostrar esa caracteristica de postgres aunque siempre he leido que windows
>> maneja de forma distinta los procesos a linux y quiza esa caracteristica
>> tarde en llegar a windows si alguien sabe algo sobre este tema le
>> agradecere sus comentarios
>>
>> saludos a todos
>>
>>
>> --
>> José Mercedes Venegas Acevedo
>> cel Mov RPC 964185205
>>
>> Member of the PHP Documentation Group (Spanish)
>>
>>
>>
>
>
> --
> Maximiliano Augusto Castañón Araneda
> Santiago, Chile
> Linux user # 394821
>
> Entel: +56998913632
>



-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


Re: Postgres 10 sobre windows

2017-08-02 Thread jvenegasperu .
Hola Anthony

tienes razon pg 9.6 ya lo tiene solo que buscaba un ejemplo para poner la
instrucción del paralelismo dentro del select

como oracle hace por ejemplo con sus indices /* + INDEX (nombre_indice) */
que por cierto hasta ahora no se como hacer esto en postgres.

bueno volviendo a lo de postgres 10 y windows 10 veras descargue e intente
instalar 2UDA de 2nd Quadrant pero no tuve exito en la instalación creo que
el problema se debe a que ya tengo instalado una versión de vcredist 2015 y
no lo puedo quitar por que lo uso en otros programas

adjunto la captura de pantalla haber si alguien de 2UDA anda por aqui le
hecha un ojo para mejorar el instalador

saludos



El 2 de agosto de 2017, 10:22, Anthony Sotolongo <asotolo...@gmail.com>
escribió:

> Hola Jose, la 9.6 también tiene funcionalidades de paralelismo, aunque en
> la 10 seguro está mucho mejor ;-)
>
>- https://www.postgresql.org/docs/9.6/static/release-9-6.html
>- https://wiki.postgresql.org/wiki/NewIn96#Parallel_Query
>
>
> Que con eso de la 9.6 puedes mostrar algo para el curso que haces, pues la
> verdad la version 10 beta de PG solo la visto para windows anunciada en
> 2uda beta , que es una solución de 2ndquadrant (
> https://www.2ndquadrant.com/en/resources/2uda/), y  creo que dentro de
> esa solución este el PG 10 beta para windows, prueba y nos comentas si
> pudiste instalar para windows la 10 beta.
>
>
>
> Saludos
>
> On 02/08/17 10:55, jvenegasperu . wrote:
>
> Hola buen dia a todos
>
> Estoy grabando un curso online de postgres sobre windows
>
> Aparecio un pequeño grupo de interesados
>
> Estoy grabando con PgAdmin4 revision 1.6 porque las anteriores son un
> desastre jeje bueno esta revision si bien en la carga inicial tarda un
> poquitin de ahi en adelante la experiencia es bastante agradable creo que
> ahora si "la hicieron linda" como decimos por aqui por si alguien lo quiere
> probar.
>
> Y la versión de postgres con la estoy grabando el curso es 9.6.3 pero
> revise el wiki de postgres e indica que en la versión 10 es posible
> trabajar en paralelo como se menciona en el siguiente link
>
> https://wiki.postgresql.org/wiki/New_in_postgres_10#Additional_Parallelism
>
> Bueno me gustaria grabar una leccion haciendo consultas mostrando esta
> caracteristica que esta super interesante pero no encuentro algun
> instalador postgres 10 para windows como es solo demostrativo para el curso
> me vale el beta
>
> Asi queria preguntar si alguien sabe de algun instalador de Postgres 10
> para windows aunque sea no oficial solo para mostrar la caracteristica es
> que los jovenes estan entusiasmados y creo que con esa caracteristica sera
> amor a primera vista jajaja
>
> Yo debo tener el curso listo para el 26 de agosto y ojala se pueda ya
> mostrar esa caracteristica de postgres aunque siempre he leido que windows
> maneja de forma distinta los procesos a linux y quiza esa caracteristica
> tarde en llegar a windows si alguien sabe algo sobre este tema le
> agradecere sus comentarios
>
> saludos a todos
>
>
> --
> José Mercedes Venegas Acevedo
> cel Mov RPC 964185205
>
> Member of the PHP Documentation Group (Spanish)
>
>
>


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)


Postgres 10 sobre windows

2017-08-02 Thread jvenegasperu .
Hola buen dia a todos

Estoy grabando un curso online de postgres sobre windows

Aparecio un pequeño grupo de interesados

Estoy grabando con PgAdmin4 revision 1.6 porque las anteriores son un
desastre jeje bueno esta revision si bien en la carga inicial tarda un
poquitin de ahi en adelante la experiencia es bastante agradable creo que
ahora si "la hicieron linda" como decimos por aqui por si alguien lo quiere
probar.

Y la versión de postgres con la estoy grabando el curso es 9.6.3 pero
revise el wiki de postgres e indica que en la versión 10 es posible
trabajar en paralelo como se menciona en el siguiente link

https://wiki.postgresql.org/wiki/New_in_postgres_10#Additional_Parallelism

Bueno me gustaria grabar una leccion haciendo consultas mostrando esta
caracteristica que esta super interesante pero no encuentro algun
instalador postgres 10 para windows como es solo demostrativo para el curso
me vale el beta

Asi queria preguntar si alguien sabe de algun instalador de Postgres 10
para windows aunque sea no oficial solo para mostrar la caracteristica es
que los jovenes estan entusiasmados y creo que con esa caracteristica sera
amor a primera vista jajaja

Yo debo tener el curso listo para el 26 de agosto y ojala se pueda ya
mostrar esa caracteristica de postgres aunque siempre he leido que windows
maneja de forma distinta los procesos a linux y quiza esa caracteristica
tarde en llegar a windows si alguien sabe algo sobre este tema le
agradecere sus comentarios

saludos a todos


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)