Lists: | pgsql-bugs |
---|
From: | "Gabriel Bravo" <gbravo2k(at)yahoo(dot)com> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #2984: Bug Creating or Updating a View |
Date: | 2007-02-09 17:27:45 |
Message-ID: | 200702091727.l19HRjRg021682@wwwmaster.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
The following bug has been logged online:
Bug reference: 2984
Logged by: Gabriel Bravo
Email address: gbravo2k(at)yahoo(dot)com
PostgreSQL version: 8.1.5
Operating system: Windows XP Professional
Description: Bug Creating or Updating a View
Details:
I had a view created as:
CREATE OR REPLACE VIEW vensamblado AS
SELECT DISTINCT cuestionario.idcuestionario,
cuestionario.nombrecuestionario, riesgo.idriesgo, riesgo.nombreriesgo,
riesgo.resultado, pregunta.idpregunta, pregunta.nombrepregunta,
pregunta.tiporespuesta, pregunta.posicionrespuestas, pregunta.tipocontrol,
contenidocuestionario.ordenpregunta, opcion.idopcion, opcion.nombreopcion,
opcion.valor
FROM contenidocuestionario
JOIN cuestionario ON contenidocuestionario.idcuestionario =
cuestionario.idcuestionario
JOIN riesgo ON contenidocuestionario.idriesgo = riesgo.idriesgo
JOIN (pregunta
JOIN opcion ON pregunta.idpregunta = opcion.idpregunta) ON
contenidocuestionario.idpregunta = pregunta.idpregunta
ORDER BY cuestionario.idcuestionario, riesgo.idriesgo,
pregunta.idpregunta, contenidocuestionario.ordenpregunta,
opcion.nombreopcion, cuestionario.nombrecuestionario, riesgo.nombreriesgo,
riesgo.resultado, pregunta.nombrepregunta, pregunta.tiporespuesta,
pregunta.posicionrespuestas, pregunta.tipocontrol, opcion.idopcion,
opcion.valor;
I'm trying to replace that view because the ORDER clause is incorrect and I
want to change it. I'm changing with:
CREATE OR REPLACE VIEW vensamblado AS
SELECT DISTINCT cuestionario.idcuestionario,
cuestionario.nombrecuestionario, riesgo.idriesgo,
riesgo.nombreriesgo, riesgo.resultado, pregunta.idpregunta,
pregunta.nombrepregunta,
pregunta.tiporespuesta, pregunta.posicionrespuestas, pregunta.tipocontrol,
contenidocuestionario.ordenpregunta,
opcion.idopcion, opcion.nombreopcion, opcion.valor
FROM contenidocuestionario
JOIN cuestionario ON contenidocuestionario.idcuestionario =
cuestionario.idcuestionario
JOIN riesgo ON contenidocuestionario.idriesgo = riesgo.idriesgo
JOIN (pregunta
JOIN opcion ON pregunta.idpregunta = opcion.idpregunta) ON
contenidocuestionario.idpregunta = pregunta.idpregunta
ORDER BY cuestionario.idcuestionario, riesgo.idriesgo,
pregunta.idpregunta, contenidocuestionario.ordenpregunta,
opcion.nombreopcion;
And the view definition doesn't change !!!
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Gabriel Bravo" <gbravo2k(at)yahoo(dot)com> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #2984: Bug Creating or Updating a View |
Date: | 2007-02-12 04:54:05 |
Message-ID: | 22409.1171256045@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
"Gabriel Bravo" <gbravo2k(at)yahoo(dot)com> writes:
> I had a view created as:
> CREATE OR REPLACE VIEW vensamblado AS
> SELECT DISTINCT cuestionario.idcuestionario,
> cuestionario.nombrecuestionario, riesgo.idriesgo, riesgo.nombreriesgo,
> riesgo.resultado, pregunta.idpregunta, pregunta.nombrepregunta,
> pregunta.tiporespuesta, pregunta.posicionrespuestas, pregunta.tipocontrol,
> contenidocuestionario.ordenpregunta, opcion.idopcion, opcion.nombreopcion,
> opcion.valor
> ...
> ORDER BY cuestionario.idcuestionario, riesgo.idriesgo,
> pregunta.idpregunta, contenidocuestionario.ordenpregunta,
> opcion.nombreopcion, cuestionario.nombrecuestionario, riesgo.nombreriesgo,
> riesgo.resultado, pregunta.nombrepregunta, pregunta.tiporespuesta,
> pregunta.posicionrespuestas, pregunta.tipocontrol, opcion.idopcion,
> opcion.valor;
> I'm trying to replace that view because the ORDER clause is incorrect and I
> want to change it.
It's not wrong and you can't fix it --- all the elements of the SELECT
DISTINCT list have to be included in the order-by list. Any you omit
will get added in behind the scenes.
regards, tom lane