aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Some minor further cleanup around A_Const. Don't attach a typecast inTom Lane2008-04-29
| | | | | makeFloatConst, and avoid "manual" construction of A_Const nodes in grammar productions, in favor of using makeXXXConst subroutines.
* Fix REASSIGN OWNED so that it works on procedural languages too.Alvaro Herrera2008-04-29
| | | | | | | The capability for changing language owners is new in 8.3, so that's how far back this needs to be backpatched. Per bug #4132 by Kirill Simonov.
* Remove typename from A_Const.Alvaro Herrera2008-04-29
| | | | Brendan Jurd, minor editorialization by me.
* Fix volatility marking for the generate_series and generate_subscripts familiesAlvaro Herrera2008-04-29
| | | | of functions.
* Increase the statement_timeout value used in the prepared_xacts regressionTom Lane2008-04-28
| | | | | test. We have seen some buildfarm failures that seem to be due to this limit being unexpectedly exceeded when the machine is under load.
* Bump the catversion for the previous patch.Alvaro Herrera2008-04-28
|
* Add generate_subscripts, a series-generation function which generates anAlvaro Herrera2008-04-28
| | | | | | array's subscripts. Pavel Stehule, some editorialization by me.
* Code review for recent patch to terminate online backup during shutdown:Tom Lane2008-04-26
| | | | | do CancelBackup at a sane place, fix some oversights in the state transitions, allow only superusers to connect while we are waiting for backup mode to end.
* Remove transformAlterTableStmt's kluge to replace ColumnDef.is_not_nullTom Lane2008-04-24
| | | | | | | | | flags by separate AT_SetNotNull subcommands. That was always ugly and inefficient, and it's now clear that it was merely a partial workaround for the bug just identified in ATExecAddColumn. This is just code beautification not a bug fix, so no back-patch. Brendan Jurd, with some trivial additional cleanup by me.
* Fix ALTER TABLE ADD COLUMN ... PRIMARY KEY so that the new column is correctlyTom Lane2008-04-24
| | | | | | | | | | checked to see if it's been initialized to all non-nulls. The implicit NOT NULL constraint was not being checked during the ALTER (in fact, not even if there was an explicit NOT NULL too), because ATExecAddColumn neglected to set the flag needed to make the test happen. This has been broken since the capability was first added, in 8.0. Brendan Jurd, per a report from Kaloyan Iliev.
* Update error messages, per notes from Tom.Magnus Hagander2008-04-24
| | | | Laurenz Albe
* Prevent shutdown in normal mode if online backup is running, andMagnus Hagander2008-04-23
| | | | | | | | | have pg_ctl warn about this. Cancel running online backups (by renaming the backup_label file, thus rendering the backup useless) when shutting down in fast mode. Laurenz Albe
* Fix using too many LWLocks bug, reported by Craig RingerTeodor Sigaev2008-04-22
| | | | | | | | | <craig@postnewspapers.com.au>. It was my mistake, I missed limitation of number of held locks, now GIN doesn't use continiuous locks, but still hold buffers pinned to prevent interference with vacuum's deletion algorithm. Backpatch is needed.
* Don't pull in pthreads header files in this file because we never use them.Magnus Hagander2008-04-22
|
* FAQ2txt now only controls the main FAQ, not FAQ_DEV.Bruce Momjian2008-04-22
|
* Issue explicit error messages for attempts to use "shell" operators inTom Lane2008-04-22
| | | | | | | | | | ordinary expressions. This probably doesn't catch every single case where you might get "cache lookup failed for function 0" for use of a shell operator, but it will catch most. Per bug #4120 from Pedro Gimeno. This patch incidentally folds make_op_expr() into its sole remaining caller --- the alternative was to give it yet more arguments, which didn't seem an improvement.
* Fix convert_IN_to_join to properly handle the case where the subselect'sTom Lane2008-04-21
| | | | | | | | | | | | | | | | | | | | | | | | | output is not of the same type that's needed for the IN comparison (ie, where the parser inserted an implicit coercion above the subselect result). We should record the coerced expression, not just a raw Var referencing the subselect output, as the quantity that needs to be unique-ified if we choose to implement the IN as Unique followed by a plain join. As of 8.3 this error was causing crashes, as seen in bug #4113 from Javier Hernandez, because the executor was being told to hash or sort the raw subselect output column using operators appropriate to the coerced type. In prior versions there was no crash because the executor chose the hash or sort operators for itself based on the column type it saw. However, that's still not really right, because what's unique for one data type might not be unique for another. In corner cases we could get multiple outputs of a row that should appear only once, as demonstrated by the regression test case included in this commit. However, this patch doesn't apply cleanly to 8.2 or before, and the code involved has shifted enough over time that I'm hesitant to try to back-patch. Given the lack of complaints from the field about such corner cases, I think the bug may not be important enough to risk breaking other things with a back-patch.
* Clean up float4byval and float8byval handling by dealing with them completelyMagnus Hagander2008-04-21
| | | | from inside the build script.
* Make float4byval and float8byval configurable on MSVC.Magnus Hagander2008-04-21
|
* Fix a couple of places in execMain that erroneously assumed that SELECT FORTom Lane2008-04-21
| | | | | | | | | | UPDATE/SHARE couldn't occur as a subquery in a query with a non-SELECT top-level operation. Symptoms included outright failure (as in report from Mark Mielke) and silently neglecting to take the requested row locks. Back-patch to 8.3, because the visible failure in the INSERT ... SELECT case is a regression from 8.2. I'm a bit hesitant to back-patch further given the lack of field complaints.
* Add FLOAT4PASSBYVAL/FLOAT8PASSBYVAL to pg_config.h.win32, as a stopgapTom Lane2008-04-21
| | | | | | measure to get the Windows buildfarm members working again. I don't know if it's worth exposing these as configurables, or exactly how to do it in the MSVC build system ...
* Allow float8, int8, and related datatypes to be passed by value on machinesTom Lane2008-04-21
| | | | | | | | | | where Datum is 8 bytes wide. Since this will break old-style C functions (those still using version 0 calling convention) that have arguments or results of these types, provide a configure option to disable it and retain the old pass-by-reference behavior. Likewise, provide a configure option to disable the recently-committed float4 pass-by-value change. Zoltan Boszormenyi, plus configurability stuff by me.
* Fix broken compare function for tsquery_ops. Per Tom's report.Teodor Sigaev2008-04-20
| | | | | | | | | | I never understood why initial authors GiST in pgsql choose so stgrange signature for 'same' method: bool *sameFn(Datum a, Datum b, bool* result) instead of simple, logical bool sameFn(Datum a, Datum b) This change will break any existing GiST extension, so we still live with it and will live.
* Update doc script comments.Bruce Momjian2008-04-19
|
* Add script FAQ2txt to convert HTML files to txt. Add comment to TODO2html.Bruce Momjian2008-04-19
|
* Add TODO2html tool to convert TODO to HTML.Bruce Momjian2008-04-19
|
* Modify the float4 datatype to be pass-by-val. Along the way, remove the lastAlvaro Herrera2008-04-18
| | | | | | | | | | | | | | | uses of the long-deprecated float32 in contrib/seg; the definitions themselves are still there, but no longer used. fmgr/README updated to match. I added a CREATE FUNCTION to account for existing seg_center() code in seg.c too, and some tests for it and the neighbor functions. At the same time, remove checks for NULL which are not needed (because the functions are declared STRICT). I had to do some adjustments to contrib's btree_gist too. The choices for representation there are not ideal for changing the underlying types :-( Original patch by Zoltan Boszormenyi, with some adjustments by me.
* Fix rmtree() so that it keeps going after failure to remove any individualTom Lane2008-04-18
| | | | | | file; the idea is that we should clean up as much as we can, even if there's some problem removing one file. Make the error messages a bit less misleading, too. In passing, const-ify function arguments.
* Fix two race conditions between the pending unlink mechanism that was put inHeikki Linnakangas2008-04-18
| | | | | | | | | | | | | | | | | | | | | place to prevent reusing relation OIDs before next checkpoint, and DROP DATABASE. First, if a database was dropped, bgwriter would still try to unlink the files that the rmtree() call by the DROP DATABASE command has already deleted, or is just about to delete. Second, if a database is dropped, and another database is created with the same OID, bgwriter would in the worst case delete a relation in the new database that happened to get the same OID as a dropped relation in the old database. To fix these race conditions: - make rmtree() ignore ENOENT errors. This fixes the 1st race condition. - make ForgetDatabaseFsyncRequests forget unlink requests as well. - force checkpoint on in dropdb on all platforms Since ForgetDatabaseFsyncRequests() is asynchronous, the 2nd change isn't enough on its own to fix the problem of dropping and creating a database with same OID, but forcing a checkpoint on DROP DATABASE makes it sufficient. Per Tom Lane's bug report and proposal. Backpatch to 8.3.
* Cause EXPLAIN's VERBOSE option to print the target list (output column list)Tom Lane2008-04-18
| | | | | | | | | | of each plan node, instead of its former behavior of dumping the internal representation of the plan tree. The latter display is still available for those who really want it (see debug_print_plan), but uses for it are certainly few and and far between. Per discussion. This patch also removes the explain_pretty_print GUC, which is obsoleted by the change.
* Clean up a few places where Datums were being treated as pointers (and viceAlvaro Herrera2008-04-17
| | | | | | versa) without going through DatumGetPointer. Gavin Sherry, with Feng Tian.
* Fix a couple of oversights associated with the "physical tlist" optimization:Tom Lane2008-04-17
| | | | | | | | | | | | | | | | | | | | | we had several code paths where a physical tlist could be used for the input to a Sort node, which is a dumb idea because any unneeded table columns will increase the volume of data the sort has to push around. (Unfortunately the easy-looking fix of calling disuse_physical_tlist during make_sort_xxx doesn't work because in most cases we're already committed to the current input tlist --- it's been marked with sort column numbers, or we've built grouping column numbers using it, etc. The tlist has to be selected properly at the calling level before we start constructing sort-col information. This is easy enough to do, we were just failing to take the point into consideration.) Back-patch to 8.3. I believe the problem probably exists clear back to 7.4 when the physical tlist optimization was added, but I'm afraid to back-patch further than 8.3 without a great deal more study than I want to put into it. The code in this area has drifted a lot over time. The real-world importance of these code paths is uncertain anyway --- I think in many cases we'd probably prefer hash-based methods.
* Re-enable pg_terminate_backend() using SIGTERM. SIGTERM testing stillBruce Momjian2008-04-17
| | | | needed.
* Add some code to EXPLAIN to show the targetlist (ie, output columns)Tom Lane2008-04-17
| | | | | | of each plan node. For the moment this is debug support only and is not enabled unless EXPLAIN_PRINT_TLISTS is defined at build time. Later I'll see about the idea of letting EXPLAIN VERBOSE do it.
* Repair two places where SIGTERM exit could leave shared memory stateTom Lane2008-04-16
| | | | | | | | | | | | | | corrupted. (Neither is very important if SIGTERM is used to shut down the whole database cluster together, but there's a problem if someone tries to SIGTERM individual backends.) To do this, introduce new infrastructure macros PG_ENSURE_ERROR_CLEANUP/PG_END_ENSURE_ERROR_CLEANUP that take care of transiently pushing an on_shmem_exit cleanup hook. Also use this method for createdb cleanup --- that wasn't a shared-memory-corruption problem, but SIGTERM abort of createdb could leave orphaned files lying around. Backpatch as far as 8.2. The shmem corruption cases don't exist in 8.1, and the createdb usage doesn't seem important enough to risk backpatching further.
* Fix MinGW warnings re formats and unused variables. per ITAGAKI TakahiroAndrew Dunstan2008-04-16
|
* Ignore blank lines in typedef file.Bruce Momjian2008-04-16
|
* Fix LOAD_CRIT_INDEX() macro to take out AccessShareLock on the system indexTom Lane2008-04-16
| | | | | | | | | | it is trying to build a relcache entry for. This is an oversight in my 8.2 patch that tried to ensure we always took a lock on a relation before trying to build its relcache entry. The implication is that if someone committed a reindex of a critical system index at about the same time that some other backend were starting up without a valid pg_internal.init file, the second one might PANIC due to not seeing any valid version of the index's pg_class row. Improbable case, but definitely not impossible.
* Fix comment typo.Bruce Momjian2008-04-16
| | | | Bryce Nesbitt
* Avoid using unnecessary pgwin32_safestat in libpq.Andrew Dunstan2008-04-16
|
* Revert addition of pg_terminate_backend() because of race conditions.Bruce Momjian2008-04-15
|
* Add multi-line flag to regex that needs it. Backpatch to 8.2. Fix from ↵Andrew Dunstan2008-04-15
| | | | Andreas Zeugswetter
* Add pg_terminate_backend() to allow terminating only a single session.Bruce Momjian2008-04-15
|
* Make integer_datetimes the default for MSVC even if not mentioned in config.pl.Andrew Dunstan2008-04-15
|
* Push index operator lossiness determination down to GIST/GIN opclassTom Lane2008-04-14
| | | | | | | | | | | "consistent" functions, and remove pg_amop.opreqcheck, as per recent discussion. The main immediate benefit of this is that we no longer need 8.3's ugly hack of requiring @@@ rather than @@ to test weight-using tsquery searches on GIN indexes. In future it should be possible to optimize some other queries better than is done now, by detecting at runtime whether the index match is exact or not. Tom Lane, after an idea of Heikki's, and with some help from Teodor.
* Fix indentation in new REFERENCED BY psql output, per Brendan Jurd.Alvaro Herrera2008-04-14
|
* Since createplan.c no longer cares whether index operators are lossy, it hasTom Lane2008-04-13
| | | | | | | | | | no particular need to do get_op_opfamily_properties() while building an indexscan plan. Postpone that lookup until executor start. This simplifies createplan.c a lot more than it complicates nodeIndexscan.c, and makes things more uniform since we already had to do it that way for RowCompare expressions. Should be a bit faster too, at least for plans that aren't re-used many times, since we avoid palloc'ing and perhaps copying the intermediate list data structure.
* Phase 2 of project to make index operator lossiness be determined at runtimeTom Lane2008-04-13
| | | | | | | | | | | | instead of plan time. Extend the amgettuple API so that the index AM returns a boolean indicating whether the indexquals need to be rechecked, and make that rechecking happen in nodeIndexscan.c (currently the only place where it's expected to be needed; other callers of index_getnext are just erroring out for now). For the moment, GIN and GIST have stub logic that just always sets the recheck flag to TRUE --- I'm hoping to get Teodor to handle pushing that control down to the opclass consistent() functions. The planner no longer pays any attention to amopreqcheck, and that catalog column will go away in due course.
* Turn the -i/--ignore-version options of pg_dump and pg_dumpall into no-ops:Tom Lane2008-04-13
| | | | | | | | | | | the server version check is now always enforced. Relax the version check to allow a server that is of pg_dump's own major version but a later minor version; this is the only case that -i was at all safe to use in. pg_restore already enforced only a very weak version check, so this is really just a documentation change for it. Per discussion.
* Clean up a few places where Datums were being treated as pointers withoutTom Lane2008-04-12
| | | | | | | | going through DatumGetPointer or some other "official" conversion macro. Not actually a bug, since Datum the same size as pointer is the only supported case at the moment, but good cleanup for the future. Gavin Sherry