BEGIN dan END adalah kata-kata yang dicadangkan di Oracle dan SQL Server, tetapi tidak yakin mengapa MySQL tidak menganggapnya seperti itu .
Namun PGError itu akan muncul untuk menunjukkan bahwa mesin basis data itu sendiri (dan bukan runtime terkait Ruby) memang menolak kueri karena "akhir".
Kata-kata yang dicadangkan (dan nama yang mengandung spasi) dapat digunakan jika dikutip - mungkin Rekaman Aktif tidak mengutip pengidentifikasi dalam SQL yang dihasilkan.
Saya akan melihat log di MySQL (http://dev.mysql.com/doc/refman/5.5/en/query-log.html) dan melihat pernyataan yang dihasilkan.
Dan karena PGError berarti PostGreSQL dan Anda menyebutkan Heroku (PostgreSQL 8.3) - Saya pikir ini karena END memang merupakan kata yang dicadangkan di PostgreSQL:http://www.postgresql.org/docs/8.3/static/sql-keywords-appendix.html
http://www.petefreitag.com/tools/sql_reserved_words_checker/?word=end