General

Do you have a feature request or a good idea for how to improve PostgreSQL? You can use this forum to let us know. (This is an experiment; see http://www.postgresql.org/support/ for more offical ways to contact the PostgreSQL project. Please report actual bugs and conduct development discussions there.)

I suggest you ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  1. UPDATE ... ON CONFLICT ... (aka "UPDATE IGNORE")

    We have "INSERT ... ON CONFLICT ..." but not "UPDATE ... ON CONFLICT ...".

    It is not easy to achieve in other ways since catching unique_violation exception applies to all updated rows, not just those with conflict.

    40 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
    • Keep clustered tables clustered (aka pg_repack in pg core)

      Clustered tables provide optimal read performance for the very common use case where a single dimension drives most queries.

      However PG today doesn't keep data clustered over time. Fill Factor helps for Updates but Inserts ends up in new pages so breaks the sequentiality of the data.

      To regain read performance the Cluster command needs to be scheduled causing downtime due to table level lock and complexity.

      The suggestion is to keep data physically clustered via a background job (ala autovacuum), so essentially integrating pg_repack extension to the core.

      Why not use pg_repack? Nowadays most PG instances are cloud hosted…

      38 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        2 comments  ·  Flag idea as inappropriate…  ·  Admin →
      • lower case table or column name

        Its very hard to keep a track of cases while typing a column name or a table name.

        Thus all the table or column name should be converted to lower case as default unless we want to specify otherwise.

        This will save an architect of whole lot of trouble.

        please it's a very basic functionality but neccessary. Kindly implement it.

        1 vote
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          0 comments  ·  Flag idea as inappropriate…  ·  Admin →
        • psql: add `histappend` option

          At the moment, psql always overwrites ~/.psql_history when it is closed. This means that when you use multiple psql instances at the same time, only the history from the instance that you close last will persist, because it will overwrite the history from the other instances. bash has a histappend option for this purpose:

          histappend
          If set, the history list is appended to the file named by the value of the HISTFILE
          variable when the shell exits, rather than overwriting the file.

          It would be nice if this option could be added to psql.

          1 vote
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            0 comments  ·  Flag idea as inappropriate…  ·  Admin →
          • temporal query as of sql ansi 2011 (oracle flashback query: view row versions for the x last weeks)

            Similar to oracle's flashback query:
            * have a parameter to keep rows history at least x days in the past - undo_retention)
            * execute a select query viewing how tables were at some point in time (select from ... as of timestamp...)
            * view all modifications of a row, and when it was done (select ... versions between)

            3 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              0 comments  ·  Flag idea as inappropriate…  ·  Admin →
            • Select into temp table on commit drop

              It would be great to specify the ON COMMIT DROP on a TEMPORARY TABLE created by an SELECT INTO to make it easear to deal with temp tables within a transaction by omitting the need of explicitly specifying the temp table schema in a CREATE TEMP TABLE.

              Thus the syntax I wisch would be: SELECT col INTO TEMP TABLE tab2 ON COMMIT DROP FROM tab1

              See https://www.postgresql.org/message-id/CAADeyWiFBXbeOEA9HNMCrouqJ6FEw5Aph8%3Do3HWRYSw41WMqJw%40mail.gmail.com

              1 vote
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                1 comment  ·  Flag idea as inappropriate…  ·  Admin →
              • Automatic and wide SCD support with simple addition

                There is an idea about "Add support for table logging" on the link:
                https://postgresql.uservoice.com/forums/21853-general/suggestions/3693071-add-support-for-table-logging

                but is possible do much more with an automatic SCD resource, its very simple, just a new type and few automatic small tables, there is the diagram here:

                https://en.wikipedia.org/wiki/Slowly_changing_dimension#Combining_types

                4 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  3 comments  ·  Flag idea as inappropriate…  ·  Admin →
                • Parallelize query execution on partitions and unions

                  As of 9.6 only table scans seem to trigger parallel execution.

                  We use partitioning (inheritance) to keep the child tables small, so that a full table scan does not take too long. But our queries frequently span multiple child tables. For us, it would be more efficient if each child table would be assigned to a worker.

                  We could also use unions directly on the child tables (which has some advantages), and again we would want the child tables to be queried in parallel.

                  A typical query (on the parent table):

                  select port_wwn, avg( rx_traffic_util) as avg_rx_tfc_util from fc_port_stats_p1
                  where…

                  29 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                  • The ability to filter data when exporting data from a table with pg_dump

                    Add the ability to filter data when exporting data from a table with pg_dump (Something like QUERY in expdp in Oracle)

                    3 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                    • Materialized View partial refresh

                      refresh materialized view concurrently my_mat_view WHERE my_column = 'a';

                      At the moment, if the underlying data changes for a materialized view we have to refresh the entire materialized view. For large views with complex queries, this can sometimes take many hours. (especially concurrently). Sometimes it would be really convenient to tell the materialized view that only certain rows need to be refreshed at this time (with the hopes that it would take less time to process).

                      This would probably not work to add new rows to the materialized view. However for doing incremental refreshes of the materialized view for data…

                      7 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                      • use Apache and Java instead of python for pgadmin4.

                        PgAdmin4 is slow and does not like large data sets. For fast development, this is a huge hangup. Java and Apache are much faster. Perhaps using an MVC approach is even better for the query tool with a REST backup.

                        2 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          2 comments  ·  Flag idea as inappropriate…  ·  Admin →
                        • using sliding vindow agregate

                          like to see sliding window frame clause for window functions

                          -- example
                          SELECT TH.ProductID ,
                          TH.TransactionDate,
                          TH.ActualCost ,
                          SUM(TH.ActualCost) OVER(PARTITION BY TH.ProductID ORDER BY TH.TransactionDate RANGE BETWEEN INTERVAL 45 DAY PRECEDING AND CURRENT ROW) RollingSum45
                          FROM Production.TransactionHistory AS TH

                          example vertica implementation :
                          https://my.vertica.com/docs/7.2.x/HTML/index.htm#Authoring/SQLReferenceManual/Functions/Analytic/window_frame_clause.htm

                          different names:

                          sliding range
                          sliding window
                          moving date window function
                          moving date range window function

                          9 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                          • Ability to define a queue table

                            Ability to create a special table that would work as a queue, allowing inserts and selects only, and when selecting also automatically deleting the record read.
                            The read order and record limit would be controlled by the select command sent.

                            4 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                            • copy command should have an option to specify a custom row terminator

                              Most programs dealing with csv (atleast the ones ive used) allow you to specify any row and/or field terminator that you want. Its very difficult to import csv files without text qualifiers because of this

                              1 vote
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                              • Ignore NULLS in windows functions

                                implement SQL standard IGNORE NULLS option for lead, lag windows function.

                                7 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                                • SSH Tunneling pgadmin4

                                  We have created a project for startups that allows them to easily create well-architected infrastructure on AWS. As part of this, we encourage developers to access their Postgres database from a bastion host and are looking for ssh tunneling option from pgadmin4. I know this feature was there in pgadmin3 and was wondering if there is any plan on adding that in pgadmin4 too. We have currently given the instructions to do the same if the users are using mysql database and would like to provide similar instructions for Postgres too.

                                  Project could be found here

                                  https://github.com/awslabs/startup-kit-templates
                                  https://github.com/awslabs/startup-kit-nodejs

                                  1 vote
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                  • Configurable LISTEN / NOTIFY max size

                                    Currently 8000 bytes hardcoded limit

                                    2 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                    • 2 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                                      • Allow table/view column reordering

                                        Sometimes you need to insert a column on a specific postion to group related information more visible.
                                        Please give us the possibility to rearange columns or insert columns before/after existing ones without a drop and recreate

                                        256 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Clustering hint on table to make index scan more likely for clustered data

                                          Support a hint on tables to indicate that the data is naturally clustered by a column. Use that hint to reduce the estimated table page count and thus prefer an index scan.

                                          We are storing time-series data in PostgreSQL. Thus the data is naturally clustered by timestamp, and never updated.

                                          On an index scan, the optimizer over-estimates the number of table pages to read. At the point it switches from the index scan to the table scan, the query time jumps significantly. Because of the clustering of the rows in the date-range, an index scan would still be faster beyond…

                                          9 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                          ← Previous 1 3 4 5 6 7 8
                                          • Don't see your idea?

                                          General

                                          Feedback and Knowledge Base