Режим 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 не работает sum(boolean). Поэтому могут быть отличия результатах работы Расчетных показателей.
- Использование VERTICA
- В VERTICA при сортировке по полю нет возможности указывать характер сортировки NULL-значений (нет директив NULL FIRST/LAST). К тому же местоположение Местоположение строк при сортировке полей с NULL-значениями зависит от типа сортируемых данных. На стороне viqube не делалось никаких workaround, т. к. стройного решения не было найдено.
- В ORACLE нет типа данных BOOLEAN. В viqube такие поля фигурируют как целочисленные (0/1). По этой причине не работают логические выражения при формировании SQL