multiple selectInput-Werte erzeugen unerwartetes Dplyr-Verhalten (postgres)

Ich habe eine schöne Shiny-App, die selectInput-Werte akzeptiert, eine postgres-DB abfragt und ein Diagramm ausgibt. (Es ist eine einfache Benutzeroberfläche, aber aufgrund von Datenbankverbindungen schwer zu reproduzieren!)

Heute habe ich den ersten selectInput-Wert in multiple = TRUE geändert. Die an die Datenbank übergebene Variable wurde auf% in% der vom geänderten Steuerelement zurückgegebenen Liste aktualisiert. und alles was los ist.

Bevor ich einen Wert auswähle, ist das Steuerelement null, und ich werde vom leuchtend roten "FEHLER: RS-DBI-Treiber ..." begrüßt, der mir mitteilt, dass meine Abfrage "IN ()" ungültig istWenn nur ein Wert ausgewählt ist, wird ein Syntaxfehler angezeigt. "" LocationID "IN 'A1080330'"Ich kann das lösen, indem ich Klammern um die zurückgegebene Liste setze ... locationID% in% (input $ rtnLocid) Dies erzeugt jedoch einen neuen Fehler "Operator existiert nicht", wenn ich aufgrund der hinzugefügten Klammern mehr als ein Listenelement auswähle: "IN (('A1080330', 'B ...'))

Ich denke, der postgres-Treiber möchte SQL-Listenwerte immer in Klammern, wenn er IN verwendet (einige DBs sind hier möglicherweise milder). Durch Hinzufügen der Klammern wird die erste Auswahl korrigiert. Die hinzugefügten Klammern unterbrechen den Postgres-Treiber erneut, wenn die Mehrfachauswahl aktiviert ist.

Kann jemand anderes, der Shiny / postgres verwendet, dieses Verhalten überprüfen?

Regards, Jeff

Update: @Steven hat in den Kommentaren auf diesen Infolink hingewiesen, den ich beim Posten nicht gefunden habe:https: //github.com/hadley/dplyr/issues/51

Antworten auf die Frage(4)

Ihre Antwort auf die Frage