Buenas tardes:

2017-03-21 0:35 GMT+01:00 Mario Sileone (GM) <msile...@gmail.com>:
>     Tengo una consulta respecto a las tablas divididas. Tenemos una división
> en tablas que tienen millones de registros diarios, en tablas heredadas
> mensuales.

De las que iria muy bien que pudieramos ver algo para saber como son.....

> Todo funciona de maravillas, salvo que, hemos notado que las consultas con
> variables (between now() - interval '8 hours' AND now()) no hacen caso y
> busca en todas las tablas heredadas.

... lo que puede tener varios motivos ......

> Lo vimos en un explain con las variables y luego uno con las fechas
> literales.

... explain que vendria bien pudiesemos ver.

> La pregunta es, al margen que tenemos la solución mediante código, si existe
> algun método o quizás un quote_literal que transforme la consulta a literal
> o alguna manera para que el postgres la interprete como tal.

Aparte de la solucion que ya te apuntan, construir la consulta con una
funcion, los datos que te comento vendrian bien. Ten en cuenta que las
funciones de timestamp WITH y WITHOUT timezone son truculentas, ya que
muchas veces las funciones de conversion de una a otra son volatiles (
dependen del timezone de la conexion ), y mirando el explain se puede
ver a veces como hay conversiones de tipo en un caso que no hay en
otro. ( p.e. now() exige una conversion si usas timestamp without time
zone en la tabla, pero '2017-03-24 12:34:56' no. Sin embargo con
timezone ninguna lo necesita. Y si le pones zona a la constante lo
puede necesitar. Por eso yo normalmente uso with-timezone pero tengo
cuidado de poner las constantes con zona numerica explicita (
tipicamente UTC=+00 ) ).


Francisco Olarte.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a