- 14 Jun, 2007 2 commits
-
-
unknown authored
1. Introduce parse_sql() as a high-level replacement for MYSQLparse(). parse_sql() is responsible to switch and restore "parser context" (THD::m_lip for now). 2. Fix typo in sp.cc: THD::spcont should be reset *before* calling the parser. sql/event_data_objects.cc: Use parse_sql() instead of MYSQLparse(). sql/mysql_priv.h: Introduce parse_sql() instead of auto-generated MYSQLparse. sql/sp.cc: 1. Use parse_sql() instead of MYSQLparse(). 2. THD::spcont should be reset before calling the parser. sql/sql_class.cc: Reset THD::m_lip. sql/sql_parse.cc: 1. Introduce parse_sql() instead of auto-generated MYSQLparse(). 2. Backup, switch and restore THD::m_lip inside parse_sql(). 3. Use parse_sql() instead of MYSQLparse(). sql/sql_partition.cc: Use parse_sql() instead of MYSQLparse(). sql/sql_prepare.cc: Use parse_sql() instead of MYSQLparse(). sql/sql_trigger.cc: Use parse_sql() instead of MYSQLparse(). sql/sql_view.cc: Use parse_sql() instead of MYSQLparse().
-
unknown authored
mysql-test/t/events_restart_phase3.test: Add a missing wait.
-
- 13 Jun, 2007 1 commit
-
-
unknown authored
sql/sql_yacc.yy: Fixed valgrind error: the same buffer (preprocessed) should be used when extracting the text of expr
-
- 12 Jun, 2007 2 commits
-
-
unknown authored
Bug 28127 (Some valid identifiers names are not parsed correctly) Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func) This patch is the second part of a major cleanup, required to fix Bug 25411 (trigger code truncated). The root cause of the issue stems from the function skip_rear_comments, which was a work around to remove "extra" "*/" characters from the query text, when parsing a query and reusing the text fragments to represent a view, trigger, function or stored procedure. The reason for this work around is that "special comments", like /*!50002 XXX */, were not parsed properly, so that a query like: AAA /*!50002 BBB */ CCC would be seen by the parser as "AAA BBB */ CCC" when the current version is greater or equal to 5.0.2 The root cause of this stems from how special comments are parsed. Special comments are really out-of-bound text that appear inside a query, that affects how the parser behave. In nature, /*!50002 XXX */ in MySQL is similar to the C concept of preprocessing : #if VERSION >= 50002 XXX #endif Depending on the current VERSION of the server, either the special comment should be expanded or it should be ignored, but in all cases the "text" of the query should be re-written to strip the "/*!50002" and "*/" markers, which does not belong to the SQL language itself. Prior to this fix, these markers would leak into : - the storage format for VIEW, - the storage format for FUNCTION, - the storage format for FUNCTION parameters, in mysql.proc (param_list), - the storage format for PROCEDURE, - the storage format for PROCEDURE parameters, in mysql.proc (param_list), - the storage format for TRIGGER, - the binary log used for replication. In all cases, not only this cause format corruption, but also provide a vector for dormant security issues, by allowing to tunnel code that will be activated after an upgrade. The proper solution is to deal with special comments strictly during parsing, when accepting a query from the outside world. Once a query is parsed and an object is created with a persistant representation, this object should not arbitrarily mutate after an upgrade. In short, special comments are a useful but limited feature for MYSQLdump, when used at an *interface* level to facilitate import/export, but bloating the server *internal* storage format is *not* the proper way to deal with configuration management of the user logic. With this fix: - the Lex_input_stream class now acts as a comment pre-processor, and either expands or ignore special comments on the fly. - MYSQLlex and sql_yacc.yy have been cleaned up to strictly use the public interface of Lex_input_stream. In particular, how the input stream accepts or rejects a character is private to Lex_input_stream, and the internal buffer pointers of that class are strictly private, and should not be tempered with during parsing. This caused many changes mostly in sql_lex.cc. During the code cleanup in case MY_LEX_NUMBER_IDENT, Bug 28127 (Some valid identifiers names are not parsed correctly) was found and fixed. By parsing special comments properly, and removing the function 'skip_rear_comments' [sic], Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func) has been fixed as well. sql/event_data_objects.cc: Cleanup of the code that extracts the query text sql/sp.cc: Cleanup of the code that extracts the query text sql/sp_head.cc: Cleanup of the code that extracts the query text sql/sql_trigger.cc: Cleanup of the code that extracts the query text sql/sql_view.cc: Cleanup of the code that extracts the query text mysql-test/r/comments.result: Bug#25411 (trigger code truncated) mysql-test/r/sp.result: Bug#25411 (trigger code truncated) Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func) mysql-test/r/trigger.result: Bug#25411 (trigger code truncated) mysql-test/r/varbinary.result: Bug 28127 (Some valid identifiers names are not parsed correctly) mysql-test/t/comments.test: Bug#25411 (trigger code truncated) mysql-test/t/sp.test: Bug#25411 (trigger code truncated) Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func) mysql-test/t/trigger.test: Bug#25411 (trigger code truncated) mysql-test/t/varbinary.test: Bug 28127 (Some valid identifiers names are not parsed correctly) sql/sql_lex.cc: Implemented comment pre-processing in Lex_input_stream, major cleanup of the lex/yacc code to not use Lex_input_stream private members. sql/sql_lex.h: Implemented comment pre-processing in Lex_input_stream, major cleanup of the lex/yacc code to not use Lex_input_stream private members. sql/sql_yacc.yy: post merge fix : view_check_options must be parsed before signaling the end of the query
-
unknown authored
-
- 11 Jun, 2007 3 commits
-
-
unknown authored
into weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge sql/field.cc: Auto merged sql/field.h: Auto merged sql/item.h: Auto merged sql/item_sum.cc: Auto merged sql/item_timefunc.cc: Auto merged sql/mysql_priv.h: Auto merged sql/sp_head.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_lex.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_yacc.yy: Auto merged
-
unknown authored
sql/field.cc: Manual merge of Bug#27592 (5.0-runtime to 5.1-runtime) tests/mysql_client_test.c: Manual merge of Bug#27592 (5.0-runtime to 5.1-runtime)
-
unknown authored
into weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge50 sql/item_timefunc.cc: Auto merged sql/unireg.h: Auto merged
-
- 10 Jun, 2007 2 commits
-
-
unknown authored
Coding style: classes start with a capital letter. Rename some classes related to parsing: create_field -> Create_field foreign_key -> Foreign_key key_part_spec -> Key_part_spec sql/field.cc: create_field -> Create_field sql/field.h: create_field -> Create_field sql/item.h: create_field -> Create_field sql/item_sum.cc: create_field -> Create_field sql/mysql_priv.h: create_field -> Create_field sql/sp_head.cc: create_field -> Create_field sql/sp_head.h: create_field -> Create_field sql/sp_pcontext.cc: create_field -> Create_field sql/sp_pcontext.h: create_field -> Create_field sql/sp_rcontext.cc: create_field -> Create_field sql/sql_class.cc: create_field -> Create_field key_part_spec -> Key_part_spec foreign_key -> Foreign_key sql/sql_class.h: create_field -> Create_field key_part_spec -> Key_part_spec foreign_key -> Foreign_key sql/sql_insert.cc: create_field -> Create_field sql/sql_lex.cc: Coding style: classes start with a capital, create_field -> Create_field sql/sql_lex.h: create_field -> Create_field key_part_spec -> Key_part_spec sql/sql_parse.cc: create_field -> Create_field key_part_spec -> Key_part_spec sql/sql_select.cc: create_field -> Create_field sql/sql_table.cc: create_field -> Create_field sql/sql_yacc.yy: create_field -> Create_field key_part_spec -> Key_part_spec foreign_key -> Foreign_key sql/unireg.cc: create_field -> Create_field
-
unknown authored
scheduler". Add missing DBUG_VOID_RETURN sql/event_scheduler.cc: Fix for Bug#28963 "Missing DBUG_RETURN message when stopping event scheduler"
-
- 07 Jun, 2007 7 commits
-
-
unknown authored
-
unknown authored
into ibm.:/home/alik/Documents/MySQL/devel/5.0-rt-bug275920-2
-
unknown authored
value using prepared statements. tests/mysql_client_test.c: Test case.
-
unknown authored
into trift2.:/MySQL/M51/push-5.1 BitKeeper/deleted/.del-CMakeLists.txt~1: Auto merged mysql-test/extra/binlog_tests/ctype_cp932_binlog.test: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/t/mysqltest.test: Auto merged netware/myisam_ftdump.def: Auto merged netware/myisamchk.def: Auto merged netware/myisamlog.def: Auto merged netware/myisampack.def: Auto merged
-
unknown authored
into trift2.:/MySQL/M50/push-5.0 netware/comp_err.def: Auto merged netware/isamchk.def: Auto merged netware/isamlog.def: Auto merged netware/libmysql.def: Auto merged netware/myisam_ftdump.def: Auto merged netware/myisamchk.def: Auto merged netware/myisamlog.def: Auto merged netware/myisampack.def: Auto merged netware/mysql.def: Auto merged netware/mysql_install_db.def: Auto merged netware/mysql_test_run.def: Auto merged netware/mysql_waitpid.def: Auto merged netware/mysqladmin.def: Auto merged netware/mysqlbinlog.def: Auto merged netware/mysqlcheck.def: Auto merged netware/mysqld.def: Auto merged netware/mysqld_safe.def: Auto merged netware/mysqldump.def: Auto merged netware/mysqlimport.def: Auto merged netware/mysqlshow.def: Auto merged netware/mysqltest.def: Auto merged netware/pack_isam.def: Auto merged netware/perror.def: Auto merged netware/replace.def: Auto merged netware/resolve_stack_dump.def: Auto merged netware/resolveip.def: Auto merged netware/my_print_defaults.def: Use 5.0 version
-
unknown authored
netware/comp_err.def: Allocate 128K stack for all executables (bug#23504) netware/isamchk.def: Allocate 128K stack for all executables (bug#23504) netware/isamlog.def: Allocate 128K stack for all executables (bug#23504) netware/libmysql.def: Allocate 128K stack for all executables (bug#23504) netware/my_print_defaults.def: Allocate 128K stack for all executables (bug#23504) netware/myisam_ftdump.def: Allocate 128K stack for all executables (bug#23504) netware/myisamchk.def: Allocate 128K stack for all executables (bug#23504) netware/myisamlog.def: Allocate 128K stack for all executables (bug#23504) netware/myisampack.def: Allocate 128K stack for all executables (bug#23504) netware/mysql.def: Allocate 128K stack for all executables (bug#23504) netware/mysql_install_db.def: Allocate 128K stack for all executables (bug#23504) netware/mysql_test_run.def: Allocate 128K stack for all executables (bug#23504) netware/mysql_waitpid.def: Allocate 128K stack for all executables (bug#23504) netware/mysqladmin.def: Allocate 128K stack for all executables (bug#23504) netware/mysqlbinlog.def: Allocate 128K stack for all executables (bug#23504) netware/mysqlcheck.def: Allocate 128K stack for all executables (bug#23504) netware/mysqld.def: Allocate 128K stack for all executables (bug#23504) netware/mysqld_safe.def: Allocate 128K stack for all executables (bug#23504) netware/mysqldump.def: Allocate 128K stack for all executables (bug#23504) netware/mysqlimport.def: Allocate 128K stack for all executables (bug#23504) netware/mysqlshow.def: Allocate 128K stack for all executables (bug#23504) netware/mysqltest.def: Allocate 128K stack for all executables (bug#23504) netware/pack_isam.def: Allocate 128K stack for all executables (bug#23504) netware/perror.def: Allocate 128K stack for all executables (bug#23504) netware/replace.def: Allocate 128K stack for all executables (bug#23504) netware/resolve_stack_dump.def: Allocate 128K stack for all executables (bug#23504) netware/resolveip.def: Allocate 128K stack for all executables (bug#23504)
-
unknown authored
using prepared statements. sql/field.cc: Using MAX_DATETIME_WIDTH or MAX_DATETIME_COMPRESSED_WIDTH constants for the length of DATETIME fields. Using MAX_DATE_STRING_REP_LENGTH for allocating buffers for date/time/... string representation. sql/item_timefunc.cc: Using MAX_DATETIME_WIDTH or MAX_DATETIME_COMPRESSED_WIDTH constants for the length of DATETIME fields. Using MAX_DATE_STRING_REP_LENGTH for allocating buffers for date/time/... string representation. sql/unireg.h: Introduce a constant for length of datetime compressed format (YYYYMMDDHHMMSS).
-
- 06 Jun, 2007 10 commits
-
-
unknown authored
into trift2.:/MySQL/M50/push-5.0 CMakeLists.txt: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/t/ctype_cp932_binlog.test: Auto merged mysql-test/t/mysqltest.test: Auto merged
-
unknown authored
into trift2.:/MySQL/M51/push-5.1 BitKeeper/deleted/.del-CMakeLists.txt~1: Auto merged CMakeLists.txt: Auto merged mysql-test/extra/binlog_tests/ctype_cp932_binlog.test: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/t/mysqltest.test: Auto merged mysql-test/t/ps.test: Auto merged sql/sql_parse.cc: Auto merged
-
unknown authored
into trift2.:/MySQL/M51/push-5.1 configure.in: Auto merged
-
unknown authored
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-build storage/ndb/src/kernel/vm/Configuration.cpp: Auto merged
-
unknown authored
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-build mysql-test/mysql-test-run.pl: Auto merged mysql-test/t/mysqldump.test: Auto merged mysql-test/t/mysqltest.test: Auto merged storage/ndb/src/common/transporter/Packer.cpp: Auto merged storage/ndb/src/common/transporter/TCP_Transporter.hpp: Auto merged storage/ndb/src/common/transporter/TransporterRegistry.cpp: Auto merged storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: Auto merged storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp: Auto merged storage/ndb/test/ndbapi/testNdbApi.cpp: Auto merged storage/ndb/test/run-test/daily-basic-tests.txt: SCCS merged
-
unknown authored
into trift2.:/MySQL/M50/push-5.0 configure.in: Version change in 4.1 does not propagate to 5.0
-
unknown authored
into trift2.:/MySQL/M41/push-4.1 configure.in: Auto merged
-
unknown authored
-
unknown authored
into trift2.:/MySQL/M50/push-5.0 mysql-test/mysql-test-run.pl: Auto merged mysql-test/t/mysqldump.test: Auto merged
-
unknown authored
Add another exception to the acceptable mysqld errors, for test case for bug 28436 mysql-test/lib/mtr_report.pl: Add another exception to the acceptable mysqld errors, for test case for bug 28436
-
- 05 Jun, 2007 13 commits
-
-
unknown authored
Post-merge fix warning strings/ctype-bin.c: Post-merge fix warning
-
unknown authored
Post-merge fix (byte -> uchar) sql/sql_prepare.cc: Post-merge fix (byte -> uchar)
-
unknown authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun05/51 client/mysqldump.c: Auto merged mysql-test/mysql-test-run.pl: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_yacc.yy: Auto merged
-
unknown authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun05/51 client/mysqldump.c: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/r/innodb_mysql.result: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_yacc.yy: Auto merged
-
unknown authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun05/50 client/mysqldump.c: Auto merged mysql-test/mysql-test-run.pl: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_yacc.yy: Auto merged
-
unknown authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun05/51 mysql-test/mysql-test-run.pl: Auto merged mysql-test/t/mysqltest.test: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_yacc.yy: Auto merged
-
unknown authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun05/50
-
unknown authored
into poseidon.mysql.com:/home/tomas/mysql-5.1-new-ndb mysql-test/ndb/ndb_config_2_node.ini: Auto merged storage/ndb/include/ndb_global.h.in: Auto merged storage/ndb/src/common/portlib/NdbTick.c: Auto merged storage/ndb/src/kernel/blocks/backup/Backup.cpp: Auto merged storage/ndb/src/kernel/blocks/restore.cpp: Auto merged storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp: Auto merged storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp: Auto merged storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Auto merged storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: Auto merged storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp: Auto merged storage/ndb/src/kernel/vm/WatchDog.cpp: Auto merged storage/ndb/src/mgmsrv/ConfigInfo.cpp: Auto merged storage/ndb/tools/restore/Restore.cpp: Auto merged
-
unknown authored
into trift2.:/MySQL/M51/push-5.1 sql/my_decimal.h: Auto merged mysql-test/r/ps_2myisam.result: Do not use the "result" file from the 5.1.19 tree, rather the main one. mysql-test/r/ps_3innodb.result: Do not use the "result" file from the 5.1.19 tree, rather the main one. mysql-test/r/ps_4heap.result: Do not use the "result" file from the 5.1.19 tree, rather the main one. mysql-test/r/ps_5merge.result: Do not use the "result" file from the 5.1.19 tree, rather the main one. mysql-test/r/ps_7ndb.result: Do not use the "result" file from the 5.1.19 tree, rather the main one.
-
unknown authored
into poseidon.mysql.com:/home/tomas/mysql-5.1-telco-gca mysql-test/ndb/ndb_config_2_node.ini: Auto merged storage/ndb/include/mgmapi/mgmapi_config_parameters.h: Auto merged storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp: Auto merged storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp: Auto merged storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: Auto merged storage/ndb/src/mgmsrv/ConfigInfo.cpp: Auto merged storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: manual merge
-
unknown authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun05/51 client/mysqldump.c: Auto merged include/m_string.h: Auto merged include/mysql_com.h: Auto merged include/violite.h: Auto merged libmysql/libmysql.c: Auto merged mysql-test/include/mix1.inc: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/r/innodb_mysql.result: Auto merged mysql-test/r/ps.result: Auto merged mysql-test/t/mysqltest.test: Auto merged mysql-test/t/ps.test: Auto merged mysys/my_init.c: Auto merged server-tools/instance-manager/mysql_connection.cc: Auto merged sql/field.cc: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/net_serv.cc: Auto merged sql/set_var.cc: Auto merged sql/sql_connect.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_prepare.cc: Auto merged sql/sql_repl.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_show.cc: Auto merged sql-common/client.c: Auto merged sql/sql_yacc.yy: Auto merged strings/ctype-mb.c: Auto merged strings/ctype-ucs2.c: Auto merged strings/strtod.c: Auto merged vio/vio_priv.h: Auto merged vio/viosocket.c: Auto merged client/mysqltest.c: SCCS merged include/my_global.h: SCCS merged sql/field.h: SCCS merged sql/sql_table.cc: Manual merge strings/ctype-bin.c: Manual merge
-
unknown authored
- add odirect option for lcp+backup+redo log to lower CPU/kswapd usage - writing odirect removes need for kernel write buffers avoiding kswapd to kick in mysql-test/ndb/ndb_config_2_node.ini: run mysql-test-run using ODirect storage/ndb/include/mgmapi/mgmapi_config_parameters.h: add new config parameter to choose ODirect storage/ndb/include/ndb_global.h.in: specify alignment needed for odirect storage/ndb/src/kernel/blocks/backup/Backup.cpp: read odirect config param open LCP and Backup datafiles with odirect if specified insert empty padding record if odirect is used allocate buffers aligned to be able to use odirect storage/ndb/src/kernel/blocks/backup/Backup.hpp: odirect and padding options storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp: add empty_record in file format storage/ndb/src/kernel/blocks/backup/BackupInit.cpp: read odirect config and allocate aligned storage/ndb/src/kernel/blocks/backup/FsBuffer.hpp: correct debug printouts storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp: read odirect config param and align buffers storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp: read odirect config param and align buffers storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: read config params and open redo log files with odirect if set storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp: aligned writing for odirect correct odirect open options with test+fallback if odirect fails storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp: align + odirect check storage/ndb/src/kernel/blocks/restore.cpp: restor block to ignore new lcp padding empty_record storage/ndb/src/kernel/vm/SimulatedBlock.cpp: alligend log buffer allocation for odirect storage/ndb/src/kernel/vm/SimulatedBlock.hpp: alligend log buffer allocation for odirect storage/ndb/src/mgmsrv/ConfigInfo.cpp: new config param for odirect, default false storage/ndb/tools/restore/Restore.cpp: ndb_restore to skip empty_record alignment padding in backup file
-
unknown authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun05/50 mysql-test/mysql-test-run.pl: Auto merged mysql-test/t/mysqltest.test: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_yacc.yy: Auto merged
-