SQLite 3.35 має нові вбудовані математичні функції та багато іншого

Випущено випуск SQLite 3.35 і в цьому новому випуску цього менеджера баз даних виділення математичних функцій, а також підтримка виразу ALTER TABLE DROP COLUMN для викидання стовпців із таблиці, вдосконалених операцій тощо.

Для тих, хто не знайомий з пакетом SQLite це полегшена СУБД, розроблений як бібліотека плагінів. Код SQLite поширюється як загальнодоступне, тобто його можна використовувати без обмежень і безкоштовно для будь-яких цілей.

Основні нові можливості SQLite 3.35

Як згадувалося на початку, у цій новій версії додані вбудовані математичні функції (log2 (), cos (), tg (), exp (), ln (), pow () тощо) що можна використовувати в SQL. Щоб увімкнути вбудовані функції, потрібна збірка з опцією "-DSQLITE_ENABLE_MATH_FUNCTIONS".

Вираз "ALTER TABLE DROP COLUMN" тепер підтримує скидання стовпців із таблиці і видалити дані, що раніше зберігалися в цьому стовпці.

Реалізація операції UPSERT (додати або змінити), що дозволяє використовувати такі вирази, як "ВСТАВИТИ В КОНФЛІКТ НІЧОГО / НЕ ОНОВЛЮВАТИ", щоб ігнорувати помилку або виконувати оновлення, замість того, щоб вставляти, якщо неможливо, додавати дані за допомогою "ВСТАВИТИ" (наприклад, якщо запис, ОНОВИТИ можна зробити замість ВСТАВИТИ).

У новій версії дозволено вказати кілька блоків «В КОНФЛІКТІ«, Які будуть оброблені в порядку. В останньому блоці "ON CONFLICT" дозволяється не вказувати параметр визначення конфлікту для використання "DO UPDATE".

Операції DELETE, INSERT та UPDATE підтримують вираз RETURNING, який можна використовувати для відображення вмісту видаленого, вставленого або зміненого запису. Наприклад, "вставити в ... повернення ідентифікатора" поверне доданий ідентифікатор рядка, а "оновити ... встановити ціну = ціну * 1.10 повернути ціну" поверне значення оновленої ціни.

Для узагальнених виразів таблиць (Common Table Expression, CTE), що дозволяє використовувати тимчасово іменовані набори результатів, використовуючи оператор WITH, затверджений вибір режимів «МАТЕРІАЛІЗОВАНО» та «НЕ МАТЕРІАЛІЗОВАНО».

  1. «МАТЕРІАЛІЗОВАНО» означає кешувати запит, зазначений у поданні, в окремій фізичній таблиці з подальшим пошуком даних з цієї таблиці.
  2. А з "НЕ МАТЕРІАЛІЗОВАНО" повторні запити виконуватимуться кожного разу, коли буде доступ до подання. Спочатку для SQLite за замовчуванням було встановлено значення "НЕ МАТЕРІАЛІЗОВАНО", але зараз воно змінено на "МАТЕРІАЛІЗОВАНО" для КТЕ, що використовувались більше одного разу.

З інших змін що виділяються з цієї нової версії:

  • Зменшено споживання пам'яті при виконанні операцій VACUUM для баз даних, що містять дуже великі значення з типами TEXT або BLOB.
  • Проведено роботу з підвищення продуктивності оптимізатора та планувальника запитів.
  • Оптимізації додано при використанні функцій min та max із виразом "IN".
  • Виконання оператора EXISTS пришвидшено.
  • Здійснено розширення підзапитів виразів UNION ALL, що використовуються в JOIN.
  • Індекс, що використовується для виразів IS NOT NULL.
  • Перетворення "x IS NULL" та "x IS NOT NULL" у FALSE або TRUE було передбачено для стовпців із позначкою "NOT NULL".
  • Перевірка зовнішнього ключа в ОНОВЛЕННІ пропускається, якщо операція не змінює стовпців, пов’язаних із зовнішнім ключем.
  • Переміщення частин речення WHERE до підзапитів, що містять функції вікна, дозволяється, якщо ці частини обмежуються роботою з константами та копіями виразів речення "PARTITION BY", що використовуються у віконних функціях.

Зміни в інтерфейсі командного рядка:

  • Додана команда ".filectrl data_version".
  • Команди ".once" та ".output" додали підтримку передачі виводу викликаному контролеру за допомогою безіменних каналів ("|").
  • Команда ".stats" додала аргументи "stmt" та "vmstep" для відображення статистичних даних про лічильники та вирази віртуальної машини.

В кінці кінців якщо вам цікаво дізнатись більше про це про цю нову версію SQLite, ви можете перевірити деталі перейшовши за таким посиланням.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.