aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Remove the default_do_language parameter, instead making DO use a hardwiredTom Lane2010-01-26
| | | | | | | | 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.
* Un-break initdb logic for commenting out IPv6 pg_hba.conf line.Tom Lane2010-01-26
|
* Added test case that was part of Zoltan's patch but apparently wasn't part ↵Michael Meskes2010-01-26
| | | | of my commit.
* Applied patch by Boszormenyi Zoltan <zb@cybertec.at> to add out-of-scope ↵Michael Meskes2010-01-26
| | | | cursor support to native mode.
* Reformat the comments in pg_hba.conf and pg_ident.confPeter Eisentraut2010-01-26
| | | | | | | These files have apparently been edited over the years by a dozen people with as many different editor settings, which made the alignment of the paragraphs quite inconsistent and ugly. I made a pass of M-q with Emacs to straighten it out.
* Make the default pg_hba.conf and pg_ident.conf align at 8-character boundariesPeter Eisentraut2010-01-26
| | | | to make it easier to use with tabs.
* Fix longstanding gripe that we check for 0000000001.history at start ofSimon Riggs2010-01-26
| | | | archive recovery, even when we know it is never present.
* Add get_bit/set_bit functions for bit strings, paralleling those for bytea,Tom Lane2010-01-25
| | | | | | | | | 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
* Add note that PREPARE TRANSACTION is for transaction managers, notHeikki Linnakangas2010-01-25
| | | | | regular applications. Also add a comment pointing out that tab-complition for PREPARE TRANSACTION is missing on purpose.
* Apply Tcl_Init() to the "hold" interpreter created by pltcl.Tom Lane2010-01-25
| | | | | | | | | | | | | | | | | | | | | | | You might think this is unnecessary since that interpreter is never used to run code --- but it turns out that's wrong. As of Tcl 8.5, the "clock" command (alone among builtin Tcl commands) is partially implemented by loaded-on-demand Tcl code, which means that it fails if there's not unknown-command support, and also that it's impossible to run it directly in a safe interpreter. The way they get around the latter is that Tcl_CreateSlave() automatically sets up an alias command that forwards any execution of "clock" in a safe slave interpreter to its parent interpreter. Thus, when attempting to execute "clock" in trusted pltcl, the command actually executes in the "hold" interpreter, where it will fail if unknown-command support hasn't been introduced by sourcing the standard init.tcl script, which is done by Tcl_Init(). (This is a pretty dubious design decision on the Tcl boys' part, if you ask me ... but they didn't.) Back-patch all the way. It's not clear that anyone would try to use ancient versions of pltcl with a recent Tcl, but it's not clear they wouldn't, either. Also add a regression test using "clock", in branches that have regression test support for pltcl. Per recent trouble report from Kyle Bateman.
* Fix assorted core dumps and Assert failures that could occur duringTom Lane2010-01-24
| | | | | | | | | | | | | | AbortTransaction or AbortSubTransaction, when trying to clean up after an error that prevented (sub)transaction start from completing: * access to TopTransactionResourceOwner that might not exist * assert failure in AtEOXact_GUC, if AtStart_GUC not called yet * assert failure or core dump in AfterTriggerEndSubXact, if AfterTriggerBeginSubXact not called yet Per testing by injecting elog(ERROR) at successive steps in StartTransaction and StartSubTransaction. It's not clear whether all of these cases could really occur in the field, but at least one of them is easily exposed by simple stress testing, as per my accidental discovery yesterday.
* Insert CHECK_FOR_INTERRUPTS calls into loops in dbsize.c, to ensure thatTom Lane2010-01-23
| | | | | | the various disk-size-reporting functions will respond to query cancel reasonably promptly even in very large databases. Per report from Kevin Grittner.
* Add explanatory detail to Hot Standby cancelation error messagesSimon Riggs2010-01-23
| | | | with errdetail(). Add errhint() to suggest retry in certain cases.
* In HS, Startup process sets SIGALRM when waiting for buffer pin. IfSimon Riggs2010-01-23
| | | | | | | woken by alarm we send SIGUSR1 to all backends requesting that they check to see if they are blocking Startup process. If so, they throw ERROR/FATAL as for other conflict resolutions. Deadlock stop gap removed. max_standby_delay = -1 option removed to prevent deadlock.
* Fix several oversights in previous commit - attribute options patch.Robert Haas2010-01-22
| | | | I failed to 'cvs add' the new files and also neglected to bump catversion.
* Replace ALTER TABLE ... SET STATISTICS DISTINCT with a more general mechanism.Robert Haas2010-01-22
| | | | | | | | | 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 relcache. Thanks to Alex Hunsaker for the review.
* PL/Python DO handlerPeter Eisentraut2010-01-22
| | | | | | | Also cleaned up some redundancies between the primary error messages and the error context in PL/Python. Hannu Valtonen
* Make argument const char * as per Takahiro Itagaki's suggestion.Michael Meskes2010-01-22
|
* Applied patch by Boszormenyi Zoltan <zb@cybertec.at> to fix problem in ↵Michael Meskes2010-01-22
| | | | auto-prepare mode if the connection is closed and re-opened and the previously prepared query is issued again.
* Fix unsafe loop test, and declare as_ident as bool rather than int.Robert Haas2010-01-21
|
* Add new escaping functions PQescapeLiteral and PQescapeIdentifier.Robert Haas2010-01-21
| | | | | | | | | | 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.
* Add missing flag reset to ensure subsequent manual cancelation gives correct ↵Simon Riggs2010-01-21
| | | | reason.
* Fix bogus comments.Heikki Linnakangas2010-01-21
|
* Adjust psql to use pg_get_triggerdef(pretty=true) to remove extra ()'sItagaki Takahiro2010-01-21
| | | | | | from description of triggers with WHEN clause. Thanks to Brad T. Sliger for the review.
* Better internal documentation of locking for Hot Standby conflict resolution.Simon Riggs2010-01-21
| | | | | | Discuss the reasons for the lock type we hold on ProcArrayLock while deriving the conflict list. Cover the idea of false positive conflicts and seemingly strange effects on snapshot derivation.
* Well, the systemtap guys moved the goalposts again: with the latest version,Tom Lane2010-01-20
| | | | | | we *must* generate probes.o or the dtrace probes don't work. Revert our workaround for their previous bug. Details at https://bugzilla.redhat.com/show_bug.cgi?id=557266
* Add user-specific .pg_service.conf filePeter Eisentraut2010-01-20
| | | | | This extends the existing pg_service.conf facility to first look for a service definition file in the user's home directory.
* Fix bogus subdir setting. Again. I must've unfixed it by accident whileHeikki Linnakangas2010-01-20
| | | | moving files around.
* Write a WAL record whenever we perform an operation without WAL-loggingHeikki Linnakangas2010-01-20
| | | | | | | | 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.
* Now that much of walreceiver has been pulled back into the postgresHeikki Linnakangas2010-01-20
| | | | | | | binary, revert PGDLLIMPORT decoration of global variables. I'm not sure if there's any real harm from unnecessary PGDLLIMPORTs, but these are all internal variables that external modules really shouldn't be messing with. ThisTimeLineID still needs PGDLLIMPORT.
* Add missing "!= NULL", for the sake of consistency.Heikki Linnakangas2010-01-20
| | | | Fujii Masao
* Adjust windows makefiles too, now that the walreceiver dynamic moduleHeikki Linnakangas2010-01-20
| | | | has been renamed.
* Adjust MSVC build script too, now that the walreceiver dynamic moduleHeikki Linnakangas2010-01-20
| | | | has been renamed.
* Rethink the way walreceiver is linked into the backend. Instead than shovingHeikki Linnakangas2010-01-20
| | | | | | | | | | | | | | | | | walreceiver as whole into a dynamically loaded module, split the libpq-specific parts of it into dynamically loaded module and keep the rest in the main backend binary. Although Tom fixed the Windows compilation problems with the old walreceiver module already, this is a cleaner division of labour and makes the code more readable. There's also the prospect of adding new transport methods as pluggable modules in the future, which this patch makes easier, though for now the API between libpqwalreceiver and walreceiver process should be considered private. The libpq-specific module is now in src/backend/replication/libpqwalreceiver, and the part linked with postgres binary is in src/backend/replication/walreceiver.c.
* Before attempting to create a composite type, check whether a type of thatPeter Eisentraut2010-01-20
| | | | | | name already exists, so we'd get an error message about a "type" instead of about a "relation", because the composite type code shares code with relation creation.
* Fix typo in Mkvcbuild.plAndrew Dunstan2010-01-20
|
* Build plperl's new Util.xsAndrew Dunstan2010-01-20
|
* Add utility functions to PLPerl:Andrew Dunstan2010-01-20
| | | | | | | | | | | | 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.
* When doing a parallel restore, we must guard against out-of-range dependencyTom Lane2010-01-19
| | | | | | | | | | | | | | | | dump IDs, because the array we're using is sized according to the highest dump ID actually defined in the archive file. In a partial dump there could be references to higher dump IDs that weren't dumped. Treat these the same as references to in-range IDs that weren't dumped. (The whole thing is a bit scary because the missing objects might have been part of dependency chains, which we won't know about. Not much we can do though --- throwing an error is probably overreaction.) Also, reject parallel restore with pre-1.8 archive version (made by pre-8.0 pg_dump). In these old versions the dependency entries are OIDs, not dump IDs, and we don't have enough information to interpret them. Per bug #5288 from Jon Erdman.
* Fix thinko in my recent change to put an explicit argisrow field in NullTest:Tom Lane2010-01-19
| | | | | | when the planner splits apart a ROW(...) IS NULL test, the argisrow values of the component tests have to be determined from the component field types, not copied from the original NullTest (in which argisrow is surely true).
* Add pg_stat_reset_shared('bgwriter') to reset the cluster-wide sharedMagnus Hagander2010-01-19
| | | | | | statistics of the bgwriter. Greg Smith
* Add pg_table_size() and pg_indexes_size() to provide more user-friendlyTom Lane2010-01-19
| | | | | | wrappers around the pg_relation_size() function. Bernd Helmle, reviewed by Greg Smith
* Add "USING expressions" option to plpgsql's OPEN cursor FOR EXECUTE.Tom Lane2010-01-19
| | | | | | | 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
* Cast slightly abused enum to int, so that GCC 4.5 won't warn about switchPeter Eisentraut2010-01-18
| | | | cases that are not part of the enum's definition.
* Fix an oversight in convert_EXISTS_sublink_to_join: we can't convert anTom Lane2010-01-18
| | | | | | EXISTS that contains a WITH clause. This would usually lead to a "could not find CTE" error later in planning, because the WITH wouldn't get processed at all. Noted while playing with an example from Ken Marshall.
* Fix incorrect comparison of scan key in GIN. Per report fromTeodor Sigaev2010-01-18
| | | | Vyacheslav Kalinin <vka@mgcp.com>
* Fix portalmem.c to avoid keeping a dangling pointer to a cached plan listTom Lane2010-01-18
| | | | | | | after it's released its reference count for the cached plan. There are code paths that might try to examine the plan list before noticing that the portal is already in aborted state. Report and diagnosis by Tatsuo Ishii, though this isn't exactly his proposed patch.
* Improve the handling of SET CONSTRAINTS commands by having them searchTom Lane2010-01-17
| | | | | | | | | | | | | | | | | | | | | | | 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 lubaczewski. 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.
* Add include directory for dblink to find fmgroids.h on VS2008 builds.Magnus Hagander2010-01-17
|
* Remove unnecessary, inconsistent flag resets in ProcessInterrupts.Tom Lane2010-01-17
|