Skip site navigation (1) Skip section navigation (2)

Re: alpha4 timing

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: Josh Berkus <josh(at)agliodbs(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: alpha4 timing
Date: 2010-02-18 06:57:36
Message-ID: (view raw or flat)
Lists: pgsql-hackers
Peter Eisentraut <peter_e(at)gmx(dot)net> writes:
> On ons, 2010-02-17 at 14:58 -0800, Josh Berkus wrote:
>> On 2/17/10 2:08 PM, Peter Eisentraut wrote:
>>> FYI: 9.0alpha4 will be wrapped tomorrow (Thursday) and released
>>> Friday'ish.
>> Can you get me release notes RSN so that I can edit them?

> I don't have any release notes yet.  Feel free to pitch in ...

FWIW, I dug through the CVS logs and picked out all the commit messages
that seem worth including since alpha3.  Too tired to do more than that ...

			regards, tom lane

2010-02-16 17:34  tgl

	* Replace the pg_listener-based
	LISTEN/NOTIFY mechanism with an in-memory queue.  In addition, add
	support for a "payload" string to be passed along with each notify
	This implementation should be significantly more efficient than the
	old one, and is also more compatible with Hot Standby usage.  There
	is not yet any facility for HS slaves to receive notifications
	generated on the master, although such a thing is possible in
	Joachim Wieland, reviewed by Jeff Davis; also hacked on by me.

2010-02-16 17:19  adunstan

	* Add
	query text to auto_explain output.
	Still to be done: fix docs and fix regression failures under

2010-02-16 16:39  adunstan

	* Clean up package namespace
	use and use of Safe in plperl.	Prevent use of another buggy
	version of  Only register the exit handler if we have 
	successfully created an interpreter.  Change log level of perl
	warnings from NOTICE to WARNING.
	The infrastructure is there if in future we decide to allow DBAs to
	specify extra modules that will be allowed in trusted code. 
	However, for now the relevant variables are declared as lexicals
	rather than as package variables, so that they are not (or should
	not be) accessible.
	Mostly code from Tim Bunce, reviewed by Alex Hunsaker, with some
	tweaks by me.

2010-02-16 16:18  momjian

	* Honor to_char() "FM"
	specification in YYY, YY, and Y;  it was already honored by YYYY. 
	Also document Oracle "toggle" FM behavior.
	Per report from Guy Rouillier

2010-02-16 15:58  momjian

	* Have
	SELECT and CREATE TABLE AS queries return a row count.	While this
	is invisible in psql, other interfaces, like libpq, make this value
	Boszormenyi Zoltan

2010-02-12 14:35  adunstan

	* Add plperl.on_plperl_init and plperl.on_plperlu_init settings for
	language-specific startup. Rename recently added
	plperl.on_perl_init to plperl.on_init. Also, code cleanup for utf8
	hack. Patch from Tim Bunce, reviewed by Alex Hunsaker.

2010-02-12 12:33  tgl

	* Extend the set of frame options
	supported for window functions.
	This patch allows the frame to start from CURRENT ROW (in either
	RANGE or ROWS mode), and it also adds support for ROWS n PRECEDING
	and ROWS n FOLLOWING start and end points.  (RANGE value
	PRECEDING/FOLLOWING isn't there yet --- the grammar works, but
	that's all.)
	Hitoshi Harada, reviewed by Pavel Stehule

2010-02-11 09:29  teodor

	* Generic implementation of red-black binary
	tree. It's planned to use in several places, but for now only GIN
	uses it during index creation.	Using self-balanced tree greatly
	speeds up index creation in corner cases with preordered data.

2010-02-09 16:43  tgl

	* Fix up rickety handling of relation-truncation
	Move rd_targblock, rd_fsm_nblocks, and rd_vm_nblocks from relcache
	to the smgr relation entries, so that they will get reset to
	InvalidBlockNumber whenever an smgr-level flush happens.  Because
	we now send smgr invalidation messages immediately (not at end of
	transaction) when a relation truncation occurs, this ensures that
	other backends will reset their values before they next access the
	relation.  We no longer need the unreliable assumption that a
	VACUUM that's doing a truncation will hold its AccessExclusive lock
	until commit --- in fact, we can intentionally release that lock as
	soon as we've completed the truncation.  This patch therefore
	reverts (most of) Alvaro's patch of 2009-11-10, as well as my
	marginal hacking on it yesterday.  We can also get rid of assorted
	no-longer-needed relcache flushes, which are far more expensive
	than an smgr flush because they kill a lot more state.
	In passing this patch fixes smgr_redo's failure to perform
	visibility-map truncation, and cleans up some rather dubious
	assumptions in freespace.c and visibilitymap.c about when
	rd_fsm_nblocks and rd_vm_nblocks can be out of date.

2010-02-07 23:33  tgl

	* Remove old-style VACUUM FULL
	(which was known for a little while as VACUUM FULL INPLACE), along
	with a boatload of subsidiary code and complexity.  Per discussion,
	the use case for this method of vacuuming is no longer large enough
	to justify maintaining it; not to mention that we don't wish to
	invest the work that would be needed to make it play nicely with
	Hot Standby.
	Aside from the code directly related to old-style VACUUM FULL, this
	commit removes support for certain WAL record types that could only
	be generated within VACUUM FULL, redirect-pointer removal in
	heap_page_prune, and nontransactional generation of cache
	invalidation sinval messages (the last being the sticking point for
	Hot Standby).
	We still have to retain all code that copes with finding
	HEAP_MOVED_OFF and HEAP_MOVED_IN flag bits on existing tuples. 
	This can't be removed as long as we want to support in-place update
	from pre-9.0 databases.

2010-02-07 17:40  tgl

	* Work around deadlock problems with
	VACUUM FULL/CLUSTER on system catalogs, as per my recent proposal.
	First, teach IndexBuildHeapScan to not wait for INSERT_IN_PROGRESS
	or DELETE_IN_PROGRESS tuples to commit unless the index build is
	checking uniqueness/exclusion constraints.  If it isn't, there's no
	harm in just indexing the in-doubt tuple.
	Second, modify VACUUM FULL/CLUSTER to suppress reverifying
	uniqueness/exclusion constraint properties while rebuilding indexes
	of the target relation.  This is reasonable because these commands
	aren't meant to deal with corrupted-data situations.  Constraint
	properties will still be rechecked when an index is rebuilt by a
	REINDEX command.
	This gets us out of the problem that new-style VACUUM FULL would
	often wait for other transactions while holding exclusive lock on a
	system catalog, leading to probable deadlock because those other
	transactions need to look at the catalogs too.	Although the real
	ultimate cause of the problem is a debatable choice to release
	locks early after modifying system catalogs, changing that choice
	would require pretty serious analysis and is not something to be
	undertaken lightly or on a tight schedule.  The present patch fixes
	the problem in a fairly reasonable way and should also improve the
	speed of VACUUM FULL/CLUSTER a little bit.

2010-02-07 15:48  tgl

	* Create a "relation mapping"
	infrastructure to support changing the relfilenodes of shared or
	nailed system catalogs.  This has two key benefits:
	* The new CLUSTER-based VACUUM FULL can be applied safely to all
	* We no longer have to use an unsafe reindex-in-place approach for
	reindexing   shared catalogs.
	CLUSTER on nailed catalogs now works too, although I left it
	disabled on shared catalogs because the resulting
	pg_index.indisclustered update would only be visible in one
	Since reindexing shared system catalogs is now fully transactional
	and crash-safe, the former special cases in REINDEX behavior have
	been removed; shared catalogs are treated the same as non-shared.
	This commit does not do anything about the recently-discussed
	problem of deadlocks between VACUUM FULL/CLUSTER on a system
	catalog and other concurrent queries; will address that in a
	separate patch.  As a stopgap, parallel_schedule has been tweaked
	to run vacuum.sql by itself, to avoid such failures during the
	regression tests.

2010-02-04 22:09  joe

	* Modify recently added PQconnectdbParams() with new argument,
	expand_dbname.	If expand_dbname is non-zero and dbname contains an
	= sign, it is taken as a conninfo string in exactly the same way as
	if it had been passed to PQconnectdb. This is equivalent to the way
	PQsetdbLogin() works, allowing PQconnectdbParams() to be a complete
	Also improve the way the new function is called from psql and
	replace a previously missed call to PQsetdbLogin() in psql.
	Additionally use PQconnectdbParams() for pg_dump and friends, and
	the bin/scripts command line utilities such as vacuumdb, createdb,
	Finally, update the documentation for the new parameter, as well as
	the nuances of precedence in cases where key words are repeated or
	duplicated in the conninfo string.

2010-02-01 14:28  rhaas

	* Tighten integrity checks on ALTER TABLE ... ALTER COLUMN ...
	When a column is renamed, we recursively rename the same column in
	all descendent tables.	But if one of those tables also inherits
	that column from a table outside the inheritance hierarchy rooted
	at the named table, we must throw an error.  The previous coding
	correctly prohibited the rename when the parent had inherited the
	column from elsewhere, but overlooked the case where the parent was
	OK but a child table also inherited the same column from a second,
	unrelated parent.
	For now, not backpatched due to lack of complaints from the field.
	KaiGai Kohei, with further changes by me.  Reviewed by Bernd Helme
	and Tom Lane.

2010-02-01 10:43  rhaas

	* Augment EXPLAIN output with more
	details on Hash nodes.
	We show the number of buckets, the number of batches (and also the
	original number if it has changed), and the peak space used by the
	hash table.  Minor executor changes to track peak space used.

2010-01-31 22:14  itagaki

	* Add string_agg aggregate
	functions. The one argument version concatenates the input values
	into a string. The two argument version also does the same thing,
	but inserts delimiters between elements.
	Original patch by Pavel Stehule, reviewed by David E. Wheeler and

2010-01-29 20:46  adunstan

	* Add plperl.on_perl_init
	setting to provide for initializing the perl library on load. Also,
	handle END blocks in plperl.  Database access is disallowed during
	both these operations, although it might be allowed in END blocks
	in future.
	Patch from Tim Bunce.

2010-01-29 12:44  rhaas

	* Allow
	psql variables to be interpolated with literal or identifier
	Loosely based on a patch by Pavel Stehule.

2010-01-28 18:59  adunstan

	* Add new make targets "world",
	"install-world" and "installcheck-world" to build, install and
	check just about everything.  In addition to everything built
	installed and tested by all, install and installcheck targets,
	these build HTML Docs, build and test contrib, and test PLs and

2010-01-28 18:21  petere

	* Type table feature
	This adds the CREATE TABLE name OF type command, per SQL standard.

2010-01-28 09:25  mha

	* Add functions to reset the statistics counter for a single
	table/index or a single function.

2010-01-28 01:28  joe

	* Introduce two new libpq connection functions, PQconnectdbParams and
	PQconnectStartParams. These are analogous to PQconnectdb and
	PQconnectStart respectively. They differ from the legacy functions
	in that they accept two NULL-terminated arrays, keywords and
	values, rather than conninfo strings. This avoids the need to build
	the conninfo string in cases where it might be inconvenient to do
	so. Includes documentation.
	Also modify psql to utilize PQconnectdbParams rather than
	PQsetdbLogin.  This allows the new config parameter
	application_name to be set, which in turn is displayed in the
	pg_stat_activity view and included in CSV log entries. This will
	also ensure both new functions get regularly exercised.
	Patch by Guillaume Lelarge with review and minor adjustments by Joe

2010-01-27 10:27  heikki

	* Make
	standby server continuously retry restoring the next WAL segment
	with restore_command, if the connection to the primary server is
	lost. This ensures that the standby can recover automatically, if
	the connection is lost for a long time and standby falls behind so
	much that the required WAL segments have been archived and deleted
	in the master.
	This also makes standby_mode useful without streaming replication;
	the server will keep retrying restore_command every few seconds
	until the trigger file is found. That's the same basic
	functionality pg_standby offers, but without the bells and

2010-01-27 07:11  mha

	* Add support for RADIUS authentication.

2010-01-26 18:11  adunstan

	* Various small improvements and cleanups for PL/Perl.
	- Allow (ineffective) use of 'require' in plperl     If the
	required module is not already loaded then it dies.	 So "use
	strict;" now works in plperl.
	- Pre-load the feature module if perl >= 5.10.	    So "use feature
	:5.10;" now works in plperl.
	- Stored procedure subs are now given names.	  The names are not
	visible in ordinary use, but they make	    tools like
	Devel::NYTProf and Devel::Cover much more useful.
	- Simplified and generalized the subroutine creation code.	Now
	one code path for generating sub source code, not four.      Can
	generate multiple 'use' statements with specific imports     
	(which handles plperl.use_strict currently and can easily      be
	extended to handle a plperl.use_feature=':5.12' in future).
	- Disallows use of Safe version 2.20 which is broken for PL/Perl.
	- Assorted minor optimizations by pre-growing data structures.
	Patch from Tim Bunce, reviewed by Alex Hunsaker.

2010-01-26 11:33  tgl

	* Remove the default_do_language
	parameter, instead making DO use a hardwired default of "plpgsql". 
	This is more reasonable than it was when the DO patch was written,
	because we have since decided that plpgsql should be installed by
	default.  Per discussion, having a parameter for this doesn't seem
	useful enough to justify the risk of application breakage if the
	value is changed unexpectedly.

2010-01-26 04:07  meskes

	* Applied patch by Boszormenyi Zoltan
	<zb(at)cybertec(dot)at> to add out-of-scope cursor support to native mode.

2010-01-25 19:07  sriggs

	* Fix longstanding gripe that we
	check for 0000000001.history at start of archive recovery, even
	when we know it is never present.

2010-01-25 15:55  tgl

	* Add
	get_bit/set_bit functions for bit strings, paralleling those for
	bytea, and implement OVERLAY() for bit strings and bytea.
	In passing also convert text OVERLAY() to a true built-in, instead
	of relying on a SQL function.
	Leonardo F, reviewed by Kevin Grittner

2010-01-22 11:40  rhaas

	* Replace ALTER TABLE ... SET STATISTICS DISTINCT with a more general
	Attributes can now have options, just as relations and tablespaces
	do, and the reloptions code is used to parse, validate, and store
	them.  For simplicity and because these options are not performance
	critical, we store them in a separate cache rather than the main
	Thanks to Alex Hunsaker for the review.

2010-01-22 10:45  petere

	* PL/Python DO handler
	Also cleaned up some redundancies between the primary error
	messages and the error context in PL/Python.
	Hannu Valtonen

2010-01-22 09:13  meskes

	* Applied patch by Boszormenyi Zoltan <zb(at)cybertec(dot)at> to fix problem
	in auto-prepare mode if the connection is closed and re-opened and
	the previously prepared query is issued again.

2010-01-21 09:58  rhaas

	* Add new escaping functions PQescapeLiteral and PQescapeIdentifier.
	PQescapeLiteral is similar to PQescapeStringConn, but it relieves
	the caller of the need to know how large the output buffer should
	be, and it provides the appropriate quoting (in addition to
	escaping special characers within the string).	PQescapeIdentifier
	provides similar functionality for escaping identifiers.
	Per recent discussion with Tom Lane.

2010-01-20 16:15  petere

	* Add
	user-specific .pg_service.conf file
	This extends the existing pg_service.conf facility to first look
	for a service definition file in the user's home directory.

2010-01-20 14:43  heikki

	* Write a WAL
	record whenever we perform an operation without WAL-logging that
	would've been WAL-logged if archiving was enabled. If we encounter
	such records in archive recovery anyway, we know that some data is
	missing from the log. A WARNING is emitted in that case.
	Original patch by Fujii Masao, with changes by me.

2010-01-19 20:08  adunstan

	* Add utility functions to PLPerl:
	    quote_literal, quote_nullable, quote_ident,     encode_bytea,
	decode_bytea, looks_like_number,     encode_array_literal,
	encode_array_constructor.  Split SPI.xs into two - SPI.xs now
	contains only SPI functions. Remainder are in new Util.xs.  Some
	more code and documentation cleanup along the way, as well as
	adding some CVS markers to files missing them.
	Original patch from Tim Bunce, with a little editing from me.

2010-01-19 09:11  mha

	* Add pg_stat_reset_shared('bgwriter') to reset the cluster-wide
	shared statistics of the bgwriter.
	Greg Smith

2010-01-19 00:50  tgl

	* Add pg_table_size() and
	pg_indexes_size() to provide more user-friendly wrappers around the
	pg_relation_size() function.
	Bernd Helmle, reviewed by Greg Smith

2010-01-18 20:35  tgl

	* Add "USING expressions" option to
	plpgsql's OPEN cursor FOR EXECUTE.
	This is the last EXECUTE-like plpgsql statement that was missing
	the capability of inserting parameter values via USING.
	Pavel Stehule, reviewed by Itagaki Takahiro

2010-01-17 17:56  tgl

	* Improve
	the handling of SET CONSTRAINTS commands by having them search
	pg_constraint before searching pg_trigger.  This allows saner
	handling of corner cases; in particular we now say "constraint is
	not deferrable" rather than "constraint does not exist" when the
	command is applied to a constraint that's inherently
	non-deferrable.  Per a gripe several months ago from hubert depesz
	To make this work without breaking user-defined constraint
	triggers, we have to add entries for them to pg_constraint. 
	However, in return we can remove the pgconstrname column from
	pg_constraint, which represents a fairly sizable space savings.  I
	also replaced the tgisconstraint column with tgisinternal; the old
	meaning of tgisconstraint can now be had by testing for nonzero
	tgconstraint, while there is no other way to get the old meaning of
	nonzero tgconstraint, namely that the trigger was internally
	generated rather than being user-created.
	In passing, fix an old misstatement in the docs and comments,
	namely that pg_trigger.tgdeferrable is exactly redundant with
	pg_constraint.condeferrable.  Actually, we mark RI action triggers
	as nondeferrable even when they belong to a nominally deferrable FK
	constraint.  The SET CONSTRAINTS code now relies on that instead of
	hard-coding a list of exception OIDs.

2010-01-16 06:03  petere

	* Improved printing of Python
	exceptions in PL/Python
	Mimic the Python interpreter's own logic for printing exceptions
	instead of just using the straight str() call, so that you get
	instead of
	    <class 'plpy.SPIError'>
	and for built-in exceptions merely
	Besides looking better this cuts down on the endless version
	differences in the regression test expected files.

2010-01-15 05:44  meskes

	* Applied patch by Boszormenyi Zoltan
	<zb(at)cybertec(dot)at> to add DESCRIBE [OUTPUT] statement to ecpg.

2010-01-15 04:18  heikki

	* Introduce Streaming Replication.
	This includes two new kinds of postmaster processes, walsenders and
	walreceiver. Walreceiver is responsible for connecting to the
	primary server and streaming WAL to disk, while walsender runs in
	the primary server and streams WAL from disk to the client.
	Documentation still needs work, but the basics are there. We will
	probably pull the replication section to a new chapter later on, as
	well as the sections describing file-based replication. But let's
	do that as a separate patch, so that it's easier to see what has
	been added/changed. This patch also adds a new section to the
	chapter about FE/BE protocol, documenting the protocol used by
	Bump catalog version because of two new functions,
	pg_last_xlog_receive_location() and pg_last_xlog_replay_location(),
	for monitoring the progress of replication.
	Fujii Masao, with additional hacking by me

2010-01-14 11:31  teodor

	* Add
	point_ops opclass for GiST.

2010-01-13 04:06  meskes

	* Applied Zoltan's patch to
	make char the default sqlda type.
	Given that undefined types are handled as character strings anyway
	the type translation function can simply return the correcponding
	ECPGt_char type.

2010-01-13 03:41  meskes

	* Fix SQL3
	type return value.
	For non-SQL3 types ecpg used to return -Oid. This will break if
	there are enough Oids to fill the namespace. Therefore we play it
	safe and return 0 if there is no Oid->SQL3 tyoe mapping available.

2010-01-11 21:42  momjian

	* Please tablespace
	directories in their own subdirectory so pg_migrator can upgrade
	clusters without renaming the tablespace directories.  New
	directory structure format is, e.g.:

2010-01-11 13:39  tgl

	* Add some simple support and
	documentation for using process-specific oom_adj settings to
	prevent the postmaster from being OOM-killed on Linux systems.
	Alex Hunsaker and Tom Lane

2010-01-08 21:40  adunstan

	* Tidy up
	and refactor plperl.c.
	- Changed MULTIPLICITY check from runtime to compiletime.      No
	loads the large Config module.	- Changed plperl_init_interp() to
	return new interp     and not alter the global interp_state - Moved
	plperl_safe_init() call into check_interp().  - Removed
	plperl_safe_init_done state variable	 as interp_state now covers
	that role.  - Changed plperl_create_sub() to take a
	plperl_proc_desc argument.  - Simplified return value handling in
	plperl_create_sub.  - Changed link in the docs to
	and tweaked	wording to clarify that require, not use, is what's
	blocked.  - Moved perl code in large multi-line C string literal
	macros	   out to plc_*.pl files.  - Added a utility
	to convert the plc_*.pl files to     macros in a perlchunks.h file
	which is #included - Simplifed plperl_safe_init() slightly -
	Optimized pg_verifymbstr calls to avoid unneeded strlen()s.
	Patch from Tim Bunce, with minor editing from me.

2010-01-07 19:38  itagaki

	* Add buffer access counters to
	This uses the same infrastructure with EXPLAIN BUFFERS to support
	{shared|local}_blks_{hit|read|written} andtemp_blks_{read|written}
	columns in the pg_stat_statements view. The dumped file format also
	Thanks to Robert Haas for the review.

2010-01-07 15:17  tgl

	* Fix 3-parameter
	form of bit substring() to throw error for negative length, as
	required by SQL standard.

2010-01-06 23:53  tgl

	* Remove all the
	special-case code for INT64_IS_BUSTED, per decision that we're not
	going to support that anymore.
	I did keep the 64-bit-CRC-with-32-bit-arithmetic code, since it has
	a performance excuse to live.  It's a bit moot since that's all
	ifdef'd out, of course.

2010-01-06 20:41  tgl

	* Make configure check the version of
	Perl we're building with, and reject versions < 5.8.  Also, if
	there's no Perl, emit a warning informing the user that he won't be
	able to build from a CVS pull.	This is exactly the same treatment
	we give Bison and Perl, and for the same reasons.

2010-01-06 19:25  tgl

	* Alter the configure script to fail
	immediately if the C compiler does not provide a working 64-bit
	integer datatype.  As recently noted, we've been broken on such
	platforms since early in the 8.4 development cycle.  Since it took
	nearly two years for anyone to even notice, it seems that the
	rationale for continuing to support such platforms has reached the
	point of non-existence.  Rather than thrashing around to try to
	make it work again, we'll just admit up front that this no longer
	Back-patch to 8.4 since that branch is also broken.
	We should go around to remove INT64_IS_BUSTED support, but just in
	HEAD, so that seems like material for a separate commit.

2010-01-06 00:31  itagaki

	* Support rewritten-based full
	vacuum as VACUUM FULL. Traditional VACUUM FULL was renamed to
	VACUUM FULL INPLACE. Also added a new option -i, --inplace for
	vacuumdb to perform FULL INPLACE vacuuming.
	Since the new VACUUM FULL uses CLUSTER infrastructure, we cannot
	use it for system tables. VACUUM FULL for system tables always fall
	back into VACUUM FULL INPLACE silently.
	Itagaki Takahiro, reviewed by Jeff Davis and Simon Riggs.

2010-01-05 20:12  itagaki

	* Add verification of variable names in
	Variables must consist of only alphabets, numerals and underscores.
	 We had allowed to set variables with invalid names, but could not
	refer them in queries.
	Thanks to Robert Haas for the review.

2010-01-05 16:53  rhaas

	name SET/RESET ( tablespace_options ).
	This patch only supports seq_page_cost and random_page_cost as
	parameters, but it provides the infrastructure to scalably support
	many more.  In particular, we may want to add support for
	effective_io_concurrency, but I'm leaving that as future work for
	Thanks to Tom Lane for design help and Alvaro Herrera for the

2010-01-05 11:38  meskes

	* Applied patch by Boszormenyi Zoltan
	<zb(at)cybertec(dot)at> to add sqlda support to ecpg in both native and
	compatiblity mode.

2010-01-05 08:31  mha

	* Move the default configuration for
	the MSVC build system to, and allow using to override the defaults. is removed from the
	repository, so changes there will no longer show up when doing
	diff, and will not prevent switching branches and such things. would normally be used to override single values, but if
	an old-style is read, it will override the entire default
	configuration, making it backwards compatible.

2010-01-04 20:06  tgl

	* Get rid of
	the need for manual maintenance of the initial contents of
	pg_attribute, by having derive the information from the
	various catalog header files.  This greatly simplifies modification
	of the "bootstrapped" catalogs.
	This patch finally kills and; we now rely
	entirely on Perl scripts for those build steps.  To avoid creating
	a Perl build dependency where there was not one before, the output
	files generated by these scripts are now treated as distprep
	targets, ie, they will be built and shipped in tarballs.  But you
	will need a reasonably modern Perl (probably at least 5.6) if you
	want to build from a CVS pull.
	The changes to the MSVC build process are untested, and may well
	break --- we'll soon find out from the buildfarm.
	John Naylor, based on ideas from Robert Haas and others

2010-01-04 15:29  adunstan

	* Check values passed back from PLPerl to
	the database, via function return, trigger tuple modification or
	SPI call, to ensure they are valid in the server encoding. Along
	the way, replace uses of SvPV(foo, PL_na) with SvPV_nolen(foo) as
	recommended in the perl docs. Bug report from Hannu Krosing.

2010-01-04 11:34  tgl

	* Improve PGXS
	makefile system to allow the module's makefile to specify where to
	install DATA and DOCS files.  This is mainly intended to allow
	versioned installation, eg, install into contrib/fooM.N/ rather
	than directly into contrib/.
	Mark Cave-Ayland

2010-01-04 07:50  heikki

	* Write an end-of-backup WAL record at
	pg_stop_backup(), and wait for it at recovery instead of reading
	the backup history file. This is more robust, as it stops you from
	prematurely starting up an inconsisten cluster if the backup
	history file is lost for some reason, or if the base backup was
	never finished with pg_stop_backup().
	This also paves the way for a simpler streaming replication patch,
	which doesn't need to care about backup history files anymore.
	The backup history file is still created and archived as before,
	but it's not used by the system anymore. It's just for
	informational purposes now.
	Bump PG_CONTROL_VERSION as the location of the backup startpoint is
	now written to a new field in pg_control, and catversion because
	initdb is required
	Original patch by Fujii Masao per Simon's idea, with further fixes
	by me.

2010-01-03 21:44  tgl

	* When estimating the selectivity of an
	inequality "column > constant" or "column < constant", and the
	comparison value is in the first or last histogram bin or outside
	the histogram entirely, try to fetch the actual column min or max
	value using an index scan (if there is an index on the column).  If
	successful, replace the lower or upper histogram bound with that
	value before carrying on with the estimate.  This limits the
	estimation error caused by moving min/max values when the
	comparison value is close to the min or max.  Per a complaint from
	Josh Berkus.
	It is tempting to consider using this mechanism for
	mergejoinscansel as well, but that would inject index fetches into
	main-line join estimation not just endpoint cases.  I'm refraining
	from that until we can get a better handle on the costs of doing
	this type of lookup.

2010-01-02 15:59  tgl

	* Fix similar_escape() to convert
	parentheses to non-capturing style.  This is needed to avoid
	unwanted interference with SUBSTRING behavior, as per bug #5257
	from Roman Kononov.  Also, add some basic intelligence about
	character classes (bracket expressions) since we now have several
	behaviors that aren't appropriate inside a character class.
	As with the previous patch in this area, I'm reluctant to
	back-patch since it might affect applications that are relying on
	the prior behavior.

2010-01-02 07:18  mha

	* Support 64-bit shared memory when building on 64-bit Windows.
	Tsutomu Yamada

2010-01-01 16:53  tgl

	* Support "x IS NOT NULL"
	clauses as indexscan conditions.  This turns out to be just a minor
	extension of the previous patch that made "x IS NULL" indexable,
	because we can treat the IS NOT NULL condition as if it were "x <
	NULL" or "x > NULL" (depending on the index's NULLS FIRST/LAST
	option), just like IS NULL is treated like "x = NULL".	Aside from
	any possible usefulness in its own right, this is an important
	improvement for index-optimized MAX/MIN aggregates: it is now
	reliably possible to get a column's min or max value cheaply, even
	when there are a lot of nulls cluttering the interesting end of the

2010-01-01 12:34  mha

	* Detect a
	64-bit build environment on Windows, and generate the appropriate
	project files.
	Based on the work of Tsutomu Yamada, but much refactored.

2010-01-01 09:57  mha

	* Make the win32
	putenv() override update *all* present versions of the MSVCRxx
	runtime, not just the current + Visual Studio 6 (MSVCRT). Clearly
	there can be an almost unlimited number of runtimes loaded at the
	same time.
	Per report from Hiroshi Inoue

2009-12-31 14:41  tgl

	* Redefine Datum as uintptr_t, instead of
	unsigned long.
	This is more in keeping with modern practice, and is a first step
	towards porting to Win64 (which has sizeof(pointer) >
	Tsutomu Yamada, Magnus Hagander, Tom Lane

2009-12-30 15:32  tgl

	* Revise pgstat's
	tracking of tuple changes to improve the reliability of decisions
	about when to auto-analyze.
	The previous code depended on n_live_tuples + n_dead_tuples -
	last_anl_tuples, where all three of these numbers could be bad
	estimates from ANALYZE itself.	Even worse, in the presence of a
	steady flow of HOT updates and matching HOT-tuple reclamations,
	auto-analyze might never trigger at all, even if all three numbers
	are exactly right, because n_dead_tuples could hold steady.
	To fix, replace last_anl_tuples with an accurately tracked count of
	the total number of committed tuple inserts + updates + deletes
	since the last ANALYZE on the table.  This can still be compared to
	the same threshold as before, but it's much more trustworthy than
	the old computation.  Tracking this requires one more
	intra-transaction counter per modified table within backends, but
	no additional memory space in the stats collector.  There probably
	isn't any measurable speed difference; if anything it might be a
	bit faster than before, since I was able to eliminate some
	per-tuple arithmetic operations in favor of adding sums once per
	Also, simplify the logic around pgstat vacuum and analyze reporting
	messages by not trying to fold VACUUM ANALYZE into a single pgstat
	The original thought behind this patch was to allow scheduling of
	analyzes on parent tables by artificially inflating their
	changes_since_analyze count.  I've left that for a separate patch
	since this change seems to stand on its own merit.

2009-12-29 15:11  tgl

	* Add the ability to store inheritance-tree statistics in
	pg_statistic, and teach ANALYZE to compute such stats for tables
	that have subclasses.  Per my proposal of yesterday.
	autovacuum still needs to be taught about running ANALYZE on parent
	tables when their subclasses change, but the feature is useful even
	without that.

2009-12-26 11:55  momjian

	* Zero-label enums:
	Allow enums to be created with zero labels, for use during binary

2009-12-23 12:41  tgl

	* Allow the index name to be
	omitted in CREATE INDEX, causing the system to choose an index name
	the same as it would do for an unnamed index constraint.  (My
	recent changes to the index naming logic have helped to ensure that
	this will be a reasonable choice.)  Per a suggestion from Peter.
	A necessary side-effect is to promote CONCURRENTLY to
	type_func_name_keyword status, ie, it can't be a table/column/index
	name anymore unless quoted.  This is not all bad, since we have
	heard more than once of people typing CREATE INDEX CONCURRENTLY ON
	foo (...) and getting a normal index build of an index named
	"concurrently", which was not what they wanted.  Now this syntax
	will result in a concurrent build of an index with system-chosen
	name; which they can rename afterwards if they want something else.

2009-12-23 11:43  tgl

	* Remove code that attempted to
	rename index columns to keep them in sync with their underlying
	table columns.	That code was not bright enough to cope with
	collision situations (ie, new name conflicts with some other column
	of the index).	Since there is no functional reason to do this at
	all, trying to upgrade the logic to be bulletproof doesn't seem
	worth the trouble.
	This change means that both the index name and the column names of
	an index are set when it's created, and won't be automatically
	changed when the underlying table columns are renamed.	Neatnik
	DBAs are still free to rename them manually, of course.

2009-12-23 08:27  mha

	* Add basic build support
	for Visual Studio 2008, without resorting to generating the build
	files for 2005 and then converting them.

2009-12-22 21:35  tgl

	* Adjust naming of indexes
	and their columns per recent discussion.
	Index expression columns are now named after the FigureColname
	result for their expressions, rather than always being
	"pg_expression_N".  Digits are appended to this name if needed to
	make the column name unique within the index.  (That happens for
	regular columns too, thus fixing the old problem that CREATE INDEX
	fooi ON foo (f1, f1) fails.  Before exclusion indexes there was no
	real reason to do such a thing, but now maybe there is.)
	Default names for indexes and associated constraints now include
	the column names of all their columns, not only the first one as in
	previous practice.  (Of course, this will be truncated as needed to
	fit in NAMEDATALEN.  Also, pkey indexes retain the historical
	behavior of not naming specific columns at all.)
	An example of the results:
	regression=# create table foo (f1 int, f2 text, regression(#
	exclude (f1 with =, lower(f2) with =)); NOTICE:  CREATE TABLE /
	EXCLUDE will create implicit index "foo_f1_lower_exclusion" for
	table "foo" CREATE TABLE regression=# \d foo_f1_lower_exclusion
	Index "public.foo_f1_lower_exclusion"  Column |  Type	|
	Definition --------+---------+------------  f1	   | integer | f1 
	lower  | text	 | lower(f2) btree, for table ""

2009-12-22 18:54  tgl

	* Disallow comments on columns of relation types other than tables,
	views, and composite types, which are the only relkinds for which
	pg_dump support exists for dumping column comments.  There is no
	obvious usefulness for comments on columns of sequences or toast
	tables; and while comments on index columns might have some value,
	it's not worth the risk of compatibility problems due to possible
	changes in the algorithm for assigning names to index columns.	Per
	In consequence, remove now-dead code for copying such comments in

In response to

pgsql-hackers by date

Next:From: Heikki LinnakangasDate: 2010-02-18 07:38:15
Subject: Re: Streaming replication on win32, still broken
Previous:From: Fujii MasaoDate: 2010-02-18 06:23:26
Subject: Re: Streaming replication, and walsender during recovery

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group