Thread: PGAdmin - saving result sets from queries where one or more columns are of the type boolean

I've noticed this problem for a while, but haven't reported it.  Sorry.

If you run a query in PGAdmin saving the results to disk and that query
selects one or more booleans it takes orders of magnitude longer for the
result set to save to disk that it does if you do not select those columns
in the query.

I've resorted to this work-around (when I remember it, and when I don't I
curse and go get a snack <grin>):

Instead of:

SELECT       col_a,       col_b,      is_a_boolean,       col_c 
FROM       baz;


If I do this:

SELECT      col_a,       col_b,      CASE WHEN is_a_boolean = TRUE THEN 't' ELSE 'f' END       col_c 
FROM       baz;


I avoid the problem.


Still, I'd rather not have to remember to write queries this way, so a fix
would be much appreciated.  Thanks.

JP

"Where shall I begin, please your Majesty? he asked. Begin at the beginning the King said, gravely, and go on till you
cometo the end: then stop."        -- Lewis Carroll
 







Le 16/04/2011 21:19, John Pagakis a écrit :
> I've noticed this problem for a while, but haven't reported it.  Sorry.
> 
> If you run a query in PGAdmin saving the results to disk and that query
> selects one or more booleans it takes orders of magnitude longer for the
> result set to save to disk that it does if you do not select those columns
> in the query.
> 

Well, if you have less data, it's not surprising it's quicker to export.

> I've resorted to this work-around (when I remember it, and when I don't I
> curse and go get a snack <grin>):
> 
> Instead of:
> 
> SELECT 
>        col_a, 
>        col_b,
>        is_a_boolean, 
>        col_c 
> FROM 
>        baz;
> 
> If I do this:
> 
> SELECT
>        col_a, 
>        col_b,
>        CASE WHEN is_a_boolean = TRUE THEN 't' ELSE 'f' END 
>        col_c 
> FROM 
>        baz;
> 
> I avoid the problem.
> 

This is more surprising. I don't reproduce this on 1.12. Could you tell
us more about your working set? how many lines for example? can you send
me a self-contained examples with your time measurements? Thanks.


-- 
Guillaumehttp://www.postgresql.frhttp://dalibo.com