summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2005-06-20fix founded hole in recovery after crash, add vacuum_delay_point()Teodor Sigaev
2005-06-201. full functional WAL for GiSTTeodor Sigaev
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
2005-06-20Cosmetic improvements to the timezone code: remove the use of theNeil Conway
'register' qualifier, make some function declarations more consistent, and so on.
2005-06-20Change shell syntax that seems not to work right on FreeBSD 6-CURRENTTom Lane
buildfarm machines.
2005-06-20Add lock file contents printout to "can't happen" case to helpTom Lane
investigate buildfarm failures.
2005-06-20Trivial code clarity improvement to UpdateStats(); no functional change.Neil Conway
2005-06-19Avoid unnecessary palloc overhead in _bt_first(). The temporaryTom Lane
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 ...
2005-06-19Need #include <time.h> on some platforms.Tom Lane
2005-06-19Simplify uses of readdir() by creating a function ReadDir() thatTom Lane
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.
2005-06-19Arrange to fsync two-phase-commit state files only during checkpoints;Tom Lane
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.
2005-06-19Add comment about \# in bcc makefiles.Bruce Momjian
2005-06-19Cleanup for Win32 compile.Bruce Momjian
Andreas Pflug
2005-06-19Fix typo in comment.Bruce Momjian
Michael Fuhr
2005-06-18When using C-string lookup keys in a dynahash.c hash table, use strncpy()Tom Lane
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.
2005-06-18Add a time-of-preparation column to the pg_prepared_xacts view, per anTom Lane
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.
2005-06-18Dept. of second thoughts: regular COMMIT deletes deletable files beforeTom Lane
releasing locks, so COMMIT PREPARED should too.
2005-06-17Two-phase commit. Original patch by Heikki Linnakangas, with additionalTom Lane
hacking by Alvaro Herrera and Tom Lane.
2005-06-16Update GUC description for kerberos usernames.Bruce Momjian
2005-06-16Add fsync() define for Win32 to cover cases other than wal_sync_methodBruce Momjian
where we need fsync().
2005-06-16Add \x hex support to ecpg strings. This just passes them to the backend.Bruce Momjian
2005-06-15Move SYMMETRIC/ASYMMETRIC to reserved words to avoid shift/reduce conflicts.Bruce Momjian
2005-06-15Improve comment wording.Bruce Momjian
2005-06-15Improve hash method for bitmapsets: some examination of actual outputsTom Lane
shows that adding a circular shift between words greatly improves the distribution of hash outputs.
2005-06-15Update catalog version for recent function additions.Bruce Momjian
2005-06-15Change the implementation of hash join to attempt to avoid unnecessaryNeil Conway
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.
2005-06-15Remove old *.backup files when we do pg_stop_backup(). ThisBruce Momjian
prevents a large number of *.backup files from existing in pg_xlog/
2005-06-15Mention we now support BETWEEN SYMMETRIC.Bruce Momjian
Christopher Kings-Lynne
2005-06-15> Here's a patch I added against plperl, originally against beta5, nowBruce Momjian
> 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
2005-06-15This patch makes it possible to use the full set of timezones when doingBruce Momjian
"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
2005-06-15Support 3 and 4-byte unicode characters.Bruce Momjian
John Hansen
2005-06-15>> Do you agree that using a hashtable for it in general is a good ideaBruce Momjian
>> 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
2005-06-14Now \d show tablespace of indices per discussion.Bruce Momjian
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
2005-06-14Add BETWEEN SYMMETRIC.Bruce Momjian
Pavel Stehule
2005-06-14Use '&nbsp;' escapes for leading spaces in table values, for use inBruce Momjian
EXPLAIN output. Jean-Paul Argudo
2005-06-14Simplify shared-memory lock data structures as per recent discussion:Tom Lane
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.
2005-06-14Add pg_postmaster_start_time() function.Bruce Momjian
Euler Taveira de Oliveira Matthias Schmidt
2005-06-14Have SHOW ALL include variable descriptions.Bruce Momjian
Matthias Schmidt
2005-06-14Attached is a makefile I hacked up to build pg_config under MSVC - theBruce Momjian
reason is that it's required (more or less) in order to build the latest DBD::Pg code and I was testing that out under MSVC. Andrew Dunstan
2005-06-14Add GUC krb_server_hostname so the server hostname can be specified asBruce Momjian
part of service principal. If not set, any service principal matching an entry in the keytab can be used. NEW KERBEROS MATCHING BEHAVIOR FOR 8.1. Todd Kover
2005-06-14The random selection in function linear() could deliver a value equal to maxTom Lane
if geqo_rand() returns exactly 1.0, resulting in failure due to indexing off the end of the pool array. Also, since this is using inexact float math, it seems wise to guard against roundoff error producing values slightly outside the expected range. Per report from bug@zedware.org.
2005-06-14WAL for GiST. It work for online backup and so on, but onTeodor Sigaev
recovery after crash (power loss etc) it may say that it can't restore index and index should be reindexed. Some refactoring code.
2005-06-14Allow the parameters to PL/PgSQL's RAISE statement to be expressions,Neil Conway
instead of just scalar variables. Add regression tests and update the documentation. Along the way, remove some redundant error checking code from exec_stmt_perform(). Original patch from Pavel Stehule, reworked by Neil Conway.
2005-06-14Teach planner to optionally ignore index columns that have an equalityTom Lane
constraint while determining whether the index sort order matches the query's ORDER BY. This for example allows an index on (x,y) to match ... WHERE x = 42 ORDER BY y; It only works for btree indexes, but since those are the only ones we currently have that are ordered at all, that's good enough for now. Per popular demand.
2005-06-14Add -L option to psql to log sessions.Bruce Momjian
Lorne Sunley
2005-06-14Cleanup for "#option dump" in PL/PgSQL: don't print empty ELSE blocks,Neil Conway
fix two grammatical errors, and print the INTO target of EXECUTE INTO if one is specified.
2005-06-13Change the planner to allow indexscan qualification clauses to useTom Lane
nonconsecutive columns of a multicolumn index, as per discussion around mid-May (pghackers thread "Best way to scan on-disk bitmaps"). This turns out to require only minimal changes in btree, and so far as I can see none at all in GiST. btcostestimate did need some work, but its original assumption that index selectivity == heap selectivity was quite bogus even before this.
2005-06-13Per discussion on -hackers, this patch changes psql's "expanded" outputNeil Conway
mode to only affect the presentation of normal query results, not the output of psql slash commands. Documentation updated. I also made some unrelated minor psql cleanup. Per suggestion from Stuart Cooper.
2005-06-13Adjust lo_open() so that specifying INV_READ without INV_WRITE createsTom Lane
a descriptor that uses the current transaction snapshot, rather than SnapshotNow as it did before (and still does if INV_WRITE is set). This means pg_dump will now dump a consistent snapshot of large object contents, as it never could do before. Also, add a lo_create() function that is similar to lo_creat() but allows the desired OID of the large object to be specified. This will simplify pg_restore considerably (but I'll fix that in a separate commit).
2005-06-12This patch removes some old code from libpq that implements a URI-likeNeil Conway
syntax for database connection parameters. It has been inside an #ifdef NOT_USED block since 2001 or so and is marked as "broken", so I don't think it is likely to be rehabilitated any time soon.
2005-06-12libpq was not consistently checking for memory allocation failures. ThisNeil Conway
patch adds missing checks to the call sites of malloc(), strdup(), PQmakeEmptyPGresult(), pqResultAlloc(), and pqResultStrdup(), and updates the documentation. Per original report from Volkan Yazici about PQmakeEmptyPGresult() not checking for malloc() failure.