несколько значений selectInput создают неожиданное поведение dplyr (postgres)

У меня есть прекрасное блестящее приложение, которое принимает значения selectInput, запрашивает базу данных postgres и выводит график. (Это простой интерфейс, но его трудно воспроизвести из-за соединений с базой данных dplyr!)

Сегодня я изменил первое значение selectInput на несколько = TRUE; обновил переменную, передаваемую в базу данных, до% in% списка, возвращенного измененным элементом управления; и все чертовски свободно.

Прежде чем выбрать значение, элемент управления имеет значение null, поэтому меня приветствует блестящий красный «ОШИБКА: драйвер RS-DBI ...», сообщающий, что мой запрос «IN ()» недействителенКогда выбрано только одно значение, я получаю синтаксическую ошибку "" locationID "IN 'A1080330'"Я могу решить эту проблему, поместив скобки вокруг возвращенного списка ... locationID% в% (input $ rtnLocid)однако это создает новую ошибку «оператор не существует», когда я выбираю более одного элемента списка из-за добавленных скобок: «IN (('A1080330', 'B ...'))

Я думаю, что происходит, когда драйвер postgres всегда хочет использовать значения списка SQL в скобках при использовании IN (некоторые БД могут быть более снисходительными); добавление скобок фиксирует первый выбор; добавленные скобки снова ломают драйвер postgres при включенном множественном выборе.

Может ли кто-нибудь еще, используя Shiny / postgres, проверить это поведение?

С уважением, Джефф

Обновление: @Steven указал на эту информационную ссылку в комментариях, которые я не нашел, когда отправлял:https://github.com/hadley/dplyr/issues/511

Ответы на вопрос(2)

Ваш ответ на вопрос