Skip to content

Commit 2d55a9f

Browse files
committed
Set sql_mode=ANSI_QUOTES for MySQL
By default, MySQL and MariaDB uses double quotes (") to delimit string literals. This contradicts ANSI SQL, which uses double quotes to quote special characters in identifiers. The generic_db_lookup expert relies on the ANSI behaviour. Set sql_mode=ANSI_QUOTES for MySQL and MariaDB to make it behave like everything else.
1 parent 2f71f98 commit 2d55a9f

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

intelmq/lib/mixins/sql.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ def _init_mysql(self):
127127
"connect_timeout": getattr(self, 'connect_timeout', 5)
128128
},
129129
autocommitable=True)
130+
self.cur.execute("SET sql_mode = CONCAT_WS(',', (SELECT @@sql_mode), 'ANSI_QUOTES')")
131+
130132

131133
def execute(self, query: str, values: tuple, rollback=False):
132134
try:

0 commit comments

Comments
 (0)