(sorry I have to post it again in plain text)
I'm currently working on a master student research project ��support
triggers on columns�� that is supervised by a professor from my university
(Ottawa U). I have contacted Neil Conway whose name is with this item on
the TODO list. It happened that he actually lives very close to me(Queen's U
in Kingston). He has agreed that I work on this.
Please take a look of my design (Some of the ideas are from Neil)
- change gram.y for CREATE TRIGGER to support the optional column list for
this feature,
- change CreateTrigStmt, trigger, trigdesc node to add support for an
optional List of columns; change the various Node support functions (equalfuncs.c, copyfuncs.c, etc.)
- change InsertTrigger, (Copy+Free+ equal)TriggerDesc, Relationbuild
function to add support an optional List of columns.
- change the pg_trigger system catalog to support the new column .
- change CreateTrigger() to perform some semantic analysis on the list of
columns (ensure no column names are duplicated, ensure each name references an extent and non-dropped column, and so
forth)
- when deciding which triggers to invoke (executePlan() in execMain.c), add
logic to compare the list of columns in the to-be-executed command with the list of columns in any applicable columns,
and only fire a trigger of the column lists that are appropriately compatible
-investigate the interaction between the column list and rules
I have spent the past four months on this and I have finished the YYpaser,
Catalog, trigger creation and some other support functions, I am working on
trigger execution right now. I expect the project will be completed by the
end of July.
I would like to know your comments on my design and the procedure of getting
my work accepted.
Thanks
Mark Wu