Commit 72335a20 authored by Simon Riggs's avatar Simon Riggs

Add ERROR msg for GLOBAL/LOCAL TEMP is not yet implemented

parent 37255705
...@@ -2507,15 +2507,43 @@ CreateStmt: CREATE OptTemp TABLE qualified_name '(' OptTableElementList ')' ...@@ -2507,15 +2507,43 @@ CreateStmt: CREATE OptTemp TABLE qualified_name '(' OptTableElementList ')'
* Redundancy here is needed to avoid shift/reduce conflicts, * Redundancy here is needed to avoid shift/reduce conflicts,
* since TEMP is not a reserved word. See also OptTempTableName. * since TEMP is not a reserved word. See also OptTempTableName.
* *
* NOTE: we accept both GLOBAL and LOCAL options; since we have no modules * NOTE: we don't accept either the GLOBAL or LOCAL options: not yet implemented.
* the LOCAL keyword is really meaningless.
*/ */
OptTemp: TEMPORARY { $$ = RELPERSISTENCE_TEMP; } OptTemp: TEMPORARY { $$ = RELPERSISTENCE_TEMP; }
| TEMP { $$ = RELPERSISTENCE_TEMP; } | TEMP { $$ = RELPERSISTENCE_TEMP; }
| LOCAL TEMPORARY { $$ = RELPERSISTENCE_TEMP; } | LOCAL TEMPORARY
| LOCAL TEMP { $$ = RELPERSISTENCE_TEMP; } {
| GLOBAL TEMPORARY { $$ = RELPERSISTENCE_TEMP; } ereport(ERROR,
| GLOBAL TEMP { $$ = RELPERSISTENCE_TEMP; } (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("LOCAL TEMPORARY not yet implemented"),
parser_errposition(@1)));
$$ = RELPERSISTENCE_TEMP;
}
| LOCAL TEMP
{
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("LOCAL TEMPORARY not yet implemented"),
parser_errposition(@1)));
$$ = RELPERSISTENCE_TEMP;
}
| GLOBAL TEMPORARY
{
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("GLOBAL TEMPORARY not yet implemented"),
parser_errposition(@1)));
$$ = RELPERSISTENCE_TEMP;
}
| GLOBAL TEMP
{
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("GLOBAL TEMPORARY not yet implemented"),
parser_errposition(@1)));
$$ = RELPERSISTENCE_TEMP;
}
| UNLOGGED { $$ = RELPERSISTENCE_UNLOGGED; } | UNLOGGED { $$ = RELPERSISTENCE_UNLOGGED; }
| /*EMPTY*/ { $$ = RELPERSISTENCE_PERMANENT; } | /*EMPTY*/ { $$ = RELPERSISTENCE_PERMANENT; }
; ;
...@@ -8921,21 +8949,37 @@ OptTempTableName: ...@@ -8921,21 +8949,37 @@ OptTempTableName:
| LOCAL TEMPORARY opt_table qualified_name | LOCAL TEMPORARY opt_table qualified_name
{ {
$$ = $4; $$ = $4;
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("LOCAL TEMPORARY not yet implemented"),
parser_errposition(@1)));
$$->relpersistence = RELPERSISTENCE_TEMP; $$->relpersistence = RELPERSISTENCE_TEMP;
} }
| LOCAL TEMP opt_table qualified_name | LOCAL TEMP opt_table qualified_name
{ {
$$ = $4; $$ = $4;
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("LOCAL TEMPORARY not yet implemented"),
parser_errposition(@1)));
$$->relpersistence = RELPERSISTENCE_TEMP; $$->relpersistence = RELPERSISTENCE_TEMP;
} }
| GLOBAL TEMPORARY opt_table qualified_name | GLOBAL TEMPORARY opt_table qualified_name
{ {
$$ = $4; $$ = $4;
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("GLOBAL TEMPORARY not yet implemented"),
parser_errposition(@1)));
$$->relpersistence = RELPERSISTENCE_TEMP; $$->relpersistence = RELPERSISTENCE_TEMP;
} }
| GLOBAL TEMP opt_table qualified_name | GLOBAL TEMP opt_table qualified_name
{ {
$$ = $4; $$ = $4;
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("GLOBAL TEMPORARY not yet implemented"),
parser_errposition(@1)));
$$->relpersistence = RELPERSISTENCE_TEMP; $$->relpersistence = RELPERSISTENCE_TEMP;
} }
| UNLOGGED opt_table qualified_name | UNLOGGED opt_table qualified_name
......
...@@ -220,3 +220,19 @@ NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "doubly_temp_pkey ...@@ -220,3 +220,19 @@ NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "doubly_temp_pkey
CREATE TEMP TABLE public.temp_to_perm (a int primary key); -- not OK CREATE TEMP TABLE public.temp_to_perm (a int primary key); -- not OK
ERROR: cannot create temporary relation in non-temporary schema ERROR: cannot create temporary relation in non-temporary schema
DROP TABLE unlogged1, public.unlogged2; DROP TABLE unlogged1, public.unlogged2;
CREATE GLOBAL TEMPORARY TABLE global_temp1 (a int, b text); -- not yet OK
ERROR: GLOBAL TEMPORARY not yet implemented
LINE 1: CREATE GLOBAL TEMPORARY TABLE global_temp1 (a int, b text);
^
CREATE GLOBAL TEMP TABLE global_temp2 (a int, b text); -- not yet OK
ERROR: GLOBAL TEMPORARY not yet implemented
LINE 1: CREATE GLOBAL TEMP TABLE global_temp2 (a int, b text);
^
CREATE LOCAL TEMP TABLE local_temp (a int, b text); -- not yet OK
ERROR: LOCAL TEMPORARY not yet implemented
LINE 1: CREATE LOCAL TEMP TABLE local_temp (a int, b text);
^
CREATE LOCAL TEMP TABLE local_temp (a int, b text); -- not yet OK
ERROR: LOCAL TEMPORARY not yet implemented
LINE 1: CREATE LOCAL TEMP TABLE local_temp (a int, b text);
^
...@@ -250,3 +250,8 @@ CREATE TEMP TABLE explicitly_temp (a int primary key); -- also OK ...@@ -250,3 +250,8 @@ CREATE TEMP TABLE explicitly_temp (a int primary key); -- also OK
CREATE TEMP TABLE pg_temp.doubly_temp (a int primary key); -- also OK CREATE TEMP TABLE pg_temp.doubly_temp (a int primary key); -- also OK
CREATE TEMP TABLE public.temp_to_perm (a int primary key); -- not OK CREATE TEMP TABLE public.temp_to_perm (a int primary key); -- not OK
DROP TABLE unlogged1, public.unlogged2; DROP TABLE unlogged1, public.unlogged2;
CREATE GLOBAL TEMPORARY TABLE global_temp1 (a int, b text); -- not yet OK
CREATE GLOBAL TEMP TABLE global_temp2 (a int, b text); -- not yet OK
CREATE LOCAL TEMP TABLE local_temp (a int, b text); -- not yet OK
CREATE LOCAL TEMP TABLE local_temp (a int, b text); -- not yet OK
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment