From: | Boxuan Zhai <bxzhai2010(at)gmail(dot)com> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: merge command - GSoC progress |
Date: | 2010-07-28 10:08:48 |
Message-ID: | AANLkTima00ryh7OBzVkZDoSB-SeDX4HLhcKQNROungAv@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
2010/7/28 Robert Haas <robertmhaas(at)gmail(dot)com>
> On Tue, Jul 27, 2010 at 1:04 AM, Boxuan Zhai <bxzhai2010(at)gmail(dot)com> wrote:
> > I have get a edition that the merge command can run. It accept the
> standard
> > merge command and can do UPDATE, INSERT and DELETE actions now. But we
> > cannot put additional qualification for actions. There are some bugs when
> we
> > try to evaluate the quals which make the system quit. I will fix it soon.
>
> This patch doesn't compile. You're using zbxprint() from a bunch of
> places where it's not defined. I get compile warnings for all of
> those files and then a link failure at the end. You might find it
> useful to create src/Makefile.custom in your local tree and put
> COPT=-Werror in there; it tends to prevent problems of this kind.
>
> Undefined symbols:
> "_zbxprint", referenced from:
> _transformStmt in analyze.o
> _ExecInitMergeAction in nodeModifyTable.o
> _ExecModifyTable in nodeModifyTable.o
> _ExecInitModifyTable in nodeModifyTable.o
> _merge_action_planner in planner.o
>
> Sorry, this is a debug function defined by me. It may not be included in
the patch. I add a line of "#define zbxprint printf" somewhere in the
system.
> Not that it's as high-priority as getting this fully working, but you
> should revert the useless changes in this patch - e.g. the one-line
> change to heaptuple.c is obvious debugging leftovers, and all of the
> changes to execQual.c and execUtil.c are whitespace-only. You should
> also try to make your code and comments conform to project style
> guidelines. In general, you'll find it easier to keep track of your
> changes (and you'll have fewer spurious changes) if you use git diff
> master...yourbranch instead of marking comments, etc. with ZBX or
> similar.
>
>
I will clean all these in my next patch.
I am now very confused with the failure of action qualification. I look
through the whole process of a query, from parser to executor. In my
opinion, the qualification transformed in analyzer, will be processed by
prepsocess_qual_condition() in planner, and then by the ExecInitExpr()
function in excutor start phase (in InitPlan() function). Then the qual is
ready to be used in ExecQual(). Am I correct?
I have done these on the merge action qual, but when I pass them into
ExecQual(), the server just closed abnormally. I don't know if I missed any
steps on preparing the qual expressions.
> --
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise Postgres Company
>
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2010-07-28 10:28:32 | Re: merge command - GSoC progress |
Previous Message | Dimitri Fontaine | 2010-07-28 07:45:28 | Re: Query optimization problem |