aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser
Commit message (Collapse)AuthorAge
...
* 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
* Reports missing values as bad.Bruce Momjian2002-04-24
| | | | | | | | | | BAD: INSERT INTO tab (col1, col2) VALUES ('val1'); GOOD: INSERT INTO tab (col1, col2) VALUES ('val1', 'val2'); Regress tests against DEFAULT and normal values as they're managed slightly different. Rod Taylor
* Oops. Remove declaration for set_name_needs_quotes(), since it is now gone.Thomas G. Lockhart2002-04-21
|
* Remove the definition for set_name_needs_quotes() on the assumption thatThomas G. Lockhart2002-04-21
| | | | it is now obsolete. Need some regression test cases to prove otherwise...
* Make WITHOUT TIME ZONE the default for TIMESTAMP and TIME data types.Thomas G. Lockhart2002-04-21
| | | | | | | | | | | | | | | | | This is a big change from past behavior, but the last release was designed to handle this correctly for dump/restore upgrades. Fix up handling of SET value arguments. Allow lists for most options at least at the parser level; multiple values may be rejected at the command processor of course. Allow more variations on values for SET commands, including integer and float values where formerly stringy fields were required. Check precision specification for date/time fields against the true precision range allowed by the data types. Especially useful with the new int8-based storage for these types, where precision is fixed and predictable. Stub out a basic CREATE ASSERTION per SQL9x. Does not do anything (yet) but should be augmented as appropriate. Minor fixups in braces and tabbing.
* Restructure AclItem representation so that we can have more than eightTom Lane2002-04-21
| | | | | | | | | different privilege bits (might as well make use of the space we were wasting on padding). EXECUTE and USAGE bits for procedures, languages now are separate privileges instead of being overlaid on SELECT. Add privileges for namespaces and databases. The GRANT and REVOKE commands work for these object types, but we don't actually enforce the privileges yet...
* Scanner performance improvementsPeter Eisentraut2002-04-20
| | | | | | | | Use flex flags -CF. Pass the to-be-scanned string around as StringInfo type, to avoid querying the length repeatedly. Clean up some code and remove lex-compatibility cruft. Escape backslash sequences inline. Use flex-provided yy_scan_buffer() function to set up input, rather than using myinput().
* Make PUBLIC an unreserved word (in fact, not a keyword at all),Tom Lane2002-04-18
| | | | per previous discussion.
* Rule names are now unique per-relation, rather than unique globally.Tom Lane2002-04-18
| | | | | | | | DROP RULE and COMMENT ON RULE syntax adds an 'ON tablename' clause, similar to TRIGGER syntaxes. To allow loading of existing pg_dump files containing COMMENT ON RULE, the COMMENT code will still accept the old syntax --- but only if the target rulename is unique across the whole database.
* Opclasses live in namespaces. I also took the opportunity to createTom Lane2002-04-17
| | | | | | | an 'opclass owner' column in pg_opclass. Nothing is done with it at present, but since there are plans to invent a CREATE OPERATOR CLASS command soon, we'll probably want DROP OPERATOR CLASS too, which suggests that a notion of ownership would be a good idea.
* Operators live in namespaces. CREATE/DROP/COMMENT ON OPERATOR takeTom Lane2002-04-16
| | | | | | | | | | qualified operator names directly, for example CREATE OPERATOR myschema.+ ( ... ). To qualify an operator name in an expression you need to write OPERATOR(myschema.+) (thanks to Peter for suggesting an escape hatch). I also took advantage of having to reformat pg_operator to fix something that'd been bugging me for a while: mergejoinable operators should have explicit links to the associated cross-data-type comparison operators, rather than hardwiring an assumption that they are named < and >.
* Fix oversight in recent change of representation for JOIN aliasTom Lane2002-04-15
| | | | | variables: JOIN/ON should allow references to contained JOINs. Per bug report from Barry Lind.
* Tweak error message wording.Tom Lane2002-04-12
|
* Restructure representation of aggregate functions so that they have pg_procTom Lane2002-04-11
| | | | | | | | | | entries, per pghackers discussion. This fixes aggregates to live in namespaces, and also simplifies/speeds up lookup in parse_func.c. Also, add a 'proimplicit' flag to pg_proc that controls whether a type coercion function may be invoked implicitly, or only explicitly. The current settings of these flags are more permissive than I would like, but we will need to debate and refine the behavior; for now, I avoided breaking regression tests as much as I could.
* Functions live in namespaces. Qualified function names work, egTom Lane2002-04-09
| | | | | SELECT schema1.func2(...). Aggregate names can be qualified at the syntactic level, but the qualification is ignored for the moment.
* Implement partial-key searching of syscaches, per recent suggestionTom Lane2002-04-06
| | | | | to pghackers. Use this to do searching for ambiguous functions --- it will get more uses soon.
* Add INSERT(..., DEFAULT, ).Bruce Momjian2002-04-05
| | | | Rod Taylor
* Divide functions into three volatility classes (immutable, stable, andTom Lane2002-04-05
| | | | | | | volatile), rather than the old cachable/noncachable distinction. This allows indexscan optimizations in many places where we formerly didn't. Also, add a pronamespace column to pg_proc (it doesn't do anything yet, however).
* Removed obsolete DROP_COLUMN_HACK stuff.Hiroshi Inoue2002-04-02
|
* Tweak SERIAL column creation to emit a fully qualified sequence nameTom Lane2002-04-02
| | | | as argument for nextval().
* ALTER TABLE SET/DROP NOT NULL, from Christopher Kings-Lynne.Tom Lane2002-04-01
|
* Create a new GUC variable search_path to control the namespace searchTom Lane2002-04-01
| | | | | | | path. The default behavior if no per-user schemas are created is that all users share a 'public' namespace, thus providing behavior backwards compatible with 7.2 and earlier releases. Probably the semantics and default setting will need to be fine-tuned, but this is a start.
* Reimplement temp tables using schemas. The temp table map is history;Tom Lane2002-03-31
| | | | temp table entries in pg_class have the names the user would expect.
* Further cleanups for relations in schemas: teach nextval and otherTom Lane2002-03-30
| | | | | | sequence functions how to cope with qualified names. Same code is also used for int4notin, currtid_byrelname, pgstattuple. Also, move TOAST tables into special pg_toast namespace.
* Mop-up some infelicities in new relation lookup handling.Tom Lane2002-03-29
|
* pg_type has a typnamespace column; system now supports creating typesTom Lane2002-03-29
| | | | | | in different namespaces. Also, cleanup work on relation namespace support: drop, alter, rename commands work for tables in non-default namespaces.
* pg_class has a relnamespace column. You can create and access tablesTom Lane2002-03-26
| | | | | | in schemas other than the system namespace; however, there's no search path yet, and not all operations work yet on tables outside the system namespace.
* A little further progress on schemas: push down RangeVars intoTom Lane2002-03-22
| | | | | | | addRangeTableEntry calls. Remove relname field from RTEs, since it will no longer be a useful unique identifier of relations; we want to encourage people to rely on the relation OID instead. Further work on dumping qual expressions in EXPLAIN, too.
* First phase of SCHEMA changes, concentrating on fixing the grammar andTom Lane2002-03-21
| | | | | | | | the parsetree representation. As yet we don't *do* anything with schema names, just drop 'em on the floor; but you can enter schema-compatible command syntax, and there's even a primitive CREATE SCHEMA command. No doc updates yet, except to note that you can now extract a field from a function-returning-row's result with (foo(...)).fieldname.
* Code review for DOMAIN patch.Tom Lane2002-03-20
|
* Fix DOMAIN breakage.Bruce Momjian2002-03-19
|
* Add DOMAIN support. Includes manual pages and regression tests, fromBruce Momjian2002-03-19
| | | | Rod Taylor.
* Restructure representation of join alias variables. An explicit JOINTom Lane2002-03-12
| | | | | | | | | | | | | | | now has an RTE of its own, and references to its outputs now are Vars referencing the JOIN RTE, rather than CASE-expressions. This allows reverse-listing in ruleutils.c to use the correct alias easily, rather than painfully reverse-engineering the alias namespace as it used to do. Also, nested FULL JOINs work correctly, because the result of the inner joins are simple Vars that the planner can cope with. This fixes a bug reported a couple times now, notably by Tatsuo on 18-Nov-01. The alias Vars are expanded into COALESCE expressions where needed at the very end of planning, rather than during parsing. Also, beginnings of support for showing plan qualifier expressions in EXPLAIN. There are probably still cases that need work. initdb forced due to change of stored-rule representation.
* Add DEFAULT_INDEX_TYPE == "btree", for clarity.Bruce Momjian2002-03-10
|
* Disable brackets in multi-statement rules, as discussed.Bruce Momjian2002-03-10
|
* Guard against NULL strings in SET key=val constructs.Thomas G. Lockhart2002-03-09
| | | | Problem noted by Fernando Nasser.
* analyze.o need not depend on parser.h.Tom Lane2002-03-08
|
* Remove unnecessary inclusion.Tom Lane2002-03-08
|
* Fix copying/equality-check bugs in GrantStmt and ConstraintsSetStmt,Tom Lane2002-03-08
| | | | | per reports from Fernando Nasser. Also, rearrange order of declarations in parsenodes.h as suggested by Fernando.
* Back out domain patch until it works properly.Bruce Momjian2002-03-07
|