aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Replace pg_shadow and pg_group by new role-capable catalogs pg_authidTom Lane2005-06-28
| | | | | | | | and pg_auth_members. There are still many loose ends to finish in this patch (no documentation, no regression tests, no pg_dump support for instance). But I'm going to commit it now anyway so that Alvaro can make some progress on shared dependencies. The catalog changes should be pretty much done.
* Concurrency for GiSTTeodor Sigaev2005-06-27
| | | | | | | | | | | | | | | | | | - full concurrency for insert/update/select/vacuum: - select and vacuum never locks more than one page simultaneously - select (gettuple) hasn't any lock across it's calls - insert never locks more than two page simultaneously: - during search of leaf to insert it locks only one page simultaneously - while walk upward to the root it locked only parent (may be non-direct parent) and child. One of them X-lock, another may be S- or X-lock - 'vacuum full' locks index - improve gistgetmulti - simplify XLOG records Fix bug in index_beginscan_internal: LockRelation may clean rd_aminfo structure, so move GET_REL_PROCEDURE after LockRelation
* Remove support for Kerberos V4. It seems no one is using this, it hasNeil Conway2005-06-27
| | | | | some security issues, and upstream has declared it "dead". Patch from Magnus Hagander, minor editorialization from Neil Conway.
* Tweak dynahash.c to not allocate so many entries at once when dealingTom Lane2005-06-26
| | | | | | with a table that has a small predicted size. Avoids wasting several hundred K on the timezone hash table, which is likely to have only one or a few entries, but the entries use up 10Kb apiece ...
* Add Oracle-compatible GREATEST and LEAST functions. Pavel StehuleTom Lane2005-06-26
|
* Code review for escape-strings patch. Sync psql and plpgsql lexersTom Lane2005-06-26
| | | | | | | with main, avoid using a SQL-defined SQLSTATE for what is most definitely not a SQL-compatible error condition, fix documentation omissions, adhere to message style guidelines, don't use two GUC_REPORT variables when one is sufficient. Nothing done about pg_dump issues.
* Add E'' syntax so eventually normal strings can treat backslashesBruce Momjian2005-06-26
| | | | | | | | | | | | literally. Add GUC variables: "escape_string_warning" - warn about backslashes in non-E strings "escape_string_syntax" - supports E'' syntax? "standard_compliant_strings" - treats backslashes literally in '' Update code to use E'' when escapes are used.
* Fix a couple of items that should be declared Oid not int. PurelyTom Lane2005-06-25
| | | | cosmetic at the moment, but someday Oid might be 64 bits ...
* Force a checkpoint before committing a CREATE DATABASE command. ThisTom Lane2005-06-25
| | | | | | should fix the recent reports of "index is not a btree" failures, as well as preventing a more obscure race condition involving changes to a template database just after copying it with CREATE DATABASE.
* Fix ancient memory leak in index_create(): RelationInitIndexAccessInfoTom Lane2005-06-25
| | | | | was being called twice in normal operation, leading to a leak of one set of relcache subsidiary info. Per report from Jeff Gold.
* Extend r-tree operator classes to handle Y-direction tests equivalentTom Lane2005-06-24
| | | | | | | | | | | | | | | to the existing X-direction tests. An rtree class now includes 4 actual 2-D tests, 4 1-D X-direction tests, and 4 1-D Y-direction tests. This involved adding four new Y-direction test operators for each of box and polygon; I followed the PostGIS project's lead as to the names of these operators. NON BACKWARDS COMPATIBLE CHANGE: the poly_overleft (&<) and poly_overright (&>) operators now have semantics comparable to box_overleft and box_overright. This is necessary to make r-tree indexes work correctly on polygons. Also, I changed circle_left and circle_right to agree with box_left and box_right --- formerly they allowed the boundaries to touch. This isn't actually essential given the lack of any r-tree opclass for circles, but it seems best to sync all the definitions while we are at it.
* Remove overspecification of precision of CURRENT_TIMESTAMP, LOCALTIMESTAMP,Tom Lane2005-06-24
| | | | | | | | | | | CURRENT_TIME, and LOCALTIME: now they just produce "timestamptz" not "timestamptz(6)", etc. This makes the behavior more consistent with our choice to not assign a specific default precision to column datatypes. It should also save a few cycles at runtime due to not having to invoke the round-to-given-precision functions. I also took the opportunity to translate CURRENT_TIMESTAMP into "now()" instead of an invocation of the timestamptz input converter --- this should save a few cycles too.
* Allow direct conversion between EUC_JP and SJIS to improveTatsuo Ishii2005-06-24
| | | | performance. patches submitted by Atsushi Ogawa.
* Code cleanup: remove 3 duplicate static function declarations.Neil Conway2005-06-24
|
* This trivial patch removes an unused variable. From Alvaro Herrera.Neil Conway2005-06-24
|
* Fix rtree and contrib/rtree_gist search behavior for the 1-D box andTom Lane2005-06-24
| | | | | | | | | | polygon operators (<<, &<, >>, &>). Per ideas originally put forward by andrew@supernews and later rediscovered by moi. This patch just fixes the existing opclasses, and does not add any new behavior as I proposed earlier; that can be sorted out later. In principle this could be back-patched, since it changes only search behavior and not system catalog entries nor rtree index contents. I'm not currently planning to do that, though, since I think it could use more testing.
* Make REINDEX DATABASE do what one would expect, namely reindex all indexesTom Lane2005-06-22
| | | | | | | in the database. The old behavior (reindex system catalogs only) is now available as REINDEX SYSTEM. I did not add the complementary REINDEX USER case since there did not seem to be consensus for this, but it would be trivial to add later. Per recent discussions.
* Fix the mechanism for reporting the original table OID and column numberTom Lane2005-06-22
| | | | | of columns of a query result so that it can "see through" cursors and prepared statements. Per gripe a couple months back from John DeSoi.
* Add a hack requested by the JDBC driver writers: when a function'sTom Lane2005-06-22
| | | | | | | | | argument list contains parameter symbols ($n) declared as type VOID, discard these arguments. This allows the driver to avoid renumbering mixed IN and OUT argument placeholders (the JDBC syntax involves writing ? for both IN and OUT parameters, but on the server side we don't think that OUT parameters are arguments). This doesn't break any currently- useful cases since VOID is not used as an input argument type.
* More trivial dead code removal: in int_to_roman(), checking for "num == -1"Neil Conway2005-06-22
| | | | | | | | is redundant after a check has already been made for "num < 0". The "set" variable can also be removed, as it is now no longer used. Per checking with Karel, this is the right fix. Per Coverity static analysis performed by EnterpriseDB.
* Cause initdb to create a third standard database "postgres", whichTom Lane2005-06-21
| | | | | | | | | | | | | | unlike template0 and template1 does not have any special status in terms of backend functionality. However, all external utilities such as createuser and createdb now connect to "postgres" instead of template1, and the documentation is changed to encourage people to use "postgres" instead of template1 as a play area. This should fix some longstanding gotchas involving unexpected propagation of database objects by createdb (when you used template1 without understanding the implications), as well as ameliorating the problem that CREATE DATABASE is unhappy if anyone else is connected to template1. Patch by Dave Page, minor editing by Tom Lane. All per recent pghackers discussions.
* Fix a potential backend crash during authentication when parsing aNeil Conway2005-06-21
| | | | | | | malformed ident map file. This was introduced by the linked list rewrite in 8.0 -- mea maxima culpa. Per Coverity static analysis performed by EnterpriseDB.
* Trivial dead code removal: in CreateSchemaCommand(), 'owner_name' isNeil Conway2005-06-21
| | | | | | | | only used in one branch of an if statement, so we can move its declaration to that block. This also avoids an unnecessary syscache lookup. Per Coverity static analysis performed by EnterpriseDB.
* Trivial dead code removal: in makeObjectName(), name1 must be non-NULLNeil Conway2005-06-21
| | | | | | | (due to the preceding strlen(), for example), so we needn't recheck this before invoking pg_mbcliplen(). Per Coverity static analysis performed by EnterpriseDB.
* Avoid WAL-logging individual tuple insertions during CREATE TABLE ASTom Lane2005-06-20
| | | | | | (a/k/a SELECT INTO). Instead, flush and fsync the whole relation before committing. We do still need the WAL log when PITR is active, however. Simon Riggs and Tom Lane.
* fix founded hole in recovery after crash, add vacuum_delay_point()Teodor Sigaev2005-06-20
|
* 1. full functional WAL for GiSTTeodor Sigaev2005-06-20
| | | | | | | | | | | 2. improve vacuum for gist - use FSM - full vacuum: - reforms parent tuple if it's needed ( tuples was deleted on child page or parent tuple remains invalid after crash recovery ) - truncate index file if possible 3. fixes bugs and mistakes
* Add lock file contents printout to "can't happen" case to helpTom Lane2005-06-20
| | | | investigate buildfarm failures.
* Trivial code clarity improvement to UpdateStats(); no functional change.Neil Conway2005-06-20
|
* Avoid unnecessary palloc overhead in _bt_first(). The temporaryTom Lane2005-06-19
| | | | | | | scankeys arrays that it needs can never have more than INDEX_MAX_KEYS entries, so it's reasonable to just allocate them as fixed-size local arrays, and save the cost of palloc/pfree. Not a huge savings, but a cycle saved is a cycle earned ...
* Need #include <time.h> on some platforms.Tom Lane2005-06-19
|
* Simplify uses of readdir() by creating a function ReadDir() thatTom Lane2005-06-19
| | | | | | | includes error checking and an appropriate ereport(ERROR) message. This gets rid of rather tedious and error-prone manipulation of errno, as well as a Windows-specific bug workaround, at more than a dozen call sites. After an idea in a recent patch by Heikki Linnakangas.
* Arrange to fsync two-phase-commit state files only during checkpoints;Tom Lane2005-06-19
| | | | | | given reasonably short lifespans for prepared transactions, this should mean that only a small minority of state files ever need to be fsynced at all. Per discussion with Heikki Linnakangas.
* When using C-string lookup keys in a dynahash.c hash table, use strncpy()Tom Lane2005-06-18
| | | | | | not memcpy() to copy the offered key into the hash table during HASH_ENTER. This avoids possible core dump if the passed key is located very near the end of memory. Per report from Stefan Kaltenbrunner.
* Add a time-of-preparation column to the pg_prepared_xacts view, per anTom Lane2005-06-18
| | | | | | | | | | old suggestion by Oliver Jowett. Also, add a transaction column to the pg_locks view to show the xid of each transaction holding or awaiting locks; this allows prepared transactions to be properly associated with the locks they own. There was already a column named 'transaction', and I chose to rename it to 'transactionid' --- since this column is new in the current devel cycle there should be no backwards compatibility issue to worry about.
* Dept. of second thoughts: regular COMMIT deletes deletable files beforeTom Lane2005-06-18
| | | | releasing locks, so COMMIT PREPARED should too.
* Two-phase commit. Original patch by Heikki Linnakangas, with additionalTom Lane2005-06-17
| | | | hacking by Alvaro Herrera and Tom Lane.
* Update GUC description for kerberos usernames.Bruce Momjian2005-06-16
|
* Move SYMMETRIC/ASYMMETRIC to reserved words to avoid shift/reduce conflicts.Bruce Momjian2005-06-15
|
* Improve comment wording.Bruce Momjian2005-06-15
|
* Improve hash method for bitmapsets: some examination of actual outputsTom Lane2005-06-15
| | | | | shows that adding a circular shift between words greatly improves the distribution of hash outputs.
* Change the implementation of hash join to attempt to avoid unnecessaryNeil Conway2005-06-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | work if either of the join relations are empty. The logic is: (1) if the inner relation's startup cost is less than the outer relation's startup cost and this is not an outer join, read a single tuple from the inner relation via ExecHash() - if NULL, we're done (2) read a single tuple from the outer relation - if NULL, we're done (3) build the hash table on the inner relation - if hash table is empty and this is not an outer join, we're done (4) otherwise, do hash join as usual The implementation uses the new MultiExecProcNode API, per a suggestion from Tom: invoking ExecHash() now produces the first tuple from the Hash node's child node, whereas MultiExecHash() builds the hash table. I had to put in a bit of a kludge to get the row count returned for EXPLAIN ANALYZE to be correct: since ExecHash() is invoked to return a tuple, and then MultiExecHash() is invoked, we would return one too many tuples to EXPLAIN ANALYZE. I hacked around this by just manually detecting this situation and subtracting 1 from the EXPLAIN ANALYZE row count.
* Remove old *.backup files when we do pg_stop_backup(). ThisBruce Momjian2005-06-15
| | | | prevents a large number of *.backup files from existing in pg_xlog/
* Mention we now support BETWEEN SYMMETRIC.Bruce Momjian2005-06-15
| | | | Christopher Kings-Lynne
* This patch makes it possible to use the full set of timezones when doingBruce Momjian2005-06-15
| | | | | | | | | | | | | | | | | | "AT TIME ZONE", and not just the shorlist previously available. For example: SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Europe/London'; works fine now. It will also obey whatever DST rules were in effect at just that date, which the previous implementation did not. It also supports the AT TIME ZONE on the timetz datatype. The whole handling of DST is a bit bogus there, so I chose to make it use whatever DST rules are in effect at the time of executig the query. not sure if anybody is actuallyi *using* timetz though, it seems pretty unpredictable just because of this... Magnus Hagander
* Support 3 and 4-byte unicode characters.Bruce Momjian2005-06-15
| | | | John Hansen
* Add BETWEEN SYMMETRIC.Bruce Momjian2005-06-14
| | | | Pavel Stehule
* Simplify shared-memory lock data structures as per recent discussion:Tom Lane2005-06-14
| | | | | | | | | | | | | | | | it is sufficient to track whether a backend holds a lock or not, and store information about transaction vs. session locks only in the inside-the-backend LocalLockTable. Since there can now be but one PROCLOCK per lock per backend, LockCountMyLocks() is no longer needed, thus eliminating some O(N^2) behavior when a backend holds many locks. Also simplify the LockAcquire/LockRelease API by passing just a 'sessionLock' boolean instead of a transaction ID. The previous API was designed with the idea that per-transaction lock holding would be important for subtransactions, but now that we have subtransactions we know that this is unwanted. While at it, add an 'isTempObject' parameter to LockAcquire to indicate whether the lock is being taken on a temp table. This is not used just yet, but will be needed shortly for two-phase commit.
* Add pg_postmaster_start_time() function.Bruce Momjian2005-06-14
| | | | | Euler Taveira de Oliveira Matthias Schmidt
* Have SHOW ALL include variable descriptions.Bruce Momjian2005-06-14
| | | | Matthias Schmidt