summaryrefslogtreecommitdiff
path: root/src/backend/utils
AgeCommit message (Collapse)Author
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-16Add get_func_rettype() to general-use lsyscache routines,Tom Lane
since it's now needed in both optimizer and parser.
1999-08-09Store -1 in attdisbursion to signal 'no duplicates in column'.Tom Lane
Centralize att_disbursion readout logic.
1999-08-09Move get_attdisbursion to lsyscache. Clean up get_typdefault.Tom Lane
1999-08-02Further selectivity-estimation work. Speed up eqsel()Tom Lane
(it should just call the given operator, not look up an = operator). Fix intltsel() so that all numeric data types are converted to double before trying to estimate where the given comparison value is in the known range of column values. intltsel() still needs work, or replacement, for non-numeric data types ... but for nonintegral numeric types it should now be delivering reasonable estimates.
1999-08-01First step in fixing selectivity-estimation code. eqsel andTom Lane
neqsel now behave as per my suggestions in pghackers a few days ago. selectivity for < > <= >= should work OK for integral types as well, but still need work for nonintegral types. Since these routines have never actually executed before :-(, this may result in some significant changes in the optimizer's choices of execution plans. Let me know if you see any serious misbehavior. CAUTION: THESE CHANGES REQUIRE INITDB. pg_statistic table has changed.
1999-07-22Alpha spinlock fix from Uncle George <gatgul@voicenet.com>Bruce Momjian
1999-07-20Reverse out cache changes that are not ready yet.Bruce Momjian
1999-07-20Use -ieee alpha flag for gcc and egcs only.Bruce Momjian
1999-07-20Re-add Makefile.Bruce Momjian
1999-07-20Move -ieee to adt Makefile, and add CPU Makefile variable.Bruce Momjian
1999-07-19Install new alignment code to use MAXALIGN rather than DOUBLEALIGN whereBruce Momjian
approproate.
1999-07-19Enable WIN32 compilation of libpq.Bruce Momjian
1999-07-19Re-add getopt.h check, remove NT-specific tests for it.Bruce Momjian
1999-07-17 Move some system includes into c.h, and remove duplicates.Bruce Momjian
1999-07-17Fix for multi-byte includes.Bruce Momjian
1999-07-16Add back improperly removed #include for utils/dynamic_loader.h.Tom Lane
1999-07-16More cleanupBruce Momjian
1999-07-16More cleanupBruce Momjian
1999-07-16Final cleanupBruce Momjian
1999-07-16Final cleanup.Bruce Momjian
1999-07-16Update #include cleanupsBruce Momjian
1999-07-15Change #include's to use <> and "" as appropriate.Bruce Momjian
1999-07-15Remove unused #includes in *.c files.Bruce Momjian
1999-07-15Remove un-needed #include's from *.c files.Bruce Momjian
1999-07-15Clean up #include in /include directory. Add scripts for checking includes.Bruce Momjian
1999-07-14Cleanup of /include #include's, for 6.6 only.Bruce Momjian
1999-07-13More cpu cleanups, only for 6.6.Bruce Momjian
1999-07-11Fix some compiler warnings (Tomoaki Nishiyama), add WIN1250 support (Pavel ↵Tatsuo Ishii
Behal)
1999-07-10Fix tuplecmp() to ensure repeatable sort ordering of tuplesTom Lane
that contain null fields. Old code would produce erratic sort results because comparisons of tuples containing nulls could produce inconsistent answers.
1999-07-10cleanup of long long int atoi test.Bruce Momjian
1999-07-09Re-apply range check patch after fixing LIMIT_H test and defines.Bruce Momjian
1999-07-09Another place that HAVE_LIMITS_H was misspelled.Tom Lane
1999-07-09Fix for ACL length problem on different platforms.Bruce Momjian
1999-07-09Backup pg_atoi patch for long checking. Caused initdb problems.Bruce Momjian
1999-07-08> In both datetime_trunc() and timespan_trunc() in dt.c,Bruce Momjian
> the DTK_MICROSEC case is just like the DTK_MILLISEC case. > I think this is wrong and it ought to look like > fsec = rint(fsec * 1000000) / 1000000; > no? Tom Lane.
1999-07-08pg_atoi() does range check on int4 data only ifBruce Momjian
"HAS_LONG_LONG" is defined based on the assumption that strtol() would return ERANGE if a platform does not support 64-bit integers. In current PostgreSQL 6.5 (and 6.4.2) distribution, "HAS_LONG_LONG" is defined only if platform is "alpha". (See include/port/alpha.h) I think the int4 range check should apply to linux_alpha as well. (I have not tested yet but I guess this might be applicable to newer Linux/i386 distributions which includes new GCC which implements long int as 64-bit int.)
1999-07-07Fix for \do and ceil()/float.Bruce Momjian
1999-07-04Clarify maximum tuple and max attribute lengths.Bruce Momjian
1999-07-03Add abortcurrent trans to temp table fix.Bruce Momjian
1999-07-03Fix to prevent too large tuple from being created.Bruce Momjian
1999-07-02Fix for removal of temp tables if last transaction was aborted.Bruce Momjian
1999-06-19Rename to vararg_format().Bruce Momjian
1999-06-19Change form() to varargform() to prevent portability problems.Bruce Momjian
1999-06-19Temporarily disable error checks for missing selectivityTom Lane
functions, in order to work around oversight in 6.5 release: rtree index functions haven't got any. Mea culpa ...
1999-06-12Reversed out Massimo patch.Bruce Momjian
1999-06-12I don't like last minute patches before the final freeze, but I believe thatBruce Momjian
this one could be useful for people experiencing out-of-memory crashes while executing queries which retrieve or use a very large number of tuples. The problem happens when storage is allocated for functions results used in a large query, for example: select upper(name) from big_table; select big_table.array[1] from big_table; select count(upper(name)) from big_table; This patch is a dirty hack that fixes the out-of-memory problem for the most common cases, like the above ones. It is not the final solution for the problem but it can work for some people, so I'm posting it. The patch should be safe because all changes are under #ifdef. Furthermore the feature can be enabled or disabled at runtime by the `free_tuple_memory' options in the pg_options file. The option is disabled by default and must be explicitly enabled at runtime to have any effect. To enable the patch add the follwing line to Makefile.custom: CUSTOM_COPT += -DFREE_TUPLE_MEMORY To enable the option at runtime add the following line to pg_option: free_tuple_memory=1 Massimo
1999-06-07Repair recently-introduced error in makeIndexable for LIKE:Tom Lane
a non-leading % would be put into the >=/<= patterns. Also, repair longstanding confusion about whether %% means a literal %%. The SQL92 doesn't say any such thing, and textlike() knows that, but gram.y didn't.