Oops, sorry, yes the database tables :

create table mailbox_annotation_names (id serial primary key, name
citext not null);
create table mailbox_annotations (id serial primary key, mailbox integer
not null references mailboxes(id), owner integer, name integer not null
references mailbox_annotation_names (id), privatevalue text, sharedvalue
text);


These may need adjusted as well.  The spec has annotations for the
server as well as for mailboxes and just now server annotations are
completely unimplemented.  Since things like motd are supposed to be
available, these would need to be in a table as well (so they can be
altered).  Perhaps another server annotations table.  Something for
later on.

I'll take a look at those suggestions - my start point was to hack
something to work for me to begin with and get an idea of how things
worked inside aox.  I'll see about making it more robust and complete now.

Jim

On 08/07/2014 10:38, Arnt Gulbrandsen wrote:
> On Tuesday, July 8, 2014 9:19:47 AM CEST, NSS Ltd wrote:
>> OK, patch for the *very* work in progress setannotation/getannotation
>
> Missing the patch to schema/schema.pg.
>
> There's a helper class you might want to use to take care of
> contention robustly. Have a look at message/helperrowcreator.cpp;
> there's a class called FlagCreator there that creates flags in just
> the same way that you create annotations. Most of FlagCreator inherits
> a larger class, HelperRowCreator.
>
> You might copy FlagCreator into a new class, AnnotationCreator or
> MetadataCreator. That should simplify getannotation and setannotation
> quite a bit.
>
> There's a list of mailboxes as strings; I think it would be better to
> have a List<Mailbox> and produce that by calling some of the static
> functions in imap/handlers/listext.cpp.
>
> Overall I find it quite good for a work in progress.
>
> Arnt
>

Reply via email to