Версия |
Дата |
Изменения |
v2.0.0-beta8 |
26.11.2021 |
Исправлен баг, при котором если ваша БД Oracle и вы одновременно используете пагинацию и
агрегацию на очень тяжелых запросах, то запрос выполнялся десятки минут. Например в реальной
задаче запрос без пагинации и агрегации выполнялся 11 секунд, с агрегацией и пагинацией 31 минуту,
после исправления - так же 11 секунд (проблема была в операторе in).
|
v2.0.0-beta7 |
16.11.2021 |
Багфиксы:
- Для windows у
GP::varDump() и у $gp->newLog()
теперь правильно формируется относительный путь до php файла.
- Теперь у класса
Log функция save() работает и для php5.4 (до этого работало только для
php7).
- Исправлена функция
createTablesForLog()
- Прочие небольшие правки.
|
v2.0.0-beta6 |
15.11.2021 |
Багфикс GP::varDumpExport() .
|
v2.0.0-beta5 |
15.11.2021 |
- Добавил библиотеку "логирование процессов".
- Добавил хелпер Debug (функции
GP::varDump() и GP::varDumpExport() ).
- Багфикс для секретной функции
whereDetailedSearch() .
- Если в массиве биндов значений больше чем нужно, то больше ошибки не возникает, игнорируем лишние.
- Исправлена ошибка в функции
update() , когда у нас есть ручные бинды как для where части, так и для update части.
- В
getDebugInfo не попадали промежуточные запросы - исправил.
- Функции
column() и map() теперь возвращают вместо false пустой массив.
- Добавил еще один вариант сокращенной записи для
->where('/*wh*/', [1,2,3,4]) (также для update()
и delete()), если передать обычный массив с числами то он преобразуется в id in (1,2,3,4) .
- Теперь если в update или delete для where передается пустой массив, то вызывается исключение, а не удаляются/изменяются все записи в таблице.
|
v2.0.0-beta4 |
31.08.2021 |
-
Багфиксы
-
Если у php версия была ниже 8, то в функции
all([...]) не работала агрегация
(из за того, что 0 == ‘любой текст’ это true).
-
Если вызываются функции
column() и map() , а
предыдущий запрос вернул просто цифру (например при insert, update или delete),
то теперь вместо ошибки функция возвращает false .
-
У функций
delete() и update() из-за предварительного
select'а всех удаляемых/изменяемых записей (при большом их количестве) происходило
переполнение памяти. Теперь функции возвращают просто количество этих удаляемых/изменяемых строк.
-
Если функции
delete('nameTable', true) передать вторым параметром
именно true (===) , то удаляются все записи из таблицы.
-
Изменилась настройка дебага, теперь вместо
'debug' => ['isDebug' => true, 'maxNumberQuery' => 100] нужно писать
'debugQuery' => 100 или если необходимо отключить сбор информации для
отладки, то указываем 'debugQuery' => 0 .
Так же можно изменить настройку в любом месте, вызвав функцию
GP::configDebugQuery($numberQuery, $nameConnection) .
-
Реализована упрощенная запись функции where:
where('/*wh*/', 2) === where('/*wh*/', ['id', '=', 2])
- Добавлена функция
whereJoin()
- Добавлена функция
inserts()
- Добавлена секретная функция
whereDetailedSearch()
|
v2.0.0-beta3 |
13.07.2021 |
-
Исправлена ошибка переполнения памяти. Если к БД идут десятки тысяч обращение,
(например при синхронизации таблиц между разными БД) то была утечка памяти,
связанная с пухнущим массивом логов для отладки (
debugInfo() ). Исправил, теперь в
конфигах можно либо отключить сбор логов, либо ограничить,
например по умолчанию сохраняются последние 100 запросов.
-
Функция
all() всегда возвращала массив с ключами в нижнем регистре.
Исправил, теперь функция all() возвращает так как пришло из БД.
Единственное исключение - агригация, в этом случае ключи массива всегда будут в нижнем регистре.
-
Если библиотека GreenPig используется со старыми проектами у которых кодировка
windows-1251, то с отображением сообщений об ошибках (от Exception) на русском будут
проблемы. Самый безболезненные способ, это перевести все сообщения на
английский, что и было сделано.
-
Теперь функция
count() возвращает числовой тип, а не строковый.
-
Исправлен баг, при котором в функциях
first/oneOrError('nameColumn') ,
если указать nameColumn , и значение ячейки будет 0
или '' , то функция вернет null .
|
v2.0.0-beta2 |
02.07.2021 |
Убрал из зависимостей в composer.json: ext-pdo и ext-oci8. Т.к. может быть востребована
только одна из зависимостей, а не обе сразу (мешает установке через composer).
|
v2.0.0-beta1 |
02.07.2021 |
Запуск проекта.
|