aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt
Commit message (Collapse)AuthorAge
...
* Revise hash join and hash aggregation code to use the same datatype-Tom Lane2003-06-22
| | | | | | | | specific hash functions used by hash indexes, rather than the old not-datatype-aware ComputeHashFunc routine. This makes it safe to do hash joining on several datatypes that previously couldn't use hashing. The sets of datatypes that are hash indexable and hash joinable are now exactly the same, whereas before each had some that weren't in the other.
* Fix bugs in interval-to-time conversion: HAVE_INT64_TIMESTAMP case did notTom Lane2003-06-16
| | | | work at all, and neither case behaved sanely for negative intervals.
* During looking stuff up for a discussion on -general, I realized thatBruce Momjian2003-06-11
| | | | | | | | | | I'd placed the check for newly created matching pk rows for on update no action earlier than it needed to be so that it'd check even when the key values hadn't changed. This patch moves it to after checking for NULLs in the old row and comparing the values since the select's probably more expensive. Stephan Szabo
* Represent grant options in the information schema.Peter Eisentraut2003-06-11
|
* Make the world at least marginally safe for usernames with embedded spaces.Tom Lane2003-06-02
| | | | Per recent gripe.
* Replace functional-index facility with expressional indexes. Any columnTom Lane2003-05-28
| | | | | | | | | | | of an index can now be a computed expression instead of a simple variable. Restrictions on expressions are the same as for predicates (only immutable functions, no sub-selects). This fixes problems recently introduced with inlining SQL functions, because the inlining transformation is applied to both expression trees so the planner can still match them up. Along the way, improve efficiency of handling index predicates (both predicates and index expressions are now cached by the relcache) and fix 7.3 oversight that didn't record dependencies of predicate expressions.
* Make debug_ GUC varables output DEBUG1 rather than LOG, and mention inBruce Momjian2003-05-27
| | | | | docs that CLIENT/LOG_MIN_MESSAGES now controls debug_* output location. Doc changes included.
* Remove comment that cbrt() isn't being used.Bruce Momjian2003-05-26
|
* Cause CHAR(n) to TEXT or VARCHAR conversion to automatically strip trailingTom Lane2003-05-26
| | | | | | | | | | | | | | | | | | blanks, in hopes of reducing the surprise factor for newbies. Remove redundant operators for VARCHAR (it depends wholly on TEXT operations now). Clean up resolution of ambiguous operators/functions to avoid surprising choices for domains: domains are treated as equivalent to their base types and binary-coercibility is no longer considered a preference item when choosing among multiple operators/functions. IsBinaryCoercible now correctly reflects the notion that you need *only* relabel the type to get from type A to type B: that is, a domain is binary-coercible to its base type, but not vice versa. Various marginal cleanup, including merging the essentially duplicate resolution code in parse_func.c and parse_oper.c. Improve opr_sanity regression test to understand about binary compatibility (using pg_cast), and fix a couple of small errors in the catalogs revealed thereby. Restructure "special operator" handling to fetch operators via index opclasses rather than hardwiring assumptions about names (cleans up the pattern_ops stuff a little).
* Clean up our static cbrt() implementation in float.c.Bruce Momjian2003-05-25
|
* Improve implementation of btrim/ltrim/rtrim: provide a special case forTom Lane2003-05-23
| | | | | | | single-byte encodings, and a direct C implementation of the single-argument forms (where spaces are always what gets trimmed). This is in preparation for using rtrim1() as the bpchar-to-text cast operator, but is a useful performance improvement even if we decide not to do that.
* Fix coredump in pg_get_triggerdef, ensure function name is schema-Tom Lane2003-05-20
| | | | qualified when necessary, simplify argument-printing code.
* Add code to test for unknown timezone names (following some ideas fromTom Lane2003-05-18
| | | | | | | | Ross Reedstrom, a couple months back) and to detect timezones that are using leap-second timekeeping. The unknown-zone-name test is pretty heuristic and ugly, but it seems better than the old behavior of just switching to GMT given a bad name. Also make DecodePosixTimezone() a tad more robust.
* Indexing support for pattern matching operations via separate operatorPeter Eisentraut2003-05-15
| | | | class when lc_collate is not C.
* More binary I/O routines.Tom Lane2003-05-13
|
* Add binary I/O routines for a bunch more datatypes. Still a few to go,Tom Lane2003-05-12
| | | | | but that was enough tedium for one day. Along the way, move the few support routines for types xid and cid into a more logical place.
* Implement array_send/array_recv (binary I/O for arrays). This exposedTom Lane2003-05-09
| | | | the folly of not passing element type to typsend/typreceive, so fix that.
* COPY BINARY uses the new binary I/O routines. Update a few more datatypesTom Lane2003-05-09
| | | | so that COPY BINARY regression test passes.
* Remove another old rint() replacement.Bruce Momjian2003-05-09
|
* Binary send/receive routines for a few basic datatypes --- enough forTom Lane2003-05-09
| | | | testing purposes.
* Reinstate pg_type's typsend and typreceive columns. They don't do muchTom Lane2003-05-08
| | | | | yet, but they're there. Also some editorial work on CREATE TYPE reference page.
* Allow 60 in seconds fields of timestamp, time, interval input values.Tom Lane2003-05-04
| | | | | | Per recent discussion on pgsql-general, this is appropriate for spec compliance, and has the nice side-effect of easing porting from old pg_dump files that exhibit the 59.999=>60.000 roundoff problem.
* Prevent coredump in current_schemas() if someone has just deleted aTom Lane2003-04-27
| | | | schema that was in our search path.
* Repair permissions problem in RI triggers: query parsing has to be doneTom Lane2003-04-26
| | | | | as the correct user, not only query execution. Per report from Sean Chittenden.
* Infrastructure for upgraded error reporting mechanism. elog.c isTom Lane2003-04-24
| | | | | | | rewritten and the protocol is changed, but most elog calls are still elog calls. Also, we need to contemplate mechanisms for controlling all this functionality --- eg, how much stuff should appear in the postmaster log? And what API should libpq expose for it?
* stddev() and variance() should return NULL when there is just one inputTom Lane2003-04-21
| | | | value, per recent discussion on pgsql-general.
* Fix stupid oversight ...Tom Lane2003-04-16
|
* eqjoinsel's logic for case where MCV lists are not present shouldTom Lane2003-04-15
| | | | | | account for NULLs; in hindsight this is obvious since the code for the MCV-lists case would reduce to this when there are zero entries in both lists. Per example from Alec Mitchell.
* First phase of work on array improvements. ARRAY[x,y,z] constructorTom Lane2003-04-08
| | | | | | | expressions, ARRAY(sub-SELECT) expressions, some array functions. Polymorphic functions using ANYARRAY/ANYELEMENT argument and return types. Some regression tests in place, documentation is lacking. Joe Conway, with some kibitzing from Tom Lane.
* Mark TimeScales constants as double to avoid integer overflow in some compilers.Tom Lane2003-04-08
|
* Avoid primary key lookup (and lock) if foreign key does not changeJan Wieck2003-04-07
| | | | | | | | | | | | | | | | on UPDATE. This get's rid of the long standing annoyance that updating a row that has foreign keys locks all the referenced rows even if the foreign key values do not change. The trick is to actually do a check identical to NO ACTION after an eventually done UPDATE in the SET DEFAULT case. Since a SET DEFAULT operation should have moved referencing rows to a new "home", a following NO ACTION check can only fail if the column defaults of the referencing table resulted in the key we actually deleted. Thanks to Stephan. Jan
* Remove unnecessary dt2local() call.Tom Lane2003-04-07
|
* Avoid repeated computation of the constants date2j(1970, 1, 1) andTom Lane2003-04-04
| | | | | date2j(2000, 1, 1). Should make for some marginal speed improvement in date/time operations.
* Code review for pg_stat_get_backend_activity_start patch --- fixTom Lane2003-04-04
| | | | | return type, make protection condition agree with recent change to pg_stat_get_backend_activity, clean up documentation.
* Fix buffer overrun in to_ascii(), per report from Guido Notari.Tom Lane2003-04-02
|
* Fix platform-dependent failure introduced by recent to_char changesTom Lane2003-04-02
| | | | (ye good olde uninitialized-local-variable).
* Fix bogus coding of SET DEFAULT ri triggers ... or at least make it lessTom Lane2003-03-27
| | | | bogus than it was. Per bug report from Adrian Pop.
* Fix syntax error in to_char fixes --- was defining variable in main codeBruce Momjian2003-03-27
| | | | block, ala C++.
* to_char fixes, Karel ZakBruce Momjian2003-03-27
|
* Instead of storing pg_statistic stavalues entries as text strings, storeTom Lane2003-03-23
| | | | | | | them as arrays of the internal datatype. This requires treating the stavalues columns as 'anyarray' rather than 'text[]', which is not 100% kosher but seems to work fine for the purposes we need for pg_statistic. Perhaps in the future 'anyarray' will be allowed more generally.
* Tweak selectivity and related routines to cope with domains. Per reportTom Lane2003-03-23
| | | | from Andreas Pflug.
* Back out to_char fixes until regression tests are fixed.Bruce Momjian2003-03-22
|
* Fix compile warning.Tom Lane2003-03-21
|
* Add hostmask() function:Bruce Momjian2003-03-21
| | | | | | | | | | + <entry><function>hostmask</function>(<type>inet</type>)</entry> + <entry><type>inet</type></entry> + <entry>construct hostmask for network</entry> + <entry><literal>hostmask('192.168.23.20/30')</literal></entry> + <entry><literal>0.0.0.3</literal></entry> Greg Wickham
* Reimplement NUMERIC datatype using base-10000 arithmetic; also improveTom Lane2003-03-21
| | | | | | | some of the algorithms for higher functions. I see about a factor of ten speedup on the 'numeric' regression test, but it's unlikely that that test is representative of real-world applications. initdb forced due to change of on-disk representation for NUMERIC.
* This patch creates a function named pg_get_triggerdef that takes the oid ofBruce Momjian2003-03-20
| | | | | | | a trigger as its parameter. It is basically copied from the pg_dump code. Christopher Kings-Lynne
* It would also be handy if users could see their own pg_stat_activityBruce Momjian2003-03-20
| | | | | | queries while the rest remain blank. Kevin Brown
* Attached is a patch that limits the range tested by horology toBruce Momjian2003-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | what is capable using integer-datatime timestamps. It does attempt to exercise the maximum allowable timestamp range. Also is a small error check when converting a timestamp from external to internal format that prevents out of range timestamps from being entered. Files patched: Index: src/backend/utils/adt/timestamp.c Added range check to prevent out of range timestamps from being used. Index: src/test/regress/sql/horology.sql Index: src/test/regress/expected/horology-no-DST-before-1970.out Index: src/test/regress/expected/horology-solaris-1947.out Limited range of timestamps being checked to Jan 1, 4713 BC to Dec 31, 294276 In creating this patch, I have seen some definite problems with integer timestamps and how they react when used near their limits. For example, the following statement gives the correct result: SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '109203489 days' AS "Dec 31, 294276"; However, this statement which is the logical inverse of the above gives incorrect results: SELECT timestamp without time zone '12/31/294276' - timestamp without time zone 'Jan 1, 4713 BC' AS "109203489 Days"; John Cochran
* Peter found bug in the to_char() routine for PL/MI options. ThisBruce Momjian2003-03-20
| | | | | | | | | | | | | | | | | | | patch fix it -- but this patch doesn't contains tests or docs fixes. I will send it later. Fixed outputs: select to_char(x, '9999.999') as x, to_char(x, 'S9999.999') as s, to_char(x, 'SG9999.999') as sg, to_char(x, 'MI9999.999') as mi, to_char(x, 'PL9999.999') as pl, to_char(x, 'PLMI9999.999') as plmi, to_char(x, '9999.999SG') as sg2, to_char(x, '9999.999PL') as pl2, to_char(x, '9999.999MI') as mi2 from num; Karel Zak
* Add start time to pg_stat_activityBruce Momjian2003-03-20
| | | | Neil Conway