summaryrefslogtreecommitdiff
path: root/src/bin
AgeCommit message (Collapse)Author
2009-10-05Create an ALTER DEFAULT PRIVILEGES command, which allows users to adjustTom Lane
the privileges that will be applied to subsequently-created objects. Such adjustments are always per owning role, and can be restricted to objects created in particular schemas too. A notable benefit is that users can override the traditional default privilege settings, eg, the PUBLIC EXECUTE privilege traditionally granted by default for functions. Petr Jelinek
2009-09-27Sync psql's scanner with recent changes in backend scanner's flex rules.Tom Lane
Marko Kreen, Tom Lane
2009-09-22Implement the DO statement to support execution of PL code without havingTom Lane
to create a function for it. Procedural languages now have an additional entry point, namely a function to execute an inline code block. This seemed a better design than trying to hide the transient-ness of the code from the PL. As of this patch, only plpgsql has an inline handler, but probably people will soon write handlers for the other standard PLs. In passing, remove the long-dead LANCOMPILER option of CREATE LANGUAGE. Petr Jelinek
2009-09-19Remove a couple hundred lines of ugly and tedious-to-maintain code by notTom Lane
trying to parse COPY options exactly in psql's \copy support. Instead, just send the options as-is and let the backend sort it out. Emmanuel Cecchet
2009-09-19sql_help.c needs to be cvsignore'd.Tom Lane
2009-09-18Easier to translate psql helpPeter Eisentraut
Instead of requiring translators to translate the entire SQL command synopses, change create_help.pl to only require them to translate the placeholders, and paste those into the synopsis using a printf mechanism. Make some small updates to the markup to make it easier to parse. Note: This causes msgmerge of gettext 0.17 to segfault. You will need the patch from https://savannah.gnu.org/bugs/?27474 to make it work. msgmerge usually only runs on babel.postgresql.org, however.
2009-09-13Write psql's ~/.psql_history file using history_truncate_file() andTom Lane
append_history(), if libreadline is new enough to have those functions (they seem to be present at least since 4.2; but libedit may not have them). This gives significantly saner behavior when two or more sessions overlap in their use of the history file; although having two sessions exit at just the same time is still perilous to your history. The behavior of \s remains unchanged, ie, overwrite whatever was there. Per bug #5052 from Marek Wójtowicz.
2009-09-11Increase the maximum value of extra_float_digits to 3, and have pg_dumpTom Lane
use that value when the backend is new enough to allow it. This responds to bug report from Keh-Cheng Chu pointing out that although 2 extra digits should be sufficient to dump and restore float8 exactly, it is possible to need 3 extra digits for float4 values.
2009-09-07Change our WIN32 API version to be 5.01 (Windows XP), to bring in the properMagnus Hagander
IPV6 headers in newer SDKs.
2009-09-03Remove initdb's rather gratuitous check to see if the backend created aTom Lane
flat password file, because it never will anymore. We had managed to miss this during the recent flat-file-ectomy because it only happens if --pwfile or --pwprompt is specified to initdb. Apparently, few hackers use those. Reported by Erik Rijkers.
2009-09-02Fix pg_ctl's readfile() to not go into infinite loop on an empty fileTom Lane
(could happen if either postgresql.conf or postmaster.opts is empty). It's been broken since the C version was written for 8.0, so patch all the way back. initdb's copy of the function is broken in the same way, but it's less important there since the input files should never be empty. Patch that in HEAD only, and also fix some cosmetic differences that crept into that copy of the function. Per report from Corry Haines and Jeff Davis.
2009-09-01Remove flatfiles.c, which is now obsolete.Alvaro Herrera
Recent commits have removed the various uses it was supporting. It was a performance bottleneck, according to bug report #4919 by Lauris Ulmanis; seems it slowed down user creation after a billion users.
2009-08-31Track the current XID wrap limit (or more accurately, the oldest unfrozenTom Lane
XID) in checkpoint records. This eliminates the need to recompute the value from scratch during database startup, which is one of the two remaining reasons for the flatfile code to exist. It should also simplify life for hot-standby operation. To avoid bloating the checkpoint records unreasonably, I switched from tracking the oldest database by name to tracking it by OID. This turns out to save cycles in general (everywhere but the warning-generating paths, which we hardly care about) and also helps us deal with the case that the oldest database got dropped instead of being vacuumed. The prior coding might go for a long time without updating the wrap limit in that case, which is bad because it might result in a lot of useless autovacuum activity.
2009-08-28Derived files that are shipped in the distribution used to be built in thePeter Eisentraut
source directory even for out-of-tree builds. They are now alsl built in the build tree. This should be more convenient for certain developers' workflows, and shouldn't really break anything else.
2009-08-27Make it reasonably safe to use pg_ctl to start the postmaster from a boot-timeTom Lane
script. To do this, have pg_ctl pass down its parent shell's PID in an environment variable PG_GRANDPARENT_PID, and teach CreateLockFile() to disregard that PID as a false match if it finds it in postmaster.pid. This allows us to cope with one level of postgres-owned shell process even with pg_ctl in the way, so it's just as safe as starting the postmaster directly. You still have to be careful about how you write the initscript though. Adjust the comments in contrib/start-scripts/ to not deprecate use of pg_ctl. Also, fix the ROTATELOGS option in the OSX script, which was indulging in exactly the sort of unsafe coding that renders this fix pointless :-(. A pipe inside the "sudo" will probably result in more than one postgres-owned process hanging around.
2009-08-26Update of install-sh, mkinstalldirs, and associated configuryPeter Eisentraut
Update install-sh to that from Autoconf 2.63, plus our Darwin-specific changes (which I simplified a bit). install-sh is now able to install multiple files in one run, so we could simplify our makefiles sometime. install-sh also now has a -d option to create directories, so we don't need mkinstalldirs anymore. Use AC_PROG_MKDIR_P in configure.in, so we can use mkdir -p when available instead of install-sh -d. For consistency with the rest of the world, the corresponding make variable has been renamed from $(mkinstalldirs) to $(MKDIR_P).
2009-08-24Fix inclusions of readline/editline header files so that we only attempt toTom Lane
#include the version of history.h that is in the same directory as the readline.h we are using. This avoids problems in some scenarios where both readline and editline are installed. Report and patch by Zdenek Kotala.
2009-08-24Remove unused variable.Alvaro Herrera
Per Grzegorz Jaskiewicz report from LLVM static checker
2009-08-07Modify parallel pg_restore to track pending and ready items by means ofTom Lane
two new lists, rather than repeatedly rescanning the main TOC list. This avoids a potential O(N^2) slowdown, although you'd need a *lot* of tables to make that really significant; and it might simplify future improvements in the scheduling algorithm by making the set of ready items more easily inspectable. The original thought that it would in itself result in a more efficient job dispatch order doesn't seem to have been borne out in testing, but it seems worth doing anyway.
2009-08-07Expand test coverage support to entire treePeter Eisentraut
Test coverage support now covers the entire source tree, including contrib, instead of just src/backend. In a related but independent development, the commands make coverage and make coverage-html can be run in any directory. This turned out to be much easier than feared. Besides a few ad hoc fixes to pass the make target down the tree, change all affected makefiles to list their directories in the SUBDIRS variable, changed from variants like DIRS and WANTED_DIRS. MSVC build fix was attempted as well.
2009-08-07Try to defend against the possibility that libpq is still in COPY_IN stateTom Lane
when we reach the post-COPY "pump it dry" error recovery code that was added 2006-11-24. Per a report from Neil Best, there is at least one code path in which this occurs, leading to an infinite loop in code that's supposed to be making it more robust not less so. A reasonable response seems to be to call PQputCopyEnd() again, so let's try that. Back-patch to all versions that contain the cleanup loop.
2009-08-04Fix pg_dump to do the right thing when escaping the contents of large objects.Tom Lane
The previous implementation got it right in most cases but failed in one: if you pg_dump into an archive with standard_conforming_strings enabled, then pg_restore to a script file (not directly to a database), the script will set standard_conforming_strings = on but then emit large object data as nonstandardly-escaped strings. At the moment the code is made to emit hex-format bytea strings when dumping to a script file. We might want to change to old-style escaping for backwards compatibility, but that would be slower and bulkier. If we do, it's just a matter of reimplementing appendByteaLiteral(). This has been broken for a long time, but given the lack of field complaints I'm not going to worry about back-patching.
2009-08-04Suppress pointer-signedness warning.Tom Lane
2009-08-04Support hex-string input and output for type BYTEA.Tom Lane
Both hex format and the traditional "escape" format are automatically handled on input. The output format is selected by the new GUC variable bytea_output. As committed, bytea_output defaults to HEX, which is an *incompatible change*. We will keep it this way for awhile for testing purposes, but should consider whether to switch to the more backwards-compatible default of ESCAPE before 8.5 is released. Peter Eisentraut
2009-08-02Add ALTER TABLE ... ALTER COLUMN ... SET STATISTICS DISTINCTTom Lane
Robert Haas
2009-07-29Support deferrable uniqueness constraints.Tom Lane
The current implementation fires an AFTER ROW trigger for each tuple that looks like it might be non-unique according to the index contents at the time of insertion. This works well as long as there aren't many conflicts, but won't scale to massive unique-key reassignments. Improving that case is a TODO item. Dean Rasheed
2009-07-25Code review for FORCE QUOTE * patch: fix error checking to consider FORCETom Lane
QUOTE * as a variety of FORCE QUOTE, and update psql documentation to include the option. (The actual psql code doesn't seem to need any changes.)
2009-07-24Document \dg+ and \du+Peter Eisentraut
The fact that \dg and \du take the + option was missing in the documentation. backpatched to 8.4 Author: Andreas Wenk <a.wenk@netzmeister-st-pauli.de>
2009-07-23Teach pg_dump to dump comments attached to the columns of a composite type.Tom Lane
Taro Minowa (Higepon)
2009-07-21Make pg_dump/pg_restore --clean options drop large objects too.Tom Lane
In passing, make invocations of lo_xxx functions a bit more schema-safe. Itagaki Takahiro
2009-07-20Properly restore pg_largeobject.relfozenxid in binary upgrade mode.Bruce Momjian
Backpatch to 8.4.X.
2009-07-20Remove unnecessary and version-sensitive dependence on the exact set ofTom Lane
column names to be found in a sequence. Per gripe from Bruce.
2009-07-14Tweak the core scanner so that it can be used by plpgsql too.Tom Lane
Changes: Pass in the keyword lookup array instead of having it be hardwired. (This incidentally allows elimination of some duplicate coding in ecpg.) Re-order the token declarations in gram.y so that non-keyword tokens have numbers that won't change when keywords are added or removed. Add ".." and ":=" to the set of tokens recognized by scan.l. (Since these combinations are nowhere legal in core SQL, this does not change anything except the precise wording of the error you get when you write this.)
2009-07-07Just a little more schema-qualification ...Tom Lane
2009-07-07psql backward compatibility fixPeter Eisentraut
For servers older than 8.3, sort display of child tables by relname instead of oid::regclass::text, because the cast from regclass to text did not work back then. The older display may be slightly worse when different schemas are involved, but that should be rare enough.
2009-07-07Sort child tables by name instead of OID in \d+ displayPeter Eisentraut
This was an oversight in the recent patch. Found by Tom Lane.
2009-07-07Code review for patch to show definition of index columns in \d on index.Tom Lane
Safely schema-qualify the pg_get_indexdef call, make the query a bit prettier in -E mode, remove useless join to pg_index, make it more obvious that the header[] array is not overrun.
2009-07-06Show definition of index columns in \d on indexPeter Eisentraut
This adds a column called "Definition" to the output of psql \d on an index, which shows the full expression behind the index column. For indexes on plain columns, this is redundant, but for expression indexes, this reveals the real expression. Author: Khee Chin <kheechin@gmail.com>
2009-07-03Have \d show child tables that inherit from the specified parentPeter Eisentraut
As per discussion, \d shows only the number of child tables, because that could be hundreds, when used for partitioning. \d+ shows the actual list. Author: Damien Clochard <damien@dalibo.info>
2009-07-02Fix up pg_dump's --binary-upgrade option so that it behaves properly withTom Lane
inherited columns and check constraints. Per my recent trouble report.
2009-06-26Translation updates for 8.4 release.Peter Eisentraut
File that are translated less than 80% have been removed, as per new translation team policy.
2009-06-23Fix the makefiles to fail cleanly if Perl is needed but not present. ThisTom Lane
used to work as intended, but got broken some time ago (a quoted empty string is not an empty string), and got broken some more by the changes to generate ecpg's preproc.y automatically. Given all the unprotected uses of $(PERL) elsewhere, it seems best to make use of the $(missing) script rather than trying to ensure each such use is protected individually. Also fix various bits of documentation that omitted to mention Perl as a requirement for building from a CVS pull. Per a complaint from Robert Haas.
2009-06-13Tweak the display of incoming foreign-key constraints in \d, per discussionPeter Eisentraut
on hackers. Also, take that string out of the translation roster, since it's now entirely pseudo-SQL.
2009-06-12Fix several places where a function was declared static and then definedTom Lane
without static. Per testing with a compiler that complains about this.
2009-06-118.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef listBruce Momjian
provided by Andrew.
2009-06-10Translation updatesPeter Eisentraut
2009-06-10Clarify error messagePeter Eisentraut
2009-06-04Trivial code style cleanup around a couple of ngettext calls.Tom Lane
2009-06-04Remove a couple of debugging messages that have been #ifdef'd out for ages.Tom Lane
Seems silly to ask translators to expend work on these, especially in pluralized variants.
2009-06-03Change rather bizarre code ordering in get_id(). This isn't strictlyTom Lane
cosmetic --- I'm wondering if geteuid could have side effects on errno, thus possibly resulting in a misleading error message after failure of getpwuid.