summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2011-07-06Add \ir command to psql.Robert Haas
\ir is short for "include relative"; when used from a script, the supplied pathname will be interpreted relative to the input file, rather than to the current working directory. Gurjeet Singh, reviewed by Josh Kupershmidt, with substantial further cleanup by me.
2011-07-06Attempt to standardize formatting of psql queries.Robert Haas
Most queries end with a backslash, but not a newline, so try to standardize on that, for the convenience of people using psql -E to extract queries. Josh Kupershmidt, reviewed by Merlin Moncure.
2011-07-05Call FDW validator functions even when the options list is empty.Tom Lane
This is useful since a validator might want to require certain options to be provided. The passed array is an empty text array in this case. Per suggestion by Laurenz Albe, though this is not quite his patch.
2011-07-05Message style improvements of errmsg_internal() callsPeter Eisentraut
2011-07-05Fix psql's counting of script file line numbers during COPY.Tom Lane
handleCopyIn incremented pset.lineno for each line of COPY data read from a file. This is correct when reading from the current script file (i.e., we are doing COPY FROM STDIN followed by in-line data), but it's wrong if the data is coming from some other file. Per bug #6083 from Steve Haslam. Back-patch to all supported versions.
2011-07-05Message style tweaksPeter Eisentraut
2011-07-04Set user_defined_types.data_type to nullPeter Eisentraut
On re-reading the standard, this field is only used for distinct or reference types.
2011-07-04Move Trigger and TriggerDesc structs out of rel.h into a new reltrigger.hAlvaro Herrera
This lets us stop including rel.h into execnodes.h, which is a widely used header.
2011-07-04Don't try to use a constraint name as domain nameAlvaro Herrera
The bug that caused this to be discovered is that the code was trying to dereference a NULL or ill-defined pointer, as reported by Michael Mueller; but what it was doing was wrong anyway, per Heikki. This patch is Heikki's suggested fix.
2011-07-04Remove unused variable to silence compiler warningPeter Eisentraut
2011-07-04Remove missed reference to SilentMode.Tom Lane
2011-07-04Remove silent_mode. You get the same functionality with "pg_ctl -lHeikki Linnakangas
postmaster.log", or nohup. There was a small issue with LINUX_OOM_ADJ and silent_mode, namely that with silent_mode the postmaster process incorrectly used the OOM settings meant for backend processes. We certainly could've fixed that directly, but since silent_mode was redundant anyway, we might as well just remove it.
2011-07-04Alter test results to comply with new ALTER TABLE behaviour.Simon Riggs
2011-07-04Reset ALTER TABLE lock levels to AccessExclusiveLock in all cases.Simon Riggs
Locks on inheritance parent remain at lower level, as they were before. Remove entry from 9.1 release notes.
2011-07-03Put comments on the installable procedural languages.Tom Lane
Per suggestion from Josh Kupershmidt.
2011-07-03Fix bugs in relpersistence handling during table creation.Robert Haas
Unlike the relistemp field which it replaced, relpersistence must be set correctly quite early during the table creation process, as we rely on it quite early on for a number of purposes, including security checks. Normally, this is set based on whether the user enters CREATE TABLE, CREATE UNLOGGED TABLE, or CREATE TEMPORARY TABLE, but a relation may also be made implicitly temporary by creating it in pg_temp. This patch fixes the handling of that case, and also disables creation of unlogged tables in temporary tablespace (such table indeed skip WAL-logging, but we reject an explicit specification) and creation of relations in the temporary schemas of other sessions (which is not very sensible, and didn't work right anyway). Report by Amit Khandekar.
2011-07-03Make distprep and *clean build targets recurse into all subdirectories.Tom Lane
Certain subdirectories do not get built if corresponding options are not selected at configure time. However, "make distprep" should visit such directories anyway, so that constructing derived files to be included in the tarball happens without requiring all configure options to be given in the tarball build script. Likewise, it's better if cleanup actions unconditionally visit all directories (for example, this ensures proper cleanup if someone has done a manual make in such a subdirectory). To handle this, set up a convention that subdirectories that are conditionally included in SUBDIRS should be added to ALWAYS_SUBDIRS instead when they are excluded. Back-patch to 9.1, so that plpython's spiexceptions.h will get provided in 9.1 tarballs. There don't appear to be any instances where distprep actions got missed in previous releases, and anyway this fix requires gmake 3.80 so we don't want to apply it before 9.1.
2011-07-03Fix bat file quoting of %ENV.Andrew Dunstan
2011-07-03Mark pg_stat_reset_shared as strictMagnus Hagander
This is the proper fix for bug #6082 about pg_stat_reset_shared(NULL) causing a crash, and it reverts commit 79aa44536f3980d324f486504cde643ce23bf5c6 on head. The workaround of throwing an error from inside the function is left on backbranches (including 9.1) since this change requires a new initdb.
2011-07-01Suppress compiler warning about potentially uninitialized variable.Tom Lane
Maybe some compilers are smart enough to not complain about the previous coding ... but mine isn't.
2011-06-30Enable CHECK constraints to be declared NOT VALIDAlvaro Herrera
This means that they can initially be added to a large existing table without checking its initial contents, but new tuples must comply to them; a separate pass invoked by ALTER TABLE / VALIDATE can verify existing data and ensure it complies with the constraint, at which point it is marked validated and becomes a normal part of the table ecosystem. An non-validated CHECK constraint is ignored in the planner for constraint_exclusion purposes; when validated, cached plans are recomputed so that partitioning starts working right away. This patch also enables domains to have unvalidated CHECK constraints attached to them as well by way of ALTER DOMAIN / ADD CONSTRAINT / NOT VALID, which can later be validated with ALTER DOMAIN / VALIDATE CONSTRAINT. Thanks to Thom Brown, Dean Rasheed and Jaime Casanova for the various reviews, and Robert Hass for documentation wording improvement suggestions. This patch was sponsored by Enova Financial.
2011-06-29Fix outdated commentAlvaro Herrera
Extracted from a patch by Bernd Helmle
2011-06-29Restore correct btree preprocessing of "indexedcol IS NULL" conditions.Tom Lane
Such a condition is unsatisfiable in combination with any other type of btree-indexable condition (since we assume btree operators are always strict). 8.3 and 8.4 had an explicit test for this, which I removed in commit 29c4ad98293e3c5cb3fcdd413a3f4904efff8762, mistakenly thinking that the case would be subsumed by the more general handling of IS (NOT) NULL added in that patch. Put it back, and improve the comments about it, and add a regression test case. Per bug #6079 from Renat Nasyrov, and analysis by Dean Rasheed.
2011-06-29Move the PredicateLockRelation() call from nodeSeqscan.c to heapam.c. It'sHeikki Linnakangas
more consistent that way, since all the other PredicateLock* calls are made in various heapam.c and index AM functions. The call in nodeSeqscan.c was unnecessarily aggressive anyway, there's no need to try to lock the relation every time a tuple is fetched, it's enough to do it once. This has the user-visible effect that if a seq scan is initialized in the executor, but never executed, we now acquire the predicate lock on the heap relation anyway. We could avoid that by taking the lock on the first heap_getnext() call instead, but it doesn't seem worth the trouble given that it feels more natural to do it in heap_beginscan(). Also, remove the retail PredicateLockTuple() calls from heap_getnext(). In a seqscan, started with heap_begin(), we're holding a whole-relation predicate lock on the heap so there's no need to lock the tuples individually. Kevin Grittner and me
2011-06-29Grab predicate locks on matching tuples in a lossy bitmap heap scan.Heikki Linnakangas
Non-lossy case was already handled correctly. Kevin Grittner
2011-06-29Protect pg_stat_reset_shared() against NULL inputMagnus Hagander
Per bug #6082, reported by Steve Haslam
2011-06-29Unify spelling of "canceled", "canceling", "cancellation"Peter Eisentraut
We had previously (af26857a2775e7ceb0916155e931008c2116632f) established the U.S. spellings as standard.
2011-06-28Introduce compact WAL record for the common case of commit (non-DDL).Simon Riggs
XLOG_XACT_COMMIT_COMPACT leaves out invalidation messages and relfilenodes, saving considerable space for the vast majority of transaction commits. XLOG_XACT_COMMIT keeps same definition as XLOG_PAGE_MAGIC 0xD067 and earlier. Leonardo Francalanci and Simon Riggs
2011-06-28Remove rel.h from objectaddress.h; only relcache.h is necessary.Alvaro Herrera
Add rel.h to some files that now need it.
2011-06-28Modernise pg_hba.conf token processingAlvaro Herrera
The previous coding was ugly, as it marked special tokens as such in the wrong stage, relying on workarounds to figure out if they had been quoted in the original or not. This made it impossible to have specific keywords be recognized as such only in certain positions in HBA lines, for example. Fix by restructuring the parser code so that it remembers whether tokens were quoted or not. This eliminates widespread knowledge of possible known keywords for all fields. Also improve memory management in this area, to use memory contexts that are reset as a whole instead of using retail pfrees; this removes a whole lotta crufty (and probably slow) code. Instead of calling strlen() three times in next_field_expand on the returned token to find out whether there was a comma (and strip it), pass back the info directly from the callee, which is simpler. In passing, update historical artifacts in hba.c API. Authors: Brendan Jurd, Alvaro Herrera Reviewed by Pavel Stehule
2011-06-28Implement the collation columns of various information schema viewsPeter Eisentraut
Fill in the collation columns of the views attributes, columns, domains, and element_types. Also update collation information in sql_implementation_info.
2011-06-28Add composite-type attributes to information_schema.element_types viewPeter Eisentraut
2011-06-27Add a missing_ok argument to get_object_address().Robert Haas
This lays the groundwork for an upcoming patch to streamline the handling of DROP commands. KaiGai Kohei
2011-06-27Reduce impact of btree page reuse on Hot Standby by fixing off-by-1 error.Simon Riggs
WAL records of type XLOG_BTREE_REUSE_PAGE were generated using a latestRemovedXid one higher than actually needed because xid used was page opaque->btpo.xact rather than an actually removed xid. Noticed on an otherwise quiet system by Noah Misch. Noah Misch and Simon Riggs
2011-06-27Allow callers to pass a missing_ok flag when opening a relation.Robert Haas
Since the names try_relation_openrv() and try_heap_openrv() don't seem quite appropriate, rename the functions to relation_openrv_extended() and heap_openrv_extended(). This is also more general, if we have a future need for additional parameters that are of interest to only a few callers. This is infrastructure for a forthcoming patch to allow get_object_address() to take a missing_ok argument as well. Patch by me, review by Noah Misch.
2011-06-27Try again to make the visibility map crash safe.Robert Haas
My previous attempt was quite a bit less than half-baked with respect to heap_update().
2011-06-27Avoid having two copies of the HOT-chain search logic.Robert Haas
It's been like this since HOT was originally introduced, but the logic is complex enough that this is a recipe for bugs, as we've already found out with SSI. So refactor heap_hot_search_buffer() so that it can satisfy the needs of index_getnext(), and make index_getnext() use that rather than duplicating the logic. This change was originally proposed by Heikki Linnakangas as part of a larger refactoring oriented towards allowing index-only scans. I extracted and adjusted this part, since it seems to have independent merit. Review by Jeff Davis.
2011-06-27Add some strings that were not marked for translationPeter Eisentraut
2011-06-27Remove redundant DEF_PGPORT handlingPeter Eisentraut
DEF_PGPORT already comes in from pg_config.h, so we don't need to pass it in again with a -D option. Apparently a leftover from the shell script conversion.
2011-06-27Add missing file to GETTEXT_FILESPeter Eisentraut
This doesn't actually change the resulting set of strings, but better be correct.
2011-06-27Add the possibility to pass --flag arguments to xgettext callsPeter Eisentraut
The --flag argument can be used to tell xgettext the arguments of which functions should be flagged with c-format in the PO files, instead of guessing based on the presence of format specifiers, which fails if no format specifiers are present but the translation accidentally introduces one. Appropriate flag settings have been added for each message catalog. based on a patch by Christoph Berg for bug #6066
2011-06-27Refactor common gettext triggersPeter Eisentraut
Put gettext trigger words that are common to the backend and backend modules into a makefile variable to include everywhere, to avoid error-prone repetitions.
2011-06-26Replace tabs by spaces in makefile commentPeter Eisentraut
2011-06-26Make _ be automatically included in GETTEXT_TRIGGERSPeter Eisentraut
Since it's globally defined in c.h, it should be treated as a gettext trigger everywhere.
2011-06-26Replace := by = in nls.mk filesPeter Eisentraut
It currently doesn't make a difference, but it's inconsistent with most other usage, and it might interfere with a future patch, so I'll change it all in a separate commit. Also, replace tabs with spaces for alignment.
2011-06-26Remove some cruft from nls.mk filesPeter Eisentraut
2011-06-23Add information schema views role_udt_grants, udt_privileges, user_defined_typesPeter Eisentraut
2011-06-22Undo overly enthusiastic de-const-ification.Tom Lane
s/const//g wasn't exactly what I was suggesting here ... parameter declarations of the form "const structtype *param" are good and useful, so put those occurrences back. Likewise, avoid casting away the const in a "const void *" parameter.
2011-06-22Update alternative expected file for recent sequence test changes.Tom Lane
2011-06-22Revert "Don't select log_cnt in sequence regression tests."Tom Lane
This reverts commit addf11f9a264417aa467d4e135b9a8afc59f172a. The right fix for the problem is to update the alternative expected file, not to lobotomize the test case.