* Redundancy here is needed to avoid shift/reduce conflicts,
* since TEMP is not a reserved word. See also OptTempTableName.
*
- * NOTE: we don't accept either the GLOBAL or LOCAL options: not yet implemented.
+ * NOTE: we accept both GLOBAL and LOCAL options; since we have no modules
+ * the LOCAL keyword is really meaningless.
*/
OptTemp: TEMPORARY { $$ = RELPERSISTENCE_TEMP; }
| TEMP { $$ = RELPERSISTENCE_TEMP; }
- | LOCAL TEMPORARY
- {
- ereport(ERROR,
- (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;
- }
-
+ | LOCAL TEMPORARY { $$ = RELPERSISTENCE_TEMP; }
+ | LOCAL TEMP { $$ = RELPERSISTENCE_TEMP; }
+ | GLOBAL TEMPORARY { $$ = RELPERSISTENCE_TEMP; }
+ | GLOBAL TEMP { $$ = RELPERSISTENCE_TEMP; }
| UNLOGGED { $$ = RELPERSISTENCE_UNLOGGED; }
| /*EMPTY*/ { $$ = RELPERSISTENCE_PERMANENT; }
;
| LOCAL TEMPORARY opt_table qualified_name
{
$$ = $4;
- ereport(ERROR,
- (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("LOCAL TEMPORARY not yet implemented"),
- parser_errposition(@1)));
$$->relpersistence = RELPERSISTENCE_TEMP;
}
| LOCAL TEMP opt_table qualified_name
{
$$ = $4;
- ereport(ERROR,
- (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("LOCAL TEMPORARY not yet implemented"),
- parser_errposition(@1)));
$$->relpersistence = RELPERSISTENCE_TEMP;
}
| GLOBAL TEMPORARY opt_table qualified_name
{
$$ = $4;
- ereport(ERROR,
- (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("GLOBAL TEMPORARY not yet implemented"),
- parser_errposition(@1)));
$$->relpersistence = RELPERSISTENCE_TEMP;
}
| GLOBAL TEMP opt_table qualified_name
{
$$ = $4;
- ereport(ERROR,
- (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("GLOBAL TEMPORARY not yet implemented"),
- parser_errposition(@1)));
$$->relpersistence = RELPERSISTENCE_TEMP;
}
| UNLOGGED opt_table qualified_name
CREATE TEMP TABLE public.temp_to_perm (a int primary key); -- not OK
ERROR: cannot create temporary relation in non-temporary schema
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);
- ^