1.10.5 То, что надо сделать когда-нибудь
1.10.5 То, что надо сделать когда-нибудь
- Реализовать функцию: get_changed_tables(timeout,table1,table2,...).
- Изменить чтение таблиц так, чтобы везде, где возможно. использовалась memmap. Сейчас memmap используется только для уплотненных таблиц.
- Сделать лучше автоматический код временных меток (timestamp). Добавлять временные метки в журнал обновлений при помощи SET TIMESTAMP=#;.
- Использовать в некоторых местах семафор чтения/записи для увеличения скорости.
-
Обеспечить полную поддержку внешних ключей в MyISAM-таблицах
(возможно, после реализации хранимых процедур с триггерами). - Подготовить простые обзоры (сначала по одной таблице, позднее по любому выражению).
- Реализовать автоматическое закрытие некоторых таблиц, если таблица, временная таблица или временные файлы получат ошибку 23 (недостаточно открытых файлов).
- Если обнаружится поле=#, заменить все местонахождения поля на #. Сейчас такое делается только для некоторых простых случаев.
- Заменить все константные выражения вычисляемыми, если возможно.
- Реализовать оптимизацию ключ=выражение. К данному моменту делается оптимизация только для ключ=поле или ключ=константа.
- Связывать некоторые функции копирования для улучшения кода.
- Заменить sql_yacc.yy внутритекстовым синтаксическим анализатором, чтобы уменьшить ее размер и получать лучшие сообщения об ошибке (5 дней).
- Изменить собственный синтаксический анализатор так, чтобы он использовал только одно правило для различного количества аргументов в функции.
- Использовать полные вычисляемые имена в части сортировки (для ACCESS97).
- MINUS, INTERSECT и FULL OUTER JOIN (в настоящее время поддерживаются UNION [в 4.0] и LEFT OUTER JOIN).
- SQL_OPTION MAX_SELECT_TIME=#, чтобы устанавливать ограничения по времени для запроса.
- Сделать так, чтобы обновляемый журнал записывался в базу данных..
- Сделать добавления в LIMIT, чтобы можно было делать восстановление данных с конца результирующего набора.
- Сигналы предупреждений для функций соединения/чтения/записи клиента.
- Необходимо обратить внимание на изменения на safe_mysqld; согласно FSSTND (которому пытается следовать Debian) PID-файлы должны помещаться в `/var/run/<progname>.pid', a файлы журналов - в `/var/log'. Было бы хорошо, если бы было можно поместить "`DATADIR'" в первое объявление "`pidfile'" и "`log'", чтобы местоположение этих файлов можно было изменить одним оператором.
- Разрешать клиенту запрашивать ведение журналов.
- Добавить использование zlib() для gzip-файлов в LOAD DATA INFILE.
- Исправить сортировку и группирование BLOB-столбцов (сейчас проблема частично решена).
- Хранимые процедуры. Рассматриваются также триггеры.
- Простой (атомарный) язык обновления, который может быть использован для написания циклов и т.п. в MySQL-сервере.
- Произвести изменения для того, чтобы пользоваться семафорами при подсчете потоков. Но сначала нужно реализовать библиотеку семафоров для потоков MIT-pthreads.
- Не устанавливать новое значение во время установки колонки в 0. вместо этого использовать NULL.
- Добавить полную поддержку круглых скобок для JOIN.
- В качестве альтернативы одному потоку/соединению управлять пулом потоков при обработке запросов.
- Обеспечить возможность получать более чем одну блокировку при помощи GET_LOCK. Когда это будет реализовано, потребуется еще сделать обработку возможных тупиковых ситуаций, которые привнесет данное изменение.
Время отводится согласно объемам работ, а не реальному времени.