Hi,

I have taken the filter plugin written by Monty
lp:~mordred/drizzle/blobcontainer-merge and fleshed it out so that I could
use it with the PBMS engine to support BLOB streaming in drizzle.

The general idea of the filter plugin is to allow for the possibility of
altering data before it is stored. In the case of PBMS this means counting
BLOB references and/or replacing BLOB data with a BLOB reference.

My new version has been pushed up as lp:~barry-leslie/drizzle/filter_plugin.
I was going to write a simple 'Hello World' filter plugin that could then be
used in a test suite for testing the basic filter plugin interface. But I
need to solve a problem first.

The problem of how do you prevent a filter plugin from acting on columns you
do not want it to? If you are going to have a generic filter plugin then you
need some way of telling it what columns in which tables it should act on.
For example you may have a "net nanny" plugin that removes naughty words
from text being stored, but you probably would not want to apply this to all
text being stored in any table. Or in the case of PBMS, any server that
loads it would not pass testing because it would alter the expected results
for tests storing BLOBs.

There are kludgy ways of solving this problem such as adopting a column
naming convention or placing something in a column comment. But these are
things that can be easily lost when updating a database schema. So what I
think is needed is a column attribute string for column definitions that
could be used to store comma separated list of words which can be used to
send non standard column information to engines and other types of plugins.
This attribute string could be stored the same way as the column comment
string.

For example:

create table foo(
    c1 char(32),
    c1 char(1024) Attributes "NETNANNY",
    c3 BLOB Attributes "NETNANNY, PBMS"
);

Or does somebody have a better idea?

On a related topic:

If I were to push up a branch containing the PBMS engine itself, would it be
pulled into the main trunk, assuming it passed the code review. It is a
fairly large chunk of code probably larger than most storage engines. I
would like to have it in the tree but I would need to convert it to drizzle
coding standards which would take a bit of time and I would like to know in
advance it it would be worth my trouble.

Barry
    








_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to