[sqlalchemy] Cannot acces renamed tables in Oracle

2009-07-31 Thread david.radkow...@googlemail.com

hi

I'm on a project which uses sqlalchemy to access an Oracle instance.
It *used* to work fine until one day we decided to rename some of the
tables. Suprisingly, sqlalchemy wouldn't be able to query those
renamed tables any more!

The error I get is the cumbersome ORA-00942:  table or view does not
exist. However, when I copy/paste the debug SQL command produced in
sqlalchemy log, it runs fine in Toad! :O

Has anybody had a similar problem?

Cheers

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: sqlalchemy 0.4.6 + python 2.3: many-to-many relation problem

2009-06-23 Thread david.radkow...@googlemail.com

no chance :( legacy third party C extension libraries :(

On Jun 23, 3:50 pm, Michael Bayer mike...@zzzcomputing.com wrote:
 david.radkow...@googlemail.com wrote:

  ha! got it! you were right, it's a vendor's python implementation
  problem. the custom python runtime put an instrumentation layer on top
  of  other classes and that why it breaks :D
  switched to the genuine python 2.3.5 and now it's fine :)

 sowhy not switch to genuine python 2.6 ?  :)



  thanks for your input, as you pointed me in the right direction.

  cheers Michael !

  On Jun 22, 9:09 pm, Michael Bayer mike...@zzzcomputing.com wrote:
  david.radkow...@googlemail.com wrote:

   Hi

   I'm a bit concerned why the same code works with SA 0.5. Actually when
   there is no data in the relation, the query returns an empty list;
   however, as soon as I put some data in, I got the error :O
   I tried with 0.4.9dev...something as well, the same result though :/

   Am missing the point here? Do all tables/mappers have to be defined in
   the same context/module?

  no.  As I said, as far as what the stack trace indicates, you are doing
  something with pickling, direct __dict__ access, or custom
  instrumentation
  mods that is not compatible with 0.4.  It might be something else too,
  but
  none of the sample code you have provided provides any insight into what
  might be causing the error.  you would have to provide a succinct and
  fully reproducing (read: we can run it here) test case in order to
  provide
  more clues.

   Thanks

   On Jun 22, 8:38 pm, Michael Bayer mike...@zzzcomputing.com wrote:
   that error would have something to do with pickling, direct __dict__
   access on instances, or playing around with instrumentation
  extensions.
    
    that's as much as can be said based on what you've given.

   aside from whatever reasons for using Py2.3, why ever would you go
   straight to 0.4.6 and not 0.4.8 ?

   david.radkow...@googlemail.com wrote:

Hi

I've got a small problem with my python code proted from 0.5 (p2.5)
  to
0.4.6 (p2.3).
When I try to load query objects from many-to-many relation (mapped
via secondary keyword) I get most weird error:

Traceback (most recent call last):
  File string, line 86, in ?
  File X, line 17, in call_from_unix
  File X, line 12, in test
  File
  /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
sqlalchemy/orm/attributes.py, line 44, in __get__
    return self.impl.get(instance._state)
  File
  /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
sqlalchemy/orm/attributes.py, line 281, in get
    return self.set_committed_value(state, value)
  File
  /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
sqlalchemy/orm/attributes.py, line 635, in set_committed_value
    collection.append_without_event(item)
  File
  /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
sqlalchemy/orm/collections.py, line 540, in append_without_event
    getattr(self._data(), '_sa_appender')(item,
  _sa_initiator=False)
AttributeError: 'InstrumentedList' object has no attribute
'_sa_appender'

Any idea what is going on? It doesn't happen with sa  0.5

Any help will be much appreciated
Cheers

The tables look like follows:
-
import sqlalchemy;
import sqlalchemy.orm;
import rfang.model.rfablcklstinstr;
import rfang.model.rfaruntime;

t_RfaEnvironment = None;
t_RfaEnvironment_RfaBlcklstInstr = None;

def initializeTable(metadata): #{{{
    global t_RfaEnvironment;
    global t_RfaEnvironment_RfaBlcklstInstr;
    if(t_RfaEnvironment == None):
        t_RfaEnvironment = sqlalchemy.Table(RuntimeConfigType,
metadata,
            sqlalchemy.Column
(id,sqlalchemy.types.Integer,sqlalchemy.schema.Sequence
(id_RuntimeConfigType),primary_key=True),
            sqlalchemy.Column(name,sqlalchemy.types.Unicode
(10),nullable=False,unique=True),
            sqlalchemy.Column(filename,sqlalchemy.types.Unicode
(100),nullable=False),
            sqlalchemy.Column(filtername,sqlalchemy.types.Unicode
(255),nullable=False),
            useexisting=True
        );
        rfang.model.rfablcklstinstr.initializeTable(metadata);
        t_RfaEnvironment_RfaBlcklstInstr = sqlalchemy.Table
(RuntimeConfigType_Blacklist, metadata,
            sqlalchemy.Column
(runtimeConfigType_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey
('RuntimeConfigType.id')),
            sqlalchemy.Column
(blacklist_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey
('Blacklist.id')),
            useexisting=True
        );
    return;
#def }}}

def initializeMapper(): #{{{
    global t_RfaEnvironment;
    global

[sqlalchemy] sqlalchemy 0.4.6 + python 2.3: many-to-many relation problem

2009-06-22 Thread david.radkow...@googlemail.com

Hi

I've got a small problem with my python code proted from 0.5 (p2.5) to
0.4.6 (p2.3).
When I try to load query objects from many-to-many relation (mapped
via secondary keyword) I get most weird error:

Traceback (most recent call last):
  File string, line 86, in ?
  File X, line 17, in call_from_unix
  File X, line 12, in test
  File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
sqlalchemy/orm/attributes.py, line 44, in __get__
return self.impl.get(instance._state)
  File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
sqlalchemy/orm/attributes.py, line 281, in get
return self.set_committed_value(state, value)
  File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
sqlalchemy/orm/attributes.py, line 635, in set_committed_value
collection.append_without_event(item)
  File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
sqlalchemy/orm/collections.py, line 540, in append_without_event
getattr(self._data(), '_sa_appender')(item, _sa_initiator=False)
AttributeError: 'InstrumentedList' object has no attribute
'_sa_appender'

Any idea what is going on? It doesn't happen with sa  0.5

Any help will be much appreciated
Cheers

The tables look like follows:
-
import sqlalchemy;
import sqlalchemy.orm;
import rfang.model.rfablcklstinstr;
import rfang.model.rfaruntime;

t_RfaEnvironment = None;
t_RfaEnvironment_RfaBlcklstInstr = None;

def initializeTable(metadata): #{{{
global t_RfaEnvironment;
global t_RfaEnvironment_RfaBlcklstInstr;
if(t_RfaEnvironment == None):
t_RfaEnvironment = sqlalchemy.Table(RuntimeConfigType,
metadata,
sqlalchemy.Column
(id,sqlalchemy.types.Integer,sqlalchemy.schema.Sequence
(id_RuntimeConfigType),primary_key=True),
sqlalchemy.Column(name,sqlalchemy.types.Unicode
(10),nullable=False,unique=True),
sqlalchemy.Column(filename,sqlalchemy.types.Unicode
(100),nullable=False),
sqlalchemy.Column(filtername,sqlalchemy.types.Unicode
(255),nullable=False),
useexisting=True
);
rfang.model.rfablcklstinstr.initializeTable(metadata);
t_RfaEnvironment_RfaBlcklstInstr = sqlalchemy.Table
(RuntimeConfigType_Blacklist, metadata,
sqlalchemy.Column
(runtimeConfigType_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey
('RuntimeConfigType.id')),
sqlalchemy.Column
(blacklist_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey
('Blacklist.id')),
useexisting=True
);
return;
#def }}}

def initializeMapper(): #{{{
global t_RfaEnvironment;
global t_RfaEnvironment_RfaBlcklstInstr;
sqlalchemy.orm.mapper( RfaEnvironment, t_RfaEnvironment,
properties = {
rfaruntimes : sqlalchemy.orm.relation
(rfang.model.rfaruntime.RfaRuntime,backref=rfaenvironment,cascade=all,delete,delete-
orphan),
rfablacklist : sqlalchemy.orm.relation
(rfang.model.rfablcklstinstr.RfaBlcklstInstr,secondary =
t_RfaEnvironment_RfaBlcklstInstr ,backref=rfaenvironments)
});
return;
#def }}}

class RfaEnvironment(object):

def __init__(self, name=None, filtername=None, filename=None,
rfaruntimes=[], rfablacklist=[]): #{{{2
self.name = name;
self.filename = filename;
self.filtername = filtername;
self.rfablacklist = rfablacklist;
self.rfaruntimes = rfaruntimes;
return;
#def }}}2

#class RuntimeConfigType
-
import sqlalchemy;
import sqlalchemy.orm;
import rfang.model.rfaenvironment;
import rfang.model.rfarun;

t_RfaSuite = None;
t_RfaSuite_RfaEnvironment = None;

def initializeTable(metadata): #{{{
global t_RfaSuite;
global t_RfaSuite_RfaEnvironment;
if(t_RfaSuite == None):
t_RfaSuite = sqlalchemy.Table(RfaSuite,metadata,
sqlalchemy.Column
(id,sqlalchemy.types.Integer,sqlalchemy.schema.Sequence
(id_RfaSuite),primary_key=True),
sqlalchemy.Column(name,sqlalchemy.types.Unicode
(50),nullable=False),
useexisting=True
);
rfang.model.rfaenvironment.initializeTable(metadata);
t_RfaSuite_RfaEnvironment = sqlalchemy.Table
(RfaSuite_RuntimeConfigType,metadata,
sqlalchemy.Column
(RfaSuite_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey
(RfaSuite.id)),
sqlalchemy.Column
(RuntimeConfigType_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey
(RuntimeConfigType.id)),
useexisting=True
);
return;
#def }}}

def initializeMapper(): #{{{
global t_RfaSuite;
global t_RfaSuite_RfaEnvironment;
sqlalchemy.orm.mapper(RfaSuite, t_RfaSuite, properties = {
   rfaenvironments   : sqlalchemy.orm.relation
(rfang.model.rfaenvironment.RfaEnvironment,secondary=t_RfaSuite_RfaEnvironment,

[sqlalchemy] Re: sqlalchemy 0.4.6 + python 2.3: many-to-many relation problem

2009-06-22 Thread david.radkow...@googlemail.com

Hi

I'm a bit concerned why the same code works with SA 0.5. Actually when
there is no data in the relation, the query returns an empty list;
however, as soon as I put some data in, I got the error :O
I tried with 0.4.9dev...something as well, the same result though :/

Am missing the point here? Do all tables/mappers have to be defined in
the same context/module?

Thanks

On Jun 22, 8:38 pm, Michael Bayer mike...@zzzcomputing.com wrote:
 that error would have something to do with pickling, direct __dict__
 access on instances, or playing around with instrumentation extensions.  
  that's as much as can be said based on what you've given.

 aside from whatever reasons for using Py2.3, why ever would you go
 straight to 0.4.6 and not 0.4.8 ?

 david.radkow...@googlemail.com wrote:

  Hi

  I've got a small problem with my python code proted from 0.5 (p2.5) to
  0.4.6 (p2.3).
  When I try to load query objects from many-to-many relation (mapped
  via secondary keyword) I get most weird error:

  Traceback (most recent call last):
    File string, line 86, in ?
    File X, line 17, in call_from_unix
    File X, line 12, in test
    File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
  sqlalchemy/orm/attributes.py, line 44, in __get__
      return self.impl.get(instance._state)
    File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
  sqlalchemy/orm/attributes.py, line 281, in get
      return self.set_committed_value(state, value)
    File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
  sqlalchemy/orm/attributes.py, line 635, in set_committed_value
      collection.append_without_event(item)
    File /usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/
  sqlalchemy/orm/collections.py, line 540, in append_without_event
      getattr(self._data(), '_sa_appender')(item, _sa_initiator=False)
  AttributeError: 'InstrumentedList' object has no attribute
  '_sa_appender'

  Any idea what is going on? It doesn't happen with sa  0.5

  Any help will be much appreciated
  Cheers

  The tables look like follows:
  -
  import sqlalchemy;
  import sqlalchemy.orm;
  import rfang.model.rfablcklstinstr;
  import rfang.model.rfaruntime;

  t_RfaEnvironment = None;
  t_RfaEnvironment_RfaBlcklstInstr = None;

  def initializeTable(metadata): #{{{
      global t_RfaEnvironment;
      global t_RfaEnvironment_RfaBlcklstInstr;
      if(t_RfaEnvironment == None):
          t_RfaEnvironment = sqlalchemy.Table(RuntimeConfigType,
  metadata,
              sqlalchemy.Column
  (id,sqlalchemy.types.Integer,sqlalchemy.schema.Sequence
  (id_RuntimeConfigType),primary_key=True),
              sqlalchemy.Column(name,sqlalchemy.types.Unicode
  (10),nullable=False,unique=True),
              sqlalchemy.Column(filename,sqlalchemy.types.Unicode
  (100),nullable=False),
              sqlalchemy.Column(filtername,sqlalchemy.types.Unicode
  (255),nullable=False),
              useexisting=True
          );
          rfang.model.rfablcklstinstr.initializeTable(metadata);
          t_RfaEnvironment_RfaBlcklstInstr = sqlalchemy.Table
  (RuntimeConfigType_Blacklist, metadata,
              sqlalchemy.Column
  (runtimeConfigType_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey
  ('RuntimeConfigType.id')),
              sqlalchemy.Column
  (blacklist_id,sqlalchemy.types.Integer,sqlalchemy.ForeignKey
  ('Blacklist.id')),
              useexisting=True
          );
      return;
  #def }}}

  def initializeMapper(): #{{{
      global t_RfaEnvironment;
      global t_RfaEnvironment_RfaBlcklstInstr;
      sqlalchemy.orm.mapper( RfaEnvironment, t_RfaEnvironment,
  properties = {
          rfaruntimes : sqlalchemy.orm.relation
  (rfang.model.rfaruntime.RfaRuntime,backref=rfaenvironment,cascade=all,delete,delete-
  orphan),
          rfablacklist : sqlalchemy.orm.relation
  (rfang.model.rfablcklstinstr.RfaBlcklstInstr,secondary =
  t_RfaEnvironment_RfaBlcklstInstr ,backref=rfaenvironments)
      });
      return;
  #def }}}

  class RfaEnvironment(object):

      def __init__(self, name=None, filtername=None, filename=None,
  rfaruntimes=[], rfablacklist=[]): #{{{2
          self.name = name;
          self.filename = filename;
          self.filtername = filtername;
          self.rfablacklist = rfablacklist;
          self.rfaruntimes = rfaruntimes;
          return;
      #def }}}2

  #class RuntimeConfigType
  -
  import sqlalchemy;
  import sqlalchemy.orm;
  import rfang.model.rfaenvironment;
  import rfang.model.rfarun;

  t_RfaSuite = None;
  t_RfaSuite_RfaEnvironment = None;

  def initializeTable(metadata): #{{{
      global t_RfaSuite;
      global t_RfaSuite_RfaEnvironment;
      if(t_RfaSuite == None):
          t_RfaSuite = sqlalchemy.Table(RfaSuite,metadata