Static Realtime with sqliteodbc: SQL Execute returned an error: HY000: [SQLite]ESCAPE expression must be a single character (1)

Hi, I am coming from SQL Execute returned an error: HY000: [SQLite]ESCAPE expression must be a single character (1) · Issue #9 · softace/sqliteodbc · GitHub and I still haven’t found a way to address this problem. The trouble arises when using static realtime with a SQLite3 database over ODBC as a backend.

In asterisk/res_config_odbc.c at 13.14.1 · asterisk/asterisk · GitHub I found the culprit, but neither enabling nor disabling the flag yields any usable results for me. Where does the double backslash hail from? Any documentation I read needs a single ESCAPE character, but Asterisk sends two of them.

I am using Debian 9 (stretch) packages, nothing is modified. Is there any way to make this work?

Edit: I found the relevant commit in Asterisk: 15d266bf850ee62cc7708587cde6fd53a3c35be6. Now I am at a complete loss what’s the right syntax to use. Who is doing it wrong? Who is doing it right? MySQL? SQLite? I really don’t know anymore.

What I know even less: How can this be fixed? Because there are clearly inconsistencies out there. PGSQL over ODBC also uses single backslashes, as does MS-SQL (which is mitigated by turning off the flag).

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.