summaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_oper.c
AgeCommit message (Collapse)Author
2001-01-24Change Copyright from PostgreSQL, Inc to PostgreSQL Global Development Group.Bruce Momjian
2000-12-15Make algorithm for resolving UNKNOWN function/operator inputs beTom Lane
insensitive to the order of arguments. Per pghackers discussion 12/10/00.
2000-11-16Change SearchSysCache coding conventions so that a reference count isTom Lane
maintained for each cache entry. A cache entry will not be freed until the matching ReleaseSysCache call has been executed. This eliminates worries about cache entries getting dropped while still in use. See my posting to pg-hackers of even date for more info.
2000-11-11Fix bug in recent improvement to type resolution code. Forgot to retainThomas G. Lockhart
"best choice" type category when resolving UNKNOWN function and operator arguments. Thanks to Tom Lane for finding test case.
2000-11-07Enable fallback to string type when argument(s) are of UNKNOWN type.Thomas G. Lockhart
Same code exactly as for function resolution. An obvious example is for select '1' = '01'; which used to throw an error and which now resolves to two text strings.
2000-05-28First round of changes for new fmgr interface. fmgr itself and theTom Lane
key call sites are changed, but most called functions are still oldstyle. An exception is that the PL managers are updated (so, for example, NULL handling now behaves as expected in plperl and plpgsql functions). NOTE initdb is forced due to added column in pg_proc.
2000-04-12Ye-old pgindent run. Same 4-space tabs.Bruce Momjian
2000-03-19Another go-round with resolution of ambiguous functions and operators.Tom Lane
In function parsing, try for an actual function of the given name and input types before trying to interpret the function call as a type coercion request, rather than after. Before, a function that had the same name as a type and operated on a binary-compatible type wouldn't get invoked. Also, cross-pollinate between func_select_candidates and oper_select_candidates to ensure that they use as nearly the same resolution rules as possible. A few other minor code cleanups too.
2000-03-18Improve error message wording in unary_op_error() --- suggest thatTom Lane
problem could be lack of parentheses. This addresses cases like X UserOp UserOp Y, which will be parsed as (X UserOp) UserOp Y, whereas what likely was wanted was X UserOp (UserOp Y).
2000-03-11Further fixes for bogus list-slinging, scribbling on input, etc in typeTom Lane
coercion code. I'm beginning to wonder why we have separate candidate selection routines for functions, operators, and aggregates --- shouldn't this code all be unified? But meanwhile, SELECT 'a' LIKE 'a'; finally works; the code for dealing with unknown input types for operators was pretty busted.
2000-02-27Fix poorly worded error messages for unary operator type resolutionTom Lane
failures. Fix some outright bugs too, including a reference to uninitialized memory that would cause failures like this one: select -('1234567890.1234567'::text); ERROR: Unable to locate type oid 2139062143 in catalog
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.
1999-12-12any_ordering_op()'s argument should be declared Oid not int.Tom Lane
1999-11-22Add system indexes to match all caches.Bruce Momjian
Make all system indexes unique. Make all cache loads use system indexes. Rename *rel to *relid in inheritance tables. Rename cache names to be clearer.
1999-09-18Mega-commit to make heap_open/heap_openr/heap_close take anTom Lane
additional argument specifying the kind of lock to acquire/release (or 'NoLock' to do no lock processing). Ensure that all relations are locked with some appropriate lock level before being examined --- this ensures that relevant shared-inval messages have been processed and should prevent problems caused by concurrent VACUUM. Fix several bugs having to do with mismatched increment/decrement of relation ref count and mismatched heap_open/close (which amounts to the same thing). A bogus ref count on a relation doesn't matter much *unless* a SI Inval message happens to arrive at the wrong time, which is probably why we got away with this sloppiness for so long. Repair missing grab of AccessExclusiveLock in DROP TABLE, ALTER/RENAME TABLE, etc, as noted by Hiroshi. Recommend 'make clean all' after pulling this update; I modified the Relation struct layout slightly. Will post further discussion to pghackers list shortly.
1999-08-26Clean up some bugs in oper_select_candidate(), notably theTom Lane
last loop which would return the *first* surviving-to-that-point candidate regardless of which one actually passed the test. This was producing such curious results as 'oid % 2' getting translated to 'int2(oid) % 2'.
1999-08-23Remove bogus code in oper_exact --- if it didn't find an exactTom Lane
match then it tried for a self-commutative operator with the reversed input data types. This is pretty silly; there could never be such an operator, except maybe in binary-compatible-type scenarios, and we have oper_inexact for that. Besides which, the oprsanity regress test would complain about such an operator. Remove nonfunctional code and simplify routine calling convention accordingly.
1999-07-17 Move some system includes into c.h, and remove duplicates.Bruce Momjian
1999-07-16Final cleanup.Bruce Momjian
1999-07-15Remove unused #includes in *.c files.Bruce Momjian
1999-07-15Clean up #include in /include directory. Add scripts for checking includes.Bruce Momjian
1999-05-25pgindent run over code.Bruce Momjian
1999-05-10Change error messages to oids come out as %u and not %d. Change has noBruce Momjian
real affect now.
1998-12-13Fix up error messages when looking up functions and operators to notThomas G. Lockhart
make the sometimes misleading claim that more than one candidate was identified. Now say "Unable to identify...".
1998-12-08Define routines and catalog entries for string min()/max() functions.Thomas G. Lockhart
Extend new type coersion techniques to aggregates. Clean up a few elog() messages.
1998-11-27New HeapTuple structure/interface.Vadim B. Mikheev
1998-10-08Make functions static or ifdef NOT_USED. Prevent pg_version creation.Bruce Momjian
1998-09-25Clean up code in analyze.c for SERIAL data type.Thomas G. Lockhart
Remove _all_ PARSEDEBUG print statements.
1998-09-16Use oper_select_candidate() for unary operatorsThomas G. Lockhart
rather than func_select_candidate(). Fix oper_select_candidate() to work with a single operator argument. Repair left operator checking for null return from candidate list.
1998-09-01OK, folks, here is the pgindent output.Bruce Momjian
1998-09-01Renaming cleanup, no pgindent yet.Bruce Momjian
1998-08-19heap_fetch requires buffer pointer, must be released; heap_getnextBruce Momjian
no longer returns buffer pointer, can be gotten from scan; descriptor; bootstrap can create multi-key indexes; pg_procname index now is multi-key index; oidint2, oidint4, oidname are gone (must be removed from regression tests); use System Cache rather than sequential scan in many places; heap_modifytuple no longer takes buffer parameter; remove unused buffer parameter in a few other functions; oid8 is not index-able; remove some use of single-character variable names; cleanup Buffer variables usage and scan descriptor looping; cleaned up allocation and freeing of tuples; 18k lines of diff;
1998-07-27Use Snapshot in heap access methods.Vadim B. Mikheev
1998-06-15Remove un-needed braces around single statements.Bruce Momjian
1998-05-29Do type conversion to match columns in UNION clauses.Thomas G. Lockhart
Currently force the type to match the _first_ select in the union. Move oper_select_candidate() from parse_func.c to parse_oper.c. Throw error inside of oper_inexact() if no match for binary operators. Check more carefully that types can be coerced even if there is only one candidate operator in oper_inexact(). Fix up error messages for more uniform look. Remove unused code. Fix up comments.
1998-05-09Add capabilities for automatic type conversion.Thomas G. Lockhart
1998-04-27This patch...Bruce Momjian
1. Removes the unnecessary "#define AbcRegProcedure 123"'s from pg_proc.h. 2. Changes those #defines to use the names already defined in fmgr.h. 3. Forces the make of fmgr.h in backend/Makefile instead of having it made as a dependency in access/common/Makefile *hack*hack*hack* 4. Rearranged the #includes to a less helter-skelter arrangement, also changing <file.h> to "file.h" to signify a non-system header. 5. Removed "pg_proc.h" from files where its only purpose was for the #defines removed in item #1. 6. Added "fmgr.h" to each file changed for completeness sake. Turns out that #6 was not necessary for some files because fmgr.h was being included in a roundabout way SIX levels deep by the first include. "access/genam.h" ->"access/relscan.h" ->"utils/rel.h" ->"access/strat.h" ->"access/skey.h" ->"fmgr.h" So adding fmgr.h really didn't add anything to the compile, hopefully just made it clearer to the programmer. S Darren.
1998-02-26pgindent run before 6.3 release, with Thomas' requested changes.Bruce Momjian
1998-01-20Parser cleanup.Bruce Momjian
Add lock to i386 asm.
1998-01-16New pg_attribute.atttypmod for type-specific information likeBruce Momjian
varchar length. Cleans up code so attlen is always length. Removed varchar() hack added earlier. Will fix bug in selecting varchar() fields, and varchar() can be variable length.
1998-01-15Fix:Marc G. Fournier
nodeAgg.c: WARN -> NOTICE for elog parse_oper.c: was created after patch for fmgr_info, so function call wrong scan.c: regenerated for i386_solaris using flex 2.5.4 gethostname.c: required prototype for gethostname() function config.h.in: create prototype for isinfo() function isinf.c: "fake" isinf() under i386_solaris using fpclass() call...
1998-01-05Change elog(WARN) to elog(ERROR) and elog(ABORT).Bruce Momjian
1998-01-01Change precedence for boolean operators to match expected behavior.Thomas G. Lockhart
Change NOTICE/NOTICE/NOTICE/WARN elog messages to a single message with a few newline/tab breaks embedded in the string. Much cleaner I hope.
1997-11-26Make parser functions static where possible.Bruce Momjian
1997-11-26Cleanup up include files.Bruce Momjian
1997-11-25Break parser functions into smaller files, group together.Bruce Momjian