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. 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

    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…)
      1 comment  ·  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…

      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…)
        2 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 →
        • 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 →
          • 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 →
            • 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 →
                • 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.

                  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 →
                  • allow export directly to CSV in pgadmin.

                    Some tables take forever to display, especially in PgAdmin4. Perhaps a direct pipe to a CSV is better. If we test a query in PgAdmin and do not want to use a workaround for pumping to a CSV in a query, it would be nice to have a direct export.

                    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 →
                    • 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…)
                        1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                      • stop locking me out of schemas in pgadmin4.

                        PgAdmin4 is locking schemas and barring drops and other things across multiple users. We need this to stop. It appears that really large queries across pg_stat_database and other pg_stat tables are blocking everything. HUGE BUG!!!!!

                        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 →
                        • add verbosity to queries such as SELECT VERBOSE .... or DROP VERBOSE

                          Sometimes schemas seem to hang on select or drop infinitely. We have really large schemas, the kind that break pgadmin4, and a ton of records, the kind that also break pgadmin4. It would be great to see exactly where queries are in the pgadmin3 and pgadmin4 consoles.

                          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 →
                          • 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

                            8 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 →
                            • 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 →
                              • 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 →
                                • Binary version with speed optimizations from intel C/C++ and/or PGI C/C++ compilers

                                  Current binary version of postgres is compiled by gcc.
                                  Gcc is more slow then intel c/c++ or pgi c/c++

                                  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 →
                                  • 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 →
                                    • ALTER table CASCADE

                                      I have had to drop and recreate functions and views many times when I made changes to table. It would be very helpful to have a ALTER <table> CASCADE ... statement. Take this example:

                                      -- Create your database

                                      CREATE TABLE Invitation (contact integer);

                                      CREATE TABLE Contact (id serial, name text);

                                      CREATE VIEW SingleNameContact AS
                                      SELECT * FROM Contact WHERE NOT trim(name) LIKE '% %';

                                      CREATE FUNCTION Invite(c Contact) RETURNS void AS
                                      $BODY$
                                      INSERT INTO Invitation (contact) VALUES (c.ID);
                                      $BODY$
                                      LANGUAGE SQL;

                                      -- Add a column:

                                      ALTER TABLE Contact
                                      ADD surname text;

                                      -- If you now select from SingleContactName, the surname…

                                      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 →
                                      • Connection localised error messages

                                        Currently error messages are localised globally for a database. For multi-locale applications that make use of error messages, it should be very helpful if a locale can be set for each individual connection which would then be used for translating error messages (internal to Postgresql) to the locale of the connection in stead of the database locale. For example, if a user attempts to insert a duplicate value where a unique constraint is violated, it makes more sense to give back an error message that the user can understand. With global web sites (like booking a flight), this seems more…

                                        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 →
                                        • 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…

                                          26 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
                                          • Don't see your idea?

                                          General

                                          Feedback and Knowledge Base