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)