summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
1999-09-03driver v06-40-0007Byron Nikolaidis
1999-09-03driver v06-40-0007Byron Nikolaidis
1999-09-02Rule deparser didn't handle unary operators correctly.Tom Lane
1999-09-02Repair a bunch of problems in md.c. This builds on Hiroshi'sTom Lane
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.
1999-09-01Document -x properly for pg_dump.Bruce Momjian
1999-08-31Commit the bulk of Mike Ansley's long-query changes in theTom Lane
backend. Still much left to do.
1999-08-31Update frontend libpq to remove limits on query lengths,Tom Lane
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...
1999-08-31Minor improvements to stringinfo package to make it moreTom Lane
robust, since it's about to get used much more heavily.
1999-08-29Fix quoting problems in mkMakefile.tcldefs.sh.in andTom Lane
mkMakefile.tkdefs.sh.in.
1999-08-29Correct broken entries for pg_proc OIDs 1364 (time(abstime))Tom Lane
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.
1999-08-28Update rules test expected output to conform to slightlyTom Lane
more verbose results from ruleutils.c changes.
1999-08-28Fix several problems in rule deparsing: didn't handle arrayTom Lane
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.)
1999-08-26Clean up some mistakes in handling of uplevel Vars in planner.Tom Lane
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...
1999-08-26Clean up some bugs in oper_select_candidate(), notably theTom Lane
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'.
1999-08-25Revise implementation of SubLinks so that there is a consistent,Tom Lane
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.
1999-08-25Fix vacuum's memory consumptionTatsuo Ishii
1999-08-25Add new vpl_num_allocated_pages member to VPageListData.Tatsuo Ishii
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.
1999-08-24Alter AllocSet routines so that requests larger thanTom Lane
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?
1999-08-24coerce_type() failed to guard against trying to convert a NULLTom Lane
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...
1999-08-23Remove bogus code in oper_exact --- if it didn't find an exactTom Lane
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.
1999-08-22Further sort-order twiddling in optimizer: be smart aboutTom Lane
case where ORDER BY and GROUP BY request the same sort order.
1999-08-22Un-break code generated by ECPGRelease production.Tom Lane
1999-08-22Further planner/optimizer cleanups. Move all set_tlist_referencesTom Lane
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 ...
1999-08-21Major revision of sort-node handling: push knowledge of queryTom Lane
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.
1999-08-21Cleanups for int8: guard against null inputs in comparisonTom Lane
operators (and some other places), fix rangechecks in int8 to int4 conversion (same problem we recently figured out in pg_atoi).
1999-08-21Ooops ... I had left some test coding in selfuncs.c thatTom Lane
failed on 'field < textconstant' ...
1999-08-18Old multi-byte bug. Forgot to rename #ifdef MB to #ifdef MULTIBYTETatsuo Ishii
Now SET NAMES working again...
1999-08-18Remove extraneous SeqScan node that make_noname was insertingTom Lane
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...
1999-08-17Add script that runs the regression tests with all validTom Lane
combinations of query-plan-type backend options. Good for testing planner/optimizer. Tedious, though.
1999-08-16EXPLAIN didn't know about 'Materialize' plan nodes.Tom Lane
1999-08-16Assign sort keys properly when there are duplicate entries inTom Lane
pathkey list --- corrects misbehavior seen with multiple mergejoin clauses mentioning same variable.
1999-08-16 I've sent 3 mails to pgsql-patches. There are two files, one for docBruce Momjian
and for src/data directories, and one minor patch for doc/README.locale. Please apply. Oleg.
1999-08-16Fix for perl5 on BSD/OS.Bruce Momjian
1999-08-16Allow BSD yacc and bison to compile pl code.Bruce Momjian
1999-08-16Major planner/optimizer revision: get rid of PathOrder node type,Tom Lane
store all ordering information in pathkeys lists (which are now lists of lists of PathKeyItem nodes, not just lists of lists of vars). This was a big win --- the code is smaller and IMHO more understandable than it was, even though it handles more cases. I believe the node changes will not force an initdb for anyone; planner nodes don't show up in stored rules.
1999-08-16Small updates to #include lists for pending optimizer checkin.Tom Lane
1999-08-16Move funcid_get_rettype() to lsyscache.Tom Lane
1999-08-16Add get_func_rettype() to general-use lsyscache routines,Tom Lane
since it's now needed in both optimizer and parser.
1999-08-16Fix for Win32 making problem with MB enabled.Tatsuo Ishii
Patches created by Hiroki Kataoka.
1999-08-15Repair the check for redundant UNIQUE and PRIMARY KEY indices.Thomas G. Lockhart
Also, improve it so that it checks for multi-column constraints. Thanks to Mark Dalphin <mdalphin@amgen.com> for reporting the problem.
1999-08-14LispUnion fix changes output ordering for inheritance tests.Tom Lane
1999-08-14LispUnion routine didn't generate a proper union: anytimeTom Lane
l2 contained more than one entry, there would be duplicates in the output list. Miscellaneous code beautification in other routines, too.
1999-08-13Update comments about pathkeys.Tom Lane
1999-08-12Clean up optimizer's handling of indexscan quals that need to beTom Lane
commuted (ie, the index var appears on the right). These are now handled the same way as merge and hash join quals that need to be commuted: the actual reversing of the clause only happens if we actually choose the path and generate a plan from it. Furthermore, the clause is only reversed in the 'indexqual' field of the plan, not in the 'indxqualorig' field. This allows the clause to still be recognized and removed from qpquals of upper level join plans. Also, simplify and generalize match_clause_to_indexkey; now it recognizes binary-compatible indexes for join as well as restriction clauses.
1999-08-12Add commentary to show that even though ExecInitIndexScan()Tom Lane
contains much code that looks like it will handle indexquals with the index key on either side of the operator, in fact indexquals must have the index key on the left because of limitations of the ScanKey machinery. Perhaps someone will be motivated to fix that someday...
1999-08-10Minor cleanups and code beautification; eliminate someTom Lane
routines that are now dead code.
1999-08-10Revise create_nestloop_node's handling of inner indexscan toTom Lane
work under a wider range of scenarios than it did --- it formerly did not handle a multi-pass inner scan, nor cases in which the inner scan's indxqualorig or non-index qual contained outer var references. I am not sure that these limitations could be hit in the existing optimizer, but they need to be fixed for future expansion.
1999-08-09> > Prevent sorting if result is already sortedBruce Momjian
> > > > was implemented by Jan Wieck. > > His work is for ascending order cases. > > > > Here is a patch to prevent sorting also in descending > > order cases. > > Because I had already changed _bt_first() to position > > backward correctly before v6.5,this patch would work. > > Hiroshi Inoue Inoue@tpf.co.jp
1999-08-09Clean up tlist.c tree-walking routines withTom Lane
expression_tree_mutator.
1999-08-09Store -1 in attdisbursion to signal 'no duplicates in column'.Tom Lane
Centralize att_disbursion readout logic.