[devel] E: incoming reject: perl-DBD-SQLite-1.11-alt1.src.rpm

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Апр 16 02:40:45 MSD 2006


On Fri, Apr 14, 2006 at 07:33:38PM +0400, Денис Смирнов wrote:
> On Fri, Apr 14, 2006 at 06:43:23PM +0400, Dmitry V. Levin wrote:
> 
> >> perl-DBD-SQLite не работает с sqlite3 из сизифа,
> DVL> А почему?
> 
> Очень хороший вопрос. Моя медитация над кодом ни к чему не привела. В
> редхате поступили так же как я.

А как в редхате поступили?

$ cvs update perl-DBD-SQLite
cvs update: nothing known about perl-DBD-SQLite
$ cat CVS/R*
devel
:pserver:anonymous на cvs.fedora.redhat.com:/cvs/dist
$

> Судя по всему у них слегка изменилось API, но внятного описания я в их
> changelog'е не нашел.

В общем я разобрался в чём дело.  После вот этого патча всё работает:

--- DBD-SQLite-1.09/dbdimp.c-	2005-06-20 17:53:01 +0400
+++ DBD-SQLite-1.09/dbdimp.c	2006-04-16 02:29:37 +0400
@@ -259,7 +259,7 @@
     imp_sth->retval = SQLITE_OK;
     imp_sth->params = newAV();
 
-    if ((retval = sqlite3_prepare(imp_dbh->db, statement, 0, &(imp_sth->stmt), &extra))
+    if ((retval = sqlite3_prepare(imp_dbh->db, statement, -1, &(imp_sth->stmt), &extra))
         != SQLITE_OK)
     {
         if (imp_sth->stmt) {
@@ -319,7 +319,7 @@
         psv = hv_fetch((HV*)SvRV(sth), "Statement", 9, 0);
         statement = (psv && SvOK(*psv)) ? SvPV_nolen(*psv) : "";
         sqlite_trace(3, "re-prepare statement %s", statement);
-        if ((retval = sqlite3_prepare(imp_dbh->db, statement, 0, &(imp_sth->stmt), &extra))
+        if ((retval = sqlite3_prepare(imp_dbh->db, statement, -1, &(imp_sth->stmt), &extra))
             != SQLITE_OK)
         {
             if (imp_sth->stmt) {

Здесь этот аргумент по смыслу означает strlen(statement); раньше он
просто не использовался, а теперь в sqlite3_prepare() появилась проверка
на >= 0 с некоторой неприятной спецификой (см. sqlite/src/prepare.c).

См. тж. http://www.initd.org/tracker/pysqlite/ticket/143
http://www.sqlite.org/cvstrac/tktview?tn=1554

В общем пока предлагаю до понедельника ничего не делать. :)
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060416/791cebd7/attachment-0001.bin>


Подробная информация о списке рассылки Devel