aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Add new encoding aliases for Solaris, per Zdenek Kotala.Alvaro Herrera2007-10-25
|
* Disallow scrolling of FOR UPDATE/FOR SHARE cursors, so as to avoid problemsTom Lane2007-10-24
| | | | | | | | | | | in corner cases such as re-fetching a just-deleted row. We may be able to relax this someday, but let's find out how many people really care before we invest a lot of work in it. Per report from Heikki and subsequent discussion. While in the neighborhood, make the combination of INSENSITIVE and FOR UPDATE throw an error, since they are semantically incompatible. (Up to now we've accepted but just ignored the INSENSITIVE option of DECLARE CURSOR.)
* Rearrange vacuum-related bits in PGPROC as a bitmask, to better supportAlvaro Herrera2007-10-24
| | | | | | | | | having several of them. Add two more flags: whether the process is executing an ANALYZE, and whether a vacuum is for Xid wraparound (which is obviously only set by autovacuum). Sneakily move the worker's recently-acquired PostAuthDelay to a more useful place.
* Fix an error in make_outerjoininfo introduced by my patch of 30-Aug: the codeTom Lane2007-10-24
| | | | | | | | | | | | | neglected to test whether an outer join's join-condition actually refers to the lower outer join it is looking at. (The comment correctly described what was supposed to happen, but the code didn't do it...) This often resulted in adding an unnecessary constraint on the join order of the two outer joins, which was bad enough. However, it also seems to expose a performance problem in an older patch (from 15-Feb): once we've decided that there is a join ordering constraint, we will start trying clauseless joins between every combination of rels within the constraint, which pointlessly eats up lots of time and space if there are numerous rels below the outer join. That probably needs to be revisited :-(. Per gripe from Jakub Ouhrabka.
* Danish_Danmark -> Danish_DenmarkAlvaro Herrera2007-10-24
|
* Minor changes to autovacuum worker: change error handling so that it continuesAlvaro Herrera2007-10-24
| | | | | | | | | | | | | with the next table on schedule instead of exiting, in all cases instead of just on query cancel. Add a errcontext() line indicating the activity of the worker to the error message when it is cancelled. Change the WorkerInfo struct to contain a pointer to the worker's PGPROC instead of just the PID. Add forgotten post-auth delays, per Simon Riggs. Also to autovac launcher.
* Fix UPDATE/DELETE WHERE CURRENT OF to support repeated update and update-Tom Lane2007-10-24
| | | | | | | | | | | | | | | | then-delete on the current cursor row. The basic fix is that nodeTidscan.c has to apply heap_get_latest_tid() to the current-scan-TID obtained from the cursor query; this ensures we get the latest row version to work with. However, since that only works if the query plan is a TID scan, we also have to hack the planner to make sure only that type of plan will be selected. (Formerly, the planner might decide to apply a seqscan if the table is very small. This change is probably a Good Thing anyway, since it's hard to see how a seqscan could really win.) That means the execQual.c code to support CurrentOfExpr as a regular expression type is dead code, so replace it with just an elog(). Also, add regression tests covering these cases. Note that the added tests expose the fact that re-fetching an updated row misbehaves if the cursor used FOR UPDATE. That's an independent bug that should be fixed later. Per report from Dharmendra Goyal.
* Keep heap_page_prune from marking the buffer dirty when it didn'tTom Lane2007-10-24
| | | | | really change anything. Per report from Itagaki Takahiro. Fix by Pavan Deolasee.
* Set read_only = TRUE while evaluating input queries for ts_rewrite()Tom Lane2007-10-24
| | | | | | and ts_stat(), per my recent suggestion. Also add a possibly-not-needed- but-can't-hurt check for NULL SPI_tuptable, before we try to dereference same.
* Remove the aggregate form of ts_rewrite(), since it doesn't work as desiredTom Lane2007-10-24
| | | | | | | | | if there are zero rows to aggregate over, and the API seems both conceptually and notationally ugly anyway. We should look for something that improves on the tsquery-and-text-SELECT version (which is also pretty ugly but at least it works...), but it seems that will take query infrastructure that doesn't exist today. (Hm, I wonder if there's anything in or near SQL2003 window functions that would help?) Per discussion.
* Make configure probe for the location of the <uuid.h> header file.Tom Lane2007-10-23
| | | | | Needed to accommodate different layout on some platforms (Debian for one). Heikki Linnakangas
* Rename and slightly redefine the default text search parser's "word"Tom Lane2007-10-23
| | | | | | | | | | | | | categories, as per discussion. asciiword (formerly lword) is still ASCII-letters-only, and numword (formerly word) is still the most general mixed-alpha-and-digits case. But word (formerly nlword) is now any-group-of-letters-with-at-least-one-non-ASCII, rather than all-non-ASCII as before. This is no worse than before for parsing mixed Russian/English text, which seems to have been the design center for the original coding; and it should simplify matters for parsing most European languages. In particular it will not be necessary for any language to accept strings containing digits as being regular "words". The hyphenated-word categories are adjusted similarly.
* Use snprintf instead of wsprintf, and use getenv("APPDATA") instead ofMagnus Hagander2007-10-23
| | | | | | | | | | | | | | SHGetFolderPath. This removes the direct dependency on shell32.dll and user32.dll, which eats a lot of "desktop heap" for each backend that's started. The desktop heap is a very limited resource, causing backends to no longer start once it's been exhausted. We still have indirect depdendencies on user32.dll through third party libraries, but those can't easily be removed. Dave Page
* Fix two-argument form of ts_rewrite() so it actually works for cases whereTom Lane2007-10-23
| | | | | a later rewrite rule should change a subtree modified by an earlier one. Per my gripe of a few days ago.
* Fix several bugs in tsvectorin, including crash due to uninitialized field andTom Lane2007-10-23
| | | | | | | | | | | | | miscomputation of required palloc size. The crash could only occur if the input contained lexemes both with and without positions, which is probably not common in practice. The miscomputation would definitely result in wasted space. Also fix some inconsistent coding around alignment of strings and positions in a tsvector value; these errors could also lead to crashes given mixed with/without position data and a machine that's picky about alignment. And be more careful about checking for overflow of string offsets. Patch is only against HEAD --- I have not looked to see if same bugs are in back-branch contrib/tsearch2 code.
* Adjust ts_debug's output as per my proposal of yesterday: show theTom Lane2007-10-22
| | | | | | | active dictionary and its output lexemes as separate columns, instead of smashing them into one text column, and lowercase the column names. Also, define the output rowtype using OUT parameters instead of a composite type, to be consistent with the other built-in functions.
* Remove an Assert that's been obsoleted by recent changes in the parsetreeTom Lane2007-10-22
| | | | representation of DECLARE CURSOR. Report and fix by Heikki.
* Add a useless return statement to suppress a warning seen with someTom Lane2007-10-22
| | | | | | versions of gcc (I'm seeing it with Apple's gcc 4.0.1). I think the reason we did not see this before was that the assert() macros in the regex code were all no-ops till recently.
* Fix shared tsvector/tsquery input code so that we don't say "syntax error inTom Lane2007-10-21
| | | | | tsvector" when we are really parsing a tsquery. Report the bogus input, too. Make styles of some related error messages more consistent.
* Adjust error message to agree with documentation. The tsearch documentationTom Lane2007-10-20
| | | | uniformly calls these things weights, not classes.
* Found another small glitch in tsearch API: the two versions of ts_lexize()Tom Lane2007-10-19
| | | | | | are really redundant, since we invented a regdictionary alias type. We can have just one function, declared as taking regdictionary, and it will handle both behaviors. Noted while working on documentation.
* ts_rewrite() does not return a set, only one row; fix mislabeling inTom Lane2007-10-19
| | | | pg_proc.h.
* Add missing entry for PG_WIN1250 encoding, per gripe from Pavel Stehule.Tom Lane2007-10-17
| | | | | | Also enable translation of PG_WIN874, which certainly seems to have an obvious translation now, though maybe it did not at the time this table's ancestor was created.
* Use 'token' not 'lexeme' to describe the output of a parser.Tom Lane2007-10-16
|
* Tweak toast-related logic in heapam.c so that the toaster is only invokedTom Lane2007-10-16
| | | | | | | when relkind = RELKIND_RELATION. This syncs these tests with the Asserts in tuptoaster.c, and ensures that we won't ever try to, for example, compress a sequence's tuple. Problem found by Greg Stark while stress-testing with much-smaller-than-normal page sizes.
* Teach pgxs.mk and Install.pm how to install files from a contrib moduleTom Lane2007-10-16
| | | | | into SHAREDIR/tsearch_data. Use this instead of ad-hoc coding in dict_xsyn/Makefile. Should fix current ContribCheck failures on MSVC.
* Re-allow UTF8 encodings on win32. Since UTF8 is converted toMagnus Hagander2007-10-16
| | | | UTF16 before being used, all (valid) locales will work for this.
* Remove quotes around locale names in some places for consistency.Peter Eisentraut2007-10-16
|
* Fix pg_wchar_table[] to match revised ordering of the encoding ID enum.Tom Lane2007-10-15
| | | | | Add some comments so hopefully the next poor sod doesn't fall into the same trap. (Wrong comments are worse than none at all...)
* Include NOLOGIN roles in the 'flat' password file. In the originalTom Lane2007-10-15
| | | | | | | coding this was seen as useless, but the problem with not including them is that the error message will often be something about authentication failure, rather than the more helpful one about 'role is not permitted to log in'. Per discussion.
* make install is supposed to install everything under src/include/,Tom Lane2007-10-14
| | | | but it was missing a bunch of recently-added subdirectories.
* Ooops, forgot about adding -DFRONTEND.Tom Lane2007-10-13
|
* Migrate the former contrib/txid module into core. This will make it easierTom Lane2007-10-13
| | | | for Slony and Skytools to depend on it. Per discussion.
* Try to fix msvc build for recent initdb changes.Tom Lane2007-10-13
|
* Strengthen type_sanity's check on pg_type.typarray. It failed toTom Lane2007-10-13
| | | | | complain about types that didn't have typarray set. Noted while working on txid patch.
* Guard against possible double free during error escape from XMLTom Lane2007-10-13
| | | | | functions. Patch for the reported issue from Kris Jurka, some other potential trouble spots plugged by Tom.
* Fix the inadvertent libpq ABI breakage discovered by Martin Pitt: theTom Lane2007-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | renumbering of encoding IDs done between 8.2 and 8.3 turns out to break 8.2 initdb and psql if they are run with an 8.3beta1 libpq.so. For the moment we can rearrange the order of enum pg_enc to keep the same number for everything except PG_JOHAB, which isn't a problem since there are no direct references to it in the 8.2 programs anyway. (This does force initdb unfortunately.) Going forward, we want to fix things so that encoding IDs can be changed without an ABI break, and this commit includes the changes needed to allow libpq's encoding IDs to be treated as fully independent of the backend's. The main issue is that libpq clients should not include pg_wchar.h or otherwise assume they know the specific values of libpq's encoding IDs, since they might encounter version skew between pg_wchar.h and the libpq.so they are using. To fix, have libpq officially export functions needed for encoding name<=>ID conversion and validity checking; it was doing this anyway unofficially. It's still the case that we can't renumber backend encoding IDs until the next bump in libpq's major version number, since doing so will break the 8.2-era client programs. However the code is now prepared to avoid this type of problem in future. Note that initdb is no longer a libpq client: we just pull in the two source files we need directly. The patch also fixes a few places that were being sloppy about checking for an unrecognized encoding name.
* Fix ALTER COLUMN TYPE to preserve the tablespace and reloptions of indexesTom Lane2007-10-13
| | | | | | | | | | it affects. The original coding neglected tablespace entirely (causing the indexes to move to the database's default tablespace) and for an index belonging to a UNIQUE or PRIMARY KEY constraint, it would actually try to assign the parent table's reloptions to the index :-(. Per bug #3672 and subsequent investigation. 8.0 and 8.1 did not have reloptions, but the tablespace bug is present.
* Teach planagg.c that partial indexes specifying WHERE foo IS NOT NULL can beTom Lane2007-10-13
| | | | | | | | | used to perform MIN(foo) or MAX(foo), since we want to discard null rows in the indexscan anyway. (This would probably fall out for free if we were injecting the IS NOT NULL clause somewhere earlier, but given the current anatomy of the MIN/MAX optimization code we have to do it explicitly. Fortunately, very little added code is needed.) Per a discussion with Henk de Wit.
* When telling the bgwriter that we need a checkpoint because too much xlogTom Lane2007-10-12
| | | | | | | | | has been consumed, recheck against the latest value of RedoRecPtr before really sending the signal. This avoids useless checkpoint activity if XLogWrite is executed when we have a very stale local copy of RedoRecPtr. The potential for useless checkpoint is very much worse in 8.3 because of the walwriter process (which never does XLogInsert), so while this behavior was intentional, it needs to be changed. Per report from Itagaki Takahiro.
* Remove hack in pg_tablespace_aclmask() that disallowed permissionsTom Lane2007-10-12
| | | | | | | | on pg_global even to superusers, and replace it with checks in various other places to complain about invalid uses of pg_global. This ends up being a bit more code but it allows a more specific error message to be given, and it un-breaks pg_tablespace_size() on pg_global. Per discussion.
* Ensure that the result of evaluating a function during constant-expressionTom Lane2007-10-11
| | | | | | | simplification gets detoasted before it is incorporated into a Const node. Otherwise, if an immutable function were to return a TOAST pointer (an unlikely case, but it can be made to happen), we would end up with a plan that depends on the continued existence of the out-of-line toast datum.
* Remove incorrect use of VARSIZE() on a toasted datum. We can just remove itTom Lane2007-10-11
| | | | | instead of fix it, since once we've set toast_action[i] to 'p' it no longer matters what toast_sizes[i] is. Greg Stark
* Fix the plan-invalidation mechanism to treat regclass constants that refer toTom Lane2007-10-11
| | | | | | | | | | a relation as a reason to invalidate a plan when the relation changes. This handles scenarios such as dropping/recreating a sequence that is referenced by nextval('seq') in a cached plan. Rather than teach plancache.c all about digging through plan trees to find regclass Consts, we charge the planner's setrefs.c with making a list of the relation OIDs on which each plan depends. That way the list can be built cheaply during a plan tree traversal that has to happen anyway. Per bug #3662 and subsequent discussion.
* Add missing codepage numbers for Windows.Magnus Hagander2007-10-10
| | | | Dave Page
* Synced parser and keyword list.Michael Meskes2007-10-10
|
* Don't try to free pgpassfile since it's a stack variable.Magnus Hagander2007-10-09
| | | | Martin Pitt
* Add comment.Bruce Momjian2007-10-09
|
* Make dumpcolors() have tolerable performance when using 32-bit chr,Tom Lane2007-10-06
| | | | | | as we do (and upstream Tcl doesn't). The loop limit might be subject to negotiation if anyone ever tries to do regex debugging in Far Eastern languages, but for now 1000 seems plenty. CHR_MAX was right out :-(
* Adjust some regex debugging printouts to not give wrong-format-widthTom Lane2007-10-06
| | | | | warnings on a 64-bit machine. Noted while chasing a recent regex bug report.