Thread

  1. [PATCH] psql: add size-based sorting options (O/o) for tables and indexes

    M.Atıf Ceylan <mehmet@atifceylan.com> — 2025-11-26T07:48:52Z

    Hello,
    This patch adds two new meta-command modifiers for \dt(+) and \di(+):
    
      - O  : sort by total relation size descending
      - o  : sort by total relation size ascending
    
    This makes it easier to identify the largest tables and indexes
    without writing custom SQL queries.
    
    Help message (\?) is updated to reflect the new options.
    
    regards,
    -- 
    M.Atıf Ceylan
    
  2. Re: [PATCH] psql: add size-based sorting options (O/o) for tables and indexes

    Euler Taveira <euler@eulerto.com> — 2025-11-26T12:43:38Z

    On Wed, Nov 26, 2025, at 4:48 AM, M.Atıf Ceylan wrote:
    > Hello,
    > This patch adds two new meta-command modifiers for \dt(+) and \di(+):
    >
    >   - O  : sort by total relation size descending
    >   - o  : sort by total relation size ascending
    >
    
    Thanks for your contribution. Register your patch in the next commitfest [1] so
    we don't loose track of it.
    
    I didn't look at your patch but I was wondering if a general solution isn't a
    better way to add this feature. I wouldn't modify these specific psql
    meta-commands, instead, I would add a new psql meta-command that defines this
    property for all objects if applicable.
    
    \sort [ name | size [ asc | desc ] ]
    
    I thought about a list to be cover other sort cases too but if things starting
    to be complex, it is time to write your own query.
    
    With a parameter, it appends the ORDER BY clause in the SQL commands executed by
    psql if applicable. Without a parameter, it uses the current behavior.
    
    
    [1] https://commitfest.postgresql.org/57/
    
    
    -- 
    Euler Taveira
    EDB   https://www.enterprisedb.com/
    
    
    
    
  3. Re: [PATCH] psql: add size-based sorting options (O/o) for tables and indexes

    Pavel Stehule <pavel.stehule@gmail.com> — 2025-11-26T13:01:45Z

    Hi
    
    st 26. 11. 2025 v 13:44 odesílatel Euler Taveira <euler@eulerto.com> napsal:
    
    > On Wed, Nov 26, 2025, at 4:48 AM, M.Atıf Ceylan wrote:
    > > Hello,
    > > This patch adds two new meta-command modifiers for \dt(+) and \di(+):
    > >
    > >   - O  : sort by total relation size descending
    > >   - o  : sort by total relation size ascending
    > >
    >
    > Thanks for your contribution. Register your patch in the next commitfest
    > [1] so
    > we don't loose track of it.
    >
    > I didn't look at your patch but I was wondering if a general solution
    > isn't a
    > better way to add this feature. I wouldn't modify these specific psql
    > meta-commands, instead, I would add a new psql meta-command that defines
    > this
    > property for all objects if applicable.
    >
    > \sort [ name | size [ asc | desc ] ]
    >
    > I thought about a list to be cover other sort cases too but if things
    > starting
    > to be complex, it is time to write your own query.
    >
    
    It is big question - if there should be specialized metacommand, or just
    variable or \pset setting
    
    it can be
    
    \set PREFERRED_ORDER size_desc
    \pset preffered_order size_desc
    
    
    
    >
    > With a parameter, it appends the ORDER BY clause in the SQL commands
    > executed by
    > psql if applicable. Without a parameter, it uses the current behavior.
    >
    
    There were a lot of proposals related to this topic some years ago. I wrote
    a lot of variants of this patch
    Generic design is very big, and solutions like proposed are not generic
    :-). We talked about this feature for maybe more than one year, and we
    didn't find a generally acceptable design.
    
    At the end I wrote pspg, and the sort can be done (over result) there.
    Using a vertical cursor (column cursor) is very natural and user friendly.
    
    https://github.com/okbob/pspg
    
    Regards
    
    Pavel
    
    
    >
    >
    > [1] https://commitfest.postgresql.org/57/
    >
    >
    > --
    > Euler Taveira
    > EDB   https://www.enterprisedb.com/
    >
    >
    >
    
  4. Re: [PATCH] psql: add size-based sorting options (O/o) for tables and indexes

    Pavel Stehule <pavel.stehule@gmail.com> — 2025-11-27T03:51:17Z

    st 26. 11. 2025 v 14:01 odesílatel Pavel Stehule <pavel.stehule@gmail.com>
    napsal:
    
    > Hi
    >
    > st 26. 11. 2025 v 13:44 odesílatel Euler Taveira <euler@eulerto.com>
    > napsal:
    >
    >> On Wed, Nov 26, 2025, at 4:48 AM, M.Atıf Ceylan wrote:
    >> > Hello,
    >> > This patch adds two new meta-command modifiers for \dt(+) and \di(+):
    >> >
    >> >   - O  : sort by total relation size descending
    >> >   - o  : sort by total relation size ascending
    >> >
    >>
    >> Thanks for your contribution. Register your patch in the next commitfest
    >> [1] so
    >> we don't loose track of it.
    >>
    >> I didn't look at your patch but I was wondering if a general solution
    >> isn't a
    >> better way to add this feature. I wouldn't modify these specific psql
    >> meta-commands, instead, I would add a new psql meta-command that defines
    >> this
    >> property for all objects if applicable.
    >>
    >> \sort [ name | size [ asc | desc ] ]
    >>
    >> I thought about a list to be cover other sort cases too but if things
    >> starting
    >> to be complex, it is time to write your own query.
    >>
    >
    > It is big question - if there should be specialized metacommand, or just
    > variable or \pset setting
    >
    > it can be
    >
    > \set PREFERRED_ORDER size_desc
    > \pset preffered_order size_desc
    >
    >
    >
    >>
    >> With a parameter, it appends the ORDER BY clause in the SQL commands
    >> executed by
    >> psql if applicable. Without a parameter, it uses the current behavior.
    >>
    >
    > There were a lot of proposals related to this topic some years ago. I
    > wrote a lot of variants of this patch
    > Generic design is very big, and solutions like proposed are not generic
    > :-). We talked about this feature for maybe more than one year, and we
    > didn't find a generally acceptable design.
    >
    
    https://www.postgresql.org/message-id/CAFj8pRAVV2TFHsFCV=c9Aaeq7kPWGQBLkOwGronpAN583zqhWg@mail.gmail.com
    
    
    
    >
    > At the end I wrote pspg, and the sort can be done (over result) there.
    > Using a vertical cursor (column cursor) is very natural and user friendly.
    >
    > https://github.com/okbob/pspg
    >
    > Regards
    >
    > Pavel
    >
    >
    >>
    >>
    >> [1] https://commitfest.postgresql.org/57/
    >>
    >>
    >> --
    >> Euler Taveira
    >> EDB   https://www.enterprisedb.com/
    >>
    >>
    >>
    
  5. Re: [PATCH] psql: add size-based sorting options (O/o) for tables and indexes

    Mahmoud Ayman <mahmoud.ayman.fcai@gmail.com> — 2025-12-08T00:15:38Z

    The following review has been posted through the commitfest application:
    make installcheck-world:  not tested
    Implements feature:       not tested
    Spec compliant:           not tested
    Documentation:            not tested
    
    Hi,
    
    I tested the patch on top of current master. It applies cleanly and
    builds without any issues.
    
    I tried the new options with \dt and \di after creating tables and
    indexes of different sizes. Both 'O' (desc) and 'o' (asc) work as
    expected and the default behavior without these flags is unchanged.
    
    Functionality looks good to me.
    
    Regards,
    Mahmoud Ayman
    
    The new status of this patch is: Ready for Committer