Mysterious Pg syntax error: EXPLAIN BEGIN

I have been getting the following exception lately using the postgresql
adapter. It seems to be related to Transactions, since it mentions
BEGIN.
I had a model named Transaction, which I thought might be causing the
problem, so I renamed it to Transact. But I still get the error.
Something is generating ‘EXPLAIN BEGIN’ as the entirety of the SQL
statement.

The rails statement that is running is a dynamic finder:

if v = Violation.find_by_issuer_id_and_filer_id(issuer.id, filer.id)

v << filing

end

Anyone seen this? Any ideas?

/home/ded/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1158:in

On 28 August 2012 17:14, ddoherty03 [email protected] wrote:

v << filing

`async_exec’: PG::Error: ERROR: syntax error at or near “BEGIN”
(ActiveRecord::StatementInvalid)
LINE 1: EXPLAIN BEGIN
^
: EXPLAIN BEGIN
from

/home/ded/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1158:in

`exec_no_cache’
from

/home/ded/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:664:in


/collection_proxy.rb:89:in

method_missing' from lib/script/find_spvs.rb:25:in block in ’
from lib/script/find_spvs.rb:22:in each' from lib/script/find_spvs.rb:22:in

I assume that find_spvs.rb:25 is
if v = Violation.find_by_issuer_id_and_filer_id(issuer.id, filer.id)

If I were in that situation I would first extract issuer.id and
filer.id to local variables just in case it is evaluating them that is
causing a problem, and also put some debug in to print them just in
case the values are strange.
You have not said whether the Violation class works ok in other
situations.

Colin

Colin,

Thanks for the reply. I have checked out the issuer.id and filer.id
variables and they look rational—they point to actual records—when
the
exception is thrown.

I notice that the exception occurs at random points and seems to be
independent of the data provided.

I have temporarily solved the problem by catching the exception,
sleeping
one second, and issuing a retry, which appears to help.

I recently updated ruby to 1.9.3 and rails to 3.2.8, so that may be the
issue.

Other than that, I’m stumped.

On 28 August 2012 21:51, ddoherty03 [email protected] wrote:

one second, and issuing a retry, which appears to help.
Did you try googling for
postgresql “explain begin”
it brings up this which might be helpful
mysql - Rails 3.2 Explains causing weird issues with document uploads - Stack Overflow

Colin

On 28 August 2012 23:02, ddoherty03 [email protected] wrote:

Colin,

I tried googling the error message with no hits. Thanks for the link.

The trick where common words are involved can be to put the phrase in
quotes to find exact matches, though it does not always work.

Colin

Colin,

I tried googling the error message with no hits. Thanks for the link.

Regards,

Dan