Changeset: 346b4847fc68 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=346b4847fc68 Added Files: sql/test/BugTracker-2015/Tests/left_shift_inet.Bug-3730.sql sql/test/BugTracker-2015/Tests/left_shift_inet.Bug-3730.stable.err sql/test/BugTracker-2015/Tests/left_shift_inet.Bug-3730.stable.out sql/test/BugTracker-2015/Tests/outerjoin_project.Bug-3725.sql sql/test/BugTracker-2015/Tests/outerjoin_project.Bug-3725.stable.err sql/test/BugTracker-2015/Tests/outerjoin_project.Bug-3725.stable.out Modified Files: NT/installer32/MonetDB-ODBC-Installer.vdproj NT/installer32/MonetDB5-SQL-Installer.vdproj NT/installer64/MonetDB-ODBC-Installer.vdproj NT/installer64/MonetDB5-SQL-Installer.vdproj NT/rules.msc sql/server/rel_optimizer.c sql/server/sql_parser.y sql/storage/bat/bat_logger.c sql/test/BugTracker-2015/Tests/All Branch: default Log Message:
Merge with Oct2014 branch. diffs (truncated from 545 to 300 lines): diff --git a/NT/installer32/MonetDB-ODBC-Installer.vdproj b/NT/installer32/MonetDB-ODBC-Installer.vdproj --- a/NT/installer32/MonetDB-ODBC-Installer.vdproj +++ b/NT/installer32/MonetDB-ODBC-Installer.vdproj @@ -330,7 +330,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_779449EF5BAD4B068A50802402E52278" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win32\\bin\\libeay32.dll" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win32\\bin\\libeay32.dll" "TargetName" = "8:libeay32.dll" "Tag" = "8:" "Folder" = "8:_376EC0506E4F452CA2C78ACE11515435" @@ -370,7 +370,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B1B1C0011D7945F892A77F529772EA72" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win32\\bin\\ssleay32.dll" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win32\\bin\\ssleay32.dll" "TargetName" = "8:ssleay32.dll" "Tag" = "8:" "Folder" = "8:_376EC0506E4F452CA2C78ACE11515435" diff --git a/NT/installer32/MonetDB5-SQL-Installer.vdproj b/NT/installer32/MonetDB5-SQL-Installer.vdproj --- a/NT/installer32/MonetDB5-SQL-Installer.vdproj +++ b/NT/installer32/MonetDB5-SQL-Installer.vdproj @@ -1770,7 +1770,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2E0FEE7726DA47369758C263666F3DB1" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win32\\lib\\libeay32.lib" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win32\\lib\\libeay32.lib" "TargetName" = "8:libeay32.lib" "Tag" = "8:" "Folder" = "8:_A3C9BE5CA72B42628868618D180581DA" @@ -1970,7 +1970,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_45C820B6483D494EBFE6F9A28A30760C" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win32\\bin\\ssleay32.dll" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win32\\bin\\ssleay32.dll" "TargetName" = "8:ssleay32.dll" "Tag" = "8:" "Folder" = "8:_1EC19BD0D849484790DB6A7D69758E24" @@ -2150,7 +2150,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_52DCEC5806254D3F9246489B9C5DFC27" { - "SourcePath" = "8:C:\\Libraries\\pcre-8.36.win32\\bin\\pcre.dll" + "SourcePath" = "8:C:\\Libraries\\pcre-8.37.win32\\bin\\pcre.dll" "TargetName" = "8:pcre.dll" "Tag" = "8:" "Folder" = "8:_1EC19BD0D849484790DB6A7D69758E24" @@ -2490,7 +2490,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_732094CE07974147A084EDD6A5F43C6F" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win32\\lib\\ssleay32.lib" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win32\\lib\\ssleay32.lib" "TargetName" = "8:ssleay32.lib" "Tag" = "8:" "Folder" = "8:_A3C9BE5CA72B42628868618D180581DA" @@ -2870,7 +2870,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A3D31DA50E0F4AE1873E390D5B7F1F33" { - "SourcePath" = "8:C:\\Libraries\\pcre-8.36.win32\\lib\\pcre.lib" + "SourcePath" = "8:C:\\Libraries\\pcre-8.37.win32\\lib\\pcre.lib" "TargetName" = "8:pcre.lib" "Tag" = "8:" "Folder" = "8:_A3C9BE5CA72B42628868618D180581DA" @@ -3650,7 +3650,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E80B0549492B4D76B7EB93941A6BF89D" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win32\\bin\\libeay32.dll" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win32\\bin\\libeay32.dll" "TargetName" = "8:libeay32.dll" "Tag" = "8:" "Folder" = "8:_1EC19BD0D849484790DB6A7D69758E24" diff --git a/NT/installer64/MonetDB-ODBC-Installer.vdproj b/NT/installer64/MonetDB-ODBC-Installer.vdproj --- a/NT/installer64/MonetDB-ODBC-Installer.vdproj +++ b/NT/installer64/MonetDB-ODBC-Installer.vdproj @@ -330,7 +330,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_779449EF5BAD4B068A50802402E52278" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win64\\bin\\libeay32.dll" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win64\\bin\\libeay32.dll" "TargetName" = "8:libeay32.dll" "Tag" = "8:" "Folder" = "8:_376EC0506E4F452CA2C78ACE11515435" @@ -370,7 +370,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B1B1C0011D7945F892A77F529772EA72" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win64\\bin\\ssleay32.dll" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win64\\bin\\ssleay32.dll" "TargetName" = "8:ssleay32.dll" "Tag" = "8:" "Folder" = "8:_376EC0506E4F452CA2C78ACE11515435" diff --git a/NT/installer64/MonetDB5-SQL-Installer.vdproj b/NT/installer64/MonetDB5-SQL-Installer.vdproj --- a/NT/installer64/MonetDB5-SQL-Installer.vdproj +++ b/NT/installer64/MonetDB5-SQL-Installer.vdproj @@ -1770,7 +1770,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2E0FEE7726DA47369758C263666F3DB1" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win64\\lib\\libeay32.lib" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win64\\lib\\libeay32.lib" "TargetName" = "8:libeay32.lib" "Tag" = "8:" "Folder" = "8:_A3C9BE5CA72B42628868618D180581DA" @@ -1970,7 +1970,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_45C820B6483D494EBFE6F9A28A30760C" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win64\\bin\\ssleay32.dll" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win64\\bin\\ssleay32.dll" "TargetName" = "8:ssleay32.dll" "Tag" = "8:" "Folder" = "8:_1EC19BD0D849484790DB6A7D69758E24" @@ -2150,7 +2150,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_52DCEC5806254D3F9246489B9C5DFC27" { - "SourcePath" = "8:C:\\Libraries\\pcre-8.36.win64\\bin\\pcre.dll" + "SourcePath" = "8:C:\\Libraries\\pcre-8.37.win64\\bin\\pcre.dll" "TargetName" = "8:pcre.dll" "Tag" = "8:" "Folder" = "8:_1EC19BD0D849484790DB6A7D69758E24" @@ -2490,7 +2490,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_732094CE07974147A084EDD6A5F43C6F" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win64\\lib\\ssleay32.lib" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win64\\lib\\ssleay32.lib" "TargetName" = "8:ssleay32.lib" "Tag" = "8:" "Folder" = "8:_A3C9BE5CA72B42628868618D180581DA" @@ -2870,7 +2870,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A3D31DA50E0F4AE1873E390D5B7F1F33" { - "SourcePath" = "8:C:\\Libraries\\pcre-8.36.win64\\lib\\pcre.lib" + "SourcePath" = "8:C:\\Libraries\\pcre-8.37.win64\\lib\\pcre.lib" "TargetName" = "8:pcre.lib" "Tag" = "8:" "Folder" = "8:_A3C9BE5CA72B42628868618D180581DA" @@ -3650,7 +3650,7 @@ } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E80B0549492B4D76B7EB93941A6BF89D" { - "SourcePath" = "8:C:\\Libraries\\openssl-1.0.1k.win64\\bin\\libeay32.dll" + "SourcePath" = "8:C:\\Libraries\\openssl-1.0.2a.win64\\bin\\libeay32.dll" "TargetName" = "8:libeay32.dll" "Tag" = "8:" "Folder" = "8:_1EC19BD0D849484790DB6A7D69758E24" diff --git a/NT/rules.msc b/NT/rules.msc --- a/NT/rules.msc +++ b/NT/rules.msc @@ -86,18 +86,6 @@ PYTHON3LIB=python32.lib PYTHON3_LIBDIR=share\MonetDB\python3 !IFDEF HAVE_PERL -!IFNDEF LIBPERL -!IF $(bits) == 32 -LIBPERL = C:\Perl -!ELSE -LIBPERL = C:\Perl64 -!ENDIF -!ENDIF -!IFNDEF PERLLIB -PERLLIB = perl510.lib -!ENDIF -PERL_INCS = -I$(LIBPERL)\lib\CORE -DWIN32 -PERL_LIBS = $(LIBPERL)\lib\CORE\$(PERLLIB) PERL_LIBDIR = share\MonetDB\perl !ENDIF diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c --- a/sql/server/rel_optimizer.c +++ b/sql/server/rel_optimizer.c @@ -4773,6 +4773,9 @@ rel_push_project_up(int *changes, mvc *s if (!l || rel_is_ref(l) || (is_join(rel->op) && (!r || rel_is_ref(r))) || (is_select(rel->op) && l->op != op_project) || + /* we cannot rewrite projection from outer joins */ + ((is_left(rel->op) || is_full(rel->op)) && r->op == op_project) || + ((is_right(rel->op) || is_full(rel->op)) && l->op == op_project) || (is_join(rel->op) && l->op != op_project && r->op != op_project) || ((l->op == op_project && (!l->l || l->r || project_unsafe(l))) || (is_join(rel->op) && (is_subquery(r) || diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y --- a/sql/server/sql_parser.y +++ b/sql/server/sql_parser.y @@ -3460,90 +3460,90 @@ simple_scalar_exp: | scalar_exp '+' scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "sql_add"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "sql_add"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } | scalar_exp '-' scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "sql_sub"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "sql_sub"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } | scalar_exp '*' scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "sql_mul"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "sql_mul"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } | scalar_exp '/' scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "sql_div"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "sql_div"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } | scalar_exp '%' scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "mod"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "mod"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } | scalar_exp '^' scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "bit_xor"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "bit_xor"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } | scalar_exp '&' scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "bit_and"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "bit_and"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } | scalar_exp '|' scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "bit_or"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "bit_or"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } | '~' scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "bit_not"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "bit_not"))); append_symbol(l, $2); $$ = _symbol_create_list( SQL_BINOP, l ); } | scalar_exp LEFT_SHIFT scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "left_shift"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "left_shift"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } | scalar_exp RIGHT_SHIFT scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "right_shift"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "right_shift"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } | scalar_exp LEFT_SHIFT_ASSIGN scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "left_shift_assign"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "left_shift_assign"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } | scalar_exp RIGHT_SHIFT_ASSIGN scalar_exp { dlist *l = L(); append_list(l, - append_string(L(), sa_strdup(SA, "right_shift_assign"))); + append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "right_shift_assign"))); append_symbol(l, $1); append_symbol(l, $3); $$ = _symbol_create_list( SQL_BINOP, l ); } @@ -3561,7 +3561,7 @@ simple_scalar_exp: if (!$$) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list