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)