Sql mode beginning-of-statement and end-of-statement commands depend on the :terminator property being set for sql-product, however only a few products in sql.el have it defined, and there is no fallback value - prominently the 'ansi product does not have :terminator set. In effect if you sql mode will product set to anything other than the few products that have :terminator specified, you will get an error on using beginning-of-statement / end-of-statement, that looks like this: Debugger entered--Lisp error: (wrong-type-argument stringp nil) looking-at(nil) sql-end-of-statement(1) funcall-interactively(sql-end-of-statement 1) call-interactively(sql-end-of-statement nil nil) command-execute(sql-end-of-statement)