Hello!
As I experienced, PGSQL changes the result field sizes to unlimited varchar, when I passed different field size in same column of the union.
SP.Key - varchar(100)
SP.Value - varchar(200)
Example:
select 'a', value from sp
union all
select key, value from sp
The first field is not limited to 100, it's unlimited varchar() (= Text, Memo, CLOB).
So PG don't use the maximal field size (100).
If I did cast on the field to resize to 100, the result is limited correctly.
select cast('a' as varchar(100)), value from sp
union all
select key, value from sp
Can I force somehow to PG use the maximal size?
Or must I know and equalize all field sizes in union?
Or must I use temporary tables and inserts to not get this problem?
Thanks
Regards
dd
As I experienced, PGSQL changes the result field sizes to unlimited varchar, when I passed different field size in same column of the union.
SP.Key - varchar(100)
SP.Value - varchar(200)
Example:
select 'a', value from sp
union all
select key, value from sp
The first field is not limited to 100, it's unlimited varchar() (= Text, Memo, CLOB).
So PG don't use the maximal field size (100).
If I did cast on the field to resize to 100, the result is limited correctly.
select cast('a' as varchar(100)), value from sp
union all
select key, value from sp
Can I force somehow to PG use the maximal size?
Or must I know and equalize all field sizes in union?
Or must I use temporary tables and inserts to not get this problem?
Thanks
Regards
dd