定时任务兼容M*时间单位
This commit is contained in:
@ -28,7 +28,7 @@ schedule_expr: {
|
|||||||
interval_expr:
|
interval_expr:
|
||||||
quantity {YEAR | MONTH | DAY | HOUR | MINUTE |
|
quantity {YEAR | MONTH | DAY | HOUR | MINUTE |
|
||||||
SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
|
SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
|
||||||
DAY TO SECOND | HOUR TO MINUTE | HOUR TO SECOND | MINUTE TO SECOND}
|
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
|
||||||
</synopsis>
|
</synopsis>
|
||||||
</refsynopsisdiv>
|
</refsynopsisdiv>
|
||||||
</refentry>
|
</refentry>
|
@ -570,7 +570,7 @@ static void setDelimiterName(core_yyscan_t yyscanner, char*input, VariableSetStm
|
|||||||
|
|
||||||
%type <list> extract_list timestamp_arg_list overlay_list position_list
|
%type <list> extract_list timestamp_arg_list overlay_list position_list
|
||||||
%type <list> substr_list trim_list
|
%type <list> substr_list trim_list
|
||||||
%type <list> opt_interval interval_second
|
%type <list> opt_interval interval_second event_interval_unit opt_evtime_unit
|
||||||
%type <node> overlay_placing substr_from substr_for
|
%type <node> overlay_placing substr_from substr_for
|
||||||
|
|
||||||
%type <boolean> opt_instead opt_incremental
|
%type <boolean> opt_instead opt_incremental
|
||||||
@ -864,7 +864,7 @@ static void setDelimiterName(core_yyscan_t yyscanner, char*input, VariableSetStm
|
|||||||
CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE
|
CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE
|
||||||
SHRINK USE_P
|
SHRINK USE_P
|
||||||
|
|
||||||
DATA_P DATABASE DATAFILE DATANODE DATANODES DATATYPE_CL DATE_P DATE_FORMAT_P DAY_P DBCOMPATIBILITY_P DEALLOCATE DEC DECIMAL_P DECLARE DECODE DEFAULT DEFAULTS
|
DATA_P DATABASE DATAFILE DATANODE DATANODES DATATYPE_CL DATE_P DATE_FORMAT_P DAY_P DAY_HOUR_P DAY_MINUTE_P DAY_SECOND_P DBCOMPATIBILITY_P DEALLOCATE DEC DECIMAL_P DECLARE DECODE DEFAULT DEFAULTS
|
||||||
DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS DELTA DELTAMERGE DESC DETERMINISTIC
|
DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS DELTA DELTAMERGE DESC DETERMINISTIC
|
||||||
/* PGXC_BEGIN */
|
/* PGXC_BEGIN */
|
||||||
DICTIONARY DIRECT DIRECTORY DISABLE_P DISCARD DISTINCT DISTRIBUTE DISTRIBUTION DO DOCUMENT_P DOMAIN_P DOUBLE_P
|
DICTIONARY DIRECT DIRECTORY DISABLE_P DISCARD DISTINCT DISTRIBUTE DISTRIBUTION DO DOCUMENT_P DOMAIN_P DOUBLE_P
|
||||||
@ -881,7 +881,7 @@ static void setDelimiterName(core_yyscan_t yyscanner, char*input, VariableSetStm
|
|||||||
|
|
||||||
GENERATED GLOBAL GRANT GRANTED GREATEST GROUP_P GROUPING_P GROUPPARENT
|
GENERATED GLOBAL GRANT GRANTED GREATEST GROUP_P GROUPING_P GROUPPARENT
|
||||||
|
|
||||||
HANDLER HAVING HDFSDIRECTORY HEADER_P HOLD HOUR_P
|
HANDLER HAVING HDFSDIRECTORY HEADER_P HOLD HOUR_P HOUR_MINUTE_P HOUR_SECOND_P
|
||||||
|
|
||||||
IDENTIFIED IDENTITY_P IF_P IGNORE IGNORE_EXTRA_DATA ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P INCLUDE
|
IDENTIFIED IDENTITY_P IF_P IGNORE IGNORE_EXTRA_DATA ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P INCLUDE
|
||||||
INCLUDING INCREMENT INCREMENTAL INDEX INDEXES INFILE INHERIT INHERITS INITIAL_P INITIALLY INITRANS INLINE_P
|
INCLUDING INCREMENT INCREMENTAL INDEX INDEXES INFILE INHERIT INHERITS INITIAL_P INITIALLY INITRANS INLINE_P
|
||||||
@ -896,7 +896,7 @@ static void setDelimiterName(core_yyscan_t yyscanner, char*input, VariableSetStm
|
|||||||
LABEL LANGUAGE LARGE_P LAST_P LC_COLLATE_P LC_CTYPE_P LEADING LEAKPROOF LINES
|
LABEL LANGUAGE LARGE_P LAST_P LC_COLLATE_P LC_CTYPE_P LEADING LEAKPROOF LINES
|
||||||
LEAST LESS LEFT LEVEL LIKE LIMIT LIST LISTEN LOAD LOCAL LOCALTIME LOCALTIMESTAMP
|
LEAST LESS LEFT LEVEL LIKE LIMIT LIST LISTEN LOAD LOCAL LOCALTIME LOCALTIMESTAMP
|
||||||
LOCATION LOCK_P LOCKED LOG_P LOGGING LOGIN_ANY LOGIN_FAILURE LOGIN_SUCCESS LOGOUT LOOP
|
LOCATION LOCK_P LOCKED LOG_P LOGGING LOGIN_ANY LOGIN_FAILURE LOGIN_SUCCESS LOGOUT LOOP
|
||||||
MAPPING MASKING MASTER MATCH MATERIALIZED MATCHED MAXEXTENTS MAXSIZE MAXTRANS MAXVALUE MERGE MINUS_P MINUTE_P MINVALUE MINEXTENTS MODE MODIFY_P MONTH_P MOVE MOVEMENT
|
MAPPING MASKING MASTER MATCH MATERIALIZED MATCHED MAXEXTENTS MAXSIZE MAXTRANS MAXVALUE MERGE MINUS_P MINUTE_P MINUTE_SECOND_P MINVALUE MINEXTENTS MODE MODIFY_P MONTH_P MOVE MOVEMENT
|
||||||
MODEL // DB4AI
|
MODEL // DB4AI
|
||||||
NAME_P NAMES NATIONAL NATURAL NCHAR NEXT NO NOCOMPRESS NOCYCLE NODE NOLOGGING NOMAXVALUE NOMINVALUE NONE
|
NAME_P NAMES NATIONAL NATURAL NCHAR NEXT NO NOCOMPRESS NOCYCLE NODE NOLOGGING NOMAXVALUE NOMINVALUE NONE
|
||||||
NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLCOLS NULLIF NULLS_P NUMBER_P NUMERIC NUMSTR NVARCHAR NVARCHAR2 NVL
|
NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLCOLS NULLIF NULLS_P NUMBER_P NUMERIC NUMSTR NVARCHAR NVARCHAR2 NVL
|
||||||
@ -942,7 +942,7 @@ static void setDelimiterName(core_yyscan_t yyscanner, char*input, VariableSetStm
|
|||||||
XML_P XMLATTRIBUTES XMLCONCAT XMLELEMENT XMLEXISTS XMLFOREST XMLPARSE
|
XML_P XMLATTRIBUTES XMLCONCAT XMLELEMENT XMLEXISTS XMLFOREST XMLPARSE
|
||||||
XMLPI XMLROOT XMLSERIALIZE
|
XMLPI XMLROOT XMLSERIALIZE
|
||||||
|
|
||||||
YEAR_P YES_P
|
YEAR_P YEAR_MONTH_P YES_P
|
||||||
|
|
||||||
ZONE
|
ZONE
|
||||||
|
|
||||||
@ -15086,8 +15086,12 @@ user:
|
|||||||
ColId { $$ = $1; }
|
ColId { $$ = $1; }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
event_interval_unit: opt_interval {$$ = $1;}
|
||||||
|
| opt_evtime_unit {$$ = $1;}
|
||||||
|
;
|
||||||
|
|
||||||
every_interval:
|
every_interval:
|
||||||
Iconst opt_interval
|
Iconst event_interval_unit
|
||||||
{
|
{
|
||||||
TypeName *t;
|
TypeName *t;
|
||||||
t = SystemTypeName("interval");
|
t = SystemTypeName("interval");
|
||||||
@ -15095,7 +15099,7 @@ every_interval:
|
|||||||
Node *num = makeIntConst($1, @1);
|
Node *num = makeIntConst($1, @1);
|
||||||
$$ = makeTypeCast(num, t, -1);
|
$$ = makeTypeCast(num, t, -1);
|
||||||
}
|
}
|
||||||
| Sconst opt_interval
|
| Sconst event_interval_unit
|
||||||
{
|
{
|
||||||
TypeName *t;
|
TypeName *t;
|
||||||
t = SystemTypeName("interval");
|
t = SystemTypeName("interval");
|
||||||
@ -15103,7 +15107,7 @@ every_interval:
|
|||||||
Node *num = makeStringConst($1, @1);
|
Node *num = makeStringConst($1, @1);
|
||||||
$$ = makeTypeCast(num, t, -1);
|
$$ = makeTypeCast(num, t, -1);
|
||||||
}
|
}
|
||||||
| FCONST opt_interval
|
| FCONST event_interval_unit
|
||||||
{
|
{
|
||||||
TypeName *t;
|
TypeName *t;
|
||||||
t = SystemTypeName("interval");
|
t = SystemTypeName("interval");
|
||||||
@ -25211,6 +25215,47 @@ opt_timezone:
|
|||||||
| /*EMPTY*/ { $$ = FALSE; }
|
| /*EMPTY*/ { $$ = FALSE; }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
opt_evtime_unit:
|
||||||
|
DAY_HOUR_P
|
||||||
|
{
|
||||||
|
$$ = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
|
||||||
|
INTERVAL_MASK(HOUR), @1));
|
||||||
|
}
|
||||||
|
| DAY_MINUTE_P
|
||||||
|
{
|
||||||
|
$$ = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
|
||||||
|
INTERVAL_MASK(HOUR) |
|
||||||
|
INTERVAL_MASK(MINUTE), @1));
|
||||||
|
}
|
||||||
|
| DAY_SECOND_P
|
||||||
|
{
|
||||||
|
$$ = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
|
||||||
|
INTERVAL_MASK(HOUR) |
|
||||||
|
INTERVAL_MASK(MINUTE) |
|
||||||
|
INTERVAL_MASK(SECOND), @1));
|
||||||
|
}
|
||||||
|
| HOUR_MINUTE_P
|
||||||
|
{
|
||||||
|
$$ = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
|
||||||
|
INTERVAL_MASK(MINUTE), @1));
|
||||||
|
}
|
||||||
|
| HOUR_SECOND_P
|
||||||
|
{
|
||||||
|
$$ = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
|
||||||
|
INTERVAL_MASK(MINUTE) |
|
||||||
|
INTERVAL_MASK(SECOND), @1));
|
||||||
|
}
|
||||||
|
| MINUTE_SECOND_P
|
||||||
|
{
|
||||||
|
$$ = list_make1(makeIntConst(INTERVAL_MASK(MINUTE) |
|
||||||
|
INTERVAL_MASK(SECOND), @1));
|
||||||
|
}
|
||||||
|
| YEAR_MONTH_P
|
||||||
|
{
|
||||||
|
$$ = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
|
||||||
|
INTERVAL_MASK(MONTH), @1));
|
||||||
|
}
|
||||||
|
|
||||||
opt_interval:
|
opt_interval:
|
||||||
YEAR_P
|
YEAR_P
|
||||||
{ $$ = list_make1(makeIntConst(INTERVAL_MASK(YEAR), @1)); }
|
{ $$ = list_make1(makeIntConst(INTERVAL_MASK(YEAR), @1)); }
|
||||||
@ -28540,7 +28585,10 @@ unreserved_keyword:
|
|||||||
| DATANODES
|
| DATANODES
|
||||||
| DATATYPE_CL
|
| DATATYPE_CL
|
||||||
| DATE_FORMAT_P
|
| DATE_FORMAT_P
|
||||||
|
| DAY_HOUR_P
|
||||||
|
| DAY_MINUTE_P
|
||||||
| DAY_P
|
| DAY_P
|
||||||
|
| DAY_SECOND_P
|
||||||
| DBCOMPATIBILITY_P
|
| DBCOMPATIBILITY_P
|
||||||
| DEALLOCATE
|
| DEALLOCATE
|
||||||
| DECLARE
|
| DECLARE
|
||||||
@ -28621,7 +28669,9 @@ unreserved_keyword:
|
|||||||
| HANDLER
|
| HANDLER
|
||||||
| HEADER_P
|
| HEADER_P
|
||||||
| HOLD
|
| HOLD
|
||||||
|
| HOUR_MINUTE_P
|
||||||
| HOUR_P
|
| HOUR_P
|
||||||
|
| HOUR_SECOND_P
|
||||||
| IDENTIFIED
|
| IDENTIFIED
|
||||||
| IDENTITY_P
|
| IDENTITY_P
|
||||||
| IF_P
|
| IF_P
|
||||||
@ -28691,6 +28741,7 @@ unreserved_keyword:
|
|||||||
| MERGE
|
| MERGE
|
||||||
| MINEXTENTS
|
| MINEXTENTS
|
||||||
| MINUTE_P
|
| MINUTE_P
|
||||||
|
| MINUTE_SECOND_P
|
||||||
| MINVALUE
|
| MINVALUE
|
||||||
| MODE
|
| MODE
|
||||||
| MODEL // DB4AI
|
| MODEL // DB4AI
|
||||||
@ -28918,6 +28969,7 @@ unreserved_keyword:
|
|||||||
| WRAPPER
|
| WRAPPER
|
||||||
| WRITE
|
| WRITE
|
||||||
| XML_P
|
| XML_P
|
||||||
|
| YEAR_MONTH_P
|
||||||
| YEAR_P
|
| YEAR_P
|
||||||
| YES_P
|
| YES_P
|
||||||
| ZONE
|
| ZONE
|
||||||
|
@ -525,7 +525,7 @@ extern THR_LOCAL bool stmt_contains_operator_plus;
|
|||||||
CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE
|
CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE
|
||||||
SHRINK USE_P
|
SHRINK USE_P
|
||||||
|
|
||||||
DATA_P DATABASE DATAFILE DATANODE DATANODES DATATYPE_CL DATE_P DATE_FORMAT_P DAY_P DBCOMPATIBILITY_P DEALLOCATE DEC DECIMAL_P DECLARE DECODE DEFAULT DEFAULTS
|
DATA_P DATABASE DATAFILE DATANODE DATANODES DATATYPE_CL DATE_P DATE_FORMAT_P DAY_P DAY_HOUR_P DAY_MINUTE_P DAY_SECOND_P DBCOMPATIBILITY_P DEALLOCATE DEC DECIMAL_P DECLARE DECODE DEFAULT DEFAULTS
|
||||||
DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS DELTA DELTAMERGE DESC DETERMINISTIC
|
DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS DELTA DELTAMERGE DESC DETERMINISTIC
|
||||||
/* PGXC_BEGIN */
|
/* PGXC_BEGIN */
|
||||||
DICTIONARY DIRECT DIRECTORY DISABLE_P DISCARD DISTINCT DISTRIBUTE DISTRIBUTION DO DOCUMENT_P DOMAIN_P DOUBLE_P
|
DICTIONARY DIRECT DIRECTORY DISABLE_P DISCARD DISTINCT DISTRIBUTE DISTRIBUTION DO DOCUMENT_P DOMAIN_P DOUBLE_P
|
||||||
@ -543,7 +543,7 @@ extern THR_LOCAL bool stmt_contains_operator_plus;
|
|||||||
|
|
||||||
GENERATED GLOBAL GRANT GRANTED GREATEST GROUP_P GROUPING_P GROUPPARENT
|
GENERATED GLOBAL GRANT GRANTED GREATEST GROUP_P GROUPING_P GROUPPARENT
|
||||||
|
|
||||||
HANDLER HAVING HDFSDIRECTORY HEADER_P HOLD HOUR_P
|
HANDLER HAVING HDFSDIRECTORY HEADER_P HOLD HOUR_P HOUR_MINUTE_P HOUR_SECOND_P
|
||||||
|
|
||||||
IDENTIFIED IDENTITY_P IF_P IGNORE IGNORE_EXTRA_DATA ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P
|
IDENTIFIED IDENTITY_P IF_P IGNORE IGNORE_EXTRA_DATA ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P
|
||||||
INCLUDE INCLUDING INCREMENT INCREMENTAL INDEX INDEXES INFILE INHERIT INHERITS INITIAL_P INITIALLY INITRANS INLINE_P
|
INCLUDE INCLUDING INCREMENT INCREMENTAL INDEX INDEXES INFILE INHERIT INHERITS INITIAL_P INITIALLY INITRANS INLINE_P
|
||||||
@ -557,7 +557,7 @@ extern THR_LOCAL bool stmt_contains_operator_plus;
|
|||||||
LABEL LANGUAGE LARGE_P LAST_P LC_COLLATE_P LC_CTYPE_P LEADING LEAKPROOF LINES
|
LABEL LANGUAGE LARGE_P LAST_P LC_COLLATE_P LC_CTYPE_P LEADING LEAKPROOF LINES
|
||||||
LEAST LESS LEFT LEVEL LIST LIKE LIMIT LISTEN LOAD LOCAL LOCALTIME LOCALTIMESTAMP
|
LEAST LESS LEFT LEVEL LIST LIKE LIMIT LISTEN LOAD LOCAL LOCALTIME LOCALTIMESTAMP
|
||||||
LOCATION LOCK_P LOCKED LOG_P LOGGING LOGIN_ANY LOGIN_SUCCESS LOGIN_FAILURE LOGOUT LOOP
|
LOCATION LOCK_P LOCKED LOG_P LOGGING LOGIN_ANY LOGIN_SUCCESS LOGIN_FAILURE LOGOUT LOOP
|
||||||
MAPPING MASKING MASTER MASTR MATCH MATERIALIZED MATCHED MAXEXTENTS MAXSIZE MAXTRANS MAXVALUE MERGE MINUS_P MINUTE_P MINVALUE MINEXTENTS MODE MODIFY_P MONTH_P MOVE MOVEMENT
|
MAPPING MASKING MASTER MASTR MATCH MATERIALIZED MATCHED MAXEXTENTS MAXSIZE MAXTRANS MAXVALUE MERGE MINUS_P MINUTE_P MINUTE_SECOND_P MINVALUE MINEXTENTS MODE MODIFY_P MONTH_P MOVE MOVEMENT
|
||||||
MODEL // DB4AI
|
MODEL // DB4AI
|
||||||
NAME_P NAMES NATIONAL NATURAL NCHAR NEXT NLSSORT NO NOCOMPRESS NOCYCLE NODE NOLOGGING NOMAXVALUE NOMINVALUE NONE
|
NAME_P NAMES NATIONAL NATURAL NCHAR NEXT NLSSORT NO NOCOMPRESS NOCYCLE NODE NOLOGGING NOMAXVALUE NOMINVALUE NONE
|
||||||
NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLCOLS NULLIF NULLS_P NUMBER_P NUMERIC NUMSTR NVARCHAR NVARCHAR2 NVL
|
NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLCOLS NULLIF NULLS_P NUMBER_P NUMERIC NUMSTR NVARCHAR NVARCHAR2 NVL
|
||||||
@ -603,7 +603,7 @@ extern THR_LOCAL bool stmt_contains_operator_plus;
|
|||||||
XML_P XMLATTRIBUTES XMLCONCAT XMLELEMENT XMLEXISTS XMLFOREST XMLPARSE
|
XML_P XMLATTRIBUTES XMLCONCAT XMLELEMENT XMLEXISTS XMLFOREST XMLPARSE
|
||||||
XMLPI XMLROOT XMLSERIALIZE
|
XMLPI XMLROOT XMLSERIALIZE
|
||||||
|
|
||||||
YEAR_P YES_P
|
YEAR_P YEAR_MONTH_P YES_P
|
||||||
|
|
||||||
ZONE
|
ZONE
|
||||||
|
|
||||||
@ -11687,8 +11687,11 @@ unreserved_keyword:
|
|||||||
| DATANODE
|
| DATANODE
|
||||||
| DATANODES
|
| DATANODES
|
||||||
| DATATYPE_CL
|
| DATATYPE_CL
|
||||||
| DAY_P
|
|
||||||
| DATE_FORMAT_P
|
| DATE_FORMAT_P
|
||||||
|
| DAY_HOUR_P
|
||||||
|
| DAY_MINUTE_P
|
||||||
|
| DAY_P
|
||||||
|
| DAY_SECOND_P
|
||||||
| DBCOMPATIBILITY_P
|
| DBCOMPATIBILITY_P
|
||||||
| DEALLOCATE
|
| DEALLOCATE
|
||||||
| DECLARE
|
| DECLARE
|
||||||
@ -11761,7 +11764,9 @@ unreserved_keyword:
|
|||||||
| HANDLER
|
| HANDLER
|
||||||
| HEADER_P
|
| HEADER_P
|
||||||
| HOLD
|
| HOLD
|
||||||
|
| HOUR_MINUTE_P
|
||||||
| HOUR_P
|
| HOUR_P
|
||||||
|
| HOUR_SECOND_P
|
||||||
| IDENTIFIED
|
| IDENTIFIED
|
||||||
| IDENTITY_P
|
| IDENTITY_P
|
||||||
| IF_P
|
| IF_P
|
||||||
@ -11830,6 +11835,7 @@ unreserved_keyword:
|
|||||||
| MERGE
|
| MERGE
|
||||||
| MINEXTENTS
|
| MINEXTENTS
|
||||||
| MINUTE_P
|
| MINUTE_P
|
||||||
|
| MINUTE_SECOND_P
|
||||||
| MINVALUE
|
| MINVALUE
|
||||||
| MODE
|
| MODE
|
||||||
| MODEL // DB4AI
|
| MODEL // DB4AI
|
||||||
@ -12039,6 +12045,7 @@ unreserved_keyword:
|
|||||||
| WRAPPER
|
| WRAPPER
|
||||||
| WRITE
|
| WRITE
|
||||||
| XML_P
|
| XML_P
|
||||||
|
| YEAR_MONTH_P
|
||||||
| YEAR_P
|
| YEAR_P
|
||||||
| YES_P
|
| YES_P
|
||||||
| ZONE
|
| ZONE
|
||||||
|
@ -171,6 +171,9 @@ PG_KEYWORD("datatype_cl", DATATYPE_CL, UNRESERVED_KEYWORD)
|
|||||||
PG_KEYWORD("date", DATE_P, COL_NAME_KEYWORD)
|
PG_KEYWORD("date", DATE_P, COL_NAME_KEYWORD)
|
||||||
PG_KEYWORD("date_format", DATE_FORMAT_P, UNRESERVED_KEYWORD)
|
PG_KEYWORD("date_format", DATE_FORMAT_P, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("day", DAY_P, UNRESERVED_KEYWORD)
|
PG_KEYWORD("day", DAY_P, UNRESERVED_KEYWORD)
|
||||||
|
PG_KEYWORD("day_hour", DAY_HOUR_P, UNRESERVED_KEYWORD)
|
||||||
|
PG_KEYWORD("day_minute", DAY_MINUTE_P, UNRESERVED_KEYWORD)
|
||||||
|
PG_KEYWORD("day_second", DAY_SECOND_P, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("dbcompatibility", DBCOMPATIBILITY_P, UNRESERVED_KEYWORD)
|
PG_KEYWORD("dbcompatibility", DBCOMPATIBILITY_P, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("deallocate", DEALLOCATE, UNRESERVED_KEYWORD)
|
PG_KEYWORD("deallocate", DEALLOCATE, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("dec", DEC, COL_NAME_KEYWORD)
|
PG_KEYWORD("dec", DEC, COL_NAME_KEYWORD)
|
||||||
@ -284,6 +287,8 @@ PG_KEYWORD("hdfsdirectory", HDFSDIRECTORY, TYPE_FUNC_NAME_KEYWORD)
|
|||||||
PG_KEYWORD("header", HEADER_P, UNRESERVED_KEYWORD)
|
PG_KEYWORD("header", HEADER_P, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("hold", HOLD, UNRESERVED_KEYWORD)
|
PG_KEYWORD("hold", HOLD, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("hour", HOUR_P, UNRESERVED_KEYWORD)
|
PG_KEYWORD("hour", HOUR_P, UNRESERVED_KEYWORD)
|
||||||
|
PG_KEYWORD("hour_minute", HOUR_MINUTE_P, UNRESERVED_KEYWORD)
|
||||||
|
PG_KEYWORD("hour_second", HOUR_SECOND_P, UNRESERVED_KEYWORD)
|
||||||
/* new key-word for ALTER ROLE */
|
/* new key-word for ALTER ROLE */
|
||||||
PG_KEYWORD("identified", IDENTIFIED, UNRESERVED_KEYWORD)
|
PG_KEYWORD("identified", IDENTIFIED, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("identity", IDENTITY_P, UNRESERVED_KEYWORD)
|
PG_KEYWORD("identity", IDENTITY_P, UNRESERVED_KEYWORD)
|
||||||
@ -376,6 +381,7 @@ PG_KEYWORD("merge", MERGE, UNRESERVED_KEYWORD)
|
|||||||
PG_KEYWORD("minextents", MINEXTENTS, UNRESERVED_KEYWORD)
|
PG_KEYWORD("minextents", MINEXTENTS, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("minus", MINUS_P, RESERVED_KEYWORD)
|
PG_KEYWORD("minus", MINUS_P, RESERVED_KEYWORD)
|
||||||
PG_KEYWORD("minute", MINUTE_P, UNRESERVED_KEYWORD)
|
PG_KEYWORD("minute", MINUTE_P, UNRESERVED_KEYWORD)
|
||||||
|
PG_KEYWORD("minute_second", MINUTE_SECOND_P, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("minvalue", MINVALUE, UNRESERVED_KEYWORD)
|
PG_KEYWORD("minvalue", MINVALUE, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("mode", MODE, UNRESERVED_KEYWORD)
|
PG_KEYWORD("mode", MODE, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("model", MODEL, UNRESERVED_KEYWORD)
|
PG_KEYWORD("model", MODEL, UNRESERVED_KEYWORD)
|
||||||
@ -693,5 +699,6 @@ PG_KEYWORD("xmlpi", XMLPI, COL_NAME_KEYWORD)
|
|||||||
PG_KEYWORD("xmlroot", XMLROOT, COL_NAME_KEYWORD)
|
PG_KEYWORD("xmlroot", XMLROOT, COL_NAME_KEYWORD)
|
||||||
PG_KEYWORD("xmlserialize", XMLSERIALIZE, COL_NAME_KEYWORD)
|
PG_KEYWORD("xmlserialize", XMLSERIALIZE, COL_NAME_KEYWORD)
|
||||||
PG_KEYWORD("year", YEAR_P, UNRESERVED_KEYWORD)
|
PG_KEYWORD("year", YEAR_P, UNRESERVED_KEYWORD)
|
||||||
|
PG_KEYWORD("year_month", YEAR_MONTH_P, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("yes", YES_P, UNRESERVED_KEYWORD)
|
PG_KEYWORD("yes", YES_P, UNRESERVED_KEYWORD)
|
||||||
PG_KEYWORD("zone", ZONE, UNRESERVED_KEYWORD)
|
PG_KEYWORD("zone", ZONE, UNRESERVED_KEYWORD)
|
||||||
|
@ -413,6 +413,65 @@ select job_name, nspname from pg_job where dbname='event_b';
|
|||||||
|
|
||||||
drop event if exists evtest;
|
drop event if exists evtest;
|
||||||
NOTICE: event "evtest" is not exists, skipping
|
NOTICE: event "evtest" is not exists, skipping
|
||||||
|
--test time unit
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
NOTICE: event "ev_unit" is not exists, skipping
|
||||||
|
create event ev_unit on schedule every '1-1' YEAR_MONTH do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
interval
|
||||||
|
-------------------------------
|
||||||
|
interval '1-1' year to month
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '-1 10' DAY_HOUR do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
interval
|
||||||
|
-------------------------------
|
||||||
|
interval '-1 10' day to hour
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '1 1:00' DAY_MINUTE do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
interval
|
||||||
|
----------------------------------
|
||||||
|
interval '1 1:00' day to minute
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '1 1:1:1' DAY_SECOND do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
interval
|
||||||
|
-----------------------------------
|
||||||
|
interval '1 1:1:1' day to second
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '1:1:1' HOUR_MINUTE do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
interval
|
||||||
|
----------------------------------
|
||||||
|
interval '1:1:1' hour to minute
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '1:1' MINUTE_SECOND do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
interval
|
||||||
|
----------------------------------
|
||||||
|
interval '1:1' minute to second
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '01:12:30' HOUR_SECOND do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
interval
|
||||||
|
-------------------------------------
|
||||||
|
interval '01:12:30' hour to second
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
drop event if exists ev_unit;
|
||||||
--if not exists
|
--if not exists
|
||||||
create event e on schedule every 1 month disable do select 1;
|
create event e on schedule every 1 month disable do select 1;
|
||||||
select pg_sleep(0.2);
|
select pg_sleep(0.2);
|
||||||
@ -907,7 +966,7 @@ schedule_expr: {
|
|||||||
interval_expr:
|
interval_expr:
|
||||||
quantity {YEAR | MONTH | DAY | HOUR | MINUTE |
|
quantity {YEAR | MONTH | DAY | HOUR | MINUTE |
|
||||||
SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
|
SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
|
||||||
DAY TO SECOND | HOUR TO MINUTE | HOUR TO SECOND | MINUTE TO SECOND}
|
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
|
||||||
|
|
||||||
\h ALTER EVENT
|
\h ALTER EVENT
|
||||||
Command: ALTER EVENT
|
Command: ALTER EVENT
|
||||||
|
@ -119,6 +119,29 @@ create event IF NOT EXISTS evtest on schedule every 1 minute starts sysdate + in
|
|||||||
select pg_sleep(0.2);
|
select pg_sleep(0.2);
|
||||||
select job_name, nspname from pg_job where dbname='event_b';
|
select job_name, nspname from pg_job where dbname='event_b';
|
||||||
drop event if exists evtest;
|
drop event if exists evtest;
|
||||||
|
--test time unit
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '1-1' YEAR_MONTH do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '-1 10' DAY_HOUR do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '1 1:00' DAY_MINUTE do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '1 1:1:1' DAY_SECOND do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '1:1:1' HOUR_MINUTE do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '1:1' MINUTE_SECOND do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
create event ev_unit on schedule every '01:12:30' HOUR_SECOND do select 1;
|
||||||
|
select interval from pg_job where job_name='ev_unit';
|
||||||
|
drop event if exists ev_unit;
|
||||||
|
|
||||||
|
|
||||||
--if not exists
|
--if not exists
|
||||||
|
Reference in New Issue
Block a user