maria-discuss team mailing list archive
-
maria-discuss team
-
Mailing list archive
-
Message #00779
Re: [Dbmail] MariaDB and dbmail
-
To:
Sergei Petrunia <psergey@xxxxxxxxxxxx>
-
From:
Sergej Pupykin <ml@xxxxxxxxxxxx>
-
Date:
Wed, 03 Apr 2013 19:00:17 +0400
-
Cc:
maria-discuss@xxxxxxxxxxxxxxxxxxx
-
In-reply-to:
<20130403133546.GB25786@pslp2>
-
User-agent:
Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (Gojō) APEL/10.8 Emacs/24.3 (x86_64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO)
At Wed, 3 Apr 2013 17:35:46 +0400,
Sergei Petrunia <psergey@xxxxxxxxxxxx> wrote:
> Could you please tell, what exactly is wrong with the results you're getting?
> Is it the right data, but in the wrong order, or the data itself is also wrong?
Data are correct, but order is wrong. If I print key variable (see
link to dbmail-message.c below) it prints 1,1,2,3,2,3,3 however from
commandline order is good:
SELECT l.part_key,l.part_depth,l.part_order,l.is_header,DATE_FORMAT(ph.internal_date, GET_FORMAT(DATETIME,'ISO')) FROM dbmail_mimeparts p JOIN dbmail_partlists l ON p.id = l.part_id JOIN dbmail_physmessage ph ON ph.id = l.physmessage_id WHERE l.physmessage_id = 4748475 ORDER BY l.part_key,l.part_order ASC;
+----------+------------+------------+-----------+-----------------------------------------------------------+
| part_key | part_depth | part_order | is_header | DATE_FORMAT(ph.internal_date, GET_FORMAT(DATETIME,'ISO')) |
+----------+------------+------------+-----------+-----------------------------------------------------------+
| 1 | 0 | 0 | 1 | 2013-04-02 12:49:41 |
| 1 | 0 | 1 | 0 | 2013-04-02 12:49:41 |
| 2 | 1 | 0 | 1 | 2013-04-02 12:49:41 |
| 2 | 1 | 1 | 0 | 2013-04-02 12:49:41 |
| 3 | 1 | 0 | 1 | 2013-04-02 12:49:41 |
| 3 | 1 | 1 | 0 | 2013-04-02 12:49:41 |
| 3 | 0 | 3 | 0 | 2013-04-02 12:49:41 |
+----------+------------+------------+-----------+-----------------------------------------------------------+
> You mention
> > however when I run it from command line it works well.
>
> How is it run not from commandline? (sorry if this question is trivial, but
> I'm not familiar with the dbmail codebase).
See file:
http://git.dbmail.eu/paul/dbmail/tree/src/dbmail-message.c?id=4333e2d94dc03bd546d11e6100aaeb903122e8bd
function:
static DbmailMessage * _mime_retrieve(DbmailMessage *self)
You may also want to look into libzdb sources, but they look like
just wrappers to provide unified API.
http://www.tildeslash.com/libzdb/
> What version of dbmail are you using? Is your table definition for table
> dbmail_partlists the same as in dbmail-3.0.2, file sql/mysql/create_tables.mysql ?
I use dbmail-3.0.2. Database was created by older version many years
ago, but mysqldump shows current table description:
CREATE TABLE `dbmail_partlists` (
`physmessage_id` bigint(20) unsigned NOT NULL DEFAULT '0',
`is_header` tinyint(1) NOT NULL DEFAULT '0',
`part_key` smallint(6) NOT NULL DEFAULT '0',
`part_depth` smallint(6) NOT NULL DEFAULT '0',
`part_order` smallint(6) NOT NULL DEFAULT '0',
`part_id` bigint(20) unsigned NOT NULL DEFAULT '0',
UNIQUE KEY `message_parts` (`physmessage_id`,`part_key`,`part_depth`,`part_order`),
KEY `physmessage_id` (`physmessage_id`),
KEY `part_id` (`part_id`),
CONSTRAINT `dbmail_partlists_ibfk_1` FOREIGN KEY (`physmessage_id`) REFERENCES `dbmail_physmessage` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `dbmail_partlists_ibfk_2` FOREIGN KEY (`part_id`) REFERENCES `dbmail_mimeparts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
References