Nie możesz.
Planer zapytań PostgreSQL nie ma flagi „wyłącz optymalizację”.
Byłoby ciekawie dodać, ale spowodowałoby to, że testy regresji byłyby znacznie bardziej złożone i miałyby bardzo ograniczoną użyteczność.
Aby robić to, co chcesz, myślę, że chciałbyś zmodyfikować kod planowania zapytań, przekompilować i ponownie zainstalować PostgreSQL dla każdego testu. Lub zhakuj go, aby dodać kilka niestandardowych GUC (zmienne systemowe, takie jak enable_seqscan
), aby umożliwić włączanie i wyłączanie poszczególnych optymalizacji.
Wątpię, aby jakakolwiek taka łatka została zaakceptowana w PostgreSQL, ale warto byłoby to zrobić jako odrzut.
Jedynym wyzwaniem jest to, że PostgreSQL nie rozróżnia wyraźnie między „optymalizacją” a „rzeczą, którą robimy, aby wykonać zapytanie”. Czasami części kodu planera oczekiwane i wymagaj że zastosowano określoną optymalizację, aby działała poprawnie.