aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Add opid to selectivity function call.Bruce Momjian1999-11-25
|
* Enable pg_statistic cache use.Bruce Momjian1999-11-25
|
* Cleanup for pg_statistic commit.Bruce Momjian1999-11-24
|
* Add pg_statistic index, add missing Hiroshi file.Bruce Momjian1999-11-24
|
* Add multi-byte support to lztextlen()Tatsuo Ishii1999-11-24
|
* Rename heap_replace to heap_update.Bruce Momjian1999-11-24
|
* Rename heap_replace to heap_update.Bruce Momjian1999-11-24
|
* Tid access method feature from Hiroshi Inoue, Inoue@tpf.co.jpBruce Momjian1999-11-23
|
* Reduce ReleaseLruFile failure from FATAL to ERROR grade; offhand I don'tTom Lane1999-11-23
| | | | see that this should be a worse way to fail to open a file than any other.
* verify_password() leaked a file descriptor if it failed to find the givenTom Lane1999-11-23
| | | | | userid in the flat password file. Do it enough times and the postmaster panicked :-(
* Add system indexes to match all caches.Bruce Momjian1999-11-22
| | | | | | | Make all system indexes unique. Make all cache loads use system indexes. Rename *rel to *relid in inheritance tables. Rename cache names to be clearer.
* Clean up some problems in error recovery --- elog() was pretty brokenTom Lane1999-11-22
| | | | | | for the case of errors in backend startup, and proc_exit's method for coping with errors during proc_exit was *completely* busted. Fixed per discussions on pghackers around 11/6/99.
* Come to think of it, DropBuffers() could have the same problem asTom Lane1999-11-22
| | | | | ReleaseRelationBuffers --- need to wait if anyone is trying to flush out that buffer.
* ReleaseRelationBuffers() failed to check for I/O in progress on a bufferTom Lane1999-11-22
| | | | | | | it wants to release. This leads to a race condition: does the backend that's trying to flush the buffer do so before the one that's deleting the relation does so? Usually no problem, I expect, but on occasion this could lead to hard-to-reproduce complaints from md.c, especially mdblindwrt.
* Combine index_info and find_secondary_indexes into a single routine thatTom Lane1999-11-21
| | | | | | | | | returns a list of RelOptInfos, eliminating the need for static state in index_info. That static state was a direct cause of coredumps; if anything decided to elog(ERROR) partway through an index_info search of pg_index, the next query would try to close a scan pointer that was pointing at no-longer-valid memory. Another example of the reasons to avoid static state variables...
* index_destroy() must grab exclusive access to the parent tableTom Lane1999-11-21
| | | | | | | | | | of the index it wants to destroy. This ensures that no other backend is actively scanning or updating that index. Getting exclusive access on the index alone is NOT sufficient, because the executor is rather cavalier about getting locks on indexes --- see ExecOpenIndices(). It might be better to grab index locks in the executor, but I'm not sure the extra lockmanager traffic is really worth it just to make index_destroy cleaner.
* Change backend-side COPY to write files with permissions 644 not 666Tom Lane1999-11-21
| | | | | | | | | (whoever thought world-writable files were a good default????). Modify the pg_pwd code so that pg_pwd is created with 600 permissions. Modify initdb so that permissions on a pre-existing PGDATA directory are not blindly accepted: if the dir is already there, it does chmod go-rwx to be sure that the permissions are OK and the dir actually is owned by postgres.
* Repair problem exposed by Jan's new parallel-regression-test scaffold:Tom Lane1999-11-21
| | | | | | | inval.c thought it could safely use the catcache to look up the OIDs of system relations. Not good, considering that inval.c could be called during catcache loading, if a shared-inval message arrives. Rip out the lookup logic and instead use the known OIDs from pg_class.h.
* Fix problems with CURRENT_DATE and related functions being used inTom Lane1999-11-20
| | | | | | | | table defaults or rules: translate them to a function call so that parse_coerce doesn't reduce them to a date or time constant immediately. Also, eliminate a lot of redundancy in the expression grammar by defining a new nonterminal com_expr, which contains all the productions that can be shared by a_expr and b_expr.
* New parallel regression test shell and related things.Jan Wieck1999-11-19
| | | | Jan
* Changed pg_rewrite attributes ev_qual and ev_action to the newJan Wieck1999-11-18
| | | | | | compressed lztext data type. Jan
* Fix problem with temp tables shown in regression test by Jan.Bruce Momjian1999-11-17
|
* Some minor corrections to the LZ compression. In fact I wanted toJan Wieck1999-11-17
| | | | | | HAVE the required OID's first. Jan
* The new LZ compression and an lztext data type based on it.Jan Wieck1999-11-17
| | | | Jan
* Fix lookup of temp table names that I missed yesterday.Bruce Momjian1999-11-16
|
* Modify elog() logic so that it won't try to longjmp(Warn_restart) beforeTom Lane1999-11-16
| | | | | | | | | | Warn_restart has been set by the backend main loop. This means that elog(ERROR) or elog(FATAL) in the postmaster or during backend startup now have well-defined behavior: proc_exit() rather than coredump. In the case of elog() inside the postmaster, I think that proc_exit() is probably not enough --- don't we want our child backends to be forced to quit too? But I don't understand Vadim's recent changes in this area, so I'll leave it to him to look over and tweak if needed.
* Commit to make clearer distinction for temp names and real names.Bruce Momjian1999-11-16
| | | | Thanks to Tom Lane for ideas.
* Tree dividing is not appropriate in Rtree.Tatsuo Ishii1999-11-15
| | | | This fix is reported by Hiroki Kataoka (kataoka@interwiz.koganei.tokyo.jp).
* Clean up possible memory leakage in nodeSubplanTom Lane1999-11-15
|
* Implement subselects in target lists. Also, relax requirement thatTom Lane1999-11-15
| | | | | | | | | | | | | subselects can only appear on the righthand side of a binary operator. That's still true for quantified predicates like x = ANY (SELECT ...), but a subselect that delivers a single result can now appear anywhere in an expression. This is implemented by changing EXPR_SUBLINK sublinks to represent just the (SELECT ...) expression, without any 'left hand side' or combining operator --- so they're now more like EXISTS_SUBLINK. To handle the case of '(x, y, z) = (SELECT ...)', I added a new sublink type MULTIEXPR_SUBLINK, which acts just like EXPR_SUBLINK used to. But the grammar will only generate one for a multiple-left-hand-side row expression.
* Fix typo so it actually compiles...Tom Lane1999-11-14
|
* Add recreate index notice to vacuum error.Bruce Momjian1999-11-14
|
* Tweak make rules for parse.h and fmgr.h to avoid bug in oldTom Lane1999-11-14
| | | | versions of gmake.
* Add index recreation suggestion to end of world error message.Bruce Momjian1999-11-14
|
* Fix ExecSubPlan to handle nulls per the SQL spec --- it didn't combineTom Lane1999-11-12
| | | | | | | nulls with non-nulls using proper three-valued boolean logic. Also clean up ExecQual to make it clearer that ExecQual *does* follow the SQL spec for boolean nulls. See '[BUGS] (null) != (null)' thread around 10/26/99 for more detail.
* New NameStr macro to convert Name to Str. No need for var.data anymore.Bruce Momjian1999-11-07
| | | | | | Fewer calls to nameout. Better use of RelationGetRelationName.
* exit recursion fix from MassimoBruce Momjian1999-11-06
|
* Fix for recusive exit call from Massimo.Bruce Momjian1999-11-06
|
* Make it possible to execute crashed CREATE/DROP commands again.Hiroshi Inoue1999-11-04
| | | | | | | | | | Now indexes of pg_class and pg_type are unique indexes and guarantee the uniqueness of correponding attributes. heap_create() was changed to take another boolean parameter which allows to postpone the creation of disk file. The name of rd_nonameunlinked was changed to rd_unlinked. It is used generally(not only for noname relations) now. Requires initdb.
* Eliminate RewritePreprocessQuery, which was taking anTom Lane1999-11-01
| | | | | | unreasonable amount of time to clean up after a vanished parser problem. Don't call fireRIRonSubselect when we know there are no subselects, either.
* Eliminate some unbelievably cheesy code in _copyConst().Tom Lane1999-11-01
| | | | | | | | Apparently, back in the dim reaches of prehistory, the parser couldn't be trusted to label Const nodes with the correct constbyval value ... and someone preferred to patch around this in copyObject rather than fix the problem at the source. The problem is long gone, but the hack lingered on. Until now.
* Inline check for full buffer in appendStringInfoChar.Tom Lane1999-11-01
|
* Don't call ExecOpenIndices if pg_class relhasindex shows there are noTom Lane1999-11-01
| | | | indexes to open. Avoid unnecessary work in ExecCheckPerm, too.
* Eliminate local inefficiencies in updateTargetListEntry, make_var, andTom Lane1999-11-01
| | | | make_const --- don't repeat cache searches that aren't needed.
* formatting cleanupBruce Momjian1999-11-01
|
* Allow indexes on system catalogs for use in cache code.Bruce Momjian1999-11-01
| | | | Thanks to Hiroshi
* Rule dumper failed to affix '*' to inheritable RTEs.Tom Lane1999-10-31
|
* Avoid duplicate ExecTypeFromTL() call in ExecInitJunkFilter() by passingTom Lane1999-10-30
| | | | | | | in the TupleDesc that the caller already has (for call from ExecMain) or can make just as easily as ExecInitJunkFilter() can (for call from ExecAppend). Also, don't bother to build a junk filter for an INSERT operation that doesn't actually need one, which is the normal case.
* Rearrange heap_beginscan to eliminate extra call onTom Lane1999-10-30
| | | | | mdnblocks. Bad enough it does an lseek, but to do it twice for no reason...
* Skip invoking set_uppernode_references() for a RESULT nodeTom Lane1999-10-30
| | | | | that has no subplan --- saves a material amount of time for a simple INSERT ... VALUES query.