-
pl/sql packages (like Oracle)
developer feature for clustering my scripts into logical units.
468 votes -
Better administration and monitoring tools
If yes, what specific functionality is needed?
431 votes -
In-memory table
Table placed only in RAM, visibility for all
421 votes -
Query progress, reported by percentage in pg_stat_activity.
This wouldn't need to be perfectly accurate or linear, but would help admins know how far along a long running query was in executing its plan. Even better would be a way to add to EXPLAIN output what part of the plan was executing and its percentage progress.
338 votes -
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 recreate343 votes -
Wildcards in Full-text search
Needed wildcards:
* - stands for a string of characters of any length
? - stands for zero or one character- stands for exactly one character.
They can appear any times in any part of word. Thanks.
233 votes -
RMAN like incremental and differential backups
At present there is only one way of backing up a big databases in PG: full hot cluster backup with archived WAL sets. This method is insufficient in case of limited storage space and low time recovery. PG needs native incremental and differential block level backups for more scalability of database. There is some 3rd party efforts on that but definitely need native facility tools.
197 votes -
Autonomous transaction like oracle in pl/pgsql
Add this feature for implementing logging in procedure/function.
see http://download.oracle.com/docs/cd/B1930601/appdev.102/b14261/autonotransactionpragma.htm165 votes -
Internal time service, instead of crond
Internal time service which would be capable call stored procedure in time or periodicaly. Service can have properties similar to cron's.
120 votes -
Native multi-master replication
Having natively multi-master replication.
102 votes -
Incremental updating of materialized views
As it is, materialized views makes you choose between out of date data, or complete recomputation of the view.
Instead, it would be fantastic if materialized views could be updated incrementally so that you could never read out of date data (ACID).
Incremental updates is only possible for a subset of queries. For example, a query computing the median of something might not be a good candidate for incremental updates. It would be acceptable that only a subset of queries were supported in this context.
This would also make PostgreSQL an excellent event store - eg. you'd be able to…
93 votes -
Parameters in the anonymous code blocks (like in Oracle)
Sample:
do
$$
begin
insert into test_table(id, name) values(:ID, :Name);
end
$$;92 votes -
Add DEFERRED option to check constraints
To improve data consistency foreign keys and simple row based checks isn't always enough. Sometimes you would like to write a stored procedure that does more advanced checks. This is fine until you would like to make that advanced constraint deferred which is not possible. "Only foreign key constraints currently accept this clause. All other constraint types are not deferrable." - http://www.postgresql.org/docs/8.4/interactive/sql-createtable.html I request deferrable check constraints!
80 votes -
Cluster servers
Cluster server means two or more servers share the same db disks in the san and accross network also share their memory like in oracle RAC.
This feature would be very effective in postgresqş for high availibility76 votes -
SQL/MED datalinks
Implement datalink datatype, as specified by SQL/MED.
Implement additional operations on datalinks, such as reading and writing contents of files pointed to by datalinks.
This could be very useful for content management, workflow applications, etc... Right now this is rather clumsy, because some data is in a database and some is in files...
70 votes -
Single Tablespace recovery
It happens way to often when users come and ask to recover some “lost” data from backups. It would be of a great benefit if one could recover only a single tablespace from the filesystem-based backups.
Right now one should recover a cluster in full, which is overkill quite often.
69 votes -
Calculated (like oracle virtual) columns
for example
create table test1 ( x int, y int, z int generated always as ( ( x + y ) / NullIf( y, 0 ) ) )
68 votes -
Create/ Update/ Delete on JSON keys
Let's have full CRUD supports for JSON keys.
Postgres 9.3 supports Read on JSON properties, but does not support Create(Insert)/ Update/ Delete.
This works:
CREATE TABLE foo ( id serial primary key, credit numeric);
SELECT bar FROM foo WHERE id = $1;
UPDATE foo SET bar = bar + $1 WHERE id = $2;... but its JSON equivalent works for Create(Select), but not Update:
CREATE TABLE foo ( id serial primary key, data json);
SELECT data->'bar' FROM foo WHERE id = $1;
UPDATE foo SET data->'bar' = data->'bar' + $1 WHERE id = $2;Deleting a JSON key does…
65 votes -
CREATE ASSERTION, or CHECK constraints with subselects
With tables that are not updated frequently, and when I'm fully aware of the performance implications, I'd like to have as many data integrity constraints as possible. I'm fully aware it can be burdensome to implement, but I cannot think of anything else to improve my current Postgres experience. Thanks for this feedback tool :)
64 votes -
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 pgrepack? Nowadays most PG instances are cloud…
57 votes
- Don't see your idea?