aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser
Commit message (Collapse)AuthorAge
...
* Implement DROP SCHEMA. It lacks support for dropping conversions andTom Lane2002-07-18
| | | | | operator classes, both of which are schema-local and so should really be droppable.
* The attached patch (against HEAD) implementsBruce Momjian2002-07-18
| | | | | | | | | | | | | | | COPY x (a,d,c,b) from stdin; COPY x (a,c) to stdout; as well as the corresponding changes to pg_dump to use the new functionality. This functionality is not available when using the BINARY option. If a column is not specified in the COPY FROM statement, its default values will be used. In addition to this functionality, I tweaked a couple of the error messages emitted by the new COPY <options> checks. Brent Verner
* Finished the Between patch Christopher started.Bruce Momjian2002-07-18
| | | | | | | | | | | | Implements between (symmetric / asymmetric) as a node. Executes the left or right expression once, makes a Const out of the resulting Datum and executes the >=, <= portions out of the Const sets. Of course, the parser does a fair amount of preparatory work for this to happen. Rod Taylor
* I have committed many support files for CREATE CONVERSION. DefaultTatsuo Ishii2002-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | conversion procs and conversions are added in initdb. Currently supported conversions are: UTF-8(UNICODE) <--> SQL_ASCII, ISO-8859-1 to 16, EUC_JP, EUC_KR, EUC_CN, EUC_TW, SJIS, BIG5, GBK, GB18030, UHC, JOHAB, TCVN EUC_JP <--> SJIS EUC_TW <--> BIG5 MULE_INTERNAL <--> EUC_JP, SJIS, EUC_TW, BIG5 Note that initial contents of pg_conversion system catalog are created in the initdb process. So doing initdb required is ideal, it's possible to add them to your databases by hand, however. To accomplish this: psql -f your_postgresql_install_path/share/conversion_create.sql your_database So I did not bump up the version in cataversion.h. TODO: Add more conversion procs Add [CASCADE|RESTRICT] to DROP CONVERSION Add tuples to pg_depend Add regression tests Write docs Add SQL99 CONVERT command? -- Tatsuo Ishii
* Add more dependency insertions --- this completes the basic pg_dependTom Lane2002-07-16
| | | | | functionality. Of note: dropping a table that has a SERIAL column defined now drops the associated sequence automatically.
* Add COMMENT ON CONSTRAINT facility (from Rod Taylor's pg_constraint patch).Tom Lane2002-07-14
| | | | | Fix comment.c to not depend on parser token values, per discussion awhile back.
* Second phase of committing Rod Taylor's pg_depend/pg_constraint patch.Tom Lane2002-07-12
| | | | | | | | | | | | pg_relcheck is gone; CHECK, UNIQUE, PRIMARY KEY, and FOREIGN KEY constraints all have real live entries in pg_constraint. pg_depend exists, and RESTRICT/CASCADE options work on most kinds of DROP; however, pg_depend is not yet very well populated with dependencies. (Most of the ones that are present at this point just replace formerly hardwired associations, such as the implicit drop of a relation's pg_type entry when the relation is dropped.) Need to add more logic to create dependency entries, improve pg_dump to dump constraints in place of indexes and triggers, and add some regression tests.
* Add new CREATE CONVERSION/DROP CONVERSION command.Tatsuo Ishii2002-07-11
| | | | | | | This is the first cut toward CREATE CONVERSION/DROP CONVERSION implementaion. The commands can now add/remove tuples to the new pg_conversion system catalog, but that's all. Still need work to make them actually working. Documentations, regression tests also need work.
* Oops, proper initialization for domainTypMod was none at all, not 0.Bruce Momjian2002-07-09
|
* Fix compiler warning:Bruce Momjian2002-07-09
| | | | | | | | int32 domainTypMod = NULL; should be: int32 domainTypMod = 0;
* I've fixed up the way domain constraints (not null and type length)Bruce Momjian2002-07-06
| | | | | | | | | | | are managed as per request. Moved from merging with table attributes to applying themselves during coerce_type() and coerce_type_typmod. Regression tests altered to test the cast() scenarios. Rod Taylor
* Implement the IS DISTINCT FROM operator per SQL99.Thomas G. Lockhart2002-07-04
| | | | | | | | | | | | | | | | Reused the Expr node to hold DISTINCT which strongly resembles the existing OP info. Define DISTINCT_EXPR which strongly resembles the existing OPER_EXPR opType, but with handling for NULLs required by SQL99. We have explicit support for single-element DISTINCT comparisons all the way through to the executor. But, multi-element DISTINCTs are handled by expanding into a comparison tree in gram.y as is done for other row comparisons. Per discussions, it might be desirable to move this into one or more purpose-built nodes to be handled in the backend. Define the optional ROW keyword and token per SQL99. This allows single-element row constructs, which were formerly disallowed due to shift/reduce conflicts with parenthesized a_expr clauses. Define the SQL99 TREAT() function. Currently, use as a synonym for CAST().
* First phase of applying Rod Taylor's pg_depend patch. This just addsTom Lane2002-07-01
| | | | | | | RESTRICT/CASCADE syntax to the DROP commands that need it, and propagates the behavioral option through the parser to the routines that execute drops. Doesn't do anything useful yet, but I figured I'd commit these changes so I could get out of the parser area while working on the rest.
* Implement SQL99 CREATE CAST and DROP CAST statements.Thomas G. Lockhart2002-06-22
| | | | | | | | | | | | | | | | | Also implement alternative forms to expose the PostgreSQL CREATE FUNCTION features. Implement syntax for READ ONLY and READ WRITE clauses in SET TRANSACTION. READ WRITE is already implemented (of course). Implement syntax for "LIKE table" clause in CREATE TABLE. Should be fairly easy to complete since it resembles SELECT INTO. Implement MATCH SIMPLE clause for foreign key definitions. This is explicit SQL99 syntax for the default behavior, so we now support it :) Start implementation of shorthand for national character literals in scanner. For now, just swallow the leading "N", but sometime soon let's figure out how to pass leading type info from the scanner to the parser. We should use the same technique for binary and hex bit string literals, though it might be unusual to have two apparently independent literal types fold into the same storage type.
* Update copyright to 2002.Bruce Momjian2002-06-20
|
* Improve COPY syntax to use WITH clause, keep backward compatibility.Bruce Momjian2002-06-20
|
* Properly mark rules that return no value.Bruce Momjian2002-06-19
|
* Wrap long gram.y lines.Bruce Momjian2002-06-18
|
* Change CREATE DATABASE to use DefElem instead of constructing structureBruce Momjian2002-06-18
| | | | | members in gram.y. This is the prefered method for WITH and arbitrary param/value pairs.
* Improve rule action ordering in gram.y, more cleanups.Bruce Momjian2002-06-18
|
* Mark noise keyword actions with {} rather than returning TRUE, likeBruce Momjian2002-06-17
| | | | opt_with and from_in.
* Manually indent gram.y to be consistent.Bruce Momjian2002-06-17
|
* Merge ALTER GROUP ADD/DROP rules by creating add_drop action.Bruce Momjian2002-06-17
|
* Simplify optional WITH handling in CREATE USER, ALTER USER, CREATEBruce Momjian2002-06-17
| | | | GROUP. Make WITH optional in CREATE DATABASE for consistency.
* Add LOCALTIME and LOCALTIMESTAMP functions per SQL99 standard.Thomas G. Lockhart2002-06-15
| | | | | | | | | | | Remove ODBC-compatible empty parentheses from calls to SQL99 functions for which these parentheses do not match the standard. Update the ODBC driver to ensure compatibility with the ODBC standard for these functions (e.g. CURRENT_TIMESTAMP, CURRENT_USER, etc). Include a new appendix in the User's Guide which lists the labeled features for SQL99 (the labeled features replaced the "basic", "intermediate", and "advanced" categories from SQL92). features.sgml does not yet split this list into "supported" and "unsupported" lists.
* Add PLACING to the list of reserved keywords. Added as a token in the lastThomas G. Lockhart2002-06-13
| | | | update to support the new OVERLAY() function.
* Repair for bug #691 --- CREATE TABLE AS column aliases fail to beTom Lane2002-06-13
| | | | | | | | | applied when the select is a UNION (or other set-operation). An alternative route to a fix would be to leave analyze.c alone and change plan_set_operations in prepunion.c to take column names from the topmost targetlist. But I am not sure that would work in all cases. This patch seems the minimum-risk fix.
* Implement SQL99 OVERLAY(). Allows substitution of a substring in a string.Thomas G. Lockhart2002-06-11
| | | | | | | | | | | Implement SQL99 SIMILAR TO as a synonym for our existing operator "~". Implement SQL99 regular expression SUBSTRING(string FROM pat FOR escape). Extend the definition to make the FOR clause optional. Define textregexsubstr() to actually implement this feature. Update the regression test to include these new string features. All tests pass. Rename the regular expression support routines from "pg95_xxx" to "pg_xxx". Define CREATE CHARACTER SET in the parser per SQL99. No implementation yet.
* Katherine Ward wrote:Jan Wieck2002-06-11
| | | | | | | | | | | | | | > Changes to avoid collisions with WIN32 & MFC names... > 1. Renamed: > a. PROC => PGPROC > b. GetUserName() => GetUserNameFromId() > c. GetCurrentTime() => GetCurrentDateTime() > d. IGNORE => IGNORE_DTF in include/utils/datetime.h & utils/adt/datetim > > 2. Added _P to some lex/yacc tokens: > CONST, CHAR, DELETE, FLOAT, GROUP, IN, OUT Jan
* In default nextval('foo') expression for a SERIAL column, use doubleTom Lane2002-05-28
| | | | quotes only when necessary.
* Add optional "validator" function to languages that can validate thePeter Eisentraut2002-05-22
| | | | | | | | | | | | function body (and other properties) as a function in the language is created. This generalizes ad hoc code that already existed for the built-in languages. The validation now happens after the pg_proc tuple of the new function is created, so it is possible to define recursive SQL functions. Add some regression test cases that cover bogus function definition attempts.
* Restructure indexscan API (index_beginscan, index_getnext) perTom Lane2002-05-20
| | | | | | | yesterday's proposal to pghackers. Also remove unnecessary parameters to heap_beginscan, heap_rescan. I modified pg_proc.h to reflect the new numbers of parameters for the AM interface routines, but did not force an initdb because nothing actually looks at those fields.
* Reorder keyword token declarations alphabetically. Status of the keywordsPeter Eisentraut2002-05-19
| | | | in the various standards can be found in the documentation these days.
* Teach query_tree_walker, query_tree_mutator, and SS_finalize_plan toTom Lane2002-05-18
| | | | | | | | process function RTE expressions, which they were previously missing. This allows outer-Var references and subselects to work correctly in the arguments of a function RTE. Install check to prevent function RTEs from cross-referencing Vars of sibling FROM-items, which doesn't make any sense (if you want to join, write a JOIN or WHERE clause).
* Get rid of the last few uses of typeidTypeName() rather thanTom Lane2002-05-17
| | | | format_type_be() in error messages.
* Extend syntax of CREATE FUNCTION to resemble SQL99.Peter Eisentraut2002-05-17
|
* Merge the last few variable.c configuration variables into the genericTom Lane2002-05-17
| | | | | | | | | GUC support. It's now possible to set datestyle, timezone, and client_encoding from postgresql.conf and per-database or per-user settings. Also, implement rollback of SET commands that occur in a transaction that later fails. Create a SET LOCAL var = value syntax that sets the variable only for the duration of the current transaction. All per previous discussions in pghackers.
* Make operators have their own comments separate from those of theTom Lane2002-05-13
| | | | | | | underlying function; but cause psql's \do to show the underlying function's comment if the operator has no comment of its own, to preserve the useful functionality of the original behavior. Also, implement COMMENT ON SCHEMA. Patch from Rod Taylor.
* Get rid of long-since-vestigial Iter node type, in favor of adding aTom Lane2002-05-12
| | | | | | | returns-set boolean field in Func and Oper nodes. This allows cleaner, more reliable tests for expressions returning sets in the planner and parser. For example, a WHERE clause returning a set is now detected and complained of in the parser, not only at runtime.
* First pass at set-returning-functions in FROM, by Joe Conway withTom Lane2002-05-12
| | | | | | some kibitzing from Tom Lane. Not everything works yet, and there's no documentation or regression test, but let's commit this so Joe doesn't need to cope with tracking changes in so many files ...
* Accept SET SESSION AUTHORIZATION DEFAULT and RESET SESSION AUTHORIZATIONTom Lane2002-05-06
| | | | | | | | to reset session userid to the originally-authenticated name. Also, relax SET SESSION AUTHORIZATION to allow specifying one's own username even if one is not superuser, so as to avoid unnecessary error messages when loading a pg_dump file that uses this command. Per discussion from several months ago.
* Make ruleutils.c schema-aware. Displayed names are schema-qualifiedTom Lane2002-05-03
| | | | | only if they would not be found without qualification given the current search path, as per idea from Peter Eisentraut.
* Retire xlateSqlType/xlateSqlFunc; all type name translations are nowTom Lane2002-05-03
| | | | | | | | handled as special productions. This is needed to keep us honest about user-schema type names that happen to coincide with system type names. Per pghackers discussion 24-Apr. To avoid bloating the keyword list too much, I removed the translations for datetime, timespan, and lztext, all of which were slated for destruction several versions back anyway.
* Tweak scanner/grammar interface so that the keyword-as-identifier rulesTom Lane2002-05-02
| | | | | | in gram.y can make use of the keywords.c string table, instead of having their own copies of the keyword strings. This saves a few kilobytes and more importantly eliminates an opportunity for cut-and-paste errors.
* Give left_oper() and right_oper() noError parameters like oper() (theTom Lane2002-05-01
| | | | binary case) already has. Needed for upcoming ruleutils change.
* Improve lexer's error reporting. You get the whole token mentioned nowTom Lane2002-05-01
| | | | | | | | | | | | in parse error messages, not just the part scanned by the last flex rule. For example, select "foo" "bar"; used to draw ERROR: parser: parse error at or near """ which was rather unhelpful. Now it gives ERROR: parser: parse error at or near ""bar"" Also, error messages concerning bitstring literals and suchlike will quote the source text at you, not the processed internal form of the literal.
* Second try at fixing join alias variables. Instead of attaching miscellaneousTom Lane2002-04-28
| | | | | | | | lists to join RTEs, attach a list of Vars and COALESCE expressions that will replace the join's alias variables during planning. This simplifies flatten_join_alias_vars while still making it easy to fix up varno references when transforming the query tree. Add regression test cases for interactions of subqueries with outer joins.
* Make ruleutils.c use format_type for printing typenames. Minor tweaksTom Lane2002-04-28
| | | | in quoting rules and recognition of implicit type coercions.
* Implement types regprocedure, regoper, regoperator, regclass, regtypeTom Lane2002-04-25
| | | | | | | per pghackers discussion. Add some more typsanity tests, and clean up some problems exposed thereby (broken or missing array types for some built-in types). Also, clean up loose ends from unknownin/out patch.
* Attached is a patch for ALTER TRIGGER RENAME per the above thread. IBruce Momjian2002-04-24
| | | | | | | | left a stub for a future "ALTER RULE RENAME" but did not write that one yet. Bruce, if you want to add my name for for that I'll take it and do it later. Joe Conway