aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* I finally understood what sinvaladt.c is doing --- and itTom Lane1999-09-06
| | | | | | offended my aesthestic sensibility that there was so much unreadable code doing so little. Rewritten code is about half the size, faster, and (I hope) much more intelligible.
* Fix relcache.c so that local relations (those created duringTom Lane1999-09-06
| | | | | | | current transaction) are not flushed by shared-cache-inval reset message. SI reset actually works now, for probably the first time in a long time. I was able to run initdb and regression tests with a 16-element SI message array, with a lot of NOTICE: cache state reset messages but no crashes.
* RelationCacheInvalidate thought there were 7 nailed-in-cacheTom Lane1999-09-06
| | | | | system tables, but actually there are only 6 --- see RelationInitialize. Kinda makes you wonder how long ago this code was last executed...
* testBruce Momjian1999-09-06
|
* Per Tatsuo's recommendation, change mdopen so that it won'tTom Lane1999-09-05
| | | | | automatically create the file, except during bootstrap mode where that seems to be necessary.
* Disallow DROP TABLE/DROP INDEX inside a transaction block.Tom Lane1999-09-05
| | | | | | | | | | We can't support these properly, since once the relation's physical files are unlinked, there's no way to roll back the transaction. I suppose we could postpone the unlink till transaction commit, but then what of BEGIN; DROP TABLE foo; CREATE TABLE foo; ? The code does allow dropping a table/index created in the current transaction block, however, since the post-abort state would be that the table doesn't exist anyway.
* IsTransactionBlock() should return true in TBLOCK_ABORT state.Tom Lane1999-09-05
|
* remove elogs used for debugging.Bruce Momjian1999-09-04
|
* Intercept temp table lookups further up to map temp names.Bruce Momjian1999-09-04
|
* In RelationNameGetRelation(), replace temp table name byTom Lane1999-09-04
| | | | | | real name before doing lookup. We only want to index temp tables by their real names in the relcache, to ensure there's not more than one relcache entry for them.
* Avoid transaction overhead when there are no temp tablesTom Lane1999-09-04
| | | | to be deleted.
* Remove no-longer-needed code to update temprel's copy ofTom Lane1999-09-04
| | | | pg_class tuple during ALTER TABLE ADD COLUMN.
* Invalidate temp entries for aborted transactions.Bruce Momjian1999-09-04
|
* Modify RelationFlushRelation so that if the relcache entryTom Lane1999-09-04
| | | | | | | | | | | has positive refcount, it is rebuilt from pg_class data. This ensures that relcache entries will track changes made by other backends. Formerly, a shared inval report would just be ignored if it happened to arrive while the relcache entry was in use. Also, fix relcache to reset ref counts to zero during transaction abort. Finally, change LockRelation() so that it checks for shared inval reports after obtaining the lock. In this way, once any kind of lock has been obtained on a rel, we can trust the relcache entry to be up-to-date.
* Modify sinval so that InvalidateSharedInvalid() does not holdTom Lane1999-09-04
| | | | | | | | the SInval spinlock while it is calling the passed invalFunction or resetFunction. This is necessary to avoid deadlock with lmgr change; InvalidateSharedInvalid can be called recursively now. It should be a good performance improvement anyway --- holding a spinlock for more than a very short interval is a no-no.
* Fix for perl5 on BSD/OS breaks most other platforms, so back it out.Thomas G. Lockhart1999-09-03
| | | | | istm that this would be a job for configure. Most modern OSes actually use perl5 by default ;)
* driver v06-40-0007Byron Nikolaidis1999-09-03
|
* driver v06-40-0007Byron Nikolaidis1999-09-03
|
* Rule deparser didn't handle unary operators correctly.Tom Lane1999-09-02
|
* Repair a bunch of problems in md.c. This builds on Hiroshi'sTom Lane1999-09-02
| | | | | | | | | | | | | | | | | | | insight that RelationFlushRelation ought to invoke smgrclose, and that the way to make that work is to ensure that mdclose doesn't fail if the relation is already closed (or unlinked, if we are looking at a DROP TABLE). While I was testing that, I was able to identify several problems that we had with multiple-segment relations. The system is now able to do initdb and pass the regression tests with a very small segment size (I had it set to 64Kb per segment for testing). I don't believe that ever worked before. File descriptor leaks seem to be gone too. I have partially addressed the concerns we had about mdtruncate(), too. On a Win32 or NFS filesystem it is not possible to unlink a file that another backend is holding open, so what md.c now does is to truncate unwanted files to zero length before trying to unlink them. The other backends will be forced to close their open files by relation cache invalidation --- but I think it would take considerable work to make that happen before vacuum truncates the relation rather than after. Leaving zero-length files lying around seems a usable compromise.
* Document -x properly for pg_dump.Bruce Momjian1999-09-01
|
* Commit the bulk of Mike Ansley's long-query changes in theTom Lane1999-08-31
| | | | backend. Still much left to do.
* Update frontend libpq to remove limits on query lengths,Tom Lane1999-08-31
| | | | | | | error/notice message lengths, and number of fields per tuple. Add pqexpbuffer.c/.h, a frontend version of backend's stringinfo module. This is first step in applying Mike Ansley's long-query patches, even though he didn't do any of these particular changes...
* Minor improvements to stringinfo package to make it moreTom Lane1999-08-31
| | | | robust, since it's about to get used much more heavily.
* Fix quoting problems in mkMakefile.tcldefs.sh.in andTom Lane1999-08-29
| | | | mkMakefile.tkdefs.sh.in.
* Correct broken entries for pg_proc OIDs 1364 (time(abstime))Tom Lane1999-08-29
| | | | | | | | | and 1370 (timestamp(datetime)). This does not force an initdb, exactly, but you won't see the effects of the bug fix until you do one. BTW, OID 1358 for timespan(time) is still broken: select timespan('21:11:26'::time); ERROR: No such function 'time_timespan' with the specified attributes But I couldn't figure out what it ought to be defined as, so I left it be.
* Update rules test expected output to conform to slightlyTom Lane1999-08-28
| | | | more verbose results from ruleutils.c changes.
* Fix several problems in rule deparsing: didn't handle arrayTom Lane1999-08-28
| | | | | | | references or CASE expressions, didn't parenthesize complex expressions properly. Also, always output variable references as fully qualified names to eliminate ambiguity bug recently reported. (This could be smarter, but reliability comes first.)
* Clean up some mistakes in handling of uplevel Vars in planner.Tom Lane1999-08-26
| | | | | | | Most parts of the planner should ignore, or indeed never even see, uplevel Vars because they will be or have been replaced by Params. There were a couple of places that got it wrong though, probably my fault from recent changes...
* Clean up some bugs in oper_select_candidate(), notably theTom Lane1999-08-26
| | | | | | last loop which would return the *first* surviving-to-that-point candidate regardless of which one actually passed the test. This was producing such curious results as 'oid % 2' getting translated to 'int2(oid) % 2'.
* Revise implementation of SubLinks so that there is a consistent,Tom Lane1999-08-25
| | | | | | | | | documented intepretation of the lefthand and oper fields. Fix a number of obscure problems while at it --- for example, the old code failed if the parser decided to insert a type-coercion function just below the operator of a SubLink. CAUTION: this will break stored rules that contain subplans. You may need to initdb.
* Fix vacuum's memory consumptionTatsuo Ishii1999-08-25
|
* Add new vpl_num_allocated_pages member to VPageListData.Tatsuo Ishii1999-08-25
| | | | | | | It will keep track the number of pages allocated so that vacuum could allocate twice of the previous allocation. This will greatly reduce the total memory consumption of vacuum.
* Alter AllocSet routines so that requests larger thanTom Lane1999-08-24
| | | | | | | | | | ALLOC_BIGCHUNK_LIMIT are always allocated as separate malloc() blocks, and are free()d immediately upon pfree(). Also, if such a chunk is enlarged with repalloc(), translate the operation into a realloc() so as to minimize memory usage. Of course, these large chunks still get freed automatically if the alloc set is reset. I have set ALLOC_BIGCHUNK_LIMIT at 64K for now, but perhaps another size would be better?
* coerce_type() failed to guard against trying to convert a NULLTom Lane1999-08-24
| | | | | constant to a different type. Not sure that this could happen in ordinary parser usage, but it can in some new code I'm working on...
* Remove bogus code in oper_exact --- if it didn't find an exactTom Lane1999-08-23
| | | | | | | | | match then it tried for a self-commutative operator with the reversed input data types. This is pretty silly; there could never be such an operator, except maybe in binary-compatible-type scenarios, and we have oper_inexact for that. Besides which, the oprsanity regress test would complain about such an operator. Remove nonfunctional code and simplify routine calling convention accordingly.
* Further sort-order twiddling in optimizer: be smart aboutTom Lane1999-08-22
| | | | case where ORDER BY and GROUP BY request the same sort order.
* Un-break code generated by ECPGRelease production.Tom Lane1999-08-22
|
* Further planner/optimizer cleanups. Move all set_tlist_referencesTom Lane1999-08-22
| | | | | | | | | | and fix_opids processing to a single recursive pass over the plan tree executed at the very tail end of planning, rather than haphazardly here and there at different places. Now that tlist Vars do not get modified until the very end, it's possible to get rid of the klugy var_equal and match_varid partial-matching routines, and just use plain equal() throughout the optimizer. This is a step towards allowing merge and hash joins to be done on expressions instead of only Vars ...
* Major revision of sort-node handling: push knowledge of queryTom Lane1999-08-21
| | | | | | | | | | | | | sort order down into planner, instead of handling it only at the very top level of the planner. This fixes many things. An explicit sort is now avoided if there is a cheaper alternative (typically an indexscan) not only for ORDER BY, but also for the internal sort of GROUP BY. It works even when there is no other reason (such as a WHERE condition) to consider the indexscan. It works for indexes on functions. It works for indexes on functions, backwards. It's just so cool... CAUTION: I have changed the representation of SortClause nodes, therefore THIS UPDATE BREAKS STORED RULES. You will need to initdb.
* Cleanups for int8: guard against null inputs in comparisonTom Lane1999-08-21
| | | | | operators (and some other places), fix rangechecks in int8 to int4 conversion (same problem we recently figured out in pg_atoi).
* Ooops ... I had left some test coding in selfuncs.c thatTom Lane1999-08-21
| | | | failed on 'field < textconstant' ...
* Old multi-byte bug. Forgot to rename #ifdef MB to #ifdef MULTIBYTETatsuo Ishii1999-08-18
| | | | Now SET NAMES working again...
* Remove extraneous SeqScan node that make_noname was insertingTom Lane1999-08-18
| | | | | | above a Sort or Materialize node. As far as I can tell, the only place that actually needed that was set_tlist_references, which was being lazy about checking to see if it had a noname node to fix or not...
* Add script that runs the regression tests with all validTom Lane1999-08-17
| | | | | combinations of query-plan-type backend options. Good for testing planner/optimizer. Tedious, though.
* EXPLAIN didn't know about 'Materialize' plan nodes.Tom Lane1999-08-16
|
* Assign sort keys properly when there are duplicate entries inTom Lane1999-08-16
| | | | | pathkey list --- corrects misbehavior seen with multiple mergejoin clauses mentioning same variable.
* I've sent 3 mails to pgsql-patches. There are two files, one for docBruce Momjian1999-08-16
| | | | | | | | and for src/data directories, and one minor patch for doc/README.locale. Please apply. Oleg.
* Fix for perl5 on BSD/OS.Bruce Momjian1999-08-16
|
* Allow BSD yacc and bison to compile pl code.Bruce Momjian1999-08-16
|