Leandro Lucarella, el 15 de junio a las 14:00 me escribiste:
> Daniel Nogradi, el 14 de junio a las 17:19 me escribiste:
> > > > Hi, can you please test the code below (if you have sqlite)? If you
> > > > use a different db, can you please change the connectionForURI to use
> > > > yours and test then? The correct output should be 5 of course.
> > >
> > > I can't, but I don't see the point. What do you expect me to see running
> > > the test?
> >
> >
> > Well, if you would have a different db than sqlite and for you the
> > test would pass it would mean that the problem is either with sqlite
> > or the python binding pysqlite, but not sqlobject.
>
> I thought Oleg tested that. Anyways, I've attached two output from the
> test (one for postgresql, and one for mysql), both failed as expected.
I allways forget the attachments... :S
--
LUCA - Leandro Lucarella - Usando Debian GNU/Linux Sid - GNU Generation
------------------------------------------------------------------------
E-Mail / JID: [EMAIL PROTECTED]
GPG Fingerprint: D9E1 4545 0F4B 7928 E82C 375D 4B02 0FE0 B08B 4FB2
GPG Key: gpg --keyserver pks.lugmen.org.ar --recv-keys B08B4FB2
------------------------------------------------------------------------
El techo de mi cuarto lleno de planetas
Y mi mente es un planeta más
Donde vivo yo y nadie podrá entrar
Jamás
1/Query : CREATE TABLE named (
id SERIAL PRIMARY KEY,
name TEXT,
child_name VARCHAR(255)
)
1/QueryR : CREATE TABLE named (
id SERIAL PRIMARY KEY,
name TEXT,
child_name VARCHAR(255)
)
1/COMMIT : auto
1/Query : CREATE TABLE zoo (
id SERIAL PRIMARY KEY,
child_name VARCHAR(255)
)
1/QueryR : CREATE TABLE zoo (
id SERIAL PRIMARY KEY,
child_name VARCHAR(255)
)
1/COMMIT : auto
1/Query : CREATE TABLE cage (
id SERIAL PRIMARY KEY,
zoo_id INT,
child_name VARCHAR(255)
)
1/QueryR : CREATE TABLE cage (
id SERIAL PRIMARY KEY,
zoo_id INT,
child_name VARCHAR(255)
)
1/COMMIT : auto
1/Query : ALTER TABLE cage ADD CONSTRAINT zoo_id_exists FOREIGN KEY
(zoo_id) REFERENCES zoo (id)
1/QueryR : ALTER TABLE cage ADD CONSTRAINT zoo_id_exists FOREIGN KEY
(zoo_id) REFERENCES zoo (id)
1/COMMIT : auto
1/Query : CREATE TABLE animal (
id SERIAL PRIMARY KEY,
cage_id INT,
child_name VARCHAR(255)
)
1/QueryR : CREATE TABLE animal (
id SERIAL PRIMARY KEY,
cage_id INT,
child_name VARCHAR(255)
)
1/COMMIT : auto
1/Query : ALTER TABLE animal ADD CONSTRAINT cage_id_exists FOREIGN KEY
(cage_id) REFERENCES cage (id)
1/QueryR : ALTER TABLE animal ADD CONSTRAINT cage_id_exists FOREIGN KEY
(cage_id) REFERENCES cage (id)
1/COMMIT : auto
1/QueryIns: INSERT INTO named (id, name, child_name) VALUES (1, 'myzoo',
'zoo')
1/COMMIT : auto
1/QueryOne: SELECT name, child_name FROM named WHERE id = (1)
1/QueryR : SELECT name, child_name FROM named WHERE id = (1)
1/COMMIT : auto
1/QueryIns: INSERT INTO zoo (id, child_name) VALUES (1, NULL)
1/COMMIT : auto
1/QueryOne: SELECT child_name FROM zoo WHERE id = (1)
1/QueryR : SELECT child_name FROM zoo WHERE id = (1)
1/COMMIT : auto
1/QueryIns: INSERT INTO named (id, name, child_name) VALUES (2, 'firstcage',
'cage')
1/COMMIT : auto
1/QueryOne: SELECT name, child_name FROM named WHERE id = (2)
1/QueryR : SELECT name, child_name FROM named WHERE id = (2)
1/COMMIT : auto
1/QueryIns: INSERT INTO cage (id, zoo_id, child_name) VALUES (2, 1, NULL)
1/COMMIT : auto
1/QueryOne: SELECT zoo_id, child_name FROM cage WHERE id = (2)
1/QueryR : SELECT zoo_id, child_name FROM cage WHERE id = (2)
1/COMMIT : auto
1/QueryIns: INSERT INTO named (id, name, child_name) VALUES (3, 'secondcage',
'cage')
1/COMMIT : auto
1/QueryOne: SELECT name, child_name FROM named WHERE id = (3)
1/QueryR : SELECT name, child_name FROM named WHERE id = (3)
1/COMMIT : auto
1/QueryIns: INSERT INTO cage (id, zoo_id, child_name) VALUES (3, 1, NULL)
1/COMMIT : auto
1/QueryOne: SELECT zoo_id, child_name FROM cage WHERE id = (3)
1/QueryR : SELECT zoo_id, child_name FROM cage WHERE id = (3)
1/COMMIT : auto
1/QueryIns: INSERT INTO named (id, name, child_name) VALUES (4, 'tiger',
'animal')
1/COMMIT : auto
1/QueryOne: SELECT name, child_name FROM named WHERE id = (4)
1/QueryR : SELECT name, child_name FROM named WHERE id = (4)
1/COMMIT : auto
1/QueryIns: INSERT INTO animal (id, cage_id, child_name) VALUES (4, 2, NULL)
1/COMMIT : auto
1/QueryOne: SELECT cage_id, child_name FROM animal WHERE id = (4)
1/QueryR : SELECT cage_id, child_name FROM animal WHERE id = (4)
1/COMMIT : auto
1/QueryIns: INSERT INTO named (id, name, child_name) VALUES (5, 'lion',
'animal')
1/COMMIT : auto
1/QueryOne: SELECT name, child_name FROM named WHERE id = (5)
1/QueryR : SELECT name, child_name FROM named WHERE id = (5)
1/COMMIT : auto
1/QueryIns: INSERT INTO animal (id, cage_id, child_name) VALUES (5, 2, NULL)
1/COMMIT : auto
1/QueryOne: SELECT cage_id, child_name FROM animal WHERE id = (5)
1/QueryR : SELECT cage_id, child_name FROM animal WHERE id = (5)
1/COMMIT : auto
1/QueryIns: INSERT INTO named (id, name, child_name) VALUES (6, 'croc',
'animal')
1/COMMIT : auto
1/QueryOne: SELECT name, child_name FROM named WHERE id = (6)
1/QueryR : SELECT name, child_name FROM named WHERE id = (6)
1/COMMIT : auto
1/QueryIns: INSERT INTO animal (id, cage_id, child_name) VALUES (6, 3, NULL)
1/COMMIT : auto
1/QueryOne: SELECT cage_id, child_name FROM animal WHERE id = (6)
1/QueryR : SELECT cage_id, child_name FROM animal WHERE id = (6)
1/COMMIT : auto
1/QueryIns: INSERT INTO named (id, name, child_name) VALUES (7, 'hypo',
'animal')
1/COMMIT : auto
1/QueryOne: SELECT name, child_name FROM named WHERE id = (7)
1/QueryR : SELECT name, child_name FROM named WHERE id = (7)
1/COMMIT : auto
1/QueryIns: INSERT INTO animal (id, cage_id, child_name) VALUES (7, 3, NULL)
1/COMMIT : auto
1/QueryOne: SELECT cage_id, child_name FROM animal WHERE id = (7)
1/QueryR : SELECT cage_id, child_name FROM animal WHERE id = (7)
1/COMMIT : auto
1/QueryIns: INSERT INTO named (id, name, child_name) VALUES (8, 'fish',
'animal')
1/COMMIT : auto
1/QueryOne: SELECT name, child_name FROM named WHERE id = (8)
1/QueryR : SELECT name, child_name FROM named WHERE id = (8)
1/COMMIT : auto
1/QueryIns: INSERT INTO animal (id, cage_id, child_name) VALUES (8, 3, NULL)
1/COMMIT : auto
1/QueryOne: SELECT cage_id, child_name FROM animal WHERE id = (8)
1/QueryR : SELECT cage_id, child_name FROM animal WHERE id = (8)
1/COMMIT : auto
--------------------------------------------------------------------------------
1/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')))
1/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')))
1/COMMIT : auto
Traceback (most recent call last):
File "/tmp/db.py", line 50, in ?
print animal.select( zoo.q.name=='myzoo', join=joins ).count( )
File "/usr/lib/python2.4/site-packages/sqlobject/sresults.py", line 199, in
count
count = self.accumulate('COUNT(*)')
File "/usr/lib/python2.4/site-packages/sqlobject/sresults.py", line 182, in
accumulate
return conn.accumulateSelect(self, *expressions)
File "/usr/lib/python2.4/site-packages/sqlobject/dbconnection.py", line 418,
in accumulateSelect
val = self.queryOne(q)
File "/usr/lib/python2.4/site-packages/sqlobject/dbconnection.py", line 385,
in queryOne
return self._runWithConnection(self._queryOne, s)
File "/usr/lib/python2.4/site-packages/sqlobject/dbconnection.py", line 255,
in _runWithConnection
val = meth(conn, *args)
File "/usr/lib/python2.4/site-packages/sqlobject/dbconnection.py", line 378,
in _queryOne
self._executeRetry(conn, c, s)
File "/usr/lib/python2.4/site-packages/sqlobject/dbconnection.py", line 334,
in _executeRetry
return cursor.execute(query)
psycopg2.ProgrammingError: falta una entrada para la tabla «animal» en la
cláusula FROM
1/Query : CREATE TABLE named (
id INT PRIMARY KEY AUTO_INCREMENT,
name TEXT,
child_name VARCHAR(255)
)
1/Query : CREATE TABLE zoo (
id INT PRIMARY KEY AUTO_INCREMENT,
child_name VARCHAR(255)
)
1/Query : CREATE TABLE cage (
id INT PRIMARY KEY AUTO_INCREMENT,
zoo_id INT,
child_name VARCHAR(255)
)
1/Query : ALTER TABLE cage ADD CONSTRAINT cage_zoo_id_exists FOREIGN KEY
(zoo_id) REFERENCES zoo (id)
1/Query : CREATE TABLE animal (
id INT PRIMARY KEY AUTO_INCREMENT,
cage_id INT,
child_name VARCHAR(255)
)
1/Query : ALTER TABLE animal ADD CONSTRAINT animal_cage_id_exists FOREIGN
KEY (cage_id) REFERENCES cage (id)
1/QueryIns: INSERT INTO named (name, child_name) VALUES ('myzoo', 'zoo')
1/QueryOne: SELECT name, child_name FROM named WHERE id = (1)
1/QueryIns: INSERT INTO zoo (id, child_name) VALUES (1, NULL)
1/QueryOne: SELECT child_name FROM zoo WHERE id = (1)
1/QueryIns: INSERT INTO named (name, child_name) VALUES ('firstcage', 'cage')
1/QueryOne: SELECT name, child_name FROM named WHERE id = (2)
1/QueryIns: INSERT INTO cage (id, zoo_id, child_name) VALUES (2, 1, NULL)
1/QueryOne: SELECT zoo_id, child_name FROM cage WHERE id = (2)
1/QueryIns: INSERT INTO named (name, child_name) VALUES ('secondcage', 'cage')
1/QueryOne: SELECT name, child_name FROM named WHERE id = (3)
1/QueryIns: INSERT INTO cage (id, zoo_id, child_name) VALUES (3, 1, NULL)
1/QueryOne: SELECT zoo_id, child_name FROM cage WHERE id = (3)
1/QueryIns: INSERT INTO named (name, child_name) VALUES ('tiger', 'animal')
1/QueryOne: SELECT name, child_name FROM named WHERE id = (4)
1/QueryIns: INSERT INTO animal (id, cage_id, child_name) VALUES (4, 2, NULL)
1/QueryOne: SELECT cage_id, child_name FROM animal WHERE id = (4)
1/QueryIns: INSERT INTO named (name, child_name) VALUES ('lion', 'animal')
1/QueryOne: SELECT name, child_name FROM named WHERE id = (5)
1/QueryIns: INSERT INTO animal (id, cage_id, child_name) VALUES (5, 2, NULL)
1/QueryOne: SELECT cage_id, child_name FROM animal WHERE id = (5)
1/QueryIns: INSERT INTO named (name, child_name) VALUES ('croc', 'animal')
1/QueryOne: SELECT name, child_name FROM named WHERE id = (6)
1/QueryIns: INSERT INTO animal (id, cage_id, child_name) VALUES (6, 3, NULL)
1/QueryOne: SELECT cage_id, child_name FROM animal WHERE id = (6)
1/QueryIns: INSERT INTO named (name, child_name) VALUES ('hypo', 'animal')
1/QueryOne: SELECT name, child_name FROM named WHERE id = (7)
1/QueryIns: INSERT INTO animal (id, cage_id, child_name) VALUES (7, 3, NULL)
1/QueryOne: SELECT cage_id, child_name FROM animal WHERE id = (7)
1/QueryIns: INSERT INTO named (name, child_name) VALUES ('fish', 'animal')
1/QueryOne: SELECT name, child_name FROM named WHERE id = (8)
1/QueryIns: INSERT INTO animal (id, cage_id, child_name) VALUES (8, 3, NULL)
1/QueryOne: SELECT cage_id, child_name FROM animal WHERE id = (8)
--------------------------------------------------------------------------------
1/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')))
Traceback (most recent call last):
File "/tmp/db.py", line 50, in ?
print animal.select( zoo.q.name=='myzoo', join=joins ).count( )
File "/usr/lib/python2.4/site-packages/sqlobject/sresults.py", line 199, in
count
count = self.accumulate('COUNT(*)')
File "/usr/lib/python2.4/site-packages/sqlobject/sresults.py", line 182, in
accumulate
return conn.accumulateSelect(self, *expressions)
File "/usr/lib/python2.4/site-packages/sqlobject/dbconnection.py", line 418,
in accumulateSelect
val = self.queryOne(q)
File "/usr/lib/python2.4/site-packages/sqlobject/dbconnection.py", line 385,
in queryOne
return self._runWithConnection(self._queryOne, s)
File "/usr/lib/python2.4/site-packages/sqlobject/dbconnection.py", line 255,
in _runWithConnection
val = meth(conn, *args)
File "/usr/lib/python2.4/site-packages/sqlobject/dbconnection.py", line 378,
in _queryOne
self._executeRetry(conn, c, s)
File "/usr/lib/python2.4/site-packages/sqlobject/mysql/mysqlconnection.py",
line 122, in _executeRetry
raise OperationalError(ErrorMessage(e))
sqlobject.dberrors.OperationalError: Unknown column 'animal.cage_id' in 'on
clause'
-------------------------------------------------------------------------
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