MySql представление с вызовом функции - PullRequest
0 голосов
/ 08 мая 2018

У меня есть представление, что строка разбивает столбец в базовой таблице с помощью пользовательской функции. У меня также есть предложение where в определении представления, которое ограничивает возвращаемые строки. Когда я выбираю из представления без предложения where, все работает как положено. Когда я добавляю предложение where к самому представлению с фильтром в один из столбцов, созданных функцией, оно, похоже, не использует предложение where для внутреннего определения определения, чтобы определить, какие строки передаются в функцию, вызываемую предложением external where ,

Это, вероятно, лучше всего объяснить на примере. Я использую MariaDB 10.2.11

Table T1

ID      Text        Status
1       a,b,c       Completed
2       a,b,c,d     Failed
3       a,b,c       Completed
4       a,b,c       Completed

view C1 defined as 

select id, 
stringsplit(Text,1) as ColA, 
Status 
from T1
where Status = 'Completed';

select * from C1 where ColA = 'a';

При последнем выборе я заметил, что данные из строк, которые должны были быть отфильтрованы по предложению inner, передаются в вызов функции stringsplit, сгенерированный предложением external, где ColA = 'a'.

Я бы ожидал, что внутренняя область в представлении удалила все строки, где Status! = 'Completed' до того, как ColA = 'a' вступило в силу. Я что-то упустил?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...