Bonsoir à tous.

J'ai un petit problème ces temps-ci, suite à une requête dans ma base SQLITE, qui comprend un petit IN.
Je ne l'ai remarqué que récemment, parce que sous Windows aucune erreur n'apparaît.
Cependant, sous Linux, je semble avoir un problème dû à une limitation du nombre d'arguments dans ma requête.

J'ai essayé directement via le module sqlite3 de python, sans retrouver cette limitation.
J'ai également regardé le paquet source pour sqlite3 (la librairie, pas le binding) et la limite pour un SQL Statement semble être d'un milliard de caractères (cependant, je ne suis pas sûr que ce soit avec ces options que mon paquet a été compilé).

Je pense donc à un problème dans sqlalchemy, mais j'avoue nager un peu... vu que sous Windows il fonctionne comme attendu...

Python est en version 2.5.4, sqlalchemy en 0.5.6.1, que ce soit sous Windows ou Debian.
Si quelqu'un avait une piste, je serais bien preneur !!!


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Closed due to an error. This is the full error report:Traceback (most recent call last):
  File "/home/guillaume/workspace/src/Mix.py", line 390, in proceed
    self.connector.put_ashiato()
  File "/home/guillaume/workspace/src/Connector.py", line 617, in put_ashiato
    self.filter_db()
  File "/home/guillaume/workspace/src/Connector.py", line 584, in filter_db
    n = query.count()
  File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.6-py2.5.egg/sqlalchemy/orm/query.py", line 1552, in count
    should_nest = should_nest[0]
  File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.6-py2.5.egg/sqlalchemy/orm/query.py", line 1583, in _col_aggregate
    return self.session.scalar(s, params=self._params, mapper=self._mapper_zero())
  File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.6-py2.5.egg/sqlalchemy/orm/session.py", line 760, in scalar
    return self.execute(clause, params=params, mapper=mapper, **kw).scalar()
  File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.6-py2.5.egg/sqlalchemy/orm/session.py", line 755, in execute
    clause, params or {})
  File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.6-py2.5.egg/sqlalchemy/engine/base.py", line 824, in execute
    return Connection.executors[c](self, object, multiparams, params)
  File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.6-py2.5.egg/sqlalchemy/engine/base.py", line 874, in _execute_clauseelement
    return self.__execute_context(context)
  File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.6-py2.5.egg/sqlalchemy/engine/base.py", line 896, in __execute_context
    self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
  File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.6-py2.5.egg/sqlalchemy/engine/base.py", line 950, in _cursor_execute
    self._handle_dbapi_exception(e, statement, parameters, cursor, context)
  File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.6-py2.5.egg/sqlalchemy/engine/base.py", line 931, in _handle_dbapi_exception
    raise exc.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
OperationalError: (OperationalError) too many SQL variables u'SELECT count(1) AS count_1 \nFROM users \nWHERE users.link IN (?, ?, ?,...),[ 418660, 4462754,...]