8.2 features status
I'm not clear on why there's all this doom and gloom about how 8.2 will
be "merely" a performance-oriented release, with few new features, eg
http://archives.postgresql.org/pgsql-hackers/2006-07/msg00111.php
Certainly there's been a ton of effort spent on high-end performance
issues. But a quick troll through the CVS logs shows a fair number of
features that could be considered killer must-have things by their
respective target audiences:
multi-row VALUES, not only for INSERT but everywhere SELECT is allowed
pg_dump multiple -n and -t options, regex patterns for object names
multi-argument aggregates, including SQL2003-standard statistical aggregates
fully configurable timezone abbreviations (no more 'australian_timezones' hack)
allow full zic timezone names in datetime input values
support comparisons like "if row(new.*) is distinct from row(old.*)"
DROP ... IF EXISTS
numerous tsearch2 improvements, eg thesaurus
GIN index opclass
GRANT CONNECT ON DATABASE
support SSL Certificate Revocation List (CRL) files
plpython supports named parameters, composite-type results, more result-set options
plperl prepared queries
domain constraint checks are now applied everywhere
better psql multiline command handling
error cursor position displayed for many parse-analysis errors
standard_conforming_strings can be turned on (HUGE deal for some people)
initdb and pg_ctl can safely start from an admin account on Windows
display multiline values nicely in psql
support SQL-compliant row comparisons; they can be indexscan quals
DROP OWNED, REASSIGN OWNED for dealing with removal of a user
null elements in arrays
There are also some commits that are "mere" performance tweaks, and yet
we should not understate their importance because they could make the
difference between usability and non-usability in many applications:
lazy vacuums are ignored by other processes; improves behavior of concurrent vacuums
add index and table storage options (currently only FILLFACTOR)
stats_command_string overhead reduced to near zero, now on by default
reduce locking involved in DATABASE commands, eg CREATE DATABASE no longer blocks incoming connections
constraint exclusion works for UPDATE and DELETE
constraint exclusion works for UNION ALL views, not only inheritance trees
planner can rearrange join order for many common OUTER JOIN scenarios
And that's not counting some pretty significant submitted-but-not-yet-
reviewed patches (sure, some of these may get rejected, but they're all
open possibilities today):
online index builds
bitmap index AM
updatable views
PL plugin patch (plpgsql debugger infrastructure)
restartable recovery (allow checkpoints for a hot-standby server)
INSERT/UPDATE RETURNING
Not that there's anything wrong with a performance-oriented release
... but if you think that 8.2 is short on features, you'd better get
ready to be disappointed by every future release. There's not all
that much stuff left to do in terms of raw language "features".
(Of course the SQL committee keeps inventing a ton of new stuff every
few years, but how much of that do you really care about?)
regards, tom lane
My outlook is that it isn't a lot of _new_ things that you couldn't do
before, but rather improvements of existing functionality.
---------------------------------------------------------------------------
Tom Lane wrote:
I'm not clear on why there's all this doom and gloom about how 8.2 will
be "merely" a performance-oriented release, with few new features, eg
http://archives.postgresql.org/pgsql-hackers/2006-07/msg00111.phpCertainly there's been a ton of effort spent on high-end performance
issues. But a quick troll through the CVS logs shows a fair number of
features that could be considered killer must-have things by their
respective target audiences:multi-row VALUES, not only for INSERT but everywhere SELECT is allowed
pg_dump multiple -n and -t options, regex patterns for object names
multi-argument aggregates, including SQL2003-standard statistical aggregates
fully configurable timezone abbreviations (no more 'australian_timezones' hack)
allow full zic timezone names in datetime input values
support comparisons like "if row(new.*) is distinct from row(old.*)"
DROP ... IF EXISTS
numerous tsearch2 improvements, eg thesaurus
GIN index opclass
GRANT CONNECT ON DATABASE
support SSL Certificate Revocation List (CRL) files
plpython supports named parameters, composite-type results, more result-set options
plperl prepared queries
domain constraint checks are now applied everywhere
better psql multiline command handling
error cursor position displayed for many parse-analysis errors
standard_conforming_strings can be turned on (HUGE deal for some people)
initdb and pg_ctl can safely start from an admin account on Windows
display multiline values nicely in psql
support SQL-compliant row comparisons; they can be indexscan quals
DROP OWNED, REASSIGN OWNED for dealing with removal of a user
null elements in arraysThere are also some commits that are "mere" performance tweaks, and yet
we should not understate their importance because they could make the
difference between usability and non-usability in many applications:lazy vacuums are ignored by other processes; improves behavior of concurrent vacuums
add index and table storage options (currently only FILLFACTOR)
stats_command_string overhead reduced to near zero, now on by default
reduce locking involved in DATABASE commands, eg CREATE DATABASE no longer blocks incoming connections
constraint exclusion works for UPDATE and DELETE
constraint exclusion works for UNION ALL views, not only inheritance trees
planner can rearrange join order for many common OUTER JOIN scenariosAnd that's not counting some pretty significant submitted-but-not-yet-
reviewed patches (sure, some of these may get rejected, but they're all
open possibilities today):online index builds
bitmap index AM
updatable views
PL plugin patch (plpgsql debugger infrastructure)
restartable recovery (allow checkpoints for a hot-standby server)
INSERT/UPDATE RETURNINGNot that there's anything wrong with a performance-oriented release
... but if you think that 8.2 is short on features, you'd better get
ready to be disappointed by every future release. There's not all
that much stuff left to do in terms of raw language "features".
(Of course the SQL committee keeps inventing a ton of new stuff every
few years, but how much of that do you really care about?)regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
On Fri, 4 Aug 2006, Bruce Momjian wrote:
My outlook is that it isn't a lot of _new_ things that you couldn't do
before, but rather improvements of existing functionality.
It seems as though the majority of things on Tom's list are new things you
couldn't do (at all easily) before.
Gavin
Gavin Sherry wrote:
On Fri, 4 Aug 2006, Bruce Momjian wrote:
My outlook is that it isn't a lot of _new_ things that you couldn't do
before, but rather improvements of existing functionality.It seems as though the majority of things on Tom's list are new things you
couldn't do (at all easily) before.
To me new things are like PITR, Win32, savepoints, two-phase commit,
partitioned tables, tablespaces. These are from 8.0 and 8.1. What is
there in 8.2 like that?
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
On Fri, 4 Aug 2006, Bruce Momjian wrote:
Gavin Sherry wrote:
On Fri, 4 Aug 2006, Bruce Momjian wrote:
My outlook is that it isn't a lot of _new_ things that you couldn't do
before, but rather improvements of existing functionality.It seems as though the majority of things on Tom's list are new things you
couldn't do (at all easily) before.To me new things are like PITR, Win32, savepoints, two-phase commit,
partitioned tables, tablespaces. These are from 8.0 and 8.1. What is
there in 8.2 like that?
Well, GIN and some of the unreviewed stuff (bitmaps, plpgsql debugger,
updateable views) are in the same league as the stuff in 8.0 in terms of
user demand and catching up with competitors, I think.
A lot of the things on Tom's list are new bits of functionality to things
added around 8.0 and 8.1 (major enhancements to the usability of
constraint exclusion, for example). We knew then that these needed
additional functionality to fill them out and make them useful to a wide
range of people. Ideally we'd have both at each release but reality
doesn't work like that.
Thanks,
Gavin
Gavin Sherry wrote:
On Fri, 4 Aug 2006, Bruce Momjian wrote:
Gavin Sherry wrote:
On Fri, 4 Aug 2006, Bruce Momjian wrote:
My outlook is that it isn't a lot of _new_ things that you couldn't do
before, but rather improvements of existing functionality.It seems as though the majority of things on Tom's list are new things you
couldn't do (at all easily) before.To me new things are like PITR, Win32, savepoints, two-phase commit,
partitioned tables, tablespaces. These are from 8.0 and 8.1. What is
there in 8.2 like that?Well, GIN and some of the unreviewed stuff (bitmaps, plpgsql debugger,
updateable views) are in the same league as the stuff in 8.0 in terms of
user demand and catching up with competitors, I think.A lot of the things on Tom's list are new bits of functionality to things
added around 8.0 and 8.1 (major enhancements to the usability of
constraint exclusion, for example). We knew then that these needed
additional functionality to fill them out and make them useful to a wide
range of people. Ideally we'd have both at each release but reality
doesn't work like that.
Yes, that is my point. It is a "usability" release. Nothing wrong with
that. In fact, some people asked me if we were still doing things for
ordinary users rather than just doing enterprise functionality.
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
Bruce Momjian <bruce@momjian.us> writes:
To me new things are like PITR, Win32, savepoints, two-phase commit,
partitioned tables, tablespaces. These are from 8.0 and 8.1. What is
there in 8.2 like that?
[ shrug... ] Five out of your six items have no basis in the SQL spec.
So it's not clear to me what your definition of "major feature" is,
unless maybe it's "anything except what we did for 8.2". Can you
enumerate ten things you would consider comparable to the above features
that aren't done yet?
regards, tom lane
Bruce Momjian wrote:
Gavin Sherry wrote:
On Fri, 4 Aug 2006, Bruce Momjian wrote:
My outlook is that it isn't a lot of _new_ things that you couldn't do
before, but rather improvements of existing functionality.It seems as though the majority of things on Tom's list are new things you
couldn't do (at all easily) before.To me new things are like PITR, Win32, savepoints, two-phase commit,
partitioned tables, tablespaces. These are from 8.0 and 8.1. What is
there in 8.2 like that?
Well to be honest, the things that are coming in 8.2 more people will
use then any of the things you just mentioned.
Joshua D. Drake
--
=== The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive PostgreSQL solutions since 1997
http://www.commandprompt.com/
Tom Lane wrote:
Bruce Momjian <bruce@momjian.us> writes:
To me new things are like PITR, Win32, savepoints, two-phase commit,
partitioned tables, tablespaces. These are from 8.0 and 8.1. What is
there in 8.2 like that?[ shrug... ] Five out of your six items have no basis in the SQL spec.
So it's not clear to me what your definition of "major feature" is,
unless maybe it's "anything except what we did for 8.2". Can you
enumerate ten things you would consider comparable to the above features
that aren't done yet?
No, I cannot. I do think our missing list is shrinking. My point is
that you really couldn't easily work around the 8.0/8.1 items I listed
if they were missing, while the 8.2 items could be more easily
worked-around. Again, nothing wrong with that.
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
Joshua D. Drake wrote:
Bruce Momjian wrote:
Gavin Sherry wrote:
On Fri, 4 Aug 2006, Bruce Momjian wrote:
My outlook is that it isn't a lot of _new_ things that you couldn't do
before, but rather improvements of existing functionality.It seems as though the majority of things on Tom's list are new things you
couldn't do (at all easily) before.To me new things are like PITR, Win32, savepoints, two-phase commit,
partitioned tables, tablespaces. These are from 8.0 and 8.1. What is
there in 8.2 like that?Well to be honest, the things that are coming in 8.2 more people will
use then any of the things you just mentioned.
Right, hence "usability", not "new enterprise features".
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
It seems as though the majority of things on Tom's list are new things you
couldn't do (at all easily) before.To me new things are like PITR, Win32, savepoints, two-phase commit,
partitioned tables, tablespaces. These are from 8.0 and 8.1. What is
there in 8.2 like that?Well to be honest, the things that are coming in 8.2 more people will
use then any of the things you just mentioned.Right, hence "usability", not "new enterprise features".
O.k. I buy that.
Joshua D. Drake
--
=== The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive PostgreSQL solutions since 1997
http://www.commandprompt.com/
+1
UPDATE/DELETE for CE are a big deal - I really wish we had INSERT too, then
we'd be able to claim "complete" support for partitioning, but this is a big
deal improvement.
- Luke
On 8/3/06 9:30 PM, "Gavin Sherry" <swm@linuxworld.com.au> wrote:
Show quoted text
A lot of the things on Tom's list are new bits of functionality to things
added around 8.0 and 8.1 (major enhancements to the usability of
constraint exclusion, for example).
Ühel kenal päeval, R, 2006-08-04 kell 00:46, kirjutas Bruce Momjian:
Tom Lane wrote:
Bruce Momjian <bruce@momjian.us> writes:
To me new things are like PITR, Win32, savepoints, two-phase commit,
partitioned tables, tablespaces. These are from 8.0 and 8.1. What is
there in 8.2 like that?[ shrug... ] Five out of your six items have no basis in the SQL spec.
So it's not clear to me what your definition of "major feature" is,
unless maybe it's "anything except what we did for 8.2". Can you
enumerate ten things you would consider comparable to the above features
that aren't done yet?No, I cannot. I do think our missing list is shrinking. My point is
that you really couldn't easily work around the 8.0/8.1 items I listed
if they were missing, while the 8.2 items could be more easily
worked-around.
The workaround for missing concurrent vacuum was to design your
databases so the your small and large OLTP tables are on different
servers or that you keep a replica and vacuum your large tables there
and then switch over to it.
It is debatable if that qualifies as "more easily worked-around"
The workaround for pl/python not allowing returning records and sets was
to write an actual pl/python function to generate the data and to store
it in global ditionary GD, a set of pl/python data retrieval functions
for each postgresql data type used and a wrapper function in pl/pgsql to
call the real function and then return the the data records using the
data retrieval functions.
May be simple, but a real PITA to do for more than one function.
I guess some other new features that were missing before were as easy to
work around :)
Again, nothing wrong with that.
Sure. Actually I think that people were able to work around missing
features in 8.0/8.1 as well. The proof being, that people *did* actually
use postgresql before 8.x , some even on win32 ;)
--
----------------
Hannu Krosing
Database Architect
Skype Technologies OÜ
Akadeemia tee 21 F, Tallinn, 12618, Estonia
Skype me: callto:hkrosing
Get Skype for free: http://www.skype.com
On Fri, Aug 04, 2006 at 12:37:10AM -0400, Tom Lane wrote:
Bruce Momjian <bruce@momjian.us> writes:
To me new things are like PITR, Win32, savepoints, two-phase
commit, partitioned tables, tablespaces. These are from 8.0 and
8.1. What is there in 8.2 like that?[ shrug... ] Five out of your six items have no basis in the SQL
spec. So it's not clear to me what your definition of "major
feature" is, unless maybe it's "anything except what we did for
8.2". Can you enumerate ten things you would consider comparable to
the above features that aren't done yet?
First, I'd like to say people are doing a fantastic job here. Kudos!
One huge thing missing from the "done" list is that crucial bit of
infrastructure and process that has shortened feedback loops--hence
the beta period--by weeks if not months: the build farm. It's now
smoothly integrated into the development process, and as a
consequence, we can realistically have a release each year. :)
As far as big missing features go, here's a short list:
* Splitting queries among CPUs--possibly even among machines--for OLAP
loads
* In-place upgrades (pg_upgrade)
* Several varieties of replication, which I believe we as a project
will eventually endorse and ship
* CALL
* WITH RECURSIVE
* MERGE
* Windowing functions
* On-the-fly in-line calls out to PL/your_choice without needing to
issue DDL
* Wild-eyed feral bits of the SQL standard like SQL/MED and SQL/XML
But all that leaves out the oldest, most honored Postgres tradition:
Breaking New Ground.
We're definitely not done yet. :)
Cheers,
D
--
David Fetter <david@fetter.org> http://fetter.org/
phone: +1 415 235 3778 AIM: dfetter666
Skype: davidfetter
Remember to vote!
David,
On 8/3/06 11:02 PM, "David Fetter" <david@fetter.org> wrote:
* Splitting queries among CPUs--possibly even among machines--for OLAP
loads* In-place upgrades (pg_upgrade)
* Several varieties of replication, which I believe we as a project
will eventually endorse and ship* CALL
* WITH RECURSIVE
* MERGE
* Windowing functions
* On-the-fly in-line calls out to PL/your_choice without needing to
issue DDL
My ordering of this list in terms of priority is:
1) Windowing functions
2) MERGE
3) Index only access (new)
4) In-place upgrades
We already have splitting queries among CPUs and machines.
- Luke
All,
<grin> Aren't I, the marketing geek, supposed to be the one whining about
this?
Seriously, PostgreSQL has the fastest release cycle of any RDBMS project in
the world. The request I'm hearing from large production users is to release
*less* often. So I don't find it a problem that this release has less
"checklist" features than the last two did, and I don't think anyone else
will.
If all the pending features die then I might find it a stretch to write the
press release, but otherwise, no problem. And since when were we a
marketing-driven project anyway?
* In-place upgrades (pg_upgrade)
BTW, I may get Sun to contribute an engineer for this; will get you posted.
Oh, and if it makes it, Tzadhi's FULL DISJUNCTIONS patch is newsworthy.
--
Josh Berkus
PostgreSQL @ Sun
San Francisco
David Fetter skrev:
As far as big missing features go, here's a short list:
* Windowing functions
If we are to wish for things the window functions and a proper
collation/locale support is what I miss the most.
/Dennis
On Fri, Aug 04, 2006 at 08:27:02AM +0200, Dennis Bjorklund wrote:
If we are to wish for things the window functions and a proper
collation/locale support is what I miss the most.
Agreed. The complaints about collation/locale support have been
continuous over the years, and it really is quite irritating in certain
situations. I got the COLLATE support as far as grammer and executor
support but got stuck on the planning and optimiser. Maybe one day I'll
get the time to really finish it off properly... (if anyone else wants
to have a shot, go for it).
One downside of a fast release cycle: fast tree drift :) But I guess
you can't really complain about that.
Oh yeah, user-defined typmod would be cool. There's some movement on
that though.
Have a nice day,
--
Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/
Show quoted text
From each according to his ability. To each according to his ability to litigate.
Bruce Momjian wrote:
Right, hence "usability", not "new enterprise features".
I'm not too happy about the label "usability".
"Ok, maybe postgres gets usable finally by supporting features that
MySQL had for a long time...." a MySql guy would say.
Regards,
Andreas
On 04/08/06, Andreas Pflug <pgadmin@pse-consulting.de> wrote:
Bruce Momjian wrote:
Right, hence "usability", not "new enterprise features".
I'm not too happy about the label "usability".
"Ok, maybe postgres gets usable finally by supporting features that
MySQL had for a long time...." a MySql guy would say.
I have the same feeling about the term "usability". It could
be interpreted like : PostgreSQL was not usable until now.
Best wishes,
Adrian Maier