aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Ooops, got only one of the two ArrayExpr variants correct in firstTom Lane2007-03-17
| | | | | | cut at exprTypmod support. Also, experimentation shows that we need to label the type of Const nodes that are numeric with a specific typmod.
* Fix up the remaining places where the expression node structure would loseTom Lane2007-03-17
| | | | | | | | | | | | | | available information about the typmod of an expression; namely, Const, ArrayRef, ArrayExpr, and EXPR and ARRAY SubLinks. In the ArrayExpr and SubLink cases it wasn't really the data structure's fault, but exprTypmod() being lazy. This seems like a good idea in view of the expected increase in typmod usage from Teodor's work to allow user-defined types to have typmods. In particular this responds to the concerns we had about eliminating the special-purpose hack that exprTypmod() used to have for BPCHAR Consts. We can now tell whether or not such a Const has been cast to a specific length, and report or display properly if so. initdb forced due to changes in stored rules.
* Add new columns for tuple statistics on a database level toMagnus Hagander2007-03-16
| | | | pg_stat_database.
* Fix race condition in parallel regression tests. The new plancache testTom Lane2007-03-16
| | | | | | | | was expecting there to be no regular table named 'foo', but it turns out the rules test transiently creates one, so that plancache would sometimes fail. I couldn't reproduce that in quite a few tries here, but several buildfarm machines have shown the failure. Fix by renaming plancache's temp table to something nonconflicting.
* Remove undocumented support for copy syntax from before 7.3. Update comments toAndrew Dunstan2007-03-16
| | | | reflect syntax actually supported, e.g. by including CSV params.
* Show aggregate return types in psql \da output.Magnus Hagander2007-03-16
| | | | Greg Sabino Mullane
* Make use of plancache module for SPI plans. In particular, since plpgsqlTom Lane2007-03-15
| | | | | | | | | | | | uses SPI plans, this finally fixes the ancient gotcha that you can't drop and recreate a temp table used by a plpgsql function. Along the way, clean up SPI's API a little bit by declaring SPI plan pointers as "SPIPlanPtr" instead of "void *". This is cosmetic but helps to forestall simple programming mistakes. (I have changed some but not all of the callers to match; there are still some "void *"'s in contrib and the PL's. This is intentional so that we can see if anyone's compiler complains about it.)
* Fix a longstanding bug in VACUUM FULL's handling of update chains. The codeTom Lane2007-03-14
| | | | | | | | | | | | | | | | | | | | | | | did not expect that a DEAD tuple could follow a RECENTLY_DEAD tuple in an update chain, but because the OldestXmin rule for determining deadness is a simplification of reality, it is possible for this situation to occur (implying that the RECENTLY_DEAD tuple is in fact dead to all observers, but this patch does not attempt to exploit that). The code would follow a chain forward all the way, but then stop before a DEAD tuple when backing up, meaning that not all of the chain got moved. This could lead to copying the chain multiple times (resulting in duplicate copies of the live tuple at its end), or leaving dangling index entries behind (which, aside from generating warnings from later vacuums, creates a risk of wrong query results or bogus duplicate-key errors once the heap slot the index entry points to is repopulated). The fix is to recheck HeapTupleSatisfiesVacuum while following a chain forward, and to stop if a DEAD tuple is reached. Each contiguous group of RECENTLY_DEAD tuples will therefore be copied as a separate chain. The patch also adds a couple of extra sanity checks to verify correct behavior. Per report and test case from Pavan Deolasee.
* Arrange to install a "posixrules" entry in our timezone database, so thatTom Lane2007-03-14
| | | | | | | | | | | | | POSIX-style timezone specs that don't exactly match any database entry will be treated as having correct USA DST rules. Also, document that this can be changed if you want to use some other DST rules with a POSIX zone spec. We could consider changing localtime.c's TZDEFRULESTRING, but since that facility can only deal with one DST transition rule, it seems fairly useless now; might as well just plan to override it using a "posixrules" entry. Backpatch as far as 8.0. There isn't much we can do in 7.x ... either your libc gets it right, or it doesn't.
* Remove extra single-quotes copied from Unix build. Win32 doesn't stripMagnus Hagander2007-03-14
| | | | single quotes...
* Regression makefile now needs to make separate lists of what to cleanTom Lane2007-03-13
| | | | | | | for input/ and output/ directories, because with the addition of largeobject_1.source, they're not the same list. Apparently the current buildfarm process does not exercise whether 'make distclean' leaves a clean tree behind, else the farm would have been failing for awhile.
* Rewrite win32 install documentation (it's not client only anymore, and it'sMagnus Hagander2007-03-13
| | | | | | now complete). Update for the MSVC6/Borland support now being only libpq. Move most of the information about full MSVC build from README file into documentation.
* Reverted waiting for further fixes:Peter Eisentraut2007-03-13
| | | | | | | Make configuration parameters fall back to their default values when they are removed from the configuration file. Joachim Wieland
* Filter out warnings coming from the stylesheets, so that actual warnings ↵Magnus Hagander2007-03-13
| | | | | | show up properly. Show some minor progress messages.
* Set root of docbook stuff from buildenv.bat and not from builddoc.bat.Magnus Hagander2007-03-13
| | | | Fix calling for file renaming when cd:ed into a different directory.
* Properly use pg_strcasecmp() instead of strcasecmp().Magnus Hagander2007-03-13
| | | | Un-breaks win32 build.
* First phase of plan-invalidation project: create a plan cache managementTom Lane2007-03-13
| | | | | | | | | | | | | | | | module and teach PREPARE and protocol-level prepared statements to use it. In service of this, rearrange utility-statement processing so that parse analysis does not assume table schemas can't change before execution for utility statements (necessary because we don't attempt to re-acquire locks for utility statements when reusing a stored plan). This requires some refactoring of the ProcessUtility API, but it ends up cleaner anyway, for instance we can get rid of the QueryContext global. Still to do: fix up SPI and related code to use the plan cache; I'm tempted to try to make SQL functions use it too. Also, there are at least some aspects of system state that we want to ensure remain the same during a replan as in the original processing; search_path certainly ought to behave that way for instance, and perhaps there are others.
* Make configuration parameters fall back to their default values when theyPeter Eisentraut2007-03-12
| | | | | | are removed from the configuration file. Joachim Wieland
* Make a run with perltidy to format the code. Per request from Andrew Dunstan.Magnus Hagander2007-03-12
|
* Fix a race condition that caused pg_database_size() and pg_tablespace_size()Alvaro Herrera2007-03-11
| | | | | | | | | to fail if an object was removed between calls to ReadDir() and stat(). Per discussion in pgsql-hackers. http://archives.postgresql.org/pgsql-hackers/2007-03/msg00671.php Bug report and patch by Michael Fuhr.
* Add alternate result file for large object tests to handle Windows line ends.Andrew Dunstan2007-03-10
|
* Remove unsafe calling of WSAStartup and WSACleanup from DllMain. Move theMagnus Hagander2007-03-08
| | | | | | | inline cleanup call around so it will be called in the right order, and be called on errors. Per report from Tokuharu Yuzawa.
* Fix vac_update_relstats to ensure it always sends a relcache inval message,Tom Lane2007-03-08
| | | | | | | | even if none of the fields in the pg_class row change. This behavior is necessary to ensure other backends flush rd_targblock values that might point to truncated-away pages. We got this right pre-8.2 but it was broken by overoptimistic change to not write out the pg_class row if unchanged. Per report from Pavan Deolasee.
* Cleanup the bootstrap code a little, and rename "dummy procs" in the codeAlvaro Herrera2007-03-07
| | | | comments and variables to "auxiliary proc", per Heikki's request.
* Fix oversight in original coding of inline_function(): sinceTom Lane2007-03-06
| | | | | | | | | | | | | | check_sql_fn_retval allows binary-compatibility cases, the expression extracted from an inline-able SQL function might have a type that is only binary-compatible with the declared function result type. To avoid possibly changing the semantics of the expression, we should insert a RelabelType node in such cases. This has only been shown to have bad consequences in recent 8.1 and up releases, but I suspect there may be failure cases in the older branches too, so patch it all the way back. Per bug #3116 from Greg Mullane. Along the way, fix an omission in eval_const_expressions_mutator: it failed to copy the relabelformat field when processing a RelabelType. No known observable failures from this, but it definitely isn't intended behavior.
* Add script to build documentation on win32 without mingwMagnus Hagander2007-03-06
|
* Revert temp_tablespaces because of coding problems, per Tom.Bruce Momjian2007-03-06
|
* Remove copied comments from geo_ops.c source file and replace with newBruce Momjian2007-03-05
| | | | | comments, and cleanup functions. Remove copyright that is no longer relevant.
* Remove old-style win32 client-only visual c++ build infrastructure for ↵Magnus Hagander2007-03-05
| | | | | | | everything except libpq. We need to keep libpq to build static libraries and to use PQtrace with clients using older versions of MSVC.
* Fix a typo in a comment. Heikki Linnakangas.Neil Conway2007-03-05
|
* Make the newly-added regression tests for lo_truncate() consistentNeil Conway2007-03-03
| | | | with the recent largeobject cosmetic fixes. Jeremy Drake.
* Cosmetic patch to large object regression test.Bruce Momjian2007-03-03
| | | | Jeremy Drake
* Split _bt_insertonpg to two functions.Bruce Momjian2007-03-03
| | | | Heikki Linnakangas
* Fix for COPY-after-truncate feature.Bruce Momjian2007-03-03
| | | | Simon Riggs
* Remove undo information from pg_controldata --- never used.Bruce Momjian2007-03-03
| | | | Florian G. Pflug
* Add lo_truncate() to backend and libpq for large object truncation.Bruce Momjian2007-03-03
| | | | Kris Jurka
* Add resetStringInfo(), which clears the content of a StringInfo, andNeil Conway2007-03-03
| | | | | | fixup various places in the tree that were clearing a StringInfo by hand. Making this function a part of the API simplifies client code slightly, and avoids needlessly peeking inside the StringInfo interface.
* Add GUC log_lock_waits to log long wait times.Bruce Momjian2007-03-03
| | | | Simon Riggs
* Allow \pset and \x, \t to use boolean constants on/off, rather than justBruce Momjian2007-03-03
| | | | | | toggle. Chad Wagner
* Make log_min_error_statement put LOG level at the same priority asTom Lane2007-03-02
| | | | | | log_min_messages does; and arrange to suppress the duplicative output that would otherwise result from log_statement and log_duration messages. Bruce Momjian and Tom Lane.
* Suppress useless searches for unused line pointers in PageAddItem. To doTom Lane2007-03-02
| | | | | | | | | | | | | | this, add a 16-bit "flags" field to page headers by stealing some bits from pd_tli. We use one flag bit as a hint to indicate whether there are any unused line pointers; the remaining 15 are available for future use. This is a cut-down form of an idea proposed by Hiroki Kataoka in July 2005. At the time it was rejected because the original patch increased the size of page headers and it wasn't clear that the benefit outweighed the distributed cost. The flag-bit approach gets most of the benefit without requiring an increase in the page header size. Heikki Linnakangas and Tom Lane
* Fix miscalculation of stats collector's write delay, introduced in revision ↵Tom Lane2007-03-01
| | | | 1.117.
* Fix markQueryForLocking() to work correctly in the presence of nested views.Tom Lane2007-03-01
| | | | | It has been wrong for this case since it was first written for 7.1 :-( Per report from Pavel Hanák.
* Fix date/time formats for XML Schema output.Peter Eisentraut2007-03-01
| | | | Pavel Stehule
* Remove temporary Windows-specific debugging code.Magnus Hagander2007-02-28
|
* Replace direct assignments to VARATT_SIZEP(x) with SET_VARSIZE(x, len).Tom Lane2007-02-27
| | | | | | | | | | | Get rid of VARATT_SIZE and VARATT_DATA, which were simply redundant with VARSIZE and VARDATA, and as a consequence almost no code was using the longer names. Rename the length fields of struct varlena and various derived structures to catch anyplace that was accessing them directly; and clean up various places so caught. In itself this patch doesn't change any behavior at all, but it is necessary infrastructure if we hope to play any games with the representation of varlena headers. Greg Stark and Tom Lane
* Allow information schema definitions to work without requiring implicitPeter Eisentraut2007-02-27
| | | | casts to text.
* Make build.bat return a proper errorcode if the build fails.Magnus Hagander2007-02-27
|
* Get rid of the separate EState for subplans, and just let them share theTom Lane2007-02-27
| | | | | | | | | parent query's EState. Now that there's a single flat rangetable for both the main plan and subplans, there's no need anymore for a separate EState, and removing it allows cleaning up some crufty code in nodeSubplan.c and nodeSubqueryscan.c. Should be a tad faster too, although any difference will probably be hard to measure. This is the last bit of subsidiary mop-up work from changing to a flat rangetable.
* Put back copyObject() call I removed in a fit of brain fade. This oneTom Lane2007-02-25
| | | | | | is still needed despite cleanups in setrefs.c, because the point is to let the inserted Result node compute a different tlist than its input node does. Per example from Jeremy Drake.