Well, that does apply to message_idnr, not messageblk_idnr, but it wouldn't make sense to not be consistent throughout.
Perhaps a server-specific prefix for the identifier would be in order at some point to deal with this then. Under these circumstances there would be a variety of self-joins and various other queries that would perform the same function as the added flag and index. You guys feel that this is more efficient? -Micah On Wednesday 09 June 2004 07:12 pm, Aaron Stone wrote: > http://www.faqs.org/rfcs/rfc3501.html > > Read section 2.3.1.1 > > Basically, we're stuck using the autoincrement fields until we can figure > out some other way of satisfying the RFC. Sadly, statistically unique > appears to be out of the picture :-\ > > Aaron > > Micah <[EMAIL PROTECTED]> said: > > I was thinking though, this relies on autonumber fields, which ideally > > would be switched with unique ID fields to support multiple servers at > > some point. So maybe this isn't ideal. > > > > -Micah > > > > On Wednesday 09 June 2004 05:11 pm, Micah wrote: > > > Is the header block always the first block inserted? If so you can find > > > it by ordering the blocks by idnr and just taking the first one. No > > > extra field necessary.. > > > > > > I don't think there would be a performance difference at all between > > > the two methods and it would keep the table structure simpler, which to > > > me is better. > > > > > > Just a thought. > > > > > > -Micah > > > > > > On Wednesday 09 June 2004 05:00 pm, Aaron Stone wrote: > > > > Off the top of my head, there's a two step process here. First is > > > > that the top level, messgae-oriented functions will need an extra > > > > flag. Second is that the inner physmessage functions will need that > > > > flag, too. > > > > > > > > db_insert_message_block() and db_insert_message_block_physmessage(). > > > > > > > > I don't think we should wait on 2.0 for this. We can tweak > > > > performance in the point releases. We should add whatever columns > > > > we'll need to support the functionality, though. > > > > > > > > Aaron > > > > > > > > Paul J Stevens <[EMAIL PROTECTED]> said: > > > > > Hi Ilja, > > > > > > > > > > The wiki looks pretty much empty so I just started playing around. > > > > > > > > > > I've been testing with a messageblks.is_header field so > > > > > db_fetch_headers will not retrieve the whole message before > > > > > parsing. > > > > > > > > > > Looks like we may get something like a factor 2 improvement in > > > > > searching headers. > > > > > > > > > > I still have to figure out how to modify message insertion to use > > > > > such a field. Perhaps you or Aaron have some bright ideas. > > > > > > > > > > For now I've modified the database by hand using group by queries > > > > > to locate messageblk_idnr for the header block and a shell-script > > > > > to generate update queries. > > > > > > > > > > queries used: > > > > > > > > > > alter table messageblks add is_header int(1) not null default 0; > > > > > > > > > > update the messageblk table: > > > > > > > > > > #> mysql --skip-column-names -B -e "select messageblk_idnr from > > > > > messageblks group by physmessage_id" dbmail |awk 'BEGIN { > > > > > printf("\nupdate messageblks set is_header=1 where messageblk_idnr > > > > > in ("); } { if(NR % 200 == 0) { printf("\nupdate messageblks set > > > > > is_header=1 where messageblk_idnr in ("); i=0; } else { > > > > > printf("%s,",$1); }}'|sed 's/,$/);/' | mysql dbmail > > > > > > > > > > > > > > > #> mysql -B -e "select messageblk_idnr from messageblks group by > > > > > physmessage_id" dbmail |awk '{ if(NR % 50 == 0) { printf("\nupdate > > > > > messageblks set is_header=1 where messageblk_idnr in ("); i=0; } > > > > > else { printf("%s,",$1); }}'|sed 's/,$/);/' > > > > > > > > > > Ilja Booij wrote: > > > > > > Paul J Stevens wrote: > > > > > >> Hi all, > > > > > >> > > > > > >> I'm looking to optimize _ic_search without resorting to > > > > > >> drastics. > > > > > >> > > > > > >> I noticed dbmsgbuf.c retrieves the full message from the > > > > > >> database in two functions. In both cases first the > > > > > >> physmessage_id is queried using the msgid, followed by a query > > > > > >> on the messageblks table using the physmessage_id. Two queries > > > > > >> where one suffices. A simple but effective improvement I think. > > > > > >> Query syntax (left join ... using ...) checked on mysql/postgres > > > > > >> (dunno about oracle or ansi-sql). > > > > > >> > > > > > >> I also fixed some of the FIXME's ... > > > > > >> > > > > > >> Ilja? > > > > > > > > > > > > Looks good. I'v committed the patch. > > > > > > > > > > > >> PS. Of course searching still sucks major :-( until we get some > > > > > >> real header caching... > > > > > > > > > > > > true.. > > > > > > > > > > > > Ilja > > > > > > _______________________________________________ > > > > > > Dbmail-dev mailing list > > > > > > Dbmail-dev@dbmail.org > > > > > > http://twister.fastxs.net/mailman/listinfo/dbmail-dev > > > > > > > > > > -- > > > > > ________________________________________________________________ > > > > > Paul Stevens mailto:[EMAIL > > > > > PROTECTED] > > > > > NET FACILITIES GROUP PGP: finger [EMAIL > > > > > PROTECTED] > > > > > The Netherlands________________________________http://www.nfg.nl > > > > > > _______________________________________________ > > > Dbmail-dev mailing list > > > Dbmail-dev@dbmail.org > > > http://twister.fastxs.net/mailman/listinfo/dbmail-dev > > > > _______________________________________________ > > Dbmail-dev mailing list > > Dbmail-dev@dbmail.org > > http://twister.fastxs.net/mailman/listinfo/dbmail-dev