Thread: Column not wide enough for data
I wanted to copy a table to another table, so I started by getting a count of the rows in the source table. The result of "select count(*) from xxxx" came out like this: count bigint ------ 26569 Based on that, I concluded that a straightforward "insert into yyyy select * from xxxx" would suffice and be done in no time. So I started running that and then went on to something else. About an hour and a half later, I realized that query was still running. I thought that can't be right, so I cancelled theoperation and reissued the count. This time, I expanded the column and discovered the actual count was count bigint ------ 26569440 Since this count query produced a single column result, there is plenty of room to expand the column on initial display. Is there a way to tell PgAdmin to expand the column to fit the data? I could not find such an option. Thanks for such a great tool, I appreciate the years of effort that some people have put into it. -- Guy Rouillier
On Tue, 2011-12-20 at 22:29 -0500, Guy Rouillier wrote: > I wanted to copy a table to another table, so I started by getting a > count of the rows in the source table. The result of "select count(*) > from xxxx" came out like this: > > count > bigint > ------ > 26569 > > Based on that, I concluded that a straightforward "insert into yyyy > select * from xxxx" would suffice and be done in no time. So I started > running that and then went on to something else. > > About an hour and a half later, I realized that query was still running. > I thought that can't be right, so I cancelled the operation and > reissued the count. This time, I expanded the column and discovered the > actual count was > > count > bigint > ------ > 26569440 > > Since this count query produced a single column result, there is plenty > of room to expand the column on initial display. Is there a way to tell > PgAdmin to expand the column to fit the data? I could not find such an > option. > No, there's no such option. If you resize the column afterwards, and then rerun the query, it'll keep the new column size. But right now, it's not smart enough to guess the width of the column. I suppose we don't do it yet because it would take a long time to do if you have a big number of rows and/or a big number of columns. We should probably revisit that. And sorry for the late answer. -- Guillaume http://blog.guillaume.lelarge.info http://www.dalibo.com PostgreSQL Sessions #3: http://www.postgresql-sessions.org
On 1/2/2012 4:40 PM, Guillaume Lelarge wrote: > On Tue, 2011-12-20 at 22:29 -0500, Guy Rouillier wrote: >> I wanted to copy a table to another table, so I started by getting a >> count of the rows in the source table. The result of "select count(*) >> from xxxx" came out like this: >> >> count >> bigint >> ------ >> 26569 >> >> Based on that, I concluded that a straightforward "insert into yyyy >> select * from xxxx" would suffice and be done in no time. So I started >> running that and then went on to something else. >> >> About an hour and a half later, I realized that query was still running. >> I thought that can't be right, so I cancelled the operation and >> reissued the count. This time, I expanded the column and discovered the >> actual count was >> >> count >> bigint >> ------ >> 26569440 >> >> Since this count query produced a single column result, there is plenty >> of room to expand the column on initial display. Is there a way to tell >> PgAdmin to expand the column to fit the data? I could not find such an >> option. >> > > No, there's no such option. If you resize the column afterwards, and > then rerun the query, it'll keep the new column size. But right now, > it's not smart enough to guess the width of the column. I suppose we > don't do it yet because it would take a long time to do if you have a > big number of rows and/or a big number of columns. We should probably > revisit that. > > And sorry for the late answer. Guillaume, thanks for the reply. No need for the apology, everyone is busy around the holidays. I understand the problem that a large number of rows imposes on sizing the column to fit the data. Here is an alternative that is much easier to implement. By default, PgAdmin appears to allocate a fixed, equal column width to all columns. If the total width of all columns is less than the display window, then divide the display window width by the number of columns, and apply that equal width to all columns. So if a query produces a small number of columns, then they can be sized to fill the display window. In my case, with only a count result, the one column would fill the entire width. Thanks. -- Guy Rouillier
On Mon, 2012-01-02 at 21:29 -0500, Guy Rouillier wrote: > On 1/2/2012 4:40 PM, Guillaume Lelarge wrote: > > On Tue, 2011-12-20 at 22:29 -0500, Guy Rouillier wrote: > >> I wanted to copy a table to another table, so I started by getting a > >> count of the rows in the source table. The result of "select count(*) > >> from xxxx" came out like this: > >> > >> count > >> bigint > >> ------ > >> 26569 > >> > >> Based on that, I concluded that a straightforward "insert into yyyy > >> select * from xxxx" would suffice and be done in no time. So I started > >> running that and then went on to something else. > >> > >> About an hour and a half later, I realized that query was still running. > >> I thought that can't be right, so I cancelled the operation and > >> reissued the count. This time, I expanded the column and discovered the > >> actual count was > >> > >> count > >> bigint > >> ------ > >> 26569440 > >> > >> Since this count query produced a single column result, there is plenty > >> of room to expand the column on initial display. Is there a way to tell > >> PgAdmin to expand the column to fit the data? I could not find such an > >> option. > >> > > > > No, there's no such option. If you resize the column afterwards, and > > then rerun the query, it'll keep the new column size. But right now, > > it's not smart enough to guess the width of the column. I suppose we > > don't do it yet because it would take a long time to do if you have a > > big number of rows and/or a big number of columns. We should probably > > revisit that. > > > > And sorry for the late answer. > > Guillaume, thanks for the reply. No need for the apology, everyone is > busy around the holidays. > > I understand the problem that a large number of rows imposes on sizing > the column to fit the data. Here is an alternative that is much easier > to implement. By default, PgAdmin appears to allocate a fixed, equal > column width to all columns. If the total width of all columns is less > than the display window, then divide the display window width by the > number of columns, and apply that equal width to all columns. So if a > query produces a small number of columns, then they can be sized to fill > the display window. In my case, with only a count result, the one > column would fill the entire width. > That's an interesting idea. Not sure how much helpful wxWidgets will be with your idea, but it will be easy to check. -- Guillaume http://blog.guillaume.lelarge.info http://www.dalibo.com PostgreSQL Sessions #3: http://www.postgresql-sessions.org
>>>> I expanded the column and discovered the >>>> actual count >>>> Is there a way to tell >>>> PgAdmin to expand the column to fit the data? >>> >>> No, there's no such option. If you resize the column afterwards, and >>> then rerun the query, it'll keep the new column size. But right now, >>> it's not smart enough to guess the width of the column. I suppose we >>> don't do it yet because it would take a long time to do if you have a >>> big number of rows and/or a big number of columns. We should probably >>> revisit that. >> I understand the problem that a large number of rows imposes on sizing >> the column to fit the data. Here is an alternative that is much easier >> to implement. By default, PgAdmin appears to allocate a fixed, equal >> column width to all columns. If the total width of all columns is less >> than the display window, then divide the display window width by the >> number of columns, and apply that equal width to all columns. So if a >> query produces a small number of columns, then they can be sized to fill >> the display window. In my case, with only a count result, the one >> column would fill the entire width. > > That's an interesting idea. Not sure how much helpful wxWidgets will be > with your idea, but it will be easy to check. Another approach taken by other tools is to scan a small number of the rows to find the widest value. Say, the first 10 or200 rows. Or whatever number seems reasonable. --Basil Bourque
Another way of doing it is to generate an HTML popup and let the browser decide the WIDTH of each column -
Using "table", "tr" and "td" the width is managed automaticaly or defining width as a %
From: Basil Bourque <basil.bourque.lists@pobox.com>
To: pgadmin-support@postgresql.org
Sent: Saturday, January 7, 2012 11:30 PM
Subject: Re: [pgadmin-support] Column not wide enough for data
>>>> I expanded the column and discovered the
>>>> actual count
>>>> Is there a way to tell
>>>> PgAdmin to expand the column to fit the data?
>>>
>>> No, there's no such option. If you resize the column afterwards, and
>>> then rerun the query, it'll keep the new column size. But right now,
>>> it's not smart enough to guess the width of the column. I suppose we
>>> don't do it yet because it would take a long time to do if you have a
>>> big number of rows and/or a big number of columns. We should probably
>>> revisit that.
>> I understand the problem that a large number of rows imposes on sizing
>> the column to fit the data. Here is an alternative that is much easier
>> to implement. By default, PgAdmin appears to allocate a fixed, equal
>> column width to all columns. If the total width of all columns is less
>> than the display window, then divide the display window width by the
>> number of columns, and apply that equal width to all columns. So if a
>> query produces a small number of columns, then they can be sized to fill
>> the display window. In my case, with only a count result, the one
>> column would fill the entire width.
>
> That's an interesting idea. Not sure how much helpful wxWidgets will be
> with your idea, but it will be easy to check.
Another approach taken by other tools is to scan a small number of the rows to find the widest value. Say, the first 10 or 200 rows. Or whatever number seems reasonable.
--Basil Bourque
--
Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-support
On Sun, 2012-01-08 at 03:52 -0800, Francisco Leovey wrote: > Another way of doing it is to generate an HTML popup and let the browser decide the WIDTH of each column - > > Using "table", "tr" and "td" the width is managed automaticaly or defining width as a % > Thanks for the idea, but no, that won't happen. -- Guillaume http://blog.guillaume.lelarge.info http://www.dalibo.com PostgreSQL Sessions #3: http://www.postgresql-sessions.org