summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2008-03-30Show database access privileges in psql's \l command. For \l+, also showTom Lane
database size, when available to the current user. Andrew Gilligan
2008-03-30Display incoming as well as outgoing foreign-key constraints in psql'sTom Lane
\d output for a table. Kenneth D'Souza, some changes by myself.
2008-03-29Improve description of \du and \dg, per suggestion fromTom Lane
Harald Armin Massa.
2008-03-29Improve psql's tab completion to handle completing attribute names in casesTom Lane
where the relation name was schema-qualified, for example UPDATE foo.bar SET <tab> Also support cases where the relation name was quoted unnecessarily, for example UPDATE "foo" SET <tab> Greg Sabino Mullane, slightly simplified by myself.
2008-03-29Revert my erroneous fix for Taiki Yamaguchi's DISTINCT MAX() bug.Tom Lane
Whatever we do about that, this isn't the path to the solution.
2008-03-28Department of second thoughts: the rule that ORDER BY and DISTINCT areTom Lane
useless for an ungrouped-aggregate query holds regardless of whether optimize_minmax_aggregates succeeds. So we might as well apply the optimization in any case. I'll leave 8.3 as it was, since this version is a tad more invasive than my earlier patch.
2008-03-28Support statement-level ON TRUNCATE triggers. Simon RiggsTom Lane
2008-03-27When we have successfully optimized a MIN or MAX aggregate into an indexscan,Tom Lane
the query result must be exactly one row (since we don't do this when there's any GROUP BY). Therefore any ORDER BY or DISTINCT attached to the query is useless and can be dropped. Aside from saving useless cycles, this protects us against problems with matching the hacked-up tlist entries to sort clauses, as seen in a bug report from Taiki Yamaguchi. We might need to work harder if we ever try to optimize grouped queries with this approach, but this solution will do for now.
2008-03-27Remove ipcclean utility command --- didn't work on all Unixes and onBruce Momjian
Windows. Users should use their operating system tools instead.
2008-03-27Sorry, copied wrong files.Michael Meskes
2008-03-27- Moved from PQsetdbLogin to PQconnectDB.Michael Meskes
- Correctly parse connect options. - Changed regression tests accordingly.
2008-03-27Reduce the need for frontend programs to include "postgres.h" by refactoringTom Lane
inclusions in src/include/catalog/*.h files. The main idea here is to push function declarations for src/backend/catalog/*.c files into separate headers, rather than sticking them into the corresponding catalog definition file as has been done in the past. This commit only carries out that idea fully for pg_proc, pg_type and pg_conversion, but that's enough for the moment --- if pg_list.h ever becomes unsafe for frontend code to include, we'll need to work a bit more. Zdenek Kotala
2008-03-26Move the HTSU_Result enum definition into snapshot.h, to avoid includingAlvaro Herrera
tqual.h into heapam.h. This makes all inclusion of tqual.h explicit. I also sorted alphabetically the includes on some source files.
2008-03-26Rename snapmgmt.c/h to snapmgr.c/h, for consistency with other files.Alvaro Herrera
Per complaint from Tom Lane.
2008-03-26Separate snapshot management code from tuple visibility code, create aAlvaro Herrera
snapmgmt.c file for the former. The header files have also been reorganized in three parts: the most basic snapshot definitions are now in a new file snapshot.h, and the also new snapmgmt.h keeps the definitions for snapmgmt.c. tqual.h has been reduced to the bare minimum. This patch is just a first step towards managing live snapshots within a transaction; there is no functionality change. Per my proposal to pgsql-patches on 20080318191940.GB27458@alvh.no-ip.org and subsequent discussion.
2008-03-26Include \password in the psql help.Magnus Hagander
While at it, change the order of the documented options to be alphabetically again.
2008-03-26Strengthen warnings about using pg_dump's -i option.Bruce Momjian
2008-03-25Simplify and standardize conversions between TEXT datums and ordinary CTom Lane
strings. This patch introduces four support functions cstring_to_text, cstring_to_text_with_len, text_to_cstring, and text_to_cstring_buffer, and two macros CStringGetTextDatum and TextDatumGetCString. A number of existing macros that provided variants on these themes were removed. Most of the places that need to make such conversions now require just one function or macro call, in place of the multiple notational layers that used to be needed. There are no longer any direct calls of textout or textin, and we got most of the places that were using handmade conversions via memcpy (there may be a few still lurking, though). This commit doesn't make any serious effort to eliminate transient memory leaks caused by detoasting toasted text objects before they reach text_to_cstring. We changed PG_GETARG_TEXT_P to PG_GETARG_TEXT_PP in a few places where it was easy, but much more could be done. Brendan Jurd and Tom Lane
2008-03-25Add a new tuplestore API function, tuplestore_putvalues(). This isNeil Conway
identical to tuplestore_puttuple(), except it operates on arrays of Datums + nulls rather than a fully-formed HeapTuple. In several places that use the tuplestore API, this means we can avoid creating a HeapTuple altogether, saving a copy.
2008-03-25added ECPGget_PGconn to exports.txtMichael Meskes
2008-03-24When a relation has been proven empty by constraint exclusion, propagate thatTom Lane
knowledge up through any joins it participates in. We were doing that already in some special cases but not in the general case. Also, defend against zero row estimates for the input relations in cost_mergejoin --- this fix may have eliminated the only scenario in which that can happen, but be safe. Per report from Alex Solovey.
2008-03-24Use new errdetail_log() mechanism to provide a less klugy way of reportingTom Lane
large numbers of dependencies on a role that couldn't be dropped. Per a comment from Alvaro.
2008-03-24Fix various infelicities that have snuck into usage of errdetail() andTom Lane
friends. Avoid double translation of some messages, ensure other messages are exposed for translation (and make them follow the style guidelines), avoid unsafe passing of an unpredictable message text as a format string.
2008-03-24Adjust the recent patch for reporting of deadlocked queries so that we reportTom Lane
query texts only to the server log. This eliminates the issue of possible leaking of security-sensitive data in other sessions' queries. Since the log is presumed secure, we can now log the queries of all sessions involved in the deadlock, whether or not they belong to the same user as the one reporting the failure.
2008-03-24Add a new ereport auxiliary function errdetail_log(), which works the same asTom Lane
errdetail except the string goes only to the server log, replacing the normal errdetail there. This provides a reasonably clean way of dealing with error details that are too security-sensitive or too bulky to send to the client. This commit just adds the infrastructure --- actual uses to follow.
2008-03-23Avoid a useless tuple copy within nodeMaterial. Neil ConwayTom Lane
2008-03-23Create a function quote_nullable(), which works the same as quote_literal()Tom Lane
except that it returns the string 'NULL', rather than a SQL null, when called with a null argument. This is often a much more useful behavior for constructing dynamic queries. Add more discussion to the documentation about how to use these functions. Brendan Jurd
2008-03-22Refactor to_char/to_date formatting code; primarily, replace DCH_processorTom Lane
with two new functions DCH_to_char and DCH_from_char that have less confusing APIs. Brendan Jurd
2008-03-22Add server side lo_import(filename, oid) function.Tatsuo Ishii
2008-03-21Remove TypeName struct's timezone flag, which has been write-only storageTom Lane
for a very long time --- in current usage it's entirely redundant with the name field.
2008-03-21Give an explicit error for serial[], rather than silently ignoringTom Lane
the array decoration as the code had been doing.
2008-03-21Report the current queries of all backends involved in a deadlockTom Lane
(if they'd be visible to the current user in pg_stat_activity). This might look like it's subject to race conditions, but it's actually pretty safe because at the time DeadLockReport() is constructing the report, we haven't yet aborted our transaction and so we can expect that everyone else involved in the deadlock is still blocked on some lock. (There are corner cases where that might not be true, such as a statement timeout triggering in another backend before we finish reporting; but at worst we'd report a misleading activity string, so it seems acceptable considering the usefulness of reporting the queries.) Original patch by Itagaki Takahiro, heavily modified by me.
2008-03-21Corrected version number.Michael Meskes
2008-03-21More README src cleanups.Bruce Momjian
2008-03-21Generate dummy probes.h for MSVC builds.Andrew Dunstan
2008-03-21Get rid of a bunch of #ifdef HAVE_INT64_TIMESTAMP conditionals by inventingTom Lane
a new typedef TimeOffset to represent an intermediate time value. It's either int64 or double as appropriate, and in most usages will be measured in microseconds or seconds the same as Timestamp. We don't call it Timestamp, though, since the value doesn't necessarily represent an absolute time instant. Warren Turkal
2008-03-20Arrange for an explicit cast applied to an ARRAY[] constructor to be appliedTom Lane
directly to all the member expressions, instead of the previous implementation where the ARRAY[] constructor would infer a common element type and then we'd coerce the finished array after the fact. This has a number of benefits, one being that we can allow an empty ARRAY[] construct so long as its element type is specified by such a cast. Brendan Jurd, minor fixes by me.
2008-03-20Add a couple of missing FreeQueryDesc calls. Noticed while testing aAlvaro Herrera
framework to keep track of snapshots in use.
2008-03-20Make source code READMEs more consistent. Add CVS tags to all README files.Bruce Momjian
2008-03-20Dept of second thoughts: --no-tablespaces had better also preventTom Lane
pg_dumpall from attaching TABLESPACE options to CREATE DATABASE commands.
2008-03-20Support a --no-tablespaces option in pg_dump/pg_dumpall/pg_restore, so thatTom Lane
dumps can be loaded into databases without the same tablespaces that the source had. The option acts by suppressing all "SET default_tablespace" commands, and also CREATE TABLESPACE commands in pg_dumpall's case. Gavin Roy, with documentation and minor fixes by me.
2008-03-20Added ECPGget_PGconn() function to ecpglib, courtesy of Mike Aubury.Michael Meskes
Removed one include file from connect-test1.
2008-03-20Changed statement escaping to not escape continuation line markers.Michael Meskes
2008-03-20Add the missing cyrillic "Yo" characters ('e' and 'E' with two dots) to theHeikki Linnakangas
ISO_8859-5 <-> MULE_INTERNAL conversion tables. This was discovered when trying to convert a string containing those characters from ISO_8859-5 to Windows-1251, because we use MULE_INTERNAL/KOI8R as an intermediate encoding between those two. While the missing "Yo" was just an omission in the conversion tables, there are a few other characters like the "Numero" sign ("No" as a single character) that exists in all the other cyrillic encodings (win1251, ISO_8859-5 and cp866), but not in KOI8R. Added comments about that. Patch by Sergey Burladyan. Back-patch to 7.4.
2008-03-19Remove another useless snapshot creation.Alvaro Herrera
2008-03-19Support ALTER TYPE RENAME. Petr JelinekTom Lane
2008-03-19We no longer need a snapshot set after opening the finishing transaction: thisAlvaro Herrera
is redundant because autovacuum now always analyzes a single table per transaction.
2008-03-19Fix regexp substring matching (substring(string from pattern)) for the cornerTom Lane
case where there is a match to the pattern overall but the user has specified a parenthesized subexpression and that subexpression hasn't got a match. An example is substring('foo' from 'foo(bar)?'). This should return NULL, since (bar) isn't matched, but it was mistakenly returning the whole-pattern match instead (ie, 'foo'). Per bug #4044 from Rui Martins. This has been broken since the beginning; patch in all supported versions. The old behavior was sufficiently inconsistent that it's impossible to believe anyone is depending on it.
2008-03-19Add libpq new API lo_import_with_oid() which is similar to lo_import()Tatsuo Ishii
except that lob's oid can be specified.
2008-03-18Add find_typedef comments for Linux.Bruce Momjian