summaryrefslogtreecommitdiff
path: root/src/backend
AgeCommit message (Collapse)Author
2000-08-03Repair bug noted by Paul Caskey: neqsel() has been generating a bogusTom Lane
result, in fact nearly the opposite of what it should, because it was passing the not-equal operator to eqsel() which would use it to compare the value against the most common value in the column, and of course obtain the wrong result therefrom. Must pass the equality operator to eqsel() instead. Fortunately that's easy to get from the oprnegate link.
2000-08-01Convert all remaining float4 and float8 functions to new fmgr style.Tom Lane
At this point I think it'd be possible to make float4 be pass-by-value without too much work --- and float8 too on machines where Datum is 8 bytes. Something to try when the mood strikes, anyway.
2000-07-31Make acl-related functions safe for TOAST. Mark pg_class.relacl asTom Lane
compressible but not externally storable (since we're not sure about whether creating a toast relation for pg_class would work).
2000-07-31Cancel request while waiting for a lock should try to wakeHiroshi Inoue
up sleeping processes.
2000-07-30Type lztext is toast.Tom Lane
(Sorry, couldn't help it...) Removed type filename as well, since it's unused and probably useless. INITDB FORCED, because pg_rewrite columns are now plain text again.
2000-07-30Convert all remaining geometric operators to new fmgr style. ThisTom Lane
allows fixing problems with operators that expected to be able to return a NULL, such as the '#' line-segment-intersection operator that tried to return NULL when the two segments don't intersect. (See, eg, bug report from 1-Nov-99 on pghackers.) Fix some other bugs in passing, such as backwards comparison in path_distance().
2000-07-29PATH and POLYGON datatypes are now TOASTable. Associated functionsTom Lane
updated to new fmgr style. Deleted hoary old functions for compatibility with pre-6.1 representations of these datatypes.
2000-07-29bpchar, varchar, bytea, numeric are toastable --- if you initdb, whichTom Lane
I did not force. I marked numeric as compressable-but-not-move-off-able, partly to test that storage mode and partly because I've got doubts that numerics are large enough to need external storage.
2000-07-28Fix acceptance of PATH as a type and column name.Thomas G. Lockhart
Note that this has changed some of the edge cases for what is accepted as a type name and/or column id. Regression test passes, but more tweaks may be coming...
2000-07-28Add int2-vs-int8 comparison operators. These are now necessary becauseTom Lane
the planner may try to generate them as a result of transitivity of the existing int2-vs-int4 and int4-vs-int8 operators. In fact, it is now necessary that mergejoinable cross-datatype operators form closed sets. Add an opr_sanity regress test to detect missing operators.
2000-07-28Remove <values.h> inclusions, no-longer-needed MAXINT definitions.Tom Lane
2000-07-27Make planner safe for recursive calls --- needed for cases whereTom Lane
eval_const_expressions tries to simplify an SQL function.
2000-07-27Some pedantic compile syntax errors to fix with the following patchBruce Momjian
for today's snapshot Andreas
2000-07-27Arrange to free planning memory (or most of it, anyway) at completionTom Lane
of planning. This should reduce memory requirements for large joins.
2000-07-27Ensure that values stored within arrays are not toasted, perTom Lane
discussion on pghackers a few days ago.
2000-07-26When dealing with OR-of-ANDs quals, extract multiple subclauses of an ANDTom Lane
to use with a multiple-key index. Formerly we would only extract clauses that had to do with the first key of the index, which was correct but didn't exploit the index fully.
2000-07-25ExecRestrPos() really needs to raise ERROR, not a wimpy DEBUG message,Tom Lane
if given a node type it doesn't support. As is, wrong results from a mergejoin would go undetected.
2000-07-25Ensure that if the OID counter wraps around, we will not generate 0,Tom Lane
nor any OID in the reserved range (1-16383).
2000-07-25Fix confusion between sizeof(long) and sizeof(long*), as well asTom Lane
failure to MAXALIGN the start of shmem allocable space. No reports of trouble here, just compulsive tidiness.
2000-07-25Add commentary about varying usage of scankeys in btree code.Tom Lane
2000-07-25Clean up and document btree code for ordering keys. Neat stuff,Tom Lane
actually, but who could understand it with no comments? Fix bug while at it: _bt_orderkeys would try to invoke comparisons on NULL inputs, given the right sort of redundant quals.
2000-07-25Update comments.Tom Lane
2000-07-24Deduce equality constraints that are implied by transitivity ofTom Lane
mergejoinable qual clauses, and add them to the query quals. For example, WHERE a = b AND b = c will cause us to add AND a = c. This is necessary to ensure that it's safe to use these variables as interchangeable sort keys, which is something 7.0 knows how to do. Should provide a useful improvement in planning ability, too.
2000-07-23Clean up some sloppy casts --- Oid vs. Datum, that sort of thing.Tom Lane
2000-07-23Further cleanup of array behavior. Slice assignments to arrays withTom Lane
varlena elements work now. Allow assignment to previously-nonexistent subscript position to extend array, but only for 1-D arrays and only if adjacent to existing positions (could do more if we had a way to represent nulls in arrays, but I don't want to tackle that now). Arrange for assignment of NULL to an array element in UPDATE to be a no-op, rather than setting the entire array to NULL as it used to. (Throwing an error would be a reasonable alternative, but it's never done that...) Update regress test accordingly.
2000-07-22Shed some light onto SysV IPC configuration.Peter Eisentraut
2000-07-222nd try for the index tuple toast hack. This time as suggestedJan Wieck
by Tom. Jan
2000-07-22Make update lists like 'UPDATE tab SET foo[1] = bar, foo[3] = baz'Tom Lane
work as expected. THe underlying implementation is essentially 'SET foo = array_set(foo, 1, bar)', so we have to turn the items into nested invocations of array_set() to make it work correctly. Side effect: we now complain about 'UPDATE tab SET foo = bar, foo = baz' which is illegal per SQL92 but we didn't detect it before.
2000-07-22Remove 'Array' node type, which has evidently been dead code forTom Lane
a very long time.
2000-07-22Missed some array updates ...Tom Lane
2000-07-22Arrays are toastable. (At least if you initdb, which I didn't force.)Tom Lane
Remove a bunch of crufty code for large-object-based arrays, which is superseded by TOAST and likely hasn't worked in a long time anyway. Clean up array code a little, and in particular eliminate its habit of scribbling on the input array (ie, modifying the input tuple :-().
2000-07-21Further cleanup of btbuild (CREATE INDEX). Avoid storing unneededTom Lane
left keys during bottom-up index build, and leave some free space instead of packing the pages to the brim (so as to avoid vast numbers of page splits during the first interactive insertions).
2000-07-21Fix sloppiness about alignment requirements in findsplitloc() spaceTom Lane
calculation, also make it stop when it has a 'good enough' split instead of exhaustively trying all split points.
2000-07-21Need to switch to tuples memory context when replacing the toastedJan Wieck
one with the plain one. Jan
2000-07-21Temporary fix to make TOAST vacuum-safe. All values are forced to beJan Wieck
in memory (plain or compressed) in the tuple returned from the heap-am. So no index will ever contain an external reference. Jan
2000-07-21Major overhaul of btree index code. Eliminate special BTP_CHAIN logic forTom Lane
duplicate keys by letting search go to the left rather than right when an equal key is seen at an upper tree level. Fix poor choice of page split point (leading to insertion failures) that was forced by chaining logic. Don't store leftmost key in non-leaf pages, since it's not necessary. Don't create root page until something is first stored in the index, so an unused index is now 8K not 16K. (Doesn't seem to be as easy to get rid of the metadata page, unfortunately.) Massive cleanup of unreadable code, fix poor, obsolete, and just plain wrong documentation and comments. See src/backend/access/nbtree/README for the gory details.
2000-07-20Fixed memory allocation problems when compressing multi-MBJan Wieck
items. Lookup history is now a double linked list, used in a wrap-around style. Jan
2000-07-19Don't need this anymore. It's now handled in the Makefile.Peter Eisentraut
2000-07-19Add distprep target to take some of the job of the release_prep script.Peter Eisentraut
The latter updated accordingly. Also add `dist' and `distcheck' targets to play with, but caveat packager. Updated backend/bootstrap and backend/parser makefile to make them marginally builddir aware and fix the usual set of things. Add rule to automatically remake config.h dependent on config.h.in and config.status. (Adopted from Autoconf manual and about every other package.) On a good day we should now have a complete and accurate set of dependencies throughout everything.
2000-07-18'const' decorations are fine, but not when they're inserted withoutTom Lane
bothering to clean up the resulting warnings ...
2000-07-17Revise aggregate functions per earlier discussions in pghackers.Tom Lane
There's now only one transition value and transition function. NULL handling in aggregates is a lot cleaner. Also, use Numeric accumulators instead of integer accumulators for sum/avg on integer datatypes --- this avoids overflow at the cost of being a little slower. Implement VARIANCE() and STDDEV() aggregates in the standard backend. Also, enable new LIKE selectivity estimators by default. Unrelated change, but as long as I had to force initdb anyway...
2000-07-16Automatic dependency trackingPeter Eisentraut
The .DEFAULT rule in backend/Makefile is harmful -- removed. Replace `::' rules by `:'.
2000-07-15This should be a slighly more complete patch for commands/command.cBruce Momjian
AlterTableAddConstraint. The major changes from the last patch are that it should hopefully check for references to temp tables (not in the shadow case, but at defination time) from permanent tables in foreign keys and refuse them and that it doesn't allow the table(s) being constrained to be views (because those cases don't currently work). Stephan SzaboThis should be a slighly more complete patch for commands/command.c AlterTableAddConstraint. The major changes from the last patch are that it should hopefully check for references to temp tables (not in the shadow case, but at defination time) from permanent tables in foreign keys and refuse them and that it doesn't allow the table(s) being constrained to be views (because those cases don't currently work). Stephan Szabo
2000-07-15Update implementation notes for new memory management logic.Tom Lane
2000-07-15Remove useless and dangerous 'opt_type' option from CREATE INDEX.Tom Lane
2000-07-14Cleanup of code for creating index entries. Functional indexes withTom Lane
pass-by-ref data types --- eg, an index on lower(textfield) --- no longer leak memory during index creation or update. Clean up a lot of redundant code ... did you know that copy, vacuum, truncate, reindex, extend index, and bootstrap each basically duplicated the main executor's logic for extracting information about an index and preparing index entries? Functional indexes should be a little faster now too, due to removal of repeated function lookups. CREATE INDEX 'opt_type' clause is deimplemented by these changes, but I haven't removed it from the parser yet (need to merge with Thomas' latest change set first).
2000-07-14Remove dangling else warning (Cyrillic recode stuff)Peter Eisentraut
2000-07-14Implement nested block comments in the backend and in psql.Thomas G. Lockhart
Include updates for the comment.sql regression test. Implement SET SESSION CHARACTERISTICS and SET DefaultXactIsoLevel. Implement SET SESSION CHARACTERISTICS TRANSACTION COMMIT and SET AutoCommit in the parser only. Need to add code to actually do something. Implement WITHOUT TIME ZONE type qualifier. Define SCHEMA keyword, along with stubbed-out grammar. Implement "[IN|INOUT|OUT] [varname] type" function arguments in parser only; INOUT and OUT throws an elog(ERROR). Add PATH as a type-specific token, since PATH is in SQL99 to support schema resource search and resolution.
2000-07-14Implement SET SESSION CHARACTERISTICS and SET DefaultXactIsoLevel.Thomas G. Lockhart
2000-07-14Fix indenting in prototype declarations. No functional changes.Thomas G. Lockhart