DROP TABLE IF EXISTS t1;
#
# Bug#58147: ALTER TABLE w/ TRUNCATE PARTITION fails
#            but the statement is written to binlog
#
CREATE TABLE t1(id INT)
PARTITION BY RANGE (id)
(PARTITION p0 VALUES LESS THAN (100),
PARTITION pmax VALUES LESS THAN (MAXVALUE));
INSERT INTO t1 VALUES (1), (10), (100), (1000);
ALTER TABLE t1 TRUNCATE PARTITION p1;
ERROR HY000: Incorrect partition name
ALTER TABLE t1 DROP PARTITION p1;
ERROR HY000: Error in list of partitions to DROP
# No error returned, output in table format instead:
ALTER TABLE t1 ANALYZE PARTITION p1;
Table	Op	Msg_type	Msg_text
test.t1	analyze	error	Error in list of partitions to test.t1
ALTER TABLE t1 CHECK PARTITION p1;
Table	Op	Msg_type	Msg_text
test.t1	check	error	Error in list of partitions to test.t1
ALTER TABLE t1 OPTIMIZE PARTITION p1;
Table	Op	Msg_type	Msg_text
test.t1	optimize	error	Error in list of partitions to test.t1
ALTER TABLE t1 REPAIR PARTITION p1;
Table	Op	Msg_type	Msg_text
test.t1	repair	error	Error in list of partitions to test.t1
ALTER TABLE t1 ANALYZE PARTITION p0;
Table	Op	Msg_type	Msg_text
test.t1	analyze	status	OK
ALTER TABLE t1 CHECK PARTITION p0;
Table	Op	Msg_type	Msg_text
test.t1	check	status	OK
ALTER TABLE t1 OPTIMIZE PARTITION p0;
Table	Op	Msg_type	Msg_text
test.t1	optimize	status	OK
ALTER TABLE t1 REPAIR PARTITION p0;
Table	Op	Msg_type	Msg_text
test.t1	repair	status	OK
ALTER TABLE t1 TRUNCATE PARTITION p0;
ALTER TABLE t1 DROP PARTITION p0;
show binlog events in 'master-bin.000001' from <binlog_start>;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Query	#	#	use `test`; ALTER TABLE t1 ANALYZE PARTITION p0
master-bin.000001	#	Query	#	#	use `test`; ALTER TABLE t1 OPTIMIZE PARTITION p0
master-bin.000001	#	Query	#	#	use `test`; ALTER TABLE t1 REPAIR PARTITION p0
master-bin.000001	#	Query	#	#	use `test`; ALTER TABLE t1 TRUNCATE PARTITION p0
master-bin.000001	#	Query	#	#	use `test`; ALTER TABLE t1 DROP PARTITION p0
DROP TABLE t1;
