summaryrefslogtreecommitdiff
path: root/src/include/parser
Commit message (Collapse)AuthorAgeFilesLines
* Update obsolete comments.Tom Lane2000-08-291-4/+2
|
* First pass at integrating BIT and BIT VARYING code from Adriaan Joubert.Tom Lane2000-08-211-3/+8
| | | | | | | Update functions to new-style fmgr, make BIT and VARBIT be binary- equivalent, add entries to allow these types to be btree indexed, correct a few bugs. BIT/VARBIT are now toastable, too. NOTE: initdb forced due to catalog updates.
* Make functional indexes accept binary-compatible functions, for exampleTom Lane2000-08-201-1/+5
| | | | CREATE INDEX fooi ON foo (lower(f1)) where f1 is varchar rather than text.
* Remove 'func_tlist' from Func expression nodes, likewise 'param_tlist'Tom Lane2000-08-081-3/+1
| | | | | | | | from Param nodes, per discussion a few days ago on pghackers. Add new expression node type FieldSelect that implements the functionality where it's actually needed. Clean up some other unused fields in Func nodes as well. NOTE: initdb forced due to change in stored expression trees for rules.
* Clean up #include's.Bruce Momjian2000-06-151-2/+1
|
* Rename rule CURRENT to OLD in source tree. Add mapping for backwardBruce Momjian2000-06-121-2/+2
| | | | compatiblity with old rules.
* Inheritance overhaul by Chris Bitmead <chris@bitmead.com>Bruce Momjian2000-06-091-2/+2
|
* Mark functions as static and ifdef NOT_USED as appropriate.Bruce Momjian2000-06-082-8/+2
|
* New warning code about auto-created range table entries.Bruce Momjian2000-06-031-1/+2
|
* Repair list-vs-node confusion that resulted in failure for INNER JOIN ON.Tom Lane2000-05-121-5/+6
| | | | | Make it behave correctly when there are more than two tables being joined, also. Update regression test expected outputs.
* Ye-old pgindent run. Same 4-space tabs.Bruce Momjian2000-04-128-39/+39
|
* Reverse out BYTEA type coersion.Bruce Momjian2000-03-201-8/+1
|
* Add compatiblity information for bytea.Bruce Momjian2000-03-201-1/+8
|
* Add safety check on expression nesting depth. Default value is set byTom Lane2000-03-171-1/+4
| | | | a config.h #define, and the runtime value can be controlled via SET.
* Turns out that Mazurkiewicz's gripe about 'function inheritance' isTom Lane2000-03-162-2/+6
| | | | | | actually a type-coercion problem. If you have a function defined on class A, and class B inherits from A, then the function ought to work on class B as well --- but coerce_type didn't know that. Now it does.
* Implement column aliases on views "CREATE VIEW name (collist)".Thomas G. Lockhart2000-03-141-1/+4
| | | | | | | | | | | | | | | | | | 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.
* Fix exprTypmod to recognize length-coercion function expressions,Tom Lane2000-02-261-1/+2
| | | | | | | | | | | such as bpchar(char_expression, N), and pull out the attrtypmod that the function is coercing to. This allows correct deduction of the column type in examples such as CREATE VIEW v AS SELECT f1::char(8) FROM tbl; Formerly we labeled v's column as char-of-unknown-length not char(8). Also, this change causes the parser not to insert a redundant length coercion function if the user has explicitly casted an INSERT or UPDATE expression to the right length.
* Implement "date/time grand unification".Thomas G. Lockhart2000-02-161-14/+11
| | | | | | | | | | | | | 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.
* Carry column aliases from the parser frontend. Enables queries likeThomas G. Lockhart2000-02-154-18/+27
| | | | | | | 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.
* Redesign DISTINCT ON as discussed in pgsql-sql 1/25/00: syntax is nowTom Lane2000-01-271-2/+4
| | | | | | | | | | | | | SELECT DISTINCT ON (expr [, expr ...]) targetlist ... and there is a check to make sure that the user didn't specify an ORDER BY that's incompatible with the DISTINCT operation. Reimplement nodeUnique and nodeGroup to use the proper datatype-specific equality function for each column being compared --- they used to do bitwise comparisons or convert the data to text strings and strcmp(). (To add insult to injury, they'd look up the conversion functions once for each tuple...) Parse/plan representation of DISTINCT is now a list of SortClause nodes. initdb forced by querytree change...
* Add:Bruce Momjian2000-01-2616-32/+48
| | | | | | * Portions Copyright (c) 1996-2000, PostgreSQL, Inc to all files copyright Regents of Berkeley. Man, that's a lot of files.
* Clean up longstanding gcc warnings by adding missing externTom Lane2000-01-201-1/+3
| | | | declarations.
* Pass atttypmod to CoerceTargetExpr, so that it can pass it on toTom Lane2000-01-171-2/+2
| | | | | coerce_type, so that the right things happen when coercing a previously- unknown constant to a destination data type.
* Create a new parsetree node type, TypeCast, so that transformation ofTom Lane2000-01-171-3/+5
| | | | | | SQL cast constructs can be performed during expression transformation instead of during parsing. This allows constructs like x::numeric(9,2) and x::int2::float8 to behave as one would expect.
* Make number of args to a function configurable.Bruce Momjian2000-01-101-4/+1
|
* any_ordering_op()'s argument should be declared Oid not int.Tom Lane1999-12-121-2/+2
|
* Teach grammar and parser about aggregate(DISTINCT ...). No implementationTom Lane1999-12-102-5/+8
| | | | | | | 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'.
* Eliminate local inefficiencies in updateTargetListEntry, make_var, andTom Lane1999-11-011-3/+5
| | | | make_const --- don't repeat cache searches that aren't needed.
* Fix planner and rewriter to follow SQL semantics for tables that areTom Lane1999-10-071-2/+3
| | | | | | | | | | | mentioned in FROM but not elsewhere in the query: such tables should be joined over anyway. Aside from being more standards-compliant, this allows removal of some very ugly hacks for COUNT(*) processing. Also, allow HAVING clause without aggregate functions, since SQL does. Clean up CREATE RULE statement-list syntax the same way Bruce just fixed the main stmtmulti production. CAUTION: addition of a field to RangeTblEntry nodes breaks stored rules; you will have to initdb if you have any rules.
* Remove bogus code in oper_exact --- if it didn't find an exactTom Lane1999-08-232-5/+4
| | | | | | | | | 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.
* Major revision of sort-node handling: push knowledge of queryTom Lane1999-08-212-6/+11
| | | | | | | | | | | | | sort order down into planner, instead of handling it only at the very top level of the planner. This fixes many things. An explicit sort is now avoided if there is a cheaper alternative (typically an indexscan) not only for ORDER BY, but also for the internal sort of GROUP BY. It works even when there is no other reason (such as a WHERE condition) to consider the indexscan. It works for indexes on functions. It works for indexes on functions, backwards. It's just so cool... CAUTION: I have changed the representation of SortClause nodes, therefore THIS UPDATE BREAKS STORED RULES. You will need to initdb.
* Revise parse_coerce() to handle coercion of int and floatTom Lane1999-08-052-4/+4
| | | | | 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-195-38/+31
| | | | | | | | | 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.
* More cleanupBruce Momjian1999-07-161-2/+2
|
* Change #include's to use <> and "" as appropriate.Bruce Momjian1999-07-159-19/+19
|
* Clean up #include in /include directory. Add scripts for checking includes.Bruce Momjian1999-07-1510-41/+16
|
* Cleanup of /include #include's, for 6.6 only.Bruce Momjian1999-07-141-1/+4
|
* Remove S*I comments from Stephan.Bruce Momjian1999-07-131-2/+1
|
* Defend against function calls with more than 8 arguments (codeTom Lane1999-06-171-3/+6
| | | | | used to overrun its fixed-size arrays before detecting error; not cool). Also, replace uses of magic constant '8' with 'MAXFARGS'.
* Avoid redundant SysCache searches in coerce_type, for anotherTom Lane1999-05-291-3/+3
| | | | few percent speedup in INSERT...
* Make functions static or NOT_USED as appropriate.Bruce Momjian1999-05-262-5/+2
|
* Another pgindent run. Sorry folks.Bruce Momjian1999-05-252-4/+4
|
* pgindent run over code.Bruce Momjian1999-05-254-13/+12
|
* Fix for DEFAULT ''.Bruce Momjian1999-05-221-2/+3
|
* Change resjunk to a boolean.Bruce Momjian1999-05-171-3/+3
|
* Rip out QueryTreeList structure, root and branch. QuerytreeTom Lane1999-05-133-11/+5
| | | | | | | | | | 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.
* Make type 'regproc' binary-compatible with int4 and oid,Tom Lane1999-03-101-3/+6
| | | | | so that it has some SQL operators available. It's difficult to write automated tests of a data type that you haven't even got == for...
* Add parameters to function calls to pass back table qualifications.Thomas G. Lockhart1999-02-231-3/+3
|
* Change my-function-name-- to my_function_name, and optimizer renames.Bruce Momjian1999-02-137-15/+15
|
* Remove equivalence between datetime and float8. Led to nothin' but trouble.Thomas G. Lockhart1999-02-131-3/+4
|