> Here is a thin that puzzles me:
>
> On Sun, Jun 10, 2007 at 03:05:28PM +0200, Daniel Nogradi wrote:
> > sqlobject.dberrors.OperationalError: no such column: animal.cage_id
>
>    But there is "cage_id" columnm in the "animal" table

Well, that's exactly the problem :)

> there were a lot
> of INSERTs and SELECTs for the table before the traceback. Add "debug=1" to
> the DB URI to see the SQL statements.

Here is the full output from the above code:


 1/Query   :  CREATE TABLE named (
    id INTEGER PRIMARY KEY,
    name TEXT,
    child_name VARCHAR(255)
)
 1/QueryR  :  CREATE TABLE named (
    id INTEGER PRIMARY KEY,
    name TEXT,
    child_name VARCHAR(255)
)
 2/Query   :  CREATE TABLE zoo (
    id INTEGER PRIMARY KEY,
    child_name VARCHAR(255)
)
 2/QueryR  :  CREATE TABLE zoo (
    id INTEGER PRIMARY KEY,
    child_name VARCHAR(255)
)
 3/Query   :  CREATE TABLE cage (
    id INTEGER PRIMARY KEY,
    zoo_id INT CONSTRAINT zoo_id_exists REFERENCES zoo(id) ,
    child_name VARCHAR(255)
)
 3/QueryR  :  CREATE TABLE cage (
    id INTEGER PRIMARY KEY,
    zoo_id INT CONSTRAINT zoo_id_exists REFERENCES zoo(id) ,
    child_name VARCHAR(255)
)
 4/Query   :  CREATE TABLE animal (
    id INTEGER PRIMARY KEY,
    cage_id INT CONSTRAINT cage_id_exists REFERENCES cage(id) ,
    child_name VARCHAR(255)
)
 4/QueryR  :  CREATE TABLE animal (
    id INTEGER PRIMARY KEY,
    cage_id INT CONSTRAINT cage_id_exists REFERENCES cage(id) ,
    child_name VARCHAR(255)
)
 5/QueryIns:  INSERT INTO named (name, child_name) VALUES ('myzoo', 'zoo')
 5/QueryR  :  INSERT INTO named (name, child_name) VALUES ('myzoo', 'zoo')
 6/QueryOne:  SELECT name, child_name FROM named WHERE ((named.id) = (1))
 6/QueryR  :  SELECT name, child_name FROM named WHERE ((named.id) = (1))
 7/QueryIns:  INSERT INTO zoo (id, child_name) VALUES (1, NULL)
 7/QueryR  :  INSERT INTO zoo (id, child_name) VALUES (1, NULL)
 8/QueryOne:  SELECT child_name FROM zoo WHERE ((zoo.id) = (1))
 8/QueryR  :  SELECT child_name FROM zoo WHERE ((zoo.id) = (1))
 9/QueryIns:  INSERT INTO named (name, child_name) VALUES ('firstcage', 'cage')
 9/QueryR  :  INSERT INTO named (name, child_name) VALUES ('firstcage', 'cage')
10/QueryOne:  SELECT name, child_name FROM named WHERE ((named.id) = (2))
10/QueryR  :  SELECT name, child_name FROM named WHERE ((named.id) = (2))
11/QueryIns:  INSERT INTO cage (id, zoo_id, child_name) VALUES (2, 1, NULL)
11/QueryR  :  INSERT INTO cage (id, zoo_id, child_name) VALUES (2, 1, NULL)
12/QueryOne:  SELECT zoo_id, child_name FROM cage WHERE ((cage.id) = (2))
12/QueryR  :  SELECT zoo_id, child_name FROM cage WHERE ((cage.id) = (2))
13/QueryIns:  INSERT INTO named (name, child_name) VALUES ('secondcage', 'cage')
13/QueryR  :  INSERT INTO named (name, child_name) VALUES ('secondcage', 'cage')
14/QueryOne:  SELECT name, child_name FROM named WHERE ((named.id) = (3))
14/QueryR  :  SELECT name, child_name FROM named WHERE ((named.id) = (3))
15/QueryIns:  INSERT INTO cage (id, zoo_id, child_name) VALUES (3, 1, NULL)
15/QueryR  :  INSERT INTO cage (id, zoo_id, child_name) VALUES (3, 1, NULL)
16/QueryOne:  SELECT zoo_id, child_name FROM cage WHERE ((cage.id) = (3))
16/QueryR  :  SELECT zoo_id, child_name FROM cage WHERE ((cage.id) = (3))
17/QueryIns:  INSERT INTO named (name, child_name) VALUES ('tiger', 'animal')
17/QueryR  :  INSERT INTO named (name, child_name) VALUES ('tiger', 'animal')
18/QueryOne:  SELECT name, child_name FROM named WHERE ((named.id) = (4))
18/QueryR  :  SELECT name, child_name FROM named WHERE ((named.id) = (4))
19/QueryIns:  INSERT INTO animal (id, cage_id, child_name) VALUES (4, 2, NULL)
19/QueryR  :  INSERT INTO animal (id, cage_id, child_name) VALUES (4, 2, NULL)
20/QueryOne:  SELECT cage_id, child_name FROM animal WHERE ((animal.id) = (4))
20/QueryR  :  SELECT cage_id, child_name FROM animal WHERE ((animal.id) = (4))
21/QueryIns:  INSERT INTO named (name, child_name) VALUES ('lion', 'animal')
21/QueryR  :  INSERT INTO named (name, child_name) VALUES ('lion', 'animal')
22/QueryOne:  SELECT name, child_name FROM named WHERE ((named.id) = (5))
22/QueryR  :  SELECT name, child_name FROM named WHERE ((named.id) = (5))
23/QueryIns:  INSERT INTO animal (id, cage_id, child_name) VALUES (5, 2, NULL)
23/QueryR  :  INSERT INTO animal (id, cage_id, child_name) VALUES (5, 2, NULL)
24/QueryOne:  SELECT cage_id, child_name FROM animal WHERE ((animal.id) = (5))
24/QueryR  :  SELECT cage_id, child_name FROM animal WHERE ((animal.id) = (5))
25/QueryIns:  INSERT INTO named (name, child_name) VALUES ('croc', 'animal')
25/QueryR  :  INSERT INTO named (name, child_name) VALUES ('croc', 'animal')
26/QueryOne:  SELECT name, child_name FROM named WHERE ((named.id) = (6))
26/QueryR  :  SELECT name, child_name FROM named WHERE ((named.id) = (6))
27/QueryIns:  INSERT INTO animal (id, cage_id, child_name) VALUES (6, 3, NULL)
27/QueryR  :  INSERT INTO animal (id, cage_id, child_name) VALUES (6, 3, NULL)
28/QueryOne:  SELECT cage_id, child_name FROM animal WHERE ((animal.id) = (6))
28/QueryR  :  SELECT cage_id, child_name FROM animal WHERE ((animal.id) = (6))
29/QueryIns:  INSERT INTO named (name, child_name) VALUES ('hypo', 'animal')
29/QueryR  :  INSERT INTO named (name, child_name) VALUES ('hypo', 'animal')
30/QueryOne:  SELECT name, child_name FROM named WHERE ((named.id) = (7))
30/QueryR  :  SELECT name, child_name FROM named WHERE ((named.id) = (7))
31/QueryIns:  INSERT INTO animal (id, cage_id, child_name) VALUES (7, 3, NULL)
31/QueryR  :  INSERT INTO animal (id, cage_id, child_name) VALUES (7, 3, NULL)
32/QueryOne:  SELECT cage_id, child_name FROM animal WHERE ((animal.id) = (7))
32/QueryR  :  SELECT cage_id, child_name FROM animal WHERE ((animal.id) = (7))
33/QueryIns:  INSERT INTO named (name, child_name) VALUES ('fish', 'animal')
33/QueryR  :  INSERT INTO named (name, child_name) VALUES ('fish', 'animal')
34/QueryOne:  SELECT name, child_name FROM named WHERE ((named.id) = (8))
34/QueryR  :  SELECT name, child_name FROM named WHERE ((named.id) = (8))
35/QueryIns:  INSERT INTO animal (id, cage_id, child_name) VALUES (8, 3, NULL)
35/QueryR  :  INSERT INTO animal (id, cage_id, child_name) VALUES (8, 3, NULL)
36/QueryOne:  SELECT cage_id, child_name FROM animal WHERE ((animal.id) = (8))
36/QueryR  :  SELECT cage_id, child_name FROM animal WHERE ((animal.id) = (8))
--------------------------------------------------------------------------------
37/QueryOne:  SELECT COUNT(*) FROM named LEFT JOIN cage ON
((animal.cage_id) = (cage.id)) LEFT JOIN zoo ON ((cage.zoo_id) =
(zoo.id)) WHERE (((named.name) = ('myzoo')) AND ((named.child_name) =
('animal')))
37/QueryR  :  SELECT COUNT(*) FROM named LEFT JOIN cage ON
((animal.cage_id) = (cage.id)) LEFT JOIN zoo ON ((cage.zoo_id) =
(zoo.id)) WHERE (((named.name) = ('myzoo')) AND ((named.child_name) =
('animal')))
Traceback (most recent call last):
  File "dbtest.py", line 50, in <module>
    print animal.select( zoo.q.name=='myzoo', join=joins ).count( )
  File 
"/usr/local/lib/python2.5/site-packages/SQLObject-0.10dev_r2716-py2.5.egg/sqlobject/sresults.py",
line 222, in count
    count = self.accumulate('COUNT(*)')
  File 
"/usr/local/lib/python2.5/site-packages/SQLObject-0.10dev_r2716-py2.5.egg/sqlobject/sresults.py",
line 207, in accumulate
    return conn.accumulateSelect(self, *exprs)
  File 
"/usr/local/lib/python2.5/site-packages/SQLObject-0.10dev_r2716-py2.5.egg/sqlobject/dbconnection.py",
line 408, in accumulateSelect
    val = self.queryOne(q)
  File 
"/usr/local/lib/python2.5/site-packages/SQLObject-0.10dev_r2716-py2.5.egg/sqlobject/dbconnection.py",
line 385, in queryOne
    return self._runWithConnection(self._queryOne, s)
  File 
"/usr/local/lib/python2.5/site-packages/SQLObject-0.10dev_r2716-py2.5.egg/sqlobject/dbconnection.py",
line 255, in _runWithConnection
    val = meth(conn, *args)
  File 
"/usr/local/lib/python2.5/site-packages/SQLObject-0.10dev_r2716-py2.5.egg/sqlobject/dbconnection.py",
line 378, in _queryOne
    self._executeRetry(conn, c, s)
  File 
"/usr/local/lib/python2.5/site-packages/SQLObject-0.10dev_r2716-py2.5.egg/sqlobject/sqlite/sqliteconnection.py",
line 183, in _executeRetry
    raise OperationalError(ErrorMessage(e))
sqlobject.dberrors.OperationalError: no such column: animal.cage_id


Daniel

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
sqlobject-discuss mailing list
sqlobject-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to