aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_expr.c
Commit message (Collapse)AuthorAge
...
* Fix passing of atttypmod that Tom found.Bruce Momjian2000-01-16
|
* Clean up handling of explicit NULL constants. Cases likeTom Lane1999-12-24
| | | | | | | | | | | | | SELECT null::text; SELECT int4fac(null); work as expected now. In some cases a NULL must be surrounded by parentheses: SELECT 2 + null; fails SELECT 2 + (null); OK This is a grammatical ambiguity that seems difficult to avoid. Other than that, NULLs seem to behave about like you'd expect. The internal implementation is that NULL constants are typed as UNKNOWN (like untyped string constants) until the parser can deduce the right type.
* Reverse out nextval patch.Bruce Momjian1999-12-17
|
* >Turning nextval and currval into keywords is not an acceptable way toBruce Momjian1999-12-16
| | | | | | | | | | | | | | | | | | >go about this. That will risk breaking existing applications that use >those names as column names. > >It should actually almost work to write sq.nextval as things stand, >because Postgres has for a long time considered table.function and >function(table) to be interchangeable notations for certain kinds of >functions. nextval doesn't seem to be one of that kind of function, >at the moment. I'd suggest leaving the grammar as it was, and taking a >look at ParseFuncOrColumn in parse_func.c to see if you can't persuade >it to accept the sequence functions in that style. OK, good point. I tried to implement it somewhere else and ended up extending transformAttr. Attached you'll find the patch. Jeroen van Vianen
* Teach grammar and parser about aggregate(DISTINCT ...). No implementationTom Lane1999-12-10
| | | | | | | yet, but at least we can give a better error message: regression=> select count(distinct f1) from int4_tbl; ERROR: aggregate(DISTINCT ...) is not implemented yet instead of 'parser: parse error at or near distinct'.
* Implement subselects in target lists. Also, relax requirement thatTom Lane1999-11-15
| | | | | | | | | | | | | subselects can only appear on the righthand side of a binary operator. That's still true for quantified predicates like x = ANY (SELECT ...), but a subselect that delivers a single result can now appear anywhere in an expression. This is implemented by changing EXPR_SUBLINK sublinks to represent just the (SELECT ...) expression, without any 'left hand side' or combining operator --- so they're now more like EXISTS_SUBLINK. To handle the case of '(x, y, z) = (SELECT ...)', I added a new sublink type MULTIEXPR_SUBLINK, which acts just like EXPR_SUBLINK used to. But the grammar will only generate one for a multiple-left-hand-side row expression.
* Allow CASE statement to contain *only* untyped result clauses or nulls.Thomas G. Lockhart1999-09-13
| | | | | | | Almost worked before, but forgot one place to check. Reported by Tatsuo Ishii. Still does not do the right thing if inserting into a non-string target column. Should look for a type coersion later, but doesn't.
* Revise implementation of SubLinks so that there is a consistent,Tom Lane1999-08-25
| | | | | | | | | documented intepretation of the lefthand and oper fields. Fix a number of obscure problems while at it --- for example, the old code failed if the parser decided to insert a type-coercion function just below the operator of a SubLink. CAUTION: this will break stored rules that contain subplans. You may need to initdb.
* Revise parse_coerce() to handle coercion of int and floatTom Lane1999-08-05
| | | | | constants, not only string constants, at parse time. Get rid of parser_typecast2(), which is bogus and redundant...
* Rewrite parser's handling of INSERT ... SELECT so that processingTom Lane1999-07-19
| | | | | | | | | of the SELECT part of the statement is just like a plain SELECT. All INSERT-specific processing happens after the SELECT parsing is done. This eliminates many problems, e.g. INSERT ... SELECT ... GROUP BY using the wrong column labels. Ensure that DEFAULT clauses are coerced to the target column type, whether or not stored clause produces the right type. Substantial cleanup of parser's array support.
* Move some system includes into c.h, and remove duplicates.Bruce Momjian1999-07-17
|
* Support subscripts on bare column names.Tom Lane1999-07-16
|
* Final cleanup.Bruce Momjian1999-07-16
|
* Remove unused #includes in *.c files.Bruce Momjian1999-07-15
|
* Ignore resjunk targetlist entries when matching arguments toTom Lane1999-07-11
| | | | | a SubLink with the subplan's targetlist. This fixes a problem seen with, for example, a subselect that uses GROUP BY.
* Make functions static or NOT_USED as appropriate.Bruce Momjian1999-05-26
|
* pgindent run over code.Bruce Momjian1999-05-25
|
* Fix for DEFAULT ''.Bruce Momjian1999-05-22
|
* Add Aggref and ArrayRef to the set of node types that transformExprTom Lane1999-05-18
| | | | | | will pass through rather than spitting up. This is necessary to handle cases where coerce_type causes a subexpression to be retransformed, as in SELECT count(*) + 1.0 FROM table
* Rip out QueryTreeList structure, root and branch. QuerytreeTom Lane1999-05-13
| | | | | | | | | | lists are now plain old garden-variety Lists, allocated with palloc, rather than specialized expansible-array data allocated with malloc. This substantially simplifies their handling and eliminates several sources of memory leakage. Several basic types of erroneous queries (syntax error, attempt to insert a duplicate key into a unique index) now demonstrably leak zero bytes per query.
* Handle conversion of floating point constants to internal strings.Thomas G. Lockhart1999-05-12
|
* Add disk space message to "can not extend" message.Bruce Momjian1999-04-23
|
* Fix problems seen when result of a subselect was used in anTom Lane1999-04-19
| | | | | | | expression context (ie, not at the top level of a WHERE clause). Examples like this one work now: SELECT name, value FROM t1 as touter WHERE (value/(SELECT AVG(value) FROM t1 WHERE name = touter.name)) > 0.75;
* After transforming a CASE expr with a default argument,Tom Lane1999-04-18
| | | | | | | | delete the default argument from the node. This prevents the executor from spitting up on the untransformed argument expression. Typical failure was: select (case f1 when 'val' then 'subst' else f1 end) from t1; ERROR: copyObject: don't know how to copy 704
* Cleanup of source files where 'return' or 'var =' is alone on a line.Bruce Momjian1999-02-03
|
* Rename Aggreg to Aggref.Bruce Momjian1999-01-24
|
* Improve CASE statement support.Thomas G. Lockhart1998-12-13
| | | | Try to label CASE columns for a SELECT if not specified with an AS clause.
* Implement CASE expression.Thomas G. Lockhart1998-12-04
|
* the following little patch adds array references to queryBruce Momjian1998-10-02
| | | | | | | | | | | | | parameters. With it applied a function like CREATE FUNCTION getname(oid8, int4) RETURNS name AS 'SELECT typname FROM pg_type WHERE oid = $1[$2]' LANGUAGE 'sql'; is possible. Mainly I need this to enable array references in expressions for PL/pgSQL. Complete regression test ran O.K. Jan
* Fix for constbyval.Bruce Momjian1998-10-01
|
* OK, folks, here is the pgindent output.Bruce Momjian1998-09-01
|
* Renaming cleanup, no pgindent yet.Bruce Momjian1998-09-01
|
* Change atttypmod from int16 to int32, for Thomas.Bruce Momjian1998-07-12
|
* Allow floating point constants for "def_arg" numeric arguments.Thomas G. Lockhart1998-07-08
| | | | | | Used in the generic "CREATE xxx" parsing. Do some automatic type conversion for inserts from other columns. Previous trouble with "resjunk" regression test remains for now.
* Remove un-needed braces around single statements.Bruce Momjian1998-06-15
|
* Do type conversion to match columns in UNION clauses.Thomas G. Lockhart1998-05-29
| | | | | | | | | | | 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.
* Add capabilities for automatic type conversion.Thomas G. Lockhart1998-05-09
|
* Re-apply Darren's char2-16 removal code.Bruce Momjian1998-04-26
|
* Back out char2-char16 removal. Add later.Bruce Momjian1998-04-07
|
* The following uuencoded, gzip'd file will ...Bruce Momjian1998-03-30
| | | | | | | | | | | 1. Remove the char2, char4, char8 and char16 types from postgresql 2. Change references of char16 to name in the regression tests. 3. Rename the char16.sql regression test to name.sql. 4. Modify the regression test scripts and outputs to match up. Might require new regression.{SYSTEM} files... Darren King
* BETWEEN and LIKE patch from ThomasBruce Momjian1998-03-26
|
* In '(a,b,...) Op [ANY|ALL] (SubSelect)' Op is restricted toVadim B. Mikheev1998-02-27
| | | | '=' and '<>'.
* pgindent run before 6.3 release, with Thomas' requested changes.Bruce Momjian1998-02-26
|
* gram.y: ALL_SUBLINK type was returned for x Op (subquery).Vadim B. Mikheev1998-02-13
| | | | parse_expr.c: only Op of bool type are supported currently...
* Fix for EXISTS.Vadim B. Mikheev1998-02-13
|
* Pass around typmod as int16.Bruce Momjian1998-02-10
|
* atttypmod now -1.Bruce Momjian1998-02-07
|
* FIx hasSubLinks for Vadim.Bruce Momjian1998-02-06
|
* Fix for varchar functions, and indextyple j-1 fix.Bruce Momjian1998-02-05
|
* Parser cleanup for expr and subqueries.Bruce Momjian1998-02-03
|