aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* 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
|
* Fix unportable use of isxdigit() with char (rather than unsigned char)Tom Lane2010-01-16
| | | | | argument, per warnings from buildfarm member pika. Also clean up code formatting a trifle.
* Fix bogus initialization of KnownAssignedXids shared memory state ---Tom Lane2010-01-16
| | | | didn't work in EXEC_BACKEND case.
* Lock database while running drop database in Hot Standby to protectSimon Riggs2010-01-16
| | | | | | | | | against concurrent reconnection. Failure during testing showed issue was possible, even though earlier analysis seemed to indicate it would not be required. Use LockSharedObjectForSession() before ResolveRecoveryConflictWithDatabase() and hold lock until end of processing for that WAL record. Simple approach to avoid introducing further bugs at this stage of development on an improbable issue.
* Build the walreceiver library on MSVC as well.Magnus Hagander2010-01-16
|
* Improved printing of Python exceptions in PL/PythonPeter Eisentraut2010-01-16
| | | | | | | | | | | | | | | | | | | Mimic the Python interpreter's own logic for printing exceptions instead of just using the straight str() call, so that you get plpy.SPIError instead of <class 'plpy.SPIError'> and for built-in exceptions merely UnicodeEncodeError Besides looking better this cuts down on the endless version differences in the regression test expected files.
* Message mentions msec when it should be seconds, so use s instead of ms.Simon Riggs2010-01-16
| | | | Noticed by Andres Freund
* Teach standby conflict resolution to use SIGUSR1Simon Riggs2010-01-16
| | | | | | | | | | Conflict reason is passed through directly to the backend, so we can take decisions about the effect of the conflict based upon the local state. No specific changes, as yet, though this prepares for later work. CancelVirtualTransaction() sends signals while holding ProcArrayLock. Introduce errdetail_abort() to give message detail explaining that the abort was caused by conflict processing. Remove CONFLICT_MODE states in favour of using PROCSIG_RECOVERY_CONFLICT states directly, for clarity.
* Huh, apparently on cygwin we HAVE_SIGPROCMASK, so both variants ofTom Lane2010-01-16
| | | | | the BlockSig/UnBlockSig declaration have to be PGDLLIMPORT'ified. Per buildfarm results.
* Add #include <sys/time.h> for struct timeval definition on BSD/OS.Bruce Momjian2010-01-16
|
* PGDLLIMPORT-ize the remaining variables needed by walreceiver.Tom Lane2010-01-16
|
* Do parse analysis of an EXPLAIN's contained statement during the normalTom Lane2010-01-15
| | | | | | | | parse analysis phase, rather than at execution time. This makes parameter handling work the same as it does in ordinary plannable queries, and in particular fixes the incompatibility that Pavel pointed out with plpgsql's new handling of variable references. plancache.c gets a little bit grottier, but the alternatives seem worse.
* Second try: walreceiver should not be built with -DBUILDING_DLLTom Lane2010-01-15
|
* No, scratch that, it was getting added twice.Tom Lane2010-01-15
|