> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss