aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
...
* Small cleanup of spacing.Bruce Momjian2001-05-17
|
* Replace poorly-coded vac_find_eq routine with call to standard bsearchTom Lane2001-05-17
| | | | | library code. Tweak progress messages to include elapsed real time, not only CPU time.
* Add missing paren.Bruce Momjian2001-05-16
|
* Repair race condition introduced into heap_update() in 7.1 ---Tom Lane2001-05-16
| | | | | | | | | | | | | | | PageGetFreeSpace() was being called while not holding the buffer lock, which not only could yield a garbage answer, but even if it's the right answer there might be less space available after we reacquire the buffer lock. Also repair potential deadlock introduced by my recent performance improvement in RelationGetBufferForTuple(): it was possible for two heap_updates to try to lock two buffers in opposite orders. The fix creates a global rule that buffers of a single heap relation should be locked in decreasing block number order. Currently, this only applies to heap_update; VACUUM can get away with ignoring the rule since it holds exclusive lock on the whole relation anyway. However, if we try to implement a VACUUM that can run in parallel with other transactions, VACUUM will also have to obey the lock order rule.
* Add missing dlfcn.h includes. Fix "" vs <>.Peter Eisentraut2001-05-15
|
* Remove unnecessary EvalPlanQual support code --- since this plan nodeTom Lane2001-05-15
| | | | | | type never scans a relation directly, it can't be an EPQ target. Explicitly drop subplan's tuple table to ensure we have no buffer pin leaks.
* we found a problem in GiST with massive insert/update operationsBruce Momjian2001-05-15
| | | | | | | | | | | with many NULLs ( inserting of NULL into indexed field cause ERROR: MemoryContextAlloc: invalid request size) As a workaround 'vacuum analyze' could be used. This patch resolves the problem, please upply to 7.1.1 sources and current cvs tree. Oleg Bartunov
* Re-add pg_index.indhaskeytype.Bruce Momjian2001-05-15
|
* Re-add pg_index.indisclustered in a minimalist way. Also fix BSDiBruce Momjian2001-05-15
| | | | dynamic linker change. #include must be before #ifdef test.
* Some badly needed documentation about EvalPlanQual.Tom Lane2001-05-15
|
* EvalPlanQual was thoroughly broken for concurrent update/delete on inheritanceTom Lane2001-05-15
| | | | | | | | trees (mostly my fault). Repair. Also fix long-standing bug in ExecReplace: after recomputing a concurrently updated tuple, we must recheck constraints. Make EvalPlanQual leak memory with somewhat less enthusiasm than before, although plugging leaks fully will require more changes than I care to risk in a dot-release.
* Small include file fix for pg_variabie.hBruce Momjian2001-05-14
|
* Pg_varaiable removal cleanup found from regression.Bruce Momjian2001-05-14
|
* Remove columns pg_index.haskeytype and pg_index.indisclustered. Not used.Bruce Momjian2001-05-14
|
* Use RTLD_GLOBAL flag for dlopen-style dynamic loaders.Peter Eisentraut2001-05-14
|
* Remove unused tables pg_variable, pg_inheritproc, pg_ipl tables. InitdbBruce Momjian2001-05-14
| | | | forced.
* Current implementation of FOR UPDATE has no hope of working correctlyTom Lane2001-05-14
| | | | | for relations on the nullable side of an OUTER JOIN. For now I think we'd better refuse such queries.
* Modify RelationGetBufferForTuple() so that we only do lseek and lockTom Lane2001-05-12
| | | | | | | | | | | when we need to move to a new page; as long as we can insert the new tuple on the same page as before, we only need LockBuffer and not the expensive stuff. Also, twiddle bufmgr interfaces to avoid redundant lseeks in RelationGetBufferForTuple and BufferAlloc. Successive inserts now require one lseek per page added, rather than one per tuple with several additional ones at each page boundary as happened before. Lock contention when multiple backends are inserting in same table is also greatly reduced.
* Make bootstrap debug messages more readable. Clean up some clutter.Peter Eisentraut2001-05-12
|
* Avoid unnecessary lseek() calls by cleanups in md.c. mdfd_lstbcnt wasTom Lane2001-05-10
| | | | | | | | | not being consulted anywhere, so remove it and remove the _mdnblocks() calls that were used to set it. Change smgrextend interface to pass in the target block number (ie, current file length) --- the caller always knows this already, having already done smgrnblocks(), so it's silly to do it over again inside mdextend. Net result: extension of a file now takes one lseek(SEEK_END) and a write(), not three lseeks and a write.
* First cut at making indexscan cost estimates depend on correlationTom Lane2001-05-09
| | | | between index order and table order.
* I have modifed heap.c so that it won't automatically generate duplicateBruce Momjian2001-05-09
| | | | | | | | | | | | | | constraint names. > > A reasonable interpretation of DROP CONSTRAINT "foo" is to drop *all* > > constraints named "foo" on the target table. > > Then it should probably be a good thing to avoid the automatic > generation of > duplicate names? I might take a look at that, actually... > Christopher Kings-Lynne
* This patch should catch cases where the typesBruce Momjian2001-05-09
| | | | | | | | in referencing and referenced columns of an fk constraint aren't comparable using '=' at constraint definition time rather than insert/update time. Stephan Szabo
* Noticed a small bug in the code. Probably been there for some time. NoteBruce Momjian2001-05-09
| | | | | | | that the original code would consider things like UNIX domain sockets are regular files. Gavin Sherry
* Use ColId instead of Ident for SET SESSION AUTHORIZATION.Peter Eisentraut2001-05-09
|
* Cause planner to make use of average-column-width statistic that is nowTom Lane2001-05-09
| | | | | | | | collected by ANALYZE. Also, add some modest amount of intelligence to guesses that are used for varlena columns in the absence of any ANALYZE statistics. The 'width' reported by EXPLAIN is finally something less than totally bogus for varlena columns ... and, in consequence, hashjoin estimating should be a little better ...
* Add SET SESSION AUTHORIZATION command.Peter Eisentraut2001-05-08
|
* Append and SubqueryScan nodes were not passing changed-parameter signals downTom Lane2001-05-08
| | | | | | | | | to their children, leading to misbehavior if they had any children that paid attention to chgParam (most plan node types don't). Append's bug has been there a long time, but nobody had noticed because it used to be difficult to create a query where an Append would be used below the top level of a plan; so there were never any parameters getting passed down. SubqueryScan is new in 7.1 ... and I'd modeled its behavior on Append :-(
* Need to factor out strdup.o for separate treatment since it's in aPeter Eisentraut2001-05-08
| | | | | different directory. This makes dependency tracking work and copes with compilers that don't suport -c and -o together.
* Small cleanup.Bruce Momjian2001-05-08
|
* Add newlines around debug output in optimizer showing total costs.Bruce Momjian2001-05-08
|
* Fix comment in file about 2*max_connections.Bruce Momjian2001-05-07
|
* Fix remaining RI permission problems (cascaded update/delete, restrict,Peter Eisentraut2001-05-07
| | | | set null/default).
* > Occasionally and without warning I get this from my daily vacuumBruce Momjian2001-05-07
| | | | | | | | | | | | | > cronjob: > NOTICE: RegisterSharedInvalid: SI buffer overflow > NOTICE: InvalidateSharedInvalid: cache state reset > I don't understand what these mean. Should I be concerned about them > and what do they signify? No real need to worry. Those should've been downgraded to DEBUG-level messages a release or two back, but nobody bothered... Tom Lane
* Rewrite of planner statistics-gathering code. ANALYZE is now available asTom Lane2001-05-07
| | | | | | | | | | | | | | | | | a separate statement (though it can still be invoked as part of VACUUM, too). pg_statistic redesigned to be more flexible about what statistics are stored. ANALYZE now collects a list of several of the most common values, not just one, plus a histogram (not just the min and max values). Random sampling is used to make the process reasonably fast even on very large tables. The number of values and histogram bins collected is now user-settable via an ALTER TABLE command. There is more still to do; the new stats are not being used everywhere they could be in the planner. But the remaining changes for this project should be localized, and the behavior is already better than before. A not-very-related change is that sorting now makes use of btree comparison routines if it can find one, rather than invoking '<' twice.
* Makefile should have automatic dependency for parser.o too, if it'sTom Lane2001-05-04
| | | | going to have any at all.
* Seems like we should not hold off cancel/die interrupts while we areTom Lane2001-05-04
| | | | | running deferred triggers. They are really part of the regular transaction, and they could take awhile.
* Consolidate several near-identical uses of mktime() into a singleTom Lane2001-05-03
| | | | | | | | | routine DetermineLocalTimeZone(). In that routine, be more wary of broken mktime() implementations than the original code was: don't allow mktime to change the already-set y/m/d/h/m/s information, and don't use tm_gmtoff if mktime failed. Possibly this will resolve some of the complaints we've been hearing from users of Middle Eastern timezones on RedHat.
* BTW it does not add encodign it just patches existing one (KOI8) toBruce Momjian2001-05-03
| | | | | | | support two - KOI8-R and KOI8-U (latter is superset of the former if not to take to the account pseudographics) Andy Rysin
* Permission checking wasn't quite right for insert/update/delete rules,Tom Lane2001-05-03
| | | | either :-(.
* Ensure that btree sort ordering functions and boolean comparison operatorsTom Lane2001-05-03
| | | | | | | | | | give consistent results for all datatypes. Types float4, float8, and numeric were broken for NaN values; abstime, timestamp, and interval were broken for INVALID values; timetz was just plain broken (some possible pairs of values were neither < nor = nor >). Also clean up text, bpchar, varchar, and bit/varbit to eliminate duplicate code and thereby reduce the probability of similar inconsistencies arising in the future.
* Permissions were not checked correctly when one view invokes another.Tom Lane2001-05-03
| | | | Per bug report from Lieven Van Acker, 5/2/01.
* Allow a string argument to the EXTRACT() function.Thomas G. Lockhart2001-05-01
| | | | | | | This is an extension to the SQL9x standard, but is consistant with usage of the underlying date_part() function used to implement it. Example: EXTRACT('YEAR',...) No impact on regression tests.
* Suppress pull-up of subqueries that are in the nullable side of an outerTom Lane2001-04-30
| | | | | | join. This is needed to avoid improper evaluation of expressions that should be nulled out, as in Victor Wagner's bug report of 4/27/01. Pretty ugly solution, but no time to do anything better for 7.1.1.
* Add missing Unicode support for Cyrillic encodings.Tatsuo Ishii2001-04-29
| | | | Patches contributed by Victor Wagner.
* Remove bogus Assert from AbsoluteTimeIsBefore(). (If you don't thinkTom Lane2001-04-26
| | | | it's bogus, try building a btree index on the regress tests' abstime_tbl.)
* Tweak nestloop costing to weight restart cost of inner path more heavily.Tom Lane2001-04-25
| | | | | Without this, it was making some pretty silly decisions about whether an expensive sub-SELECT should be the inner or outer side of a join...
* Send 'cd' output to /dev/null.Peter Eisentraut2001-04-23
|
* compatible_oper needs to do ReleaseSysCache in one path to avoidTom Lane2001-04-23
| | | | complaints about 'Cache reference leak'. Per report from Don Baccus.
* Remove useless setuid() call, instead add a check that real and effectiveTom Lane2001-04-21
| | | | userids are the same. Per today's pghackers discussion.