2013-07-23 3 views
2

Если я определяю SQLITE_OMIT_SUBQUERY Я не могу выполнить условие подзапроса. Как я могу пересмотреть исходный код, чтобы отключить оптимизацию и запустить как:Как отключить сглаживание подзапроса в sqlite

Когда подзапрос происходит в ЕКОМ в SELECT, самое простое поведение для оценки подзапроса в транзиторной таблицу, а затем запустить внешнее ВЫБРАТЬ по таблице переходных процессов.

ответ

2

Просто нарушите одно из правил, перечисленных в the documentation.

Проще было бы добавить OFFSET положение, которое не имеет никакого эффекта:

SELECT ... 
FROM (SELECT ... 
     FROM ... 
     LIMIT -1 OFFSET 0) 
WHERE ... 

Если вы действительно хотите изменить исходный код: просто вернуть из функции flattenSubquery в select.c, ничего не делая. В начале он имеет следующую строку:

if(OptimizationDisabled(db, SQLITE_QueryFlattener)) return 0; 
Смежные вопросы