aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Repair problems with the result of lookup_rowtype_tupdesc() possibly beingTom Lane2006-01-17
| | | | | | | discarded by cache flush while still in use. This is a minimal patch that just copies the tupdesc anywhere it could be needed across a flush. Applied to back branches only; Neil Conway is working on a better long-term solution for HEAD.
* When using GCC on AMD64 and PPC, ECPGget_variable() takes a va_list *, notNeil Conway2006-01-15
| | | | | | a va_list. Christof Petig's previous patch made this change, but neglected to update ecpglib/descriptor.c, resulting in a compiler warning (and a likely runtime crash) on AMD64 and PPC.
* Fix pg_ctl crash on "unregister" when a data directory is not specified.Peter Eisentraut2006-01-14
| | | | by Magnus Hagander
* We neglected to apply domain constraints on UNKNOWN parameters toNeil Conway2006-01-12
| | | | prepared statements, per report from David Wheeler.
* Repair "Halloween problem" in EvalPlanQual: a tuple that's been inserted byTom Lane2006-01-12
| | | | | | | | our own command (or more generally, xmin = our xact and cmin >= current command ID) should not be seen as good. Else we may try to update rows we already updated. This error was inserted last August while fixing the even bigger problem that the old coding wouldn't see *any* tuples inserted by our own transaction as good. Per report from Euler Taveira de Oliveira.
* Use a more bulletproof test for whether finite() and isinf() are present.Tom Lane2006-01-12
| | | | | | | | It seems that recent gcc versions can optimize away calls to these functions even when the functions do not exist on the platform, resulting in a bogus positive result. Avoid this by using a non-constant argument and ensuring that the function result is not simply discarded. Per report from François Laupretre.
* Remove extraneous backslash from 'fixseq.sql' example --- mea culpaTom Lane2006-01-12
| | | | certainly. Per report from George Woodring.
* Improve error messages for missing-FROM-entry cases, as per recent discussion.Tom Lane2006-01-10
|
* In PLy_function_build_args(), the code loops repeatedly, constructingNeil Conway2006-01-10
| | | | | | | | | | | | | | | | one argument at a time and then inserting the argument into a Python list via PyList_SetItem(). This "steals" the reference to the argument: that is, the reference to the new list member is now held by the Python list itself. This works fine, except if an elog occurs. This causes the function's PG_CATCH() block to be invoked, which decrements the reference counts on both the current argument and the list of arguments. If the elog happens to occur during the second or subsequent iteration of the loop, the reference count on the current argument will be decremented twice. The fix is simple: set the local pointer to the current argument to NULL immediately after adding it to the argument list. This ensures that the Py_XDECREF() in the PG_CATCH() block doesn't double-decrement.
* Fix pg_dump to add the required OPERATOR() decoration to schema-qualifiedTom Lane2006-01-09
| | | | | | operator names. This is needed when dumping operator definitions that have COMMUTATOR (or similar) links to operators in other schemas. Apparently Daniel Whitter is the first person ever to try this :-(
* Stop perl from hijacking stdio and other stuff on Windows.Andrew Dunstan2006-01-08
|
* Add RelationOpenSmgr() calls to ensure rd_smgr is valid when we try toTom Lane2006-01-07
| | | | | | use it. While it normally has been opened earlier during btree index build, testing shows that it's possible for the link to be closed again if an sinval reset occurs while the index is being built.
* During CatCacheRemoveCList, we must now remove any members that areTom Lane2006-01-07
| | | | | | | | | dead and have become unreferenced. Before 8.1, such members were left for AtEOXact_CatCache() to clean up, but now AtEOXact_CatCache isn't supposed to have anything to do. In an assert-enabled build this bug leads to an assertion failure at transaction end, but in a non-assert build the dead member is effectively just a small memory leak. Per report from Jeremy Drake.
* Fix failure to apply domain constraints to a NULL constant that's added toTom Lane2006-01-06
| | | | an INSERT target list during rule rewriting. Per report from John Supplee.
* Release-note updates and copy editing.REL8_1_2Tom Lane2006-01-06
|
* Fix Windows-only postmaster code to reject a connection request and continue,Tom Lane2006-01-06
| | | | | | | rather than elog(FATAL), when there is no more room in ShmemBackendArray. This is a security issue since too many connection requests arriving close together could cause the postmaster to shut down, resulting in denial of service. Reported by Yoshiyuki Asaba, fixed by Magnus Hagander.
* Convert Assert checking for empty page into a regular test and elog.Tom Lane2006-01-06
| | | | | The consequences of overwriting a non-empty page are bad enough that we should not omit this test in production builds.
* Fix ReadBuffer() to correctly handle the case where it's trying to extendTom Lane2006-01-06
| | | | | | | | | the relation but it finds a pre-existing valid buffer. The buffer does not correspond to any page known to the kernel, so we *must* do smgrextend to ensure that the space becomes allocated. The 7.x branches all do this correctly, but the corner case got lost somewhere during 8.0 bufmgr rewrites. (My fault no doubt :-( ... I think I assumed that such a buffer must be not-BM_VALID, which is not so.)
* New pgcrypto item wording.Bruce Momjian2006-01-05
|
* Wording improvements.Bruce Momjian2006-01-05
|
* Improve markup.Bruce Momjian2006-01-05
|
* Translation updatePeter Eisentraut2006-01-05
|
* Update release notes for 8.1.X, 8.0.X, 7.4.X, and 7.3.X.Bruce Momjian2006-01-05
|
* Stamp release 8.1.2.Bruce Momjian2006-01-05
|
* Arrange to set the LC_XXX environment variables to match our locale setup.Tom Lane2006-01-05
| | | | Back-patch of previous fix in HEAD for plperl-vs-locale issue.
* Fix another case in which autovacuum would fail while analyzingTom Lane2006-01-04
| | | | expressional indexes. Per report from Brian Hirt.
* There is a signedness bug in Openwall gen_salt code that pgcrypto uses.Tom Lane2006-01-03
| | | | | | | This makes the salt space for md5 and xdes algorithms a lot smaller than it should be. Marko Kreen
* When the remote query result has a different number of columnsJoe Conway2006-01-03
| | | | | | than the local query specifies (e.g. in the FROM clause), throw an ERROR (instead of crashing). Fix for bug #2129 reported by Akio Iwaasa.
* Fix incorrect treatment of RL_PROMPT_START_IGNORE/RL_PROMPT_END_IGNORE,Tom Lane2006-01-03
| | | | per http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=343616 via Martin Pitt.
* Add checks to verify that a plpgsql function returning a rowtype is actuallyTom Lane2006-01-03
| | | | | returning the rowtype it's supposed to return. Per reports from David Niblett and Michael Fuhr.
* Reset flex state in a way that works for both flex 2.5.4 and 2.5.31.Tom Lane2006-01-02
|
* Rewrite ProcessConfigFile() to avoid misbehavior at EOF, as per reportTom Lane2006-01-01
| | | | | | | | from Andrus Moor. The former state-machine-style coding wasn't actually doing much except obscuring the control flow, and it didn't extend readily to fix this case, so I just took it out. Also, add a YY_FLUSH_BUFFER call to ensure the lexer is reset correctly if the previous scan failed partway through the file.
* Remove DOS line endings ("\r\n") from several .po files. DOS line endingsNeil Conway2006-01-01
| | | | | are inconsistent with the rest of the .po files, and apparently cause problems for Sun's cc. Per report on IRC from "bitvector2".
* Repair EXPLAIN failure when trying to display a plan condition that involvesTom Lane2005-12-30
| | | | | | selection of a field from the result of a function returning RECORD. I believe this case is new in 8.1; it's due to the addition of OUT parameters. Per example from Michael Fuhr.
* Index: src/pl/plpython/plpython.cNeil Conway2005-12-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | =================================================================== RCS file: /Users/neilc/postgres/cvs_root/pgsql/src/pl/plpython/plpython.c,v retrieving revision 1.67 diff -c -r1.67 plpython.c *** src/pl/plpython/plpython.c 26 Dec 2005 04:28:48 -0000 1.67 --- src/pl/plpython/plpython.c 29 Dec 2005 16:54:57 -0000 *************** *** 2,8 **** * plpython.c - python as a procedural language for PostgreSQL * * This software is copyright by Andrew Bosma ! * but is really shameless cribbed from pltcl.c by Jan Weick, and * plperl.c by Mark Hollomon. * * The author hereby grants permission to use, copy, modify, --- 2,8 ---- * plpython.c - python as a procedural language for PostgreSQL * * This software is copyright by Andrew Bosma ! * but is really shamelessly cribbed from pltcl.c by Jan Wieck, and * plperl.c by Mark Hollomon. * * The author hereby grants permission to use, copy, modify, *************** *** 1996,2002 **** int i, rv; PLyPlanObject *plan; - char *nulls; MemoryContext oldcontext; if (list != NULL) --- 1996,2001 ---- *************** *** 2018,2024 **** if (nargs != plan->nargs) { char *sv; - PyObject *so = PyObject_Str(list); if (!so) --- 2017,2022 ---- *************** *** 2036,2048 **** oldcontext = CurrentMemoryContext; PG_TRY(); { ! nulls = palloc(nargs * sizeof(char)); for (i = 0; i < nargs; i++) { PyObject *elem, *so; - char *sv; elem = PySequence_GetItem(list, i); if (elem != Py_None) --- 2034,2045 ---- oldcontext = CurrentMemoryContext; PG_TRY(); { ! char *nulls = palloc(nargs * sizeof(char)); for (i = 0; i < nargs; i++) { PyObject *elem, *so; elem = PySequence_GetItem(list, i); if (elem != Py_None) *************** *** 2051,2070 **** if (!so) PLy_elog(ERROR, "function \"%s\" could not execute plan", PLy_procedure_name(PLy_curr_procedure)); ! sv = PyString_AsString(so); ! /* ! * FIXME -- if this elogs, we have Python reference leak ! */ ! plan->values[i] = ! FunctionCall3(&(plan->args[i].out.d.typfunc), ! CStringGetDatum(sv), ! ObjectIdGetDatum(plan->args[i].out.d.typioparam), ! Int32GetDatum(-1)); ! Py_DECREF(so); ! Py_DECREF(elem); nulls[i] = ' '; } else --- 2048,2073 ---- if (!so) PLy_elog(ERROR, "function \"%s\" could not execute plan", PLy_procedure_name(PLy_curr_procedure)); ! Py_DECREF(elem); ! PG_TRY(); ! { ! char *sv = PyString_AsString(so); ! plan->values[i] = ! FunctionCall3(&(plan->args[i].out.d.typfunc), ! CStringGetDatum(sv), ! ObjectIdGetDatum(plan->args[i].out.d.typioparam), ! Int32GetDatum(-1)); ! } ! PG_CATCH(); ! { ! Py_DECREF(so); ! PG_RE_THROW(); ! } ! PG_END_TRY(); + Py_DECREF(so); nulls[i] = ' '; } else
* Remove a space that incorrectly precedes a comma in the PL/pgSQLBruce Momjian2005-12-29
| | | | | | documentation. Michael Fuhr
* Add COPY CSV test that tests CSV output of \.Bruce Momjian2005-12-28
|
* Update COPY CSV \. wording for externally created files.Bruce Momjian2005-12-28
|
* Add regression tests for CSV and \., and add automatic quoting of aBruce Momjian2005-12-28
| | | | | | | single column dump that has a \. value, so the load works properly. I also added documentation describing this issue. Backpatch to 8.1.X.
* Our code had:Bruce Momjian2005-12-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if (c == '\\' && cstate->line_buf.len == 0) The problem with that is the because of the input and _output_ buffering, cstate->line_buf.len could be zero even if we are not on the first character of a line. In fact, for a typical line, it is zero for all characters on the line. The proper solution is to introduce a boolean, first_char_in_line, that we set as we enter the loop and clear once we process a character. I have restructured the line-reading code in copy.c by: o merging the CSV/non-CSV functions into a single function o used macros to centralize and clarify the buffering code o updated comments o renamed client_encoding_only to encoding_embeds_ascii o added a high-bit test to the encoding_embeds_ascii test for performance o in CSV mode, allow a backslash followed by a non-period to continue being processed as a data value There should be no performance impact from this patch because it is functionally equivalent. If you apply the patch you will see copy.c is much clearer in this area now and might suggest additional optimizations. I have also attached a 8.1-only patch to fix the CSV \. handling bug with no code restructuring.
* Fix long standing Asian multibyte charsets bug.Tatsuo Ishii2005-12-24
| | | | | | | | | | | See: Subject: [HACKERS] bugs with certain Asian multibyte charsets From: Tatsuo Ishii <ishii@sraoss.co.jp> To: pgsql-hackers@postgresql.org Date: Sat, 24 Dec 2005 18:25:33 +0900 (JST) for more details.
* Fix for rearranging encoding id ISO-8859-5 to ISO-8859-8.Tatsuo Ishii2005-12-24
| | | | | | | | | | | Also make the code more robust by searching for target encoding in the internal charset map. Problem reported by Sagi Bashari on 2005/12/21. See "[BUGS] BUG #2120: Crash when doing UTF8<->ISO_8859_8 encoding conversion" on pgsql-bugs list for more details. Back patch for 8.1_STABLE.
* Fix make_relative_path() to support cases where target_path and bin_pathTom Lane2005-12-23
| | | | | | | | | | | differ by more than the last directory component. Instead of insisting that they match up to the last component, accept whatever common prefix they have, and try to replace the non-matching part of bin_path with the non-matching part of target_path in the actual executable's path. In one way this is tighter than the old code, because it insists on a match to the part of bin_path we want to substitute for, rather than blindly stripping one directory component from the executable's path. Per gripe from Martin Pitt and subsequent discussion.
* Adjust string comparison so that only bitwise-equal strings are consideredTom Lane2005-12-22
| | | | | | | | | | | | equal: if strcoll claims two strings are equal, check it with strcmp, and sort according to strcmp if not identical. This fixes inconsistent behavior under glibc's hu_HU locale, and probably under some other locales as well. Also, take advantage of the now-well-defined behavior to speed up texteq, textne, bpchareq, bpcharne: they may as well just do a bitwise comparison and not bother with strcoll at all. NOTE: affected databases may need to REINDEX indexes on text columns to be sure they are self-consistent.
* Update interval documenation to mention the storage system used.Bruce Momjian2005-12-22
|
* Add documentation example of using interval multiplication with 'days'.Bruce Momjian2005-12-21
| | | | Backpatch to 8.1.X.
* Add additional example for interval multiplication.Bruce Momjian2005-12-21
| | | | | | | | | Fix example for day and hours interval subtraction for new computation method. Update interval examples to display zero seconds, which is our default. Backpatch to 8.1.X.
* Fix word's length in pg_regexec callTeodor Sigaev2005-12-21
|
* Defend against crash while processing Describe Statement or Describe PortalTom Lane2005-12-14
| | | | | | messages, when client attempts to execute these outside a transaction (start one) or in a failed transaction (reject message, except for COMMIT/ROLLBACK statements which we can handle). Per report from Francisco Figueiredo Jr.
* Fix problem with whole-row Vars referencing sub-select outputs, perTom Lane2005-12-14
| | | | | example from Jim Dew. Add some simple regression tests, since this is an area we seem to break regularly :-(