"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/dsql/parse.y" between
Firebird-3.0.2.32703-0.tar.bz2 and Firebird-3.0.4.33054-0.tar.bz2

About: Firebird is a relational database offering many ANSI SQL standard features.

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

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)