aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Add a validator function for plperl. Andrew DunstanTom Lane2005-06-22
|
* 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.
* Fix bug in CONTINUE statement for PL/pgSQL: when we continue a loop,Neil Conway2005-06-22
| | | | | | | | we need to be careful to reset rc to PLPGSQL_RC_OK, depending on how the loop's logic is structured. If we continue a loop but it then exits without executing the loop's body again, we want to return PLPGSQL_RC_OK to our caller. Enhance the regression tests to catch this problem. Per report from Michael Fuhr.
* Correct some code in pg_restore when reading the header of a tar archive:Neil Conway2005-06-22
| | | | | | | | | | | | | (1) The code doesn't initialize `sum', so the initial "does the checksum match?" test is wrong. (2) The loop that is intended to check for a "null block" just checks the first byte of the tar block 512 times, rather than each of the 512 bytes one time (!), which I'm guessing was the intent. It was only through sheer luck that this worked in the first place. Per Coverity static analysis performed by EnterpriseDB.
* 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.
* Add a CONTINUE statement to PL/PgSQL, which can be used to begin theNeil Conway2005-06-22
| | | | | next iteration of a loop. Update documentation and add regression tests. Patch from Pavel Stehule, reviewed by Neil Conway.
* pg_dump can now dump large objects even in plain-text output mode, byTom Lane2005-06-21
| | | | | | using the recently added lo_create() function. The restore logic in pg_restore is greatly simplified as well, since there's no need anymore to try to adjust database references to match a new set of blob OIDs.
* Fix pg_dumpall to do the right thing with "postgres" database, perTom Lane2005-06-21
| | | | | Dave Page. Also, cause it to emit rather than ignore any ACL and datconfig options that may be set for these two databases.
* 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 _complete_from_query(), 'text' cannot beNeil Conway2005-06-21
| | | | | | | NULL (e.g. due to the preceding strlen()). Therefore we needn't recheck this before initializing 'e_text'. 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.
* exec_eval_datum leaks memory when dealing with ROW or REC values.Tom Lane2005-06-20
| | | | | | | It never leaked memory before PG 8.0, so none of the callers are expecting this. Cleanest fix seems to be to make it allocate the needed memory in estate->eval_econtext, where it will be cleaned up by the next exec_eval_cleanup. Per report from Bill Rugolsky.
* Remove read_file/write_file tests. These were originally intended toTom Lane2005-06-20
| | | | | | | | | *fail*, to test that plpython didn't allow untrusted operations. When we changed plpython to plpythonu because python didn't actually have a secure sandbox mode, someone (probably me :-() misinterpreted the tests as checking whether Python's file I/O works. Which is a stupid thing for us to be testing. Remove it so we don't clutter the filesystem with random temporary files.
* plpgsql's exec_assign_value() freed the old value of a variable beforeTom Lane2005-06-20
| | | | | | | copying/converting the new value, which meant that it failed badly on "var := var" if var is of pass-by-reference type. Fix this and a similar hazard in exec_move_row(); not sure that the latter can manifest before 8.0, but patch it all the way back anyway. Per report from Dave Chapeskie.
* 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
* Cosmetic improvements to the timezone code: remove the use of theNeil Conway2005-06-20
| | | | | 'register' qualifier, make some function declarations more consistent, and so on.
* Change shell syntax that seems not to work right on FreeBSD 6-CURRENTTom Lane2005-06-20
| | | | buildfarm machines.
* 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.
* Add comment about \# in bcc makefiles.Bruce Momjian2005-06-19
|
* Cleanup for Win32 compile.Bruce Momjian2005-06-19
| | | | Andreas Pflug
* Fix typo in comment.Bruce Momjian2005-06-19
| | | | Michael Fuhr
* 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
|
* Add fsync() define for Win32 to cover cases other than wal_sync_methodBruce Momjian2005-06-16
| | | | where we need fsync().
* Add \x hex support to ecpg strings. This just passes them to the backend.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.
* Update catalog version for recent function additions.Bruce Momjian2005-06-15
|
* 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
* > Here's a patch I added against plperl, originally against beta5, nowBruce Momjian2005-06-15
| | | | | | | | | | | | | | | | | | | | | > against rc1. It simply checks with GetDatabaseEncoding() if the current > database is in UTF-8, and if so, sets the UTF-8 flag on the arguments > that are passed to perl. This means that it isn't necessary to > utf8::upgrade() every string, as perl has no way of knowing offhand > that a string is UTF-8 -- but postgres does, because the database > encoding is specified, so it makes sense to turn the flag on. You > should also be able to properly manipulate UTF-8 strings now from > plperl as opposed to plperlu, because otherwise you'd have to use > encoding 'utf8' which was not allowed. It could also eliminate some > unexpected bugs if you assume that perl knows the string is unicode. It > is enabled only for perl 5.6 and higher, so earlier versions will not > be affected. > > I have been assured by crab that the patch is quite harmless and will > not break anything. It would be great to see it in 8 final! :-) David Kamholz
* 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
* >> Do you agree that using a hashtable for it in general is a good ideaBruce Momjian2005-06-15
| | | | | | | | | | | | | | | | | >> assuming this sideeffect is removed, though? > >I have no problem with the hashtable, only with preloading it with >everything. What I'd like to see is that the table inherited at fork() >contains just the data for the default timezone. (At least in the >normal case where that setting hasn't been changed since postmaster >start.) Here's a patch doing this. Changes score_timezone not to use pg_tzset(), and thus not loading all the zones in the cache. The actual timezone being picked will be set using set_global_timezone() which in turn calls pg_tzset() and loads it in the cache. Magnus Hagander
* Now \d show tablespace of indices per discussion.Bruce Momjian2005-06-14
| | | | | | | | | | | | | | | | | | test=# \d e Table "public.e" Column | Type | Modifiers --------+---------+----------- i | integer | not null j | integer | not null k | integer | Indexes: "e_pkey" PRIMARY KEY, btree (i, j), tablespace "haha" "ei" btree (i) "ej" btree (j), tablespace "haha" "ek" btree (k) Tablespace: "haha" Qingqing Zhou
* Add BETWEEN SYMMETRIC.Bruce Momjian2005-06-14
| | | | Pavel Stehule