Luiz K. Matsumura wrote:

Richard Broersma Jr wrote:
--- "Luiz K. Matsumura" <[EMAIL PROTECTED]> wrote:
CREATE VIEW view1( id, col1, type1, type2) AS
SELECT table1.id,
       table1.col1,
       CAST( table2.type1 AS CHARACTER( 3 )),
       NULL
FROM   table1
JOIN   table2 ON table2.fk_table1 = table1.id
UNION ALL
SELECT table1.id,
       table1.col1,
       CAST( NULL AS CHARACTER( 3 )),
       table3.type2
FROM   table1
JOIN   table3 ON table3.fk_table1 = table1.id;

Would the above changes work?

Regards,
Richard Broersma Jr.


Hi Richard,
Your changes works ! But now I know what mistake I did:

The error is occurring because I'm doing a CREATE OR REPLACE VIEW command.
The command with null:character(3) works too.
The error is because I create a view then try to change the definition with the CREATE OR REPLACE VIEW command When I drop the view first , and then create again the view (in a separated transaction), now the command works! (this is a bug?)
I'm using a postgres 8.2.4 on Linux.

Thanks a lot!

Ugh, I'm totally crazy with this views
I'm using pgadmin with postgres, when I clink on "view the data of selected object" button all works fine.
But when I open a query tool window and do:

SELECT * FROM view1;

Now, again type1 column returns as bpchar.
But if I do:

SELECT type1 FROM view1;

Now, type1 column returns as character(3)

If I do

select id, col1, type1,type2  from view1;

Again type1 returns as bpchar. But if I do

select id, col1,type2, type1 from view1;

Now type1 return as character(3).



--
Luiz K. Matsumura
Plan IT Tecnologia Informática Ltda.


---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

Reply via email to