[kronolith] Fwd: Re: [cvs] cvs commit: nag prefs.php

Ilya mail@krel.org
Sun, 27 Jan 2002 00:40:33 -0500


shoot. u are right together with Chuck, that was the case. horde user didn't
have permission to create tables...
Thank you

last time I configured horde (ver1,2 and old imp) it didnt need to create
any new tables, all was done during setup, so i didnt expect that new tables
will be created on the fly.

anyways everything works now! thanks a lot.


----- Original Message -----
From: "Mike Hardy" <mhardy@h3c.com>
To: <kronolith@lists.horde.org>
Sent: Sunday, January 27, 2002 12:19 AM
Subject: Re: [kronolith] Fwd: Re: [cvs] cvs commit: nag prefs.php


>
> On Sat, 26 Jan 2002, Ilya wrote:
>
> > Mike, I didnt have this table , and dont have structure for it.
> > I created the table, and run that grant query. now the error i get is:
> > object(db_error)(7) { ["error_message_prefix"]=> string(0) "" ["mode"]=>
> > int(1) ["level"]=> int(1024) ["code"]=> int(-19) ["message"]=>
string(23)
> > "DB Error: no such field" ["userinfo"]=> string(104) "UPDATE
> > kronolith_events_seq SET id=LAST_INSERT_ID(id+1) [nativecode=Unknown
column
> > 'id' in 'field list']" ["callback"]=> NULL }
>
> Interesting - that did get somewhere, so I googled around for a bit and
> ran into this thread:
>
> http://aspn.activestate.com/ASPN/Mail/Message/pear-dev/930216
>
> which referenced this (section 3.6 being important):
>
> http://vulcanonet.com/soft/?pack=pear_tut
>
> All of that indicates that it should create the sequence for you, and
> grepping through the Kronolith source, its generated from this line:
>
> kronolith/lib/Driver/sql.php:207:  $id =
$this->db->nextId($this->params['table']);
>
> Looking at the mysql PEAR DB abstraction (/usr/share/php/DB/mysql.php for
> me) I see these lines are executed if you don't have the sequence table
> yet:
>
>     function createSequence($seq_name)
>     {
>         $sqn = preg_replace('/[^a-z0-9_]/i', '_', $seq_name);
>         return $this->query("CREATE TABLE ${sqn}_seq ".
>                             '(id INTEGER UNSIGNED AUTO_INCREMENT NOT
NULL,'.
>                             ' PRIMARY KEY(id))');
>     }
>
> > its seems i need at least two columns - id and userinfo
> > do you know what else need to be in that table? even these two are not
> > similar to just kronolith_events table.
>
> I think "userinfo" is just an object field in the error object.
>
> From the above function - it looks like it just creates a single column in
> the table, and it tries to create the table automatically.
>
> I think Chuck has it right then, and it looks like your mysql horde user
> doesn't have table creation permissions, or the sequence would have been
> created correctly on the fly. Try logging in as the horde user and
> manually executing the SQL from the function above - if you can't do it
> there, it certainly won't happen on the fly, and that's probably the root
> of the problem.
>
> I hadn't ever dived into the Pear stuff at all, but I have to admit, I
> think the way they solved the ever-present problem of non-portable
> sequences is pretty spiffy. I spend most of my time in Java, and I wish
> JDBC had it now that I know about it.
>
> -Mike
>
>
> --
> Kronolith mailing list: http://horde.org/kronolith/
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: kronolith-unsubscribe@lists.horde.org
>
>