mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-07 19:47:50 +08:00
Add ERROR msg for GLOBAL/LOCAL TEMP is not yet implemented
This commit is contained in:
parent
3725570539
commit
72335a2015
@ -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:
|
|||||||
| 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
|
|||||||
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
|
|||||||
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
|
||||||
|
Loading…
Reference in New Issue
Block a user