summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt
AgeCommit message (Collapse)Author
2000-03-18Clean up minor compiler warnings.Tom Lane
2000-03-17Fix a bunch of minor portability problems and maybe-bugs revealed byTom Lane
running gcc and HP's cc with warnings cranked way up. Signed vs unsigned comparisons, routines declared static and then defined not-static, that kind of thing. Tedious, but perhaps useful...
2000-03-16Support full POSIX-style time zone: EST+3, PST-3, etc.Thomas G. Lockhart
We probably support a superset of the spec, but I don't have the spec to confirm this. Update regression tests to include tests for this format.
2000-03-16 Hi,Bruce Momjian
small changes in formatting.c code (better memory usage ...etc.) and better to_char's cache (will fastly for more to_char()s in one query). (It is probably end of to_char() development in 7.0 cycle.) Karel
2000-03-15Update comment obsoleted by Thomas's latest fixes.Tom Lane
2000-03-15Fix busted TRANSLATE() code --- it coredumped due to pfree()'ing theTom Lane
wrong pointer.
2000-03-14Implement column aliases on views "CREATE VIEW name (collist)".Thomas G. Lockhart
Implement TIME WITH TIME ZONE type (timetz internal type). Remap length() for character strings to CHAR_LENGTH() for SQL92 and to remove the ambiguity with geometric length() functions. Keep length() for character strings for backward compatibility. Shrink stored views by removing internal column name list from visible rte. Implement min(), max() for time and timetz data types. Implement conversion of TIME to INTERVAL. Implement abs(), mod(), fac() for the int8 data type. Rename some math functions to generic names: round(), sqrt(), cbrt(), pow(), etc. Rename NUMERIC power() function to pow(). Fix int2 factorial to calculate result in int4. Enhance the Oracle compatibility function translate() to work with string arguments (from Edwin Ramirez). Modify pg_proc system table to remove OID holes.
2000-03-13Extend numeric_round and numeric_trunc to accept negative scale inputsTom Lane
(ie, allow rounding to occur at a digit position left of the decimal point). Apparently this is how Oracle handles it, and there are precedents in other programming languages as well.
2000-03-13Remove unnecessary limitations on lengths of bpchar and varchar constants.Tom Lane
Since we detect oversize tuples elsewhere, I see no reason not to allow string constants that are 'too long' --- after all, they might never get stored in a tuple at all.
2000-03-08Reversed out inet patch.Bruce Momjian
2000-03-08Hi,Bruce Momjian
the to_char() source code is large, here are regression tests for numeric/timestamp/int8 part. It is probably enough test for formatting code in the formatting.c module. The others (float4/float8/int4) types share this formatting code and eventual bugs for these types aren't few probable. Patch fix timestamp_to_char() for infinity/invalid timestamp too. Karel
2000-03-07Protects you from coredumps if you do eg. str::int4 where str is a textBruce Momjian
field. cf. Tom Lane's <19021.950544016@sss.pgh.pa.us> 14 Feb hackers message. Cheers, Patrick Welche
2000-03-07Sorting for the inet data type randomly returns the wrong resultBruce Momjian
when you have networks with the same prefix, but different netmasks. This is due to the fact that occassionally there is random (uninitialized?) data in the extra bits past the point where the netmask cares about them. ie (real data from a real live database): 10.0/10 == 00001010.00100000.00100000.00011000 10.0/11 == 00001010.00000000.00000000.00000000 ^ Bad data, normally never seen The v4bitncmp() function was only taking one bit length argument so it would determine that the networks were different, even though they really aren't (and the netmask test wouldn't be used). This ONLY happens if the tuple with the longer bit length is used as the ip_bits() for the v4bitncmp call AND there happens to be junk data in place in the shorter tuple. Odd and random, but I saw it happen a couple times so... Ryan Mooney
2000-02-27Reactivated LZTEXT data type and changed rule plan- and qual-stringsJan Wieck
into lztext. Jan
2000-02-27Minor improvements in regprocout() and oidvectortypes().Tom Lane
2000-02-26Add date and time datatype handling to convert_to_scalar. (I was waitingTom Lane
for Thomas to do the datetime consolidation before touching this, but it's done now...)
2000-02-26Change rule dumper to produce reasonable output for casts that assignTom Lane
a specific length or precision, such as foo::char(8). Remove erroneous removal of user-written casts at the top level of a SELECT target item.
2000-02-24Add numeric <-> int8 and numeric <-> int2 conversion functions, as wellTom Lane
as a unary minus operator for numeric. Now that long numeric constants will get converted to NUMERIC in early parsing, it's essential to have numeric->int8 conversion to avoid 'can't convert' errors on undecorated int8 constants. Threw in the rest for completeness while I was in the area. I did not force an initdb for this, since the system will still run without the new pg_proc/pg_operator entries. Possibly I should've.
2000-02-24int8in failed to detect overflow; it really should.Tom Lane
2000-02-21Quick hack solution so that pg_dump of views works. Needs repair afterTom Lane
Thomas gets back, but better this than nonfunctional pg_dump in the beta.
2000-02-21Oops, commited a test version of this file by accident. Revert.Tom Lane
2000-02-21Change parse-time representation of float literals (which include oversizeTom Lane
integers) to be strings instead of 'double'. We convert from string form to internal representation only after type resolution has determined the correct type for the constant. This eliminates loss-of-precision worries and gets rid of the change in behavior seen at 17 digits with the previous kluge.
2000-02-21Clean up some really grotty coding in catcache.c, improve hashingTom Lane
performance in catcache lookups.
2000-02-20Create a new expression node type RelabelType, which exists solely toTom Lane
represent the result of a binary-compatible type coercion. At runtime it just evaluates its argument --- but during type resolution, exprType will pick up the output type of the RelabelType node instead of the type of the argument. This solves some longstanding problems with dropped type coercions, an example being 'select now()::abstime::int4' which used to produce date-formatted output, not an integer, because the coercion to int4 was dropped on the floor.
2000-02-18Implement reindex commandHiroshi Inoue
2000-02-17Finish repairing 6.5's problems with r-tree indexes: create appropriateTom Lane
selectivity functions and make the r-tree operators use them. The estimation functions themselves are just stubs, unfortunately, but perhaps someday someone will make them compute realistic estimates. Change pg_am so that the optimizer can reliably tell the difference between ordered and unordered indexes --- before it would think that an r-tree index can be scanned in '<<' order, which is not right AFAIK. Repair broken negator links for network_sup and related ops. Initdb forced. This might be my last initdb force for 7.0 ... hope so anyway ...
2000-02-16All regression tests pass except for rules.sql (unrelated).Thomas G. Lockhart
Implement "date/time grand unification". Transform datetime and timespan into timestamp and interval. Deprecate datetime and timespan, though translate to new types in gram.y. Transform all datetime and timespan catalog entries into new types. Make "INTERVAL" reserved word allowed as a column identifier in gram.y. Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility routines for all date/time types. date.{h,c} now deals with date, time types. timestamp.{h,c} now deals with timestamp, interval types. nabstime.{h,c} now deals with abstime, reltime, tinterval types. Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16Implement "date/time grand unification".Thomas G. Lockhart
Transform datetime and timespan into timestamp and interval. Deprecate datetime and timespan, though translate to new types in gram.y. Transform all datetime and timespan catalog entries into new types. Make "INTERVAL" reserved word allowed as a column identifier in gram.y. Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility routines for all date/time types. date.{h,c} now deals with date, time types. timestamp.{h,c} now deals with timestamp, interval types. nabstime.{h,c} now deals with abstime, reltime, tinterval types. Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16Make eqsel produce better results for boolean columns,Tom Lane
and make scalarltsel a little more forgiving at the boundaries of the known range of a column value.
2000-02-15New cost model for planning, incorporating a penalty for random pageTom Lane
accesses versus sequential accesses, a (very crude) estimate of the effects of caching on random page accesses, and cost to evaluate WHERE- clause expressions. Export critical parameters for this model as SET variables. Also, create SET variables for the planner's enable flags (enable_seqscan, enable_indexscan, etc) so that these can be controlled more conveniently than via PGOPTIONS. Planner now estimates both startup cost (cost before retrieving first tuple) and total cost of each path, so it can optimize queries with LIMIT on a reasonable basis by interpolating between these costs. Same facility is a win for EXISTS(...) subqueries and some other cases. Redesign pathkey representation to achieve a major speedup in planning (I saw as much as 5X on a 10-way join); also minor changes in planner to reduce memory consumption by recycling discarded Path nodes and not constructing unnecessary lists. Minor cleanups to display more-plausible costs in some cases in EXPLAIN output. Initdb forced by change in interface to index cost estimation functions.
2000-02-15Repair bogus rule display of attr lists.Tom Lane
2000-02-15Carry column aliases from the parser frontend. Enables queries likeThomas G. Lockhart
SELECT a FROM t1 tx (a); Allow join syntax, including queries like SELECT * FROM t1 NATURAL JOIN t2; Update RTE structure to hold column aliases in an Attr structure.
2000-02-15Recognize special case of POSIX time zone: "GMT+8" and "GMT-8".Thomas G. Lockhart
Still needs to be done for the general case: "tz+/-#" where tz is a 3 char string. This will probably involve moving code around to other places.
2000-02-10Add btree indexing of boolean valuesBruce Momjian
Don Baccus
2000-02-08 I'm sending patch with new version of to_char numbers formatting.Bruce Momjian
The PostgreSQL's to_char() is very compatible with Oracle's to_char now. I hope that to_char's 3000 rows of source is without bugs, but will good if anyone test it, for me it works very well :-) Karel ---------------------------------------------------------------------- Karel Zak <zakkr@zf.jcu.cz> http://home.zf.jcu.cz/~zakkr/
2000-02-07Added complete MATCH <unspecified> support contributed by Don Baccus.Jan Wieck
Jan
2000-01-26Add include for float.h.Bruce Momjian
2000-01-26Add:Bruce Momjian
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc to all files copyright Regents of Berkeley. Man, that's a lot of files.
2000-01-25 as attache of this mail is patch (to the main tree) with to_char'sBruce Momjian
family functions. Contain: conversion from a datetype to formatted text: to_char( datetime, text) to_char( timestamp, text) to_char( int4, text) to_char( int8, text) to_char( float4, text) to_char( float8, text) to_char( numeric, text) vice versa: to_date ( text, text) to_datetime ( text, text) to_timestamp ( text, text) to_number ( text, text) (convert to numeric) PostgreSQL to_char is very compatible with Oracle's to_char(), but not total exactly (now). Small differentions are in number formating. It will fix in next to_char() version. ! If will this patch aplly to the main tree, must be delete the current to_char version in contrib (directory "dateformat" and note in contrib's README), this patch not erase it (sorry Bruce). The patch patching files: doc/src/sgml/func.sgml ^^^^^^^^ Hmm, I'm not sure if my English... :( Check it anyone (volunteer)? Thomas, it is right? SGML is not my primary lang and compile the current PG docs tree is very happy job (hard variables setting in docs/sgml/Makefile --> HSTYLE= /home/users/t/thomas/.... :-) What add any definition to global configure.in and set Makefiles in docs tree via ./configure? src/backend/utils/adt/Makefile src/backend/utils/adt/formatting.c src/include/catalog/pg_proc.h src/include/utils/formatting.h Karel Zak <zakkr@zf.jcu.cz> http://home.zf.jcu.cz/~zakkr/
2000-01-24First cut at making useful selectivity estimates for range queriesTom Lane
(ie, WHERE x > lowbound AND x < highbound). It's not very bright yet but it does something useful. Also, rename intltsel/intgtsel to scalarltsel/scalargtsel to reflect usage better. Extend convert_to_scalar to do something a little bit useful with string data types. Still need to make it do something with date/time datatypes, but I'll wait for Thomas's datetime unification dust to settle first. Eventually the routine ought not have any type-specific knowledge at all; it ought to be calling a type-dependent routine found via a pg_type column; but that's a task for another day.
2000-01-24Remove Ops parameter from STATRELID cache lookup, for Tom Lane andBruce Momjian
optimizer.
2000-01-23char_length()/octet_length for char() type now returns length ofTatsuo Ishii
the charcter including trailing blanks.
2000-01-23Replace SearchSysCacheGetAttribute with SysCacheGetAttr, which fetchesTom Lane
an attribute of a tuple previously fetched with SearchSysCacheTuple. This avoids a lot of redundant cache lookups, particularly in selfuncs.c. Also, remove SearchSysCacheStruct, which was unused and grotty.
2000-01-23First cut at unifying regular selectivity estimation with indexscanTom Lane
selectivity estimation wasn't right. This is better...
2000-01-22Revise handling of index-type-specific indexscan cost estimation, perTom Lane
pghackers discussion of 5-Jan-2000. The amopselect and amopnpages estimators are gone, and in their place is a per-AM amcostestimate procedure (linked to from pg_am, not pg_amop).
2000-01-22added ALTER TABLE DROP COLUMN, early versionPeter Eisentraut
2000-01-20Fix bugs in NUMERIC ceil() and floor() functions. ceil(0) returned 1,Tom Lane
and both would insert random junk digits if given an input that was an exact multiple of 10.
2000-01-19Removed MBFLAGS from makefiles since it's now done in include/config.h.Peter Eisentraut
2000-01-18numeric_in accepts exponents; numeric to int4 rounds; float4/8 to numericTom Lane
is considerably more robust and accurate than it used to be. Also, get rid of numeric's private allocation freelist, which is no longer a win since Jan rewrote palloc.
2000-01-17setheapoverride() is history. Uses replaced with CommandCounterIncrement()Tom Lane
where necessary --- several of them didn't really need it, though. tqual-checking macros simplified accordingly.