summaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2008-11-20 14:04:46 +0000
committerPeter Eisentraut <peter_e@gmx.net>2008-11-20 14:04:46 +0000
commitb09a1a2942628477973f25d564f7698baf54df1c (patch)
treeec0ff635976b0b9ebe81e8b546fa830dec6e55a4 /src/backend
parentf179d5ea99b4598689e5aefed376874b68110978 (diff)
downloadpostgresql-b09a1a2942628477973f25d564f7698baf54df1c.tar.gz
TABLE command
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/catalog/sql_features.txt2
-rw-r--r--src/backend/parser/gram.y24
2 files changed, 24 insertions, 2 deletions
diff --git a/src/backend/catalog/sql_features.txt b/src/backend/catalog/sql_features.txt
index 354fd98811..3afffa814a 100644
--- a/src/backend/catalog/sql_features.txt
+++ b/src/backend/catalog/sql_features.txt
@@ -280,7 +280,7 @@ F591 Derived tables YES
F611 Indicator data types YES
F641 Row and table constructors NO
F651 Catalog name qualifiers YES
-F661 Simple tables NO
+F661 Simple tables YES
F671 Subqueries in CHECK NO intentionally omitted
F672 Retrospective check constraints YES
F690 Collation support NO
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index b3046c04b2..6733372da2 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.637 2008/11/13 11:10:06 meskes Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.638 2008/11/20 14:04:46 petere Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -6431,6 +6431,28 @@ simple_select:
$$ = (Node *)n;
}
| values_clause { $$ = $1; }
+ | TABLE qualified_name
+ {
+ /* same as SELECT * FROM qualified_name */
+ ColumnRef *cr = makeNode(ColumnRef);
+ ResTarget *rt = makeNode(ResTarget);
+ SelectStmt *n = makeNode(SelectStmt);
+
+ cr->fields = list_make1(makeNode(A_Star));
+ cr->location = -1;
+
+ rt->name = NULL;
+ rt->indirection = NIL;
+ rt->val = (Node *)cr;
+ rt->location = -1;
+
+ $2->inhOpt = INH_DEFAULT;
+ $2->alias = NULL;
+
+ n->targetList = list_make1(rt);
+ n->fromClause = list_make1($2);
+ $$ = (Node *)n;
+ }
| select_clause UNION opt_all select_clause
{
$$ = makeSetOp(SETOP_UNION, $3, $1, $4);