Режим SQL Backend имеет ряд ограничений по сравнению с In-memory:
- Не поддерживаются Итоги/Подитоги.
В случае получения запроса, содержащего Итоги/Подитоги, он будет передан в ViQube(In-memory). - Не поддерживаются операции редактирования строк в таблицах. Возможно только чтение данных. При получении подобного запроса строка будет добавлена в таблицу на ViQube(In-memory) и не будет видна при включенном SQL Backend.
- Имеются отличия при работе с NULL в выражениях (по сравнению с ViQube(In-memory)):
- В результате сравнения с NULL в случае ViQube(In-memory) будет возвращено FALSE, а в случае ViQube(SQL Backend) будет возвращено NULL
- При арифметических операциях NULL в ViQube(In-memory) интерпретируется как (1+NULL =1), а в SQL-базе как UNDEFINED (1+NULL =NULL )
- Имеется специфика при работе с некоторыми базами данных. Например, в Postgres SQL , а именно:
- В PostgreSQL не работает
sum(boolean)
. Поэтому могут быть отличия в результатах работы
- расчетных показателей.
- В Oracle нет типа данных
Boolean
. В ViQube такие поля фигурируют как целочисленные (0/1). По этой причине не работают логические выражения в сформированном SQL-запросе.
- В PostgreSQL не работает
- Использование VERTICA
- В VERTICA при сортировке по полю нет возможности указывать характер сортировки NULL-значений (нет директив NULL FIRST/LAST). Местоположение строк при сортировке полей с NULL-значениями зависит от типа сортируемых данных.