aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
...
* Ensure that values stored within arrays are not toasted, perTom Lane2000-07-27
| | | | discussion on pghackers a few days ago.
* When dealing with OR-of-ANDs quals, extract multiple subclauses of an ANDTom Lane2000-07-26
| | | | | | 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.
* ExecRestrPos() really needs to raise ERROR, not a wimpy DEBUG message,Tom Lane2000-07-25
| | | | | if given a node type it doesn't support. As is, wrong results from a mergejoin would go undetected.
* Ensure that if the OID counter wraps around, we will not generate 0,Tom Lane2000-07-25
| | | | nor any OID in the reserved range (1-16383).
* Fix confusion between sizeof(long) and sizeof(long*), as well asTom Lane2000-07-25
| | | | | failure to MAXALIGN the start of shmem allocable space. No reports of trouble here, just compulsive tidiness.
* Add commentary about varying usage of scankeys in btree code.Tom Lane2000-07-25
|
* Clean up and document btree code for ordering keys. Neat stuff,Tom Lane2000-07-25
| | | | | | 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.
* Update comments.Tom Lane2000-07-25
|
* Deduce equality constraints that are implied by transitivity ofTom Lane2000-07-24
| | | | | | | | 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.
* Clean up some sloppy casts --- Oid vs. Datum, that sort of thing.Tom Lane2000-07-23
|
* Further cleanup of array behavior. Slice assignments to arrays withTom Lane2000-07-23
| | | | | | | | | | | 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.
* Shed some light onto SysV IPC configuration.Peter Eisentraut2000-07-22
|
* 2nd try for the index tuple toast hack. This time as suggestedJan Wieck2000-07-22
| | | | | | by Tom. Jan
* Make update lists like 'UPDATE tab SET foo[1] = bar, foo[3] = baz'Tom Lane2000-07-22
| | | | | | | | 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.
* Remove 'Array' node type, which has evidently been dead code forTom Lane2000-07-22
| | | | a very long time.
* Missed some array updates ...Tom Lane2000-07-22
|
* Arrays are toastable. (At least if you initdb, which I didn't force.)Tom Lane2000-07-22
| | | | | | | 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 :-().
* Further cleanup of btbuild (CREATE INDEX). Avoid storing unneededTom Lane2000-07-21
| | | | | | 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).
* Fix sloppiness about alignment requirements in findsplitloc() spaceTom Lane2000-07-21
| | | | | calculation, also make it stop when it has a 'good enough' split instead of exhaustively trying all split points.
* Need to switch to tuples memory context when replacing the toastedJan Wieck2000-07-21
| | | | | | one with the plain one. Jan
* Temporary fix to make TOAST vacuum-safe. All values are forced to beJan Wieck2000-07-21
| | | | | | | in memory (plain or compressed) in the tuple returned from the heap-am. So no index will ever contain an external reference. Jan
* Major overhaul of btree index code. Eliminate special BTP_CHAIN logic forTom Lane2000-07-21
| | | | | | | | | | | | 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.
* Fixed memory allocation problems when compressing multi-MBJan Wieck2000-07-20
| | | | | | | items. Lookup history is now a double linked list, used in a wrap-around style. Jan
* Don't need this anymore. It's now handled in the Makefile.Peter Eisentraut2000-07-19
|
* Add distprep target to take some of the job of the release_prep script.Peter Eisentraut2000-07-19
| | | | | | | | | | | | | 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.
* 'const' decorations are fine, but not when they're inserted withoutTom Lane2000-07-18
| | | | bothering to clean up the resulting warnings ...
* Revise aggregate functions per earlier discussions in pghackers.Tom Lane2000-07-17
| | | | | | | | | | | 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...
* Automatic dependency trackingPeter Eisentraut2000-07-16
| | | | | The .DEFAULT rule in backend/Makefile is harmful -- removed. Replace `::' rules by `:'.
* This should be a slighly more complete patch for commands/command.cBruce Momjian2000-07-15
| | | | | | | | | | | | | | | | | | | 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
* Update implementation notes for new memory management logic.Tom Lane2000-07-15
|
* Remove useless and dangerous 'opt_type' option from CREATE INDEX.Tom Lane2000-07-15
|
* Cleanup of code for creating index entries. Functional indexes withTom Lane2000-07-14
| | | | | | | | | | | | | 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).
* Remove dangling else warning (Cyrillic recode stuff)Peter Eisentraut2000-07-14
|
* Implement nested block comments in the backend and in psql.Thomas G. Lockhart2000-07-14
| | | | | | | | | | | | | | 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.
* Implement SET SESSION CHARACTERISTICS and SET DefaultXactIsoLevel.Thomas G. Lockhart2000-07-14
|
* Fix indenting in prototype declarations. No functional changes.Thomas G. Lockhart2000-07-14
|
* Include rule to build include/parser/parse.h since nothing else canThomas G. Lockhart2000-07-14
| | | | build in this directory otherwise :(
* Change order of builds to get parser before commands.Thomas G. Lockhart2000-07-14
| | | | | This will ensure building parse.h for commands, though this is also covered with other build rules.
* Repair parallel make in backend tree (and make it really parallel).Peter Eisentraut2000-07-13
| | | | Make Gen_fmgrtab.sh reasonably robust against concurrent invocation.
* Planner did the wrong thing with index-scan-backward plans: generatedTom Lane2000-07-13
| | | | | | them, but forgot to attach relevant restriction clauses, so that the plan represented a scan over the whole table with restrictions applied as qpquals not indexquals. Another day, another bug...
* Remove a bunch of unused configure tests, in particular cases wherePeter Eisentraut2000-07-12
| | | | | | | | | | * the result is not recorded anywhere * the result is not used anywhere * the result is only used in some places, whereas others have been getting away with it * the result is used improperly Also make command line options handling a little better (e.g., --disable-locale, while redundant, should really still *dis*able).
* Can you please apply the following patch to current CVSBruce Momjian2000-07-12
| | | | | | | | | to make AIX'ers happy with the changes to the version.o ? Together with the patch I sent Tom, AIX now regresses ok. Thanx Andreas
* Add assert checking to GUC ("debug_assertions")Peter Eisentraut2000-07-12
| | | | | Rename settings net_server to tcpip_socket, max_backends to max_connections Add --help and --version to postmaster, reformat help output
* Repair missing MEMORY_CONTEXT_CHECKING logic for realloc().Tom Lane2000-07-12
| | | | | Doesn't anyone around here run regression tests before submitting patches, or before committing them?
* First stage of reclaiming memory in executor by resetting short-termTom Lane2000-07-12
| | | | | | memory contexts. Currently, only leaks in expressions executed as quals or projections are handled. Clean up some old dead cruft in executor while at it --- unused fields in state nodes, that sort of thing.
* Here is the patch with memory leak checker. This checker allow detectBruce Momjian2000-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in-chunk leaks, overwrite-next-chunk leaks and overwrite block-freeptr leaks. A in-chunk leak --- if something overwrite space after wanted (via palloc() size, but it is still inside chunk. For example x = palloc(12); /* create 16b chunk */ memset(x, '#', 13); this leak is in the current source total invisible, because chunk is 16b and leak is in the "align space". For this feature I add data_size to StandardChunk, and all memory which go from AllocSetAlloc() is marked as 0x7F. The MemoryContextCheck() is compiled '#ifdef USE_ASSERT_CHECKING'. I add this checking to 'tcop/postgres.c' and is active after each backend query, but it is probably not sufficient, because some MemoryContext exist only during memory processing --- will good if someone who known where it is needful (Tom:-) add it for others contexts; A problem in the current source is that we have still some malloc() allocation that is not needful and this allocation is total invisible for all context routines. For example Dllist in backend (pretty dirty it is in catcache where values in Dllist are palloc-ed, but list is malloc-ed). --- and BTW. this Dllist design stand in the way for query cache :-) Tom, if you agree I start replace some mallocs. BTW. --- Tom, have you idea for across transaction presistent allocation for SQL functions? (like regex - now it is via malloc) I almost forget. I add one if() to AllocSetAlloc(), for 'size' that are greater than ALLOC_BIGCHUNK_LIMIT is not needful check AllocSetFreeIndex(), because 'fidx' is always 'ALLOCSET_NUM_FREELISTS - 1'. It a little brisk up allocation for very large chunks. Right? Karel
* Some security checks that we've found an external value completelyJan Wieck2000-07-11
| | | | | | when fetching toasted values. Jan
* Prevent creating a boatload of empty segments when md.c is asked toTom Lane2000-07-10
| | | | access a ridiculously large block number within a relation.
* oidvectortypes: use SQL type names and separate by commasPeter Eisentraut2000-07-09
| | | | | | psql \df: use format_type and oidvectortypes map type REAL to float4, not float8 psql \dd :work around UNION bug
* typoPeter Eisentraut2000-07-09
|