aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/float.c
Commit message (Collapse)AuthorAge
...
* Update CVS HEAD for 2007 copyright. Back branches are typically notBruce Momjian2007-01-05
| | | | back-stamped for this.
* Update float dpow() comment about whick platforms had issues with Nan.Bruce Momjian2007-01-05
| | | | Stefan Kaltenbrunner
* Simplify assignment of Inf for pow Nan (don't worry about the sign).Bruce Momjian2007-01-04
|
* Update pow() tests to check for both errno==EDOM _and_ result==Nan, andBruce Momjian2007-01-03
| | | | document why this happens. Remove exp() errno check because not needed.
* Fix erroneous error tests in pow/exp.Tom Lane2007-01-03
|
* Attempt to return proper overflow/underflow messages for platforms thatBruce Momjian2007-01-03
| | | | only return Nan and set errno for pow/exp overflow/underflow.
* For float4/8, remove errno checks for pow() and exp() because only someBruce Momjian2007-01-03
| | | | | | platforms set errno, and we already have a check macro that detects under/overflow, so there is no reason for platform-specific code anymore.
* Some platforms set errno on pow(), exp() overflow, some do not, so ifBruce Momjian2007-01-02
| | | | isinf(), fall through to our own infinity checks.
* finite() no longer used; remove finite() platform-specificBruce Momjian2007-01-02
| | | | infrastructure.
* Add #include <float.h> for platforms that still need it.Bruce Momjian2007-01-02
|
* Fix float4/8 to handle Infinity and Nan consistently, e.g. Infinity is aBruce Momjian2007-01-02
| | | | | | | | | | | | | | | | | valid result from a computation if one of the input values was infinity. The previous code assumed an operation that returned infinity was an overflow. Handle underflow/overflow consistently, and add checks for aggregate overflow. Consistently prevent Inf/Nan from being cast to integer data types. Fix INT_MIN % -1 to prevent overflow. Update regression results for new error text. Per report from Roman Kononov.
* Remove unnecessary parentheses in if() statements.Bruce Momjian2006-12-23
|
* Work around buggy strtod on (some versions of?) IRIX. Combination ofTom Lane2006-10-05
| | | | proposed patches from John Jorgensen and Steve Singer.
* pgindent run for 8.2.Bruce Momjian2006-10-04
|
* SQL2003-standard statistical aggregates, by Sergey Koposov. I've added onlyTom Lane2006-07-28
| | | | | | | the float8 versions of the aggregates, which is all that the standard requires. Sergey's original patch also provided versions using numeric arithmetic, but given the size and slowness of the code, I doubt we ought to include those in core.
* Remove 576 references of include files that were not needed.Bruce Momjian2006-07-14
|
* Fix a passel of recently-committed violations of the rule 'thou shaltTom Lane2006-07-14
| | | | | have no other gods before c.h'. Also remove some demonstrably redundant #include lines, mostly of <errno.h> which was added to c.h years ago.
* Prepare code to be built by MSVC:Bruce Momjian2006-06-07
| | | | | | | | | | o remove many WIN32_CLIENT_ONLY defines o add WIN32_ONLY_COMPILER define o add 3rd argument to open() for portability o add include/port/win32_msvc directory for system includes Magnus Hagander
* Improve our private implementation of cbrt() to give results of theTom Lane2006-04-24
| | | | | accuracy expected by the regression tests. Per suggestion from Martijn van Oosterhout.
* Remove a few places that attempted to define INT_MAX, SCHAR_MAX, andNeil Conway2006-03-11
| | | | | | similar constants if they were not previously defined. All these constants must be defined by limits.h according to C89, so we can safely assume they are present.
* Implement 4 new aggregate functions from SQL2003. Specifically: var_pop(),Neil Conway2006-03-10
| | | | | | | | | | | | | var_samp(), stddev_pop(), and stddev_samp(). var_samp() and stddev_samp() are just renamings of the historical Postgres aggregates variance() and stddev() -- the latter names have been kept for backward compatibility. This patch includes updates for the documentation and regression tests. The catversion has been bumped. NB: SQL2003 requires that DISTINCT not be specified for any of these aggregates. Per discussion on -patches, I have NOT implemented this restriction: if the user asks for stddev(DISTINCT x), presumably they know what they are doing.
* Update copyright for 2006. Update scripts.Bruce Momjian2006-03-05
|
* Update random() usage so ranges are inclusive/exclusive as required.Bruce Momjian2006-02-03
|
* Remove comment on errno=0 lines, but add mention to port/strtol.c function.Bruce Momjian2005-12-02
|
* Comment "errno = 0" in a more generic way.Bruce Momjian2005-12-01
|
* Add comments about why errno is set to zero.Bruce Momjian2005-12-01
|
* Make SQL arrays support null elements. This commit fixes the core arrayTom Lane2005-11-17
| | | | | | | | functionality, but I still need to make another pass looking at places that incidentally use arrays (such as ACL manipulation) to make sure they are null-safe. Contrib needs work too. I have not changed the behaviors that are still under discussion about array comparison and what to do with lower bounds.
* Standard pgindent run for 8.1.Bruce Momjian2005-10-15
|
* Apply the "nodeAgg" optimization to more of the builtin transitionNeil Conway2005-04-06
| | | | | | | | | | functions. This patch optimizes int2_sum(), int4_sum(), float4_accum() and float8_accum() to avoid needing to copy the transition function's state for each input tuple of the aggregate. In an extreme case (e.g. SELECT sum(int2_col) FROM table where table has a single column), it improves performance by about 20%. For more complex queries or tables with wider rows, the relative performance improvement will not be as significant.
* Adjust input routines for float4, float8 and oid to reject the empty stringNeil Conway2005-02-11
| | | | | as valid input (it was previously treated as 0). This input was deprecated in 8.0 (and a warning was emitted). Regression tests updated.
* Tag appropriate files for rc3PostgreSQL Daemon2004-12-31
| | | | | | | | Also performed an initial run through of upgrading our Copyright date to extend to 2005 ... first run here was very simple ... change everything where: grep 1996-2004 && the word 'Copyright' ... scanned through the generated list with 'less' first, and after, to make sure that I only picked up the right entries ...
* Detect overflow in integer arithmetic operators (integer, smallint, andTom Lane2004-10-04
| | | | | | | | bigint variants). Clean up some inconsistencies in error message wording. Fix scanint8 to allow trailing whitespace in INT64_MIN case. Update int8-exp-three-digits.out, which seems to have been ignored by the last couple of people to modify the int8 regression test, and remove int8-exp-three-digits-win32.out which is thereby exposed as redundant.
* Cope with recent HPUX versions providing isfinite() instead of finite().Tom Lane2004-09-02
|
* Pgindent run for 8.0.Bruce Momjian2004-08-29
|
* Update copyright to 2004.Bruce Momjian2004-08-29
|
* Work around broken strtod() that's present in many Solaris releases.Tom Lane2004-08-11
| | | | Thanks to Michael Fuhr for identifying the problem.
* Label CVS tip as 8.0devel instead of 7.5devel. Adjust various commentsTom Lane2004-08-04
| | | | and documentation to reference 8.0 instead of 7.5.
* Change ln(), log(), power(), and sqrt() to emit the correct SQLSTATENeil Conway2004-05-16
| | | | error codes for certain error conditions, as specified by SQL2003.
* Solve the 'Turkish problem' with undesirable locale behavior for caseTom Lane2004-05-07
| | | | | | | | | | | | | conversion of basic ASCII letters. Remove all uses of strcasecmp and strncasecmp in favor of new functions pg_strcasecmp and pg_strncasecmp; remove most but not all direct uses of toupper and tolower in favor of pg_toupper and pg_tolower. These functions use the same notions of case folding already developed for identifier case conversion. I left the straight locale-based folding in place for situations where we are just manipulating user data and not trying to match it to built-in strings --- for example, the SQL upper() function is still locale dependent. Perhaps this will prove not to be what's wanted, but at the moment we can initdb and pass regression tests in Turkish locale.
* Fix some portability issues with new float input code (didn't work onTom Lane2004-04-01
| | | | HPUX 11 ...)
* Add missing casts to unsigned char in recently-added isspace() calls.Tom Lane2004-04-01
|
* Localize our dependencies on the way to create NAN or INFINITY.Tom Lane2004-03-15
| | | | Per recent proposal to pghackers.
* Portability fixes and bug fixes for recent floating point input changes.Neil Conway2004-03-14
| | | | | | | | In particular, don't depend on strtod() to accept 'NaN' and 'Infinity' inputs (while this is required by C99, not all platforms are compliant with that yet). Also, don't require glibc's behavior from isinf(): it seems that on a lot of platforms isinf() does not itself distinguish between negative and positive infinity.
* Allow 'Infinity' and '-Infinity' as input to the float4 and float8Neil Conway2004-03-12
| | | | | | | | | types. Update the regression tests and the documentation to reflect this. Remove the UNSAFE_FLOATS #ifdef. This is only half the story: we still unconditionally reject floating point operations that result in +/- infinity. See recent thread on -hackers for more information.
* Revise int2/int4/int8/float4/float8 input routines to allow forNeil Conway2004-03-11
| | | | | | | | | | any amount of leading or trailing whitespace (where "whitespace" is defined by isspace()). This is for SQL conformance, as well as consistency with other numeric types (e.g. oid, numeric). Also refactor pg_atoi() to avoid looking at errno where not necessary, and add a bunch of regression tests for the input to these types.
* Emit a warning when an empty string is input to the oid, float4, andNeil Conway2004-03-04
| | | | | | | | float8 types. This begins the deprecation of this feature: in 7.6, this input will be rejected. Also added a new error code for warnings about deprecated features, and updated the regression tests.
* $Header: -> $PostgreSQL Changes ...PostgreSQL Daemon2003-11-29
|
* Cross-data-type comparisons are now indexable by btrees, pursuant to myTom Lane2003-11-12
| | | | | | | | | | pghackers proposal of 8-Nov. All the existing cross-type comparison operators (int2/int4/int8 and float4/float8) have appropriate support. The original proposal of storing the right-hand-side datatype as part of the primary key for pg_amop and pg_amproc got modified a bit in the event; it is easier to store zero as the 'default' case and only store a nonzero when the operator is actually cross-type. Along the way, remove the long-since-defunct bigbox_ops operator class.
* Message editing: remove gratuitous variations in message wording, standardizePeter Eisentraut2003-09-25
| | | | | terms, add some clarifications, fix some untranslatable attempts at dynamic message building.
* Update copyrights to 2003.Bruce Momjian2003-08-04
|