[BioRuby] BioSQL - postgres refusing SQL generated by Bio::SQL::establish_connection

Raoul Bonnal bonnal at ingm.org
Mon Nov 14 13:34:25 UTC 2011


It should work with versions prior to Rails 3.x.
But if you are not in a rush after paper submission I'll look into it,
let'say 2 weeks  ? There was another BioSQL issue around, i didn't answer
because I was busy.

@Rob: could you give me the script to replicate the error ?

We could extract BioSQL from BioRuby and create a plugin, is something I'm
considering.

On 14/11/11 14.14, "Naohisa GOTO" <ngoto at gen-info.osaka-u.ac.jp> wrote:

> Hi Raoul,
> 
> Which version of ActiveRecord is suitable with the current
> BioRuby's biosql implementation?
> 
> With RubyGems and (optionally) with Bundler, we can specify
> specific version number to be used.
> 
> Naohisa Goto
> ngoto at gen-info.osaka-u.ac.jp / ng at bioruby.org
> 
> On Mon, 14 Nov 2011 11:43:51 +0100
> Raoul Bonnal <bonnal at ingm.org> wrote:
> 
>> Hi Rob,
>> may be a problem of my biosql implementation, I suppose.
>> I didn't update the library and I didn't check compatibility with new active
>> record stuff and composite primary keys.
>> Now, I can not take care of this, if there is someone wants to take care of
>> I'll be happy to support him/her.
>> 
>> 
>> On 14/11/11 07.07, "Rob Syme" <rob.syme at gmail.com> wrote:
>> 
>>> Hi all,
>>> Full details are up at: http://gist.github.com/1363302
>>> 
>>> This might just be the result of a schema change in BioSQL, but my SQL
>>> knowledge doesn't extend quite far enough. Has anyone come across this
>>> before?
>>> 
>>> When connecting to an empty postgres BioSQL db, I get an
>>> ActiveRecord::StatementInvalid error:
>>> 
>>> PGError: ERROR:  cannot perform INSERT RETURNING on relation "ontology"
>>> HINT:  You need an unconditional ON INSERT DO INSTEAD rule with a
>>> RETURNING clause.
>>> : INSERT INTO "ontology" ("definition", "name") VALUES ($1, $2)
>>> RETURNING "ontology_id"
>>> ActiveRecord::StatementInvalid: PGError: ERROR:  cannot perform INSERT
>>> RETURNING on relation "ontology"
>>> HINT:  You need an unconditional ON INSERT DO INSTEAD rule with a
>>> RETURNING clause.
>>> : INSERT INTO "ontology" ("definition", "name") VALUES ($1, $2)
>>> RETURNING "ontology_id"
>>> from 
>>> /home/rob/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/active_recor
>>> d/
>>> connection_adapters/postgresql_adapter.rb:1009:in
>>> `prepare'
>>> <snip>
>>> from 
>>> /home/rob/.rvm/gems/ruby-1.9.2-p290/gems/bio-1.4.2.5000/lib/bio/io/biosql/bi
>>> os
>>> ql.rb:31:in
>>> `establish_connection'
>>> 
>>> 
>>> The offending SQL was:
>>> 
>>> SELECT "ontology".* FROM "ontology" WHERE (name = 'Annotation Tags')
>>> LIMIT 1 # This works fine
>>> INSERT INTO "ontology" ("definition", "name") VALUES ($1, $2)
>>> RETURNING "ontology_id"  [["definition", nil], ["name", "Annotation
>>> Tags"]] # This fails
>>> 
>>> Relevant gems installed:
>>>   activerecord (3.1.1)
>>>   composite_primary_keys (4.1.1)
>>>   pg (0.11.0)
>>>   bio (1.4.2.5000)
>>> 
>>> Using:
>>>   psql (PostgreSQL) 9.1.1
>>>   BioSQL schema version 1.0.1 and
>>>   ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
>>> 
>>> -r
>>> _______________________________________________
>>> BioRuby Project - http://www.bioruby.org/
>>> BioRuby mailing list
>>> BioRuby at lists.open-bio.org
>>> http://lists.open-bio.org/mailman/listinfo/bioruby
>> 
>> 
>> _______________________________________________
>> BioRuby Project - http://www.bioruby.org/
>> BioRuby mailing list
>> BioRuby at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioruby
> 
> 





More information about the BioRuby mailing list