Re: [pgsql-es-ayuda] Consulta de Replicacion
Si usas archivado de segmentos wal, es posible que en vez de usar streaming replication con slots andes replicando cada vez que archives un wal con restore_command en el fichero recovery.conf . El 23 de noviembre de 2016, 17:56, Daymel Bonne Solís escribió: > Holal Carlos: > > Verifica que en recovery.conf del esclavo tengas configurado el slot a > utilizar: > > primary_slot_name = 'slot_name' > > > Saludos > > El 23 de noviembre de 2016, 11:35, Alberto Cardenas Cardenas< > alberto.cardenas.c...@gmail.com> escribió: > >> Hola Lista, tengo una duda, tengo instalado postgresql9.4 en un ambiente >> maestro/esclavo y estan replicando vi slot bien hasta el momento. >> >> Sin embargo a pesar de replicar los cambios en el esclavo, al hacer la >> siguiente query >> >> select * from pg_replication_slots; >> >> En la columna "active" aparece "f" >> >> Pero insisto las replicas se estan haciendo bien >> >> Que puede ser esto, es normal??? o hay algo malo >> >> Saludos Cordiales >> >> Alberto >> > >
Re: [pgsql-es-ayuda] Ayuda de IF() de MySQL a CASE en PostgreSQL
Si el Case lo tenes en el select, el group by debe repetir el Case tambien algo que probablemente tire la performance de tu consulta si la misma se hace sobre muchos datos. El lun, 20-02-2017 a las 15:33 +0100, Jaime Soler escribió: > Para migrar base de datos de mysql/oracle a postgresql te aconsejo > revises la aplicación ora2pg. En el caso de los IF dentro de pl, la > solución que implementan es: > https://github.com/darold/ora2pg/blob/master/lib/Ora2Pg/PLSQL.pm#L163 > 4 > > $str =~ s/\bIF\(\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^\)]+\s*)\)/(CASE > WHEN $1 THEN $2 ELSE $3 END)/igs; > > Para poderte ayudar más con tu error concreto, necesaría ver cuál es > la consulta que quieres migrar y parte de la definición de las > tablas/vistas relacionadas. > > > > El 21 de noviembre de 2016, 20:05, Emanuel Calvo <3man...@gmail.com> > escribió: > > Algo escribí hace un tiempo acerca de iif en postgres: > > https://wiki.postgresql.org/wiki/Simulating_iif_function. > > > > Con respecto al GROUP BY, si, tienes que ser explícito en el orden > > que > > quieres que se agrupen todas las columnas. > > > > El día 18 de noviembre de 2016, 11:41, Juan Francisco Giménez Silva > > escribió: > > > Hola, > > > > > > Estoy migrando los modelos de un software propietario que esta en > > MySQL > > > a PostgreSQL. Me he topado con un pequeño problema, en el que se > > esta > > > utilizando la función IF de MySQL de la siguiente manera > > > IF(condicion,resultado1,resultado2) lo cual he transcripto a > > > > > > > > > CASE > > > WHEN '' = wc."title" > > > THEN > > > TRIM( c."name" ) > > > ELSE wc."title" > > > END AS title > > > > > > El problema es que me da el siguiente error: > > > > > > column "wc.title" must appear in the GROUP BY clause or be used > > in an > > > aggregate function > > > > > > Si añado esa columna a GROUP BY me empieza a pedir sucesivamente > > que > > > añada wc.content y otras columnas de la tabla, por lo cual > > deduzco que > > > me debo estar equivocando en algo más. > > > > > > Agradecería si me pueden ayudar un poco con esto. > > > > > > > > > Saludos!! > > > > > > - > > > Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postg > > resql.org) > > > Para cambiar tu suscripción: > > > http://www.postgresql.org/mailpref/pgsql-es-ayuda > > > > > > > > -- > > -- > > Emanuel Calvo > > Sr. Technical Services at Percona > > Team Building at Ayres.io > > > > - > > Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgre > > sql.org) > > Para cambiar tu suscripción: > > http://www.postgresql.org/mailpref/pgsql-es-ayuda > >
Re: [pgsql-es-ayuda] Ayuda de IF() de MySQL a CASE en PostgreSQL
Para migrar base de datos de mysql/oracle a postgresql te aconsejo revises la aplicación ora2pg. En el caso de los IF dentro de pl, la solución que implementan es: https://github.com/darold/ora2pg/blob/master/lib/Ora2Pg/PLSQL.pm#L1634 $str =~ s/\bIF\(\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^\)]+\s*)\)/(CASE WHEN $1 THEN $2 ELSE $3 END)/igs; Para poderte ayudar más con tu error concreto, necesaría ver cuál es la consulta que quieres migrar y parte de la definición de las tablas/vistas relacionadas. El 21 de noviembre de 2016, 20:05, Emanuel Calvo <3man...@gmail.com> escribió: > Algo escribí hace un tiempo acerca de iif en postgres: > https://wiki.postgresql.org/wiki/Simulating_iif_function. > > Con respecto al GROUP BY, si, tienes que ser explícito en el orden que > quieres que se agrupen todas las columnas. > > El día 18 de noviembre de 2016, 11:41, Juan Francisco Giménez Silva > escribió: > > Hola, > > > > Estoy migrando los modelos de un software propietario que esta en MySQL > > a PostgreSQL. Me he topado con un pequeño problema, en el que se esta > > utilizando la función IF de MySQL de la siguiente manera > > IF(condicion,resultado1,resultado2) lo cual he transcripto a > > > > > > CASE > > WHEN '' = wc."title" > > THEN > > TRIM( c."name" ) > > ELSE wc."title" > > END AS title > > > > El problema es que me da el siguiente error: > > > > column "wc.title" must appear in the GROUP BY clause or be used in an > > aggregate function > > > > Si añado esa columna a GROUP BY me empieza a pedir sucesivamente que > > añada wc.content y otras columnas de la tabla, por lo cual deduzco que > > me debo estar equivocando en algo más. > > > > Agradecería si me pueden ayudar un poco con esto. > > > > > > Saludos!! > > > > - > > Enviado a la lista de correo pgsql-es-ayuda ( > pgsql-es-ayuda@postgresql.org) > > Para cambiar tu suscripción: > > http://www.postgresql.org/mailpref/pgsql-es-ayuda > > > > -- > -- > Emanuel Calvo > Sr. Technical Services at Percona > Team Building at Ayres.io > > - > Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org > ) > Para cambiar tu suscripción: > http://www.postgresql.org/mailpref/pgsql-es-ayuda >
Re: [pgsql-es-ayuda] Ayuda de IF() de MySQL a CASE en PostgreSQL
Carlos Enrique Perez escribió: > Si el Case lo tenes en el select, el group by debe repetir el Case > tambien algo que probablemente tire la performance de tu consulta > si la misma se hace sobre muchos datos. Ojo que si una expresión no volátil aparece en más de un lugar, el ejecutor la evalúa una sola vez y el resto de los lugares re-utiliza el valor. (Es más complicado que eso, pero vale para el caso en que tienes la misma expresión en la lista de resultados y en el GROUP BY). Puedes probarlo con una función marcada IMMUTABLE que haga un RAISE NOTICE: alvherre=# create function peep(a int) returns int immutable language plpgsql as $$ begin raise notice 'peep %', $1; return $1; end; $$; CREATE FUNCTION Duración: 18,041 ms alvherre=# create table quux as select * from generate_series(1, 10) a; SELECT 10 Duración: 7,197 ms alvherre=# select peep(a) from quux group by peep(a); NOTICE: peep 1 NOTICE: peep 2 NOTICE: peep 3 NOTICE: peep 4 NOTICE: peep 5 NOTICE: peep 6 NOTICE: peep 7 NOTICE: peep 8 NOTICE: peep 9 NOTICE: peep 10 peep ── 8 4 1 5 3 10 9 6 2 7 (10 filas) -- Álvaro Herrerahttps://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda