Вполне очевидное поведение, достаточно лишь иметь понимание, что такое DDL и что такое Prepared
Такое поведение можно понять (хотя я бы не сказал, что оно очевидное), однако явных упоминаний этого я на сайте MySQL не нашёл. Например, тут про подобное поведение не сказано. Возможно, я плохо искал. Вы можете показать, где сказано, что prepare запоминает список колонок на момент создания statement?
извиняюсь, не туда нажал «ответить» и камент ушел выше уровнем.
вообще, prepare присутствует почти во всех СУБД (мы говорим про СУБД, а не про записные книжки с поддрежкой SQL-запросов). Его задача призвести один раз компиляцию запроса и хранить полученый байт-код в памяти (плюс еще обвесы разные в виде планов запроса), дабы не тратить CPU на эту, достаточно емкую, операцию. Так вот эта компиляция привязывается не к названиям столбцов и таблиц, а к внутренним идентификаторам. Плюс к этому, нотификация кеша об производимых DDL также весьма не быстрая вещь, потому и отсутствующая даже в самом оракле (ну не в полной мере конечно, но в большинстве случаев такое действо отсутствует). Засим имея простое понимание принципа работы prepare, зачем он вообще нужен и как он работает, ответы на подобные вопросы возникают сами собой.
Всё, что вы написали, действительно очевидно. Неочевидным, на мой взгляд, является тот факт, что при компиляции звёздочка разворачивается в полный список колонок. Вполне мог бы существовать байт-кодовый вариант, семантически эквивалентный выбору всех колонок.
Семантически это эквивалентно тому, что вы сами кешировали бы запросы в виде строк где-то у себя. И при изменении схемы Ваши кешированные запросы точно так же перестали бы работать.

Байт-код — это форма хранения для быстрого выполнения кешированных запросов, а не способ хранения.
С астериском надо быть аккуратней. Вот, сделал репринт одной статьи «4 простых правила о NULL»

halturin.blogspot.com/2010/07/four-rules-for-nulls.html
У Вас MySQL ниже 5.1.25. Ваш кэп.
Ага, спасибо! То есть авторы MySQL согласны, что такое поведение неочевидно. А то меня тут выше пытались убедить в обратном :-)
Только полноправные пользователи могут оставлять комментарии.
Войдите, пожалуйста.