Re: Transformar un procedimiento Firebird a PostgreSQL

2019-05-31 Thread José Vicente Zahonero García
Gracias, pero podríais ponerme un ejemplo del uso de esas funciones, no las he 
usado nunca. Gracias. Saludos.


De: Anthony Sotolongo 
Enviat: divendres, 31 de maig de 2019 18:20
A: Lautaro Palamidessi; José Vicente Zahonero García
A/c: pgsql-es-ay...@postgresql.org
Tema: Re: Transformar un procedimiento Firebird a PostgreSQL

Hola José, coincido con Lautaro evalúa el uso de la función ventana LAG o LEAD, 
en dependencia del criterio de ordenamiento que requieras y tal vez ni 
necesites un hacer un procedimiento para eso, solo con la consulta podrás 
obtenerlo.


Saludos

El 31-05-19 a las 11:36, Lautaro Palamidessi escribió:
Buen dia, usa la funcionalidad LAG de las window functions:  
https://www.postgresql.org/docs/current/functions-window.html

Saludos

El vie., 31 may. 2019 a las 12:22, José Vicente Zahonero García 
(mailto:joviz...@hotmail.com>>) escribió:
Hola de nuevo, tengo un procedimiento en Firebird que recorre una tabla 
comparando un registro con el inmediatamente posterior y que devuelve la mayor 
diferencia entre dos registros consecutivos. No sé como implementarlo  en 
PostgreSQL. ¿Puede alguien echarme una mano?. Gracias.


CREATE OR ALTER PROCEDURE DIAS_SIN RETURNS (
"RESULT" INTEGER
)
AS
DECLARE VARIABLE AUX INTEGER;
BEGIN
  AUX= 0;
  RESULT = 0;
  FOR
SELECT max(DATEDIFF(DAY FROM DT2.FECHA TO DT1.FECHA))
  FROM DATOS DT1, DATOS DT2
  WHERE DT1.SALIDA_NUM = DT2.SALIDA_NUM + 1
INTO :AUX
  DO
IF(AUX > RESULT) THEN RESULT = AUX;
  SUSPEND;
END



--

[logo conexia]

Lautaro Palamidessi
Consultor Técnico DBA
T: +5411 5173 6159

[facebook conexia] [twitter conexia] 
  [linkedin conexia]   
www.conexia.com



[http://conexia.com/imgfirma/legales.jpg]






Re: POSTGRES autovacumm launcher postgres

2019-05-31 Thread Alvaro Herrera
FLOR AVILA ELIAS escribió:
> Gracias por tu pronta ayuda, pero no entiendo bien lo del DDL, cuando doy
> el comando esto es todo lo que sale:
> Puedes guiarme que debo hacer?.

Los procesos que tienen estado D están esperando I/O (acceso a disco).
Creo que deberías investigar qué consulta está ejecutando cada uno de
esos procesos y quizás optimizarla(s).  Claramente autovacuum también está
usando I/O.  Quizás simplemente tu disco está muriendo (¿miraste el
dmesg? mensajes de smart?), o si es NFS tuviste un problema de red, etc.

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




Re: POSTGRES autovacumm launcher postgres

2019-05-31 Thread FLOR AVILA ELIAS
Gracias por tu pronta ayuda, pero no entiendo bien lo del DDL, cuando doy
el comando esto es todo lo que sale:
Puedes guiarme que debo hacer?.

Gracias


[root@oip-20 ~]# ps aux | grep postgres
postgres  2630  0.0  0.2 1301840 11024 ?   S12:00   0:00
/usr/pgsql-9.3/bin/postmaster -p 5433 -D /var/lib/pgsql/9.3/data
postgres  2632  0.0  0.0 177544   556 ?Ds   12:00   0:01 postgres:
logger process
postgres  3388  0.0  0.6 1304392 24624 ?   Ds   12:01   0:00 postgres:
checkpointer process
postgres  3389  0.0  0.0 1302344 1420 ?Ss   12:01   0:00 postgres:
writer process
postgres  3390  0.0  0.0 1302344 2644 ?Ds   12:01   0:00 postgres:
wal writer process
postgres  3391  0.0  0.0 1303304 1048 ?Ss   12:01   0:00 postgres:
autovacuum launcher process
postgres  3392  0.0  0.0 180716  1416 ?Ss   12:01   0:00 postgres:
stats collector process
postgres  3394  0.0  3.1 1405792 121504 ?  Ds   12:01   0:02 postgres:
postgres gpnext localhost.localdomain(33682) SELECT
postgres  3406  0.0  3.7 1403244 145736 ?  Ds   12:01   0:02 postgres:
postgres gpnext localhost.localdomain(33746) SELECT
postgres  3409  0.0  3.3 1401568 129172 ?  Ds   12:01   0:02 postgres:
postgres gpnext localhost.localdomain(33764) SELECT
postgres  3415  0.1  2.4 1377016 97624 ?   Ds   12:01   0:04 postgres:
postgres gpnext localhost.localdomain(33802) SELECT
postgres  3416  0.0  2.9 1383152 115820 ?  Ds   12:01   0:02 postgres:
postgres gpnext localhost.localdomain(33812) SELECT
postgres  3422  0.1  3.6 1403568 140900 ?  Ds   12:01   0:04 postgres:
postgres gpnext localhost.localdomain(33832) SELECT
postgres  3423  0.0  2.7 1377372 108304 ?  Ss   12:01   0:03 postgres:
postgres gpnext localhost.localdomain(33834) idle
postgres  3430  0.1  4.3 1419668 169652 ?  Ds   12:01   0:04 postgres:
postgres gpnext localhost.localdomain(33856) SELECT
postgres  3433  0.1  3.3 1405848 129904 ?  Ds   12:01   0:05 postgres:
postgres gpnext localhost.localdomain(33866) SELECT
postgres  3442  0.1  3.6 1417892 140696 ?  Ds   12:01   0:05 postgres:
postgres gpnext localhost.localdomain(33876) SELECT
postgres  3445  0.1  2.8 1374556 111248 ?  Ds   12:01   0:04 postgres:
postgres gpnext localhost.localdomain(33888) SELECT
postgres  3447  0.0  4.0 1429364 159596 ?  Ds   12:01   0:03 postgres:
postgres gpnext localhost.localdomain(33900) SELECT
postgres  3449  0.1  3.4 1403396 136304 ?  Ds   12:01   0:03 postgres:
postgres gpnext localhost.localdomain(33910) SELECT
postgres  3471  0.0  3.4 1403680 133880 ?  Ds   12:01   0:03 postgres:
postgres gpnext localhost.localdomain(33954) SELECT
postgres  3479  0.0  3.3 1403264 129808 ?  Ds   12:01   0:03 postgres:
postgres gpnext localhost.localdomain(33984) SELECT
postgres  3481  0.1  4.2 1401164 164788 ?  Ds   12:01   0:04 postgres:
postgres gpnext localhost.localdomain(33988) SELECT
postgres  3646  0.0  0.1 1324888 7304 ?Ss   12:02   0:01 postgres:
autovacuum worker process   gpnext
postgres  3647  0.1  3.2 1403684 125364 ?  Ds   12:02   0:04 postgres:
postgres gpnext localhost.localdomain(34454) SELECT
postgres  3655  0.0  0.1 1341960 7344 ?Ds   12:02   0:01 postgres:
autovacuum worker process   gpnext
postgres  3658  0.0  3.0 1403552 119376 ?  Ds   12:02   0:02 postgres:
postgres gpnext localhost.localdomain(34526) SELECT
postgres  3661  0.0  2.8 1383520 111964 ?  Ds   12:02   0:03 postgres:
postgres gpnext localhost.localdomain(34536) SELECT
postgres  3662  0.1  3.7 1405896 146504 ?  Ds   12:02   0:05 postgres:
postgres gpnext localhost.localdomain(34540) SELECT
postgres  3663  0.0  2.7 1375332 108640 ?  Ds   12:02   0:03 postgres:
postgres gpnext localhost.localdomain(34546) SELECT
postgres  3667  0.0  2.6 1401400 102876 ?  Ds   12:02   0:01 postgres:
postgres gpnext localhost.localdomain(34558) SELECT
postgres  3668  0.0  0.1 1320384 7584 ?Ss   12:02   0:01 postgres:
autovacuum worker process   gpnext
postgres  3674  0.0  2.8 1374464 112084 ?  Ds   12:02   0:03 postgres:
postgres gpnext localhost.localdomain(34562) SELECT
postgres  3755  0.0  3.5 1403228 139588 ?  Ds   12:03   0:03 postgres:
postgres gpnext localhost.localdomain(34806) SELECT
postgres  5732  0.1  4.2 1364576 167372 ?  Ds   12:31   0:03 postgres:
postgres gpnext localhost.localdomain(40192) SELECT
postgres  5779  0.0  3.4 1362928 136200 ?  Ds   12:32   0:01 postgres:
postgres gpnext localhost.localdomain(40260) SELECT
postgres  5780  0.1  4.0 1420668 157120 ?  Ds   12:32   0:02 postgres:
postgres gpnext localhost.localdomain(40270) SELECT
postgres  5781  0.0  3.3 1411164 130712 ?  Ds   12:32   0:01 postgres:
postgres gpnext localhost.localdomain(40272) SELECT
postgres  5783  0.1  4.2 1365316 166340 ?  Ds   12:32   0:03 postgres:
postgres gpnext localhost.localdomain(40278) SELECT
postgres  5784  0.1  4.6 1410944 182732 ?  Ds   12:32   0:03 postgres:
postgres gpnext 

POSTGRES autovacumm launcher postgres

2019-05-31 Thread FLOR AVILA ELIAS
Buenas tardes,
Quisiera sus comentarios, cada fin de mes sin aparente motivo toda la
plataforma que tenemos y que usa postgres deja de estar operativo o mejor
dicho funciona y deja de funcionar, pensamos que eran reportes pero hoy
note que cuando doy ps aux | grep postgres sale lo que muestro lineas
abajo, el que aparece resaltado me llama la atencion porque es autovacumm
laucher process, podrian indicar cuando se ejecuta este y si el podria ser
el que hace mi base de datos deje de operar?, de ser asi como cancelo ese
proceso?

postgres  2630  0.0  0.3 1301840 12792 ?   S12:00   0:00
/usr/pgsql-9.3/bin/postmaster -p 5433 -D /var/lib/pgsql/9.3/data
postgres  2632  0.0  0.0 177544   608 ?Ss   12:00   0:00 postgres:
logger process
postgres  3388  0.0  0.6 1304392 24648 ?   Ss   12:01   0:00 postgres:
checkpointer process
postgres  3389  0.0  0.0 1302344 1476 ?Ss   12:01   0:00 postgres:
writer process
postgres  3390  0.0  0.2 1302344 7940 ?Ds   12:01   0:00 postgres:
wal writer process
postgres  3391  0.0  0.0 1303304 1100 ?Ss   12:01   0:00 postgres:
autovacuum launcher process
postgres  3392  0.0  0.0 180716  1424 ?Ss   12:01   0:00 postgres:
stats collector process
postgres  3393  0.1  3.2 1392668 128012 ?  Ds   12:01   0:01 postgres:
postgres gpnext localhost.localdomain(33652) SELECT
postgres  3394  0.0  1.9 1357872 75360 ?   Ss   12:01   0:01 postgres:
postgres gpnext localhost.localdomain(33682) idle
postgres  3396  0.1  1.9 1380628 75936 ?   Ss   12:01   0:01 postgres:
pos

*Flor de María A. Avila Elias*
*Gerente de Operaciones y Desarrollo*
*Telef.: + 51 1 277-2172*
*Móvil : + 51 989589647*
*Calle Martín de Murua 150 Oficina 808 - San Miguel*
*Facebook: fav...@ditelgroup.com *
*www.gepesat.com *
NOTA DE CONFIDENCIALIDAD La información contenida en este correo es
privilegiada, confidencial y solo de interés para el destinatario. La
lectura, difusión, distribución o copia de este correo está prohibida. Si
usted no es el destinatario legítimo del mismo, por favor repórtelo
inmediatamente al remitente del correo y bórrelo

CONFIDENTIALITY NOTE The information contained in this e-mail is privileged
and confidential and is intended only for its addressee. Any review,
dissemination, distribution or copying of this e-mail is prohibited. If you
have received it in error please delete the original message and e-mail us.


Re: QUERYS PENDIENTES SE REINICIAN

2019-05-31 Thread raul andrez gutierrez alejo
Hola flor.

PostgreSQL no ejecuta nuevamente la consulta, el job a plicacion ejecutivo
nuevamente la consulta.

Con un Select * from pg_stat_activity puede saber la IP de quien ejecuta la
query.

El vie., 31 may. 2019, 11:53 a. m., FLOR AVILA ELIAS 
escribió:

> Buenos dias tengo un servidor Centos 5 con postgres 9.3 que necesito matar
> su query pero definitivamente, porque a pesar que los mato con select
> pg_cancel_backend(PID) vuelve a tratar de ejecutarse.
>
> Gracias Flor
>
>


QUERYS PENDIENTES SE REINICIAN

2019-05-31 Thread FLOR AVILA ELIAS
Buenos dias tengo un servidor Centos 5 con postgres 9.3 que necesito matar
su query pero definitivamente, porque a pesar que los mato con select
pg_cancel_backend(PID) vuelve a tratar de ejecutarse.

Gracias Flor


Re: Transformar un procedimiento Firebird a PostgreSQL

2019-05-31 Thread Anthony Sotolongo
Hola José, coincido con Lautaro evalúa el uso de la función ventana LAG 
o LEAD, en dependencia del criterio de ordenamiento que requieras y tal 
vez ni necesites un hacer un procedimiento para eso, solo con la 
consulta podrás obtenerlo.



Saludos

El 31-05-19 a las 11:36, Lautaro Palamidessi escribió:
Buen dia, usa la funcionalidad LAG de las window functions: 
https://www.postgresql.org/docs/current/functions-window.html


Saludos

El vie., 31 may. 2019 a las 12:22, José Vicente Zahonero García 
(mailto:joviz...@hotmail.com>>) escribió:


Hola de nuevo, tengo un procedimiento en Firebird que recorre una
tabla comparando un registro con el inmediatamente posterior y que
devuelve la mayor diferencia entre dos registros consecutivos. No
sé como implementarlo  en PostgreSQL. ¿Puede alguien echarme una
mano?. Gracias.


CREATE OR ALTER PROCEDURE DIAS_SIN RETURNS (
        "RESULT" INTEGER
)
AS
DECLARE VARIABLE AUX INTEGER;
BEGIN
  AUX    = 0;
  RESULT = 0;
  FOR
    SELECT max(DATEDIFF(DAY FROM DT2.FECHA TO DT1.FECHA))
  FROM DATOS DT1, DATOS DT2
  WHERE DT1.SALIDA_NUM = DT2.SALIDA_NUM + 1
    INTO :AUX
  DO
    IF(AUX > RESULT) THEN RESULT = AUX;
  SUSPEND;
END



--

logo conexia 



*Lautaro Palamidessi*
Consultor Técnico DBA
*T:* +5411 5173 6159

facebook conexia  twitter conexia 
 linkedin conexia  
www.conexia.com 


line







Re: Particionamiento de tablas postgresql 11

2019-05-31 Thread Anthony Sotolongo
Hola, el particionamiento antiguo aun se mantiene vigente en las 
versiones 10 y 11, no es que pusieron este nuevo y quitaron el otro, los 
dos conviven, seleccionas uno u otro, imagino que si usas pg_upgrade te 
lo migrará el particionado  tal cual está en el 9.6, nunca he tenido la 
oportunidad de hacerlo, tampoco he visto algo al respecto en la 
documentación :/  (que me corrijan esto)



Creo que para aplicar el nuevo mecanismo de particionado vas a tener que 
reescribirlo tu mismo en el 11, unas pistas de como hacerlo


https://postgresrocks.enterprisedb.com/t5/Postgres-Gems/Upgrade-your-partitioning-from-inheritance-to-declarative/ba-p/1513

Saludos


El 31-05-19 a las 11:51, Carlos T. Groero Carmona escribió:

Anthony muy buena documentacion.

Tengo una duda sobre como se podria ver affectado el particionamiento 
de tablas si se hace un pg_upgrade desde la version 9.6 a la 11.


Alguien ha migrado de la version 9.6 a la 11 y ha tenido problemas con 
el particionamiento declarado hasta ese punto?


Se ha tenido que eliminar el particionamiento y crear nuevamente?

O se han seguido usando el mismo particionamiento utilizado en la 
version 9.6?



Gracias,
Carlos

On Fri, May 31, 2019, 5:52 AM Luis Martínez 
> wrote:


GRACIAS!  Voy a revisarlos


El jue 30/05/2019, 11:28 p.m., Anthony Sotolongo
mailto:asotolo...@gmail.com>> escribió:

Hola Luis, desde la versión 10 se agregó el particionado
declarativo y en la 11 se mejoraron otros aspectos como el
particionado por hash , asuntos de rendimientos entre otros,
los cuales puedes ver en los siguientes links

La documentación oficial:

https://www.postgresql.org/docs/11/ddl-partitioning.html#DDL-PARTITIONING-DECLARATIVE

Un blog de Álvaro que leí hace un tiempo atrás:
https://www.2ndquadrant.com/en/blog/partitioning-improvements-pg11/


Saludos



El jue., 30 de may. de 2019 10:57 p. m., Luis Martínez
mailto:luisedgardomartinezlina...@gmail.com>> escribió:

Buenas noches lista. Saludos a todos y de ante manos
muchas gracias por este canal ayuda que esta muy bueno.
Mi inquietud es que voy a montar una aplicación que va a
tener tablas con muchos millones de registros y quisiera
usar el particionamiento de tablas de postrgresql-11 y no
se que tan maduro esta esto con esta nueva versión ya que
en las anteriores había que usar reglas o triggers para
lograr lo querido. Si tienes algunas referencias para
documentarme como hacerlas y si es posible particionar una
tabla hija??.

Gracias nuevamente por su tiempo.



Re: Particionamiento de tablas postgresql 11

2019-05-31 Thread Carlos T. Groero Carmona
Anthony muy buena documentacion.

Tengo una duda sobre como se podria ver affectado el particionamiento de
tablas si se hace un pg_upgrade desde la version 9.6 a la 11.

Alguien ha migrado de la version 9.6 a la 11 y ha tenido problemas con el
particionamiento declarado hasta ese punto?

Se ha tenido que eliminar el particionamiento y crear nuevamente?

O se han seguido usando el mismo particionamiento utilizado en la version
9.6?


Gracias,
Carlos

On Fri, May 31, 2019, 5:52 AM Luis Martínez <
luisedgardomartinezlina...@gmail.com> wrote:

> GRACIAS!  Voy a revisarlos
>
> El jue 30/05/2019, 11:28 p.m., Anthony Sotolongo 
> escribió:
>
>> Hola Luis, desde la versión 10 se agregó el particionado declarativo y en
>> la 11 se mejoraron otros aspectos como el particionado por hash , asuntos
>> de rendimientos entre otros, los cuales puedes ver en los siguientes links
>>
>> La documentación oficial:
>>
>> https://www.postgresql.org/docs/11/ddl-partitioning.html#DDL-PARTITIONING-DECLARATIVE
>>
>> Un blog de Álvaro que leí hace un tiempo atrás:
>> https://www.2ndquadrant.com/en/blog/partitioning-improvements-pg11/
>>
>> Saludos
>>
>>
>>
>> El jue., 30 de may. de 2019 10:57 p. m., Luis Martínez <
>> luisedgardomartinezlina...@gmail.com> escribió:
>>
>>> Buenas noches lista. Saludos a todos y de ante manos muchas gracias por
>>> este canal ayuda que esta muy bueno.
>>> Mi inquietud es que voy a montar una aplicación que va a tener tablas
>>> con muchos millones de registros y quisiera usar el particionamiento de
>>> tablas de postrgresql-11 y no se que tan maduro esta esto con esta nueva
>>> versión ya que en las anteriores había que usar reglas o triggers para
>>> lograr lo querido. Si tienes algunas referencias para documentarme como
>>> hacerlas y si es posible particionar una tabla hija??.
>>>
>>> Gracias nuevamente por su tiempo.
>>>
>>


Re: Transformar un procedimiento Firebird a PostgreSQL

2019-05-31 Thread Lautaro Palamidessi
Buen dia, usa la funcionalidad LAG de las window functions:
https://www.postgresql.org/docs/current/functions-window.html

Saludos

El vie., 31 may. 2019 a las 12:22, José Vicente Zahonero García (<
joviz...@hotmail.com>) escribió:

> Hola de nuevo, tengo un procedimiento en Firebird que recorre una tabla
> comparando un registro con el inmediatamente posterior y que devuelve la
> mayor diferencia entre dos registros consecutivos. No sé como
> implementarlo  en PostgreSQL. ¿Puede alguien echarme una mano?. Gracias.
>
>
> CREATE OR ALTER PROCEDURE DIAS_SIN RETURNS (
> "RESULT" INTEGER
> )
> AS
> DECLARE VARIABLE AUX INTEGER;
> BEGIN
>   AUX= 0;
>   RESULT = 0;
>   FOR
> SELECT max(DATEDIFF(DAY FROM DT2.FECHA TO DT1.FECHA))
>   FROM DATOS DT1, DATOS DT2
>   WHERE DT1.SALIDA_NUM = DT2.SALIDA_NUM + 1
> INTO :AUX
>   DO
> IF(AUX > RESULT) THEN RESULT = AUX;
>   SUSPEND;
> END
>
>

-- 

[image: logo conexia] 

*Lautaro Palamidessi*
Consultor Técnico DBA
*T:* +5411 5173 6159

[image: facebook conexia]  [image: twitter conexia]
 [image: linkedin conexia] 
www.conexia.com 

 [image: line]


Re: [MASSMAIL]Transformar un procedimiento Firebird a PostgreSQL

2019-05-31 Thread gilberto . castillo

Hola,

¿Porbaste lanzarlo en Pg haber que error te sale?


El 2019-05-31 11:22, José Vicente Zahonero García escribió:

Hola de nuevo, tengo un procedimiento en Firebird que recorre una
tabla comparando un registro con el inmediatamente posterior y que
devuelve la mayor diferencia entre dos registros consecutivos. No sé
como implementarlo  en PostgreSQL. ¿Puede alguien echarme una mano?.
Gracias.


CREATE OR ALTER PROCEDURE DIAS_SIN RETURNS (
"RESULT" INTEGER
)
AS
DECLARE VARIABLE AUX INTEGER;
BEGIN
  AUX= 0;
  RESULT = 0;
  FOR
SELECT max(DATEDIFF(DAY FROM DT2.FECHA TO DT1.FECHA))
  FROM DATOS DT1, DATOS DT2
  WHERE DT1.SALIDA_NUM = DT2.SALIDA_NUM + 1
INTO :AUX
  DO
IF(AUX > RESULT) THEN RESULT = AUX;
  SUSPEND;
END





Re: Dudas varias pglogical

2019-05-31 Thread max araya
Perfecto gracias por la ayuda, ahora tengo otra duda, estoy viendo que el
replication slot lag  esta creciendo mucho, quisiera saber a que se puede
deber

slot_name  | replicationslotlag | active
-++
pgl_snap_practice_prod_provider_sub_rep_all | 458 GB | t

Saludos,

On Mon, May 27, 2019 at 9:06 AM Daymel Bonne 
wrote:

> Hola:
>
> El lun., 27 de may. de 2019 a la(s) 09:56, max araya (mxar...@gmail.com)
> escribió:
>
>> En realidad no he tenido ningun problema, todo lo contrario me esta
>> funcionando perfecto, solo es una duda de si por alguna razon pglogical
>> podria hacer que la bd provider (BD productiva) me causa algun fallo.
>>
>
> No, siempre que tengas actualizado postgres y pglogical.
>
>
>>
>> Lo unico extraño que me ha pasado es que no me dejara borrar una tabla
>> del provider que no estaba replicando con pglogical, lo resolvi dandole
>> full permisos al usuario de pglogical sobre esa tabla.
>>
>> Sobre el monitoreo es mas que todo para verificar que la replicacion se
>> este haciendo bien o simplemente si se da algun error que me avise y poder
>> revisarlo.
>>
>
> En caso de error siempre vas poder buscar en los logs tanto del proveedor
> como en el suscriptor registros que hacen referencia a pglogical. Del
> monitoreo, siempre que avance la replicación no debes tener problemas.
> Tenés que estar monitoreando la información de la vista pg_stat_replication
> y pg_replication_slots.
>
> Saludos
>


-- 
Max Araya


Transformar un procedimiento Firebird a PostgreSQL

2019-05-31 Thread José Vicente Zahonero García
Hola de nuevo, tengo un procedimiento en Firebird que recorre una tabla 
comparando un registro con el inmediatamente posterior y que devuelve la mayor 
diferencia entre dos registros consecutivos. No sé como implementarlo  en 
PostgreSQL. ¿Puede alguien echarme una mano?. Gracias.


CREATE OR ALTER PROCEDURE DIAS_SIN RETURNS (
"RESULT" INTEGER
)
AS
DECLARE VARIABLE AUX INTEGER;
BEGIN
  AUX= 0;
  RESULT = 0;
  FOR
SELECT max(DATEDIFF(DAY FROM DT2.FECHA TO DT1.FECHA))
  FROM DATOS DT1, DATOS DT2
  WHERE DT1.SALIDA_NUM = DT2.SALIDA_NUM + 1 
INTO :AUX
  DO
IF(AUX > RESULT) THEN RESULT = AUX;
  SUSPEND;
END



Re: Fallo en función

2019-05-31 Thread Martin Marques
El 31/5/19 a las 08:10, José Vicente Zahonero García escribió:
> Hola, tengo esta función:
> CREATE OR REPLACE FUNCTION inserciones(trayecto varchar, tempo varchar, 
> espacio numeric)
>  returns void AS $$
>  
> declare
> 
>  spaces integer;
>  hora integer;
>  minuto integer;
>  segundo integer;
>  resultado real;
>  tiempo_en_minutos real;
>  calorias real;
>  
>  
> begin
>   
> spaces := espacio*1000;

spaces es entero, y espacio numerico. Aunque multipliques por 1000,
tener que hacer un cast a entero.

> hora := cast(substring(tempo from 1 for 2));
> minuto := cast(substring(tempo from 4 for 2));
> segundo := cast(substring(tempo from 7 for 2));

Estas usando mal la funcion cast. Imagino que la idea es hacer un cast a
entero.

https://www.postgresql.org/docs/current/sql-createcast.html

> hora := hora*3600;
> minuto := minuto*60> resultado := 
> ((spaces/(hora+minuto+segundo))*3.6);
> tiempo_en_minutos := ((hora+minuto+segundo)/60);
> calorias := (70*0.21)*tiempo_en_minutos;
>
> insert into datos (recorrido,tiempo,distancia,calorias,kmh,fecha) values 
> (trayecto,tempo,spaces,calorias,resultado,current_date); 
> 
> end; 
> $$ language 'plpgsql';
> Al ejecutarla me da el error:
> Unterminated dollar quote started at position 0 in SQL $$ language 
> 'plpgsql';. Expected terminating $$

Habrás pegado mal la funcion porque a mi no me da ese error. Si me da
error en los cast() de arriba en los que no estas especificando el tipo
al que debe convertirse el valor.


-- 
Martín Marquéshttp://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services




Re: Fallo en función

2019-05-31 Thread Daymel Bonne
Hola José:

El vie., 31 de may. de 2019 a la(s) 06:10, José Vicente Zahonero García (
joviz...@hotmail.com) escribió:

> Hola, tengo esta función:
> CREATE OR REPLACE FUNCTION inserciones(trayecto varchar, tempo varchar,
> espacio numeric)
>  returns void AS $$
>
> declare
>
>  spaces integer;
>  hora integer;
>  minuto integer;
>  segundo integer;
>  resultado real;
>  tiempo_en_minutos real;
>  calorias real;
>
>
> begin
>
> spaces := espacio*1000;
> hora := cast(substring(tempo from 1 for 2));
> minuto := cast(substring(tempo from 4 for 2));
> segundo := cast(substring(tempo from 7 for 2));
> hora := hora*3600;
> minuto := minuto*60;
> resultado := ((spaces/(hora+minuto+segundo))*3.6);
> tiempo_en_minutos := ((hora+minuto+segundo)/60);
> calorias := (70*0.21)*tiempo_en_minutos;
>
> insert into datos (recorrido,tiempo,distancia,calorias,kmh,fecha)
> values (trayecto,tempo,spaces,calorias,resultado,current_date);
>
> end;
> $$ language 'plpgsql';
> Al ejecutarla me da el error:
> Unterminated dollar quote started at position 0 in SQL $$ language
> 'plpgsql';. Expected terminating $$
>

CREATE OR REPLACE FUNCTION public.inserciones(trayecto character varying,
tempo character varying, espacio numeric)
 RETURNS void
 LANGUAGE plpgsql
AS $function$
declare
 spaces integer;
 hora integer;
 minuto integer;
 segundo integer;
 resultado real;
 tiempo_en_minutos real;
 calorias real;
begin
spaces := espacio*1000;
hora := cast(substring(tempo from 1 for 2) as integer);
minuto := cast(substring(tempo from 4 for 2) as integer);
segundo := cast(substring(tempo from 7 for 2) as integer);
hora := hora*3600;
minuto := minuto*60;
resultado := ((spaces/(hora+minuto+segundo))*3.6);
tiempo_en_minutos := ((hora+minuto+segundo)/60);
calorias := (70*0.21)*tiempo_en_minutos;

insert into datos (recorrido,tiempo,distancia,calorias,kmh,fecha)
values (trayecto,tempo,spaces,calorias,resultado,current_date);
end

$function$;

Saludos


Fallo en función

2019-05-31 Thread José Vicente Zahonero García
Hola, tengo esta función:
CREATE OR REPLACE FUNCTION inserciones(trayecto varchar, tempo varchar, espacio 
numeric)
 returns void AS $$
 
declare

 spaces integer;
 hora integer;
 minuto integer;
 segundo integer;
 resultado real;
 tiempo_en_minutos real;
 calorias real;
 
 
begin

spaces := espacio*1000;
hora := cast(substring(tempo from 1 for 2));
minuto := cast(substring(tempo from 4 for 2));
segundo := cast(substring(tempo from 7 for 2));
hora := hora*3600;
minuto := minuto*60;
resultado := ((spaces/(hora+minuto+segundo))*3.6);
tiempo_en_minutos := ((hora+minuto+segundo)/60);
calorias := (70*0.21)*tiempo_en_minutos;
   
insert into datos (recorrido,tiempo,distancia,calorias,kmh,fecha) values 
(trayecto,tempo,spaces,calorias,resultado,current_date);   

end; 
$$ language 'plpgsql';
Al ejecutarla me da el error:
Unterminated dollar quote started at position 0 in SQL $$ language 'plpgsql';. 
Expected terminating $$

No sé porqué. ¿Puede alguien echarme un cable? Gracias.





Re: Particionamiento de tablas postgresql 11

2019-05-31 Thread Luis Martínez
GRACIAS!  Voy a revisarlos

El jue 30/05/2019, 11:28 p.m., Anthony Sotolongo 
escribió:

> Hola Luis, desde la versión 10 se agregó el particionado declarativo y en
> la 11 se mejoraron otros aspectos como el particionado por hash , asuntos
> de rendimientos entre otros, los cuales puedes ver en los siguientes links
>
> La documentación oficial:
>
> https://www.postgresql.org/docs/11/ddl-partitioning.html#DDL-PARTITIONING-DECLARATIVE
>
> Un blog de Álvaro que leí hace un tiempo atrás:
> https://www.2ndquadrant.com/en/blog/partitioning-improvements-pg11/
>
> Saludos
>
>
>
> El jue., 30 de may. de 2019 10:57 p. m., Luis Martínez <
> luisedgardomartinezlina...@gmail.com> escribió:
>
>> Buenas noches lista. Saludos a todos y de ante manos muchas gracias por
>> este canal ayuda que esta muy bueno.
>> Mi inquietud es que voy a montar una aplicación que va a tener tablas con
>> muchos millones de registros y quisiera usar el particionamiento de tablas
>> de postrgresql-11 y no se que tan maduro esta esto con esta nueva versión
>> ya que en las anteriores había que usar reglas o triggers para lograr lo
>> querido. Si tienes algunas referencias para documentarme como hacerlas y si
>> es posible particionar una tabla hija??.
>>
>> Gracias nuevamente por su tiempo.
>>
>