parse.y (Firebird-3.0.2.32703-0.tar.bz2) | : | parse.y (Firebird-3.0.4.33054-0.tar.bz2) | ||
---|---|---|---|---|
skipping to change at line 588 | skipping to change at line 588 | |||
%token <metaNamePtr> REGR_AVGX | %token <metaNamePtr> REGR_AVGX | |||
%token <metaNamePtr> REGR_AVGY | %token <metaNamePtr> REGR_AVGY | |||
%token <metaNamePtr> REGR_COUNT | %token <metaNamePtr> REGR_COUNT | |||
%token <metaNamePtr> REGR_INTERCEPT | %token <metaNamePtr> REGR_INTERCEPT | |||
%token <metaNamePtr> REGR_R2 | %token <metaNamePtr> REGR_R2 | |||
%token <metaNamePtr> REGR_SLOPE | %token <metaNamePtr> REGR_SLOPE | |||
%token <metaNamePtr> REGR_SXX | %token <metaNamePtr> REGR_SXX | |||
%token <metaNamePtr> REGR_SXY | %token <metaNamePtr> REGR_SXY | |||
%token <metaNamePtr> REGR_SYY | %token <metaNamePtr> REGR_SYY | |||
// tokens added for Firebird 3.0.4 | ||||
%token <metaNamePtr> LOCALTIME | ||||
%token <metaNamePtr> LOCALTIMESTAMP | ||||
// precedence declarations for expression evaluation | // precedence declarations for expression evaluation | |||
%left OR | %left OR | |||
%left AND | %left AND | |||
%left NOT | %left NOT | |||
%left '=' '<' '>' BETWEEN LIKE CONTAINING STARTING SIMILAR KW_IN NEQ GEQ LEQ NO T_GTR NOT_LSS | %left '=' '<' '>' BETWEEN LIKE CONTAINING STARTING SIMILAR KW_IN NEQ GEQ LEQ NO T_GTR NOT_LSS | |||
%left IS | %left IS | |||
%left '+' '-' | %left '+' '-' | |||
%left '*' '/' | %left '*' '/' | |||
%left UMINUS UPLUS | %left UMINUS UPLUS | |||
skipping to change at line 3836 | skipping to change at line 3841 | |||
| ROW | | ROW | |||
| SCROLL | | SCROLL | |||
| SQLSTATE | | SQLSTATE | |||
| STDDEV_SAMP | | STDDEV_SAMP | |||
| STDDEV_POP | | STDDEV_POP | |||
| KW_TRUE | | KW_TRUE | |||
| UNKNOWN | | UNKNOWN | |||
| UPDATING | | UPDATING | |||
| VAR_SAMP | | VAR_SAMP | |||
| VAR_POP | | VAR_POP | |||
| LOCALTIME // added in FB 3.0.4 | ||||
| LOCALTIMESTAMP | ||||
; | ; | |||
col_opt | col_opt | |||
: ALTER | : ALTER | |||
| ALTER COLUMN | | ALTER COLUMN | |||
; | ; | |||
%type <legacyField> alter_data_type_or_domain | %type <legacyField> alter_data_type_or_domain | |||
alter_data_type_or_domain | alter_data_type_or_domain | |||
: non_array_type | : non_array_type | |||
skipping to change at line 4961 | skipping to change at line 4968 | |||
{ $$ = $2; } | { $$ = $2; } | |||
; | ; | |||
%type <withClause> with_list | %type <withClause> with_list | |||
with_list | with_list | |||
: with_item | : with_item | |||
{ | { | |||
$$ = newNode<WithClause>(); | $$ = newNode<WithClause>(); | |||
$$->add($1); | $$->add($1); | |||
} | } | |||
| with_item ',' with_list | | with_list ',' with_item | |||
{ | { | |||
$$ = $3; | $$ = $1; | |||
$$->add($1); | $$->add($3); | |||
} | } | |||
; | ; | |||
%type <selectExprNode> with_item | %type <selectExprNode> with_item | |||
with_item | with_item | |||
: symbol_table_alias_name derived_column_list AS '(' select_expr ')' | : symbol_table_alias_name derived_column_list AS '(' select_expr ')' | |||
{ | { | |||
$$ = $5; | $$ = $5; | |||
$$->dsqlFlags |= RecordSourceNode::DFLAG_DERIVED; | $$->dsqlFlags |= RecordSourceNode::DFLAG_DERIVED; | |||
$$->alias = $1->c_str(); | $$->alias = $1->c_str(); | |||
skipping to change at line 6523 | skipping to change at line 6530 | |||
if (db_dialect < SQL_DIALECT_V6_TRANSITION) | if (db_dialect < SQL_DIALECT_V6_TRANSITION) | |||
{ | { | |||
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) << | ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) << | |||
Arg::Gds(isc_sql_db_dialect_dty pe_unsupport) << Arg::Num(db_dialect) << | Arg::Gds(isc_sql_db_dialect_dty pe_unsupport) << Arg::Num(db_dialect) << | |||
Arg::Str("TIME" )); | Arg::Str("TIME" )); | |||
} | } | |||
$$ = newNode<CurrentTimeNode>($2); | $$ = newNode<CurrentTimeNode>($2); | |||
} | } | |||
| LOCALTIME time_precision_opt | ||||
{ | ||||
if (client_dialect < SQL_DIALECT_V6_TRANSITION) | ||||
{ | ||||
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) | ||||
<< | ||||
Arg::Gds(isc_sql_dialect_dataty | ||||
pe_unsupport) << Arg::Num(client_dialect) << | ||||
Arg::Str("TIME" | ||||
)); | ||||
} | ||||
if (db_dialect < SQL_DIALECT_V6_TRANSITION) | ||||
{ | ||||
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) | ||||
<< | ||||
Arg::Gds(isc_sql_db_dialect_dty | ||||
pe_unsupport) << Arg::Num(db_dialect) << | ||||
Arg::Str("TIME" | ||||
)); | ||||
} | ||||
CurrentTimeNode* node = newNode<CurrentTimeNode>($2); | ||||
node->dsqlLocal = true; | ||||
$$ = node; | ||||
} | ||||
| CURRENT_TIMESTAMP timestamp_precision_opt | | CURRENT_TIMESTAMP timestamp_precision_opt | |||
{ $$ = newNode<CurrentTimeStampNode>($2); } | { $$ = newNode<CurrentTimeStampNode>($2); } | |||
| LOCALTIMESTAMP timestamp_precision_opt | ||||
{ | ||||
CurrentTimeStampNode* node = newNode<CurrentTimeStampNode | ||||
>($2); | ||||
node->dsqlLocal = true; | ||||
$$ = node; | ||||
} | ||||
; | ; | |||
%type <uintVal> time_precision_opt | %type <uintVal> time_precision_opt | |||
time_precision_opt | time_precision_opt | |||
: /* nothing */ { $$ = DEFAULT_TI ME_PRECISION; } | : /* nothing */ { $$ = DEFAULT_TI ME_PRECISION; } | |||
| '(' nonneg_short_integer ')' { $$ = $2; } | | '(' nonneg_short_integer ')' { $$ = $2; } | |||
; | ; | |||
%type <uintVal> timestamp_precision_opt | %type <uintVal> timestamp_precision_opt | |||
timestamp_precision_opt | timestamp_precision_opt | |||
End of changes. 6 change blocks. | ||||
3 lines changed or deleted | 45 lines changed or added |