fileno(), and many other stdio functions, may be macros
(at least on *BSD).
Don't explicitly qualify it with global scope (::fileno()),
because it causes syntax errors.
<cstdio> doesn't define *most* of these macros.
It still has a macro for fileno(), however, on FreeBSD 6.1,
so even using <cstdio> isn't a fix for this. Better to
just avoid ::standard_library_function() in general, in
order to be portable.
storage/ndb/src/common/util/File.cpp:
fileno(), and many other stdio functions, may be macros
(at least on *BSD).
Don't explicitly qualify it with global scope (::fileno()),
because it causes syntax errors.
Note that <cstdio> doesn't define *most* of these macros.
It still has a macro for fileno(), however, on FreeBSD 6.1,
so even using <cstdio> isn't a fix for this. Better to
just avoid ::standard_library_function() in general, in
order to be portable.
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-maint
BitKeeper/etc/ignore:
auto-union
Docs/Makefile.am:
Auto merged
Makefile.am:
Auto merged
client/mysql.cc:
Auto merged
client/mysqltest.c:
Auto merged
extra/yassl/taocrypt/include/algebra.hpp:
Auto merged
include/Makefile.am:
Auto merged
mysql-test/lib/mtr_io.pl:
Auto merged
mysql-test/lib/mtr_misc.pl:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/information_schema.result:
Auto merged
mysql-test/r/rpl_sp.result:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/information_schema.test:
Auto merged
mysql-test/t/rpl_sp.test:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql-common/my_time.c:
Auto merged
sql/sql_table.cc:
Auto merged
storage/myisam/mi_open.c:
Auto merged
storage/myisam/myisampack.c:
Auto merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
Makefile.am:
Auto merged
client/mysqltest.c:
Auto merged
myisam/mi_open.c:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
sql/mysqld.cc:
Auto merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
BitKeeper/etc/ignore:
auto-union
Docs/Makefile.am:
Auto merged
Makefile.am:
Auto merged
client/mysql.cc:
Auto merged
client/mysqltest.c:
Auto merged
include/Makefile.am:
Auto merged
myisam/myisampack.c:
Auto merged
mysql-test/lib/mtr_io.pl:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql-common/my_time.c:
Auto merged
sql/sql_handler.cc:
Auto merged
extra/yassl/taocrypt/include/algebra.hpp:
Manual merge with import of upstream yaSSL
Close any statements that might be open before program exit
Close any statments that might be open when calling "disable_ps_protocol"
client/mysqltest.c:
Close any statements that might be open before program exit
Close any statments that might be open when calling "disable_ps_protocol"
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-maint
BitKeeper/etc/collapsed:
auto-union
BitKeeper/etc/ignore:
auto-union
Makefile.am:
Auto merged
client/mysql.cc:
Auto merged
client/mysqltest.c:
Auto merged
configure.in:
Auto merged
extra/yassl/taocrypt/include/algebra.hpp:
Auto merged
include/Makefile.am:
Auto merged
include/my_sys.h:
Auto merged
mysql-test/lib/mtr_io.pl:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/information_schema.result:
Auto merged
mysql-test/r/parser.result:
Auto merged
mysql-test/r/ps.result:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/information_schema.test:
Auto merged
mysql-test/t/parser.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/system_mysql_db_fix30020.test:
Auto merged
mysql-test/t/udf.test:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
scripts/mysql_fix_privilege_tables.sql:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_create.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql-common/my_time.c:
Auto merged
sql/sql_yacc.yy:
Auto merged
storage/myisam/myisampack.c:
Auto merged
mysql-test/r/sp.result:
Manual merge
mysql-test/r/udf.result:
Manual merge
mysql-test/t/events_bugs.test:
Manual merge
sql/share/errmsg.txt:
Manual merge
support-files/mysql.spec.sh:
Manual merge
into neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
Makefile.am:
Auto merged
client/mysqltest.c:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
sql/mysqld.cc:
Auto merged
into rolltop.ignatz42.dyndns.org:/mnt/storeage/bug20836/my51-bug20836
mysql-test/r/distinct.result:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
into example.com:/work/bug22369-v2/my51
mysql-test/r/alter_table.result:
Auto merged
mysql-test/r/grant.result:
Auto merged
mysql-test/t/grant.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
mysql-test/t/alter_table.test:
manual merge
with other alterations causes lost tables
Using RENAME clause combined with other clauses of ALTER TABLE led to
data loss (the data was there but not accessible). This could happen if the
changes do not change the table much. Adding and droppping of fields and
indices was safe. Renaming a column with MODIFY or CHANGE was unsafe operation,
if the actual column didn't change (changing from int to int, which is a noop)
Depending on the storage engine (SE) the behavior is different:
1)MyISAM/MEMORY - the ALTER TABLE statement completes
without any error but next SELECT against the new table fails.
2)InnoDB (and every other transactional table) - The ALTER TABLE statement
fails. There are the the following files in the db dir -
`new_table_name.frm` and a temporary table's frm. If the SE is file
based, then the data and index files will be present but with the old
names. What happens is that for InnoDB the table is not renamed in the
internal DDIC.
Fixed by adding additional call to mysql_rename_table() method, which should
not include FRM file rename, because it has been already done during file
names juggling.
mysql-test/r/alter_table.result:
update result
mysql-test/r/grant.result:
update result
mysql-test/t/alter_table.test:
2006/11/29 11:46:23+01:00 andrey@example.com +44 -9
Error to bug number
Added test case for #22369: Alter table rename combined
with other alterations causes lost tables
mysql-test/t/grant.test:
add test for bug#22369 - alter table was missing check
for DROP_ACL when ALTER_RENAME clause is specified. Synchronise
with RENAME TABLE DDL.
sql/mysql_priv.h:
Add a new flag for mysql_rename_table()
sql/sql_parse.cc:
To be consistent with SQLCOM_RENAME_TABLE, SQLCOM_ALTER_TABLE has
to check for DROP_ACL if there is ALTER_RENAME flag set.
sql/sql_table.cc:
ALTER_RENAME, the data and index files weren't renamed in the engine
but only the FRM was new, when the tables old and new tables are compatible.
In the chain of FRM renames we add a call to mysql_rename_table() which should
instruct the engine to rename the table but not rename the FRM.
This bug was there only in 5.1 branch. 4.1 and 5.0 always do copy data on RENAME
if there are more clauses than just rename.
into dl145s.mysql.com:/data0/bk/team_tree_merge/MERGE2/mysql-5.1
mysql-test/r/type_varchar.result:
Auto merged
mysql-test/t/type_varchar.test:
Auto merged
sql/item_func.cc:
Auto merged
- Add CR_CONN_HOST_ERROR to list of errorcode that trigger another connection
attempt in mysqltest
client/mysqltest.c:
Add CR_CONN_HOST_ERROR to errorcodes that trigger a reconnect
fixed a valgrind warning
type_varchar.test:
fixed a valgrind warning
mysql-test/t/type_varchar.test:
fixed a valgrind warning
sql/item_func.cc:
fixed a valgrind warning
into bk-internal.mysql.com:/data0/bk/mysql-5.1-arch
client/mysql.cc:
Auto merged
client/mysqldump.c:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_subselect.h:
Auto merged
sql/item_sum.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
storage/innobase/handler/ha_innodb.cc:
Auto merged
We create Item_cache_* object for each operand for each left operand of
a subquery predicate. We also create Item_func_conv_charset for each string
constant that needs charset conversion. So here we have Item_cache wrapped
into Item_func_conv_charset.
When Item_func_conv_charset wraps an constant Item it gets it's value
in constructor. The problem is that Item_cache is ready to be used only
at execution time, which is too late.
The fix makes Item_cache wrapping constant to get ready at fix_fields() time.
mysql-test/r/subselect.result:
test result
mysql-test/t/subselect.test:
test case
sql/item_cmpfunc.cc:
now Item_optimizer::fix_left will store constant arguments in cache
on fix_fields() stage
If --srcdir and --windows is given, check if error message file
is in source or build tree (bug#24557)
Makefile.am:
Cleaned up "ali_check" target, to satisfy "distcleancheck" (bug#24557)
mysql_install_db.sh:
Added --srcdir=DIR option, used from top Makefile.am in dist-hook
target, to find "fill_help_tables.sql" in VPATH build (bug#24557)
Makefile.am:
Work around problem with "distcleancheck", "sql_yacc.cc" might be in both
the source and build tree.
Call "mysql_install_db" with new option --srcdir, to enable the script
to find all that is needed, if source and build directory is not the same
(bug#24557)
scripts/mysql_install_db.sh:
If --srcdir and --windows is given, check if error message file
is in source or build tree (bug#24557)
Makefile.am:
Work around problem with "distcleancheck", "sql_yacc.cc" might be in both
the source and build tree.
Call "mysql_install_db" with new option --srcdir, to enable the script
to find all that is needed, if source and build directory is not the same
(bug#24557)
include/Makefile.am:
Cleaned up "ali_check" target, to satisfy "distcleancheck" (bug#24557)
Adjusted for storage path
nwbootstrap:
Corrected bad merge
netware/BUILD/nwbootstrap:
Corrected bad merge
netware/myisam_ftdump.def:
Adjusted for storage path
netware/myisamchk.def:
Adjusted for storage path
netware/myisamlog.def:
Adjusted for storage path
netware/myisampack.def:
Adjusted for storage path
Before this fix, a call to a User Defined Function (UDF) could,
under some circumstances, be interpreted as a call to a Stored function
instead. This occurred if a native function was invoked in the parameters
for the UDF, as in "select my_udf(abs(x))".
The root cause of this defect is the introduction, by the fix for Bug 21809,
of st_select_lex::udf_list, and it's usage in the parser in sql_yacc.yy
in the rule function_call_generic (in 5.1).
While the fix itself for Bug 21809 is correct in 5.0, the code change
merged into the 5.1 release created the issue, because the calls in 5.1 to :
- lex->current_select->udf_list.push_front(udf)
- lex->current_select->udf_list.pop()
are not balanced in case of native functions, causing the udf_list,
which is really a stack, to be out of sync with the internal stack
maintained by the bison parser.
Instead of moving the call to udf_list.pop(), which would have fixed the
symptom, this patch goes further and removes the need for udf_list.
This is motivated by two reasons:
a) Maintaining a stack in the MySQL code in sync with the stack maintained
internally in sql_yacc.cc (not .yy) is extremely dependent of the
implementation of yacc/bison, and extremely difficult to maintain.
It's also totally dependent of the structure of the grammar, and has a risk
to break with regression defects each time the grammar itself is changed.
b) The previous code did report construct like "foo(expr AS name)" as
syntax errors (ER_PARSER_ERROR), which is incorrect, and misleading.
The syntax is perfectly valid, as this expression is valid when "foo" is
a UDF. Whether this syntax is legal or not depends of the semantic of "foo".
With this change:
a) There is only one stack (in bison), and no List<udf_func> to maintain.
b) "foo(expr AS name)", when used incorrectly, is reported as semantic error:
- ER_WRONG_PARAMETERS_TO_NATIVE_FCT (for native functions)
- ER_WRONG_PARAMETERS_TO_STORED_FCT (for stored functions)
This is achieved by the changes implemented in item_create.cc
mysql-test/r/parser.result:
New tests
mysql-test/r/udf.result:
New tests
mysql-test/t/parser.test:
New tests
mysql-test/t/udf.test:
New tests
sql/item_create.cc:
Semantic checks for named parameters, as in "foo(expr AS name)".
sql/share/errmsg.txt:
New error message
sql/sql_lex.cc:
Remove usage of udf_list.
sql/sql_lex.h:
Remove usage of udf_list.
sql/sql_yacc.yy:
Remove usage of udf_list.
client/mysql.cc:
Field update to MYSQL
client/mysqldump.c:
Field -> MySQL
include/mysql.h:
Field -> MySQL
server-tools/instance-manager/protocol.cc:
Field -> MySQL
sql/field.cc:
Field -> MySQL
sql/field.h:
Field -> MySQL
sql/field_conv.cc:
Field -> MySQL
sql/handler.cc:
Field -> MySQL
sql/item.cc:
Field -> MYSQL
sql/item_func.cc:
Field -> MySQL
sql/item_subselect.cc:
Field -> MySQL
sql/item_subselect.h:
Field -> MySQL
sql/item_sum.h:
Field -> MySQL
sql/item_timefunc.cc:
Field -> MySQL
sql/log_event.cc:
Field -> MySQL
sql/opt_range.cc:
Field -> MySQL
sql/sp.cc:
Field -> MySQL
sql/sql_acl.cc:
Field -> MYSQL
sql/sql_analyse.cc:
Field -> MYSQL
sql/sql_insert.cc:
Field -> MySQL
sql/sql_load.cc:
Field -> MySQL
sql/sql_parse.cc:
Field -> MySQL
sql/sql_select.cc:
Field -> MySQL
sql/sql_select.h:
Field -> MySQL
sql/sql_show.cc:
Field -> MySQL
sql/sql_table.cc:
Field -> MySQL
sql/sql_yacc.yy:
Field -> MySQL
sql/table.cc:
Field -> MySQL
sql/unireg.cc:
Field -> MySQL
storage/innobase/handler/ha_innodb.cc:
Field -> MySQL
storage/myisam/ha_myisam.cc:
Field -> MySQL
tests/mysql_client_test.c:
Field -> MySQL
Backport of functionality in private 5.2 tree.
Added new language to parser, new mysql.servers table and associated code
to be used by the federated storage engine to allow central connection information
per WL entry.
libmysqld/Makefile.am:
WL# 3031
Added sql_servers.cc to libmysqld Makefile.am
mysql-test/lib/init_db.sql:
WL# 3031
Added mysql.servers creation to init_db.sql, which is in turn called by mysql-test-run.pl
scripts/mysql_create_system_tables.sh:
WL# 3031
Added mysql.servers table creation to script called by non-perl mysql-test-run
sql/Makefile.am:
WL# 3031
Added sql_servers source and headers to Makefile.am to be built
sql/lex.h:
WL# 3031
Added tokens needed for SERVERS scheme
sql/mysql_priv.h:
WL #3031
Added sql_servers.h to mysql_priv.h so mysqld.cc and other code can link with sql_servers code
sql/mysqld.cc:
WL# 3031
Added servers_free and servers_init to mysqld
sql/sql_lex.cc:
WL# 3031
Added lex->server_options parameter initialisation
sql/sql_lex.h:
WL #3031
Added SQLCOM commands needed for sql_server actions
sql/sql_parse.cc:
WL# 3031
Added switch actions for new SQLCOM sql_server actions
sql/sql_yacc.yy:
WL #3031
Added tokens needed for sql_servers, CREATE/DROP/ALTER server functionality
sql/share/errmsg.txt:
WL# 3031
Added two new errors to errormsg.sys
storage/federated/ha_federated.cc:
WL #3031
Modified federated storage engine to use new connection scheme (servers
table) if connection string only specifies connection name vs. complete
URL
storage/federated/ha_federated.h:
WL# 3031
Added new share members needed for connection scheme
sql/sql_servers.cc:
WL #3031
sql_servers.cc - all methods required for manipulating mysql.servers table
to work with federated new connection scheme (CREATE/ALTER/DROP SERVER ...)
sql/sql_servers.h:
WL #3031
New header file for sql_servers functionality
mysql-test/r/federated_server.result:
WL #3031
New test results for testing new connection scheme
sql/sql_yacc.yy.bak:
WL #3031
Added tokens and definitions required for new CREATE/ALTER/DROP SERVER
for sql_servers functionality. See WL for details.
mysql-test/t/federated_server.test:
WL #3031
New test for testing CREATE/ALTER/DROP SERVER, as well as testing that
federated works with both tradition connection scheme as well as new
connection scheme.