提交 c9c8d53d 编写于 作者: T Tom Lane

Refuse to try to attach a condition to a NOTIFY or other utility statement,

rather than coredumping (as prior 7.1 code did) or silently dropping the
condition (as 7.0 did).  This is annoying but there doesn't seem to be
any good way to fix it, short of a major querytree restructuring.
上级 c1a63c94
......@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.54 2001/01/24 19:43:05 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.55 2001/01/27 01:44:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -589,6 +589,20 @@ AddQual(Query *parsetree, Node *qual)
if (qual == NULL)
return;
if (parsetree->commandType == CMD_UTILITY)
{
/*
* Noplace to put the qual on a utility statement.
*
* For now, we expect utility stmt to be a NOTIFY, so give a
* specific error message for that case.
*/
if (parsetree->utilityStmt && IsA(parsetree->utilityStmt, NotifyStmt))
elog(ERROR, "Conditional NOTIFY is not implemented");
else
elog(ERROR, "Conditional utility statements are not implemented");
}
/* INTERSECT want's the original, but we need to copy - Jan */
copy = copyObject(qual);
......@@ -616,6 +630,20 @@ AddHavingQual(Query *parsetree, Node *havingQual)
if (havingQual == NULL)
return;
if (parsetree->commandType == CMD_UTILITY)
{
/*
* Noplace to put the qual on a utility statement.
*
* For now, we expect utility stmt to be a NOTIFY, so give a
* specific error message for that case.
*/
if (parsetree->utilityStmt && IsA(parsetree->utilityStmt, NotifyStmt))
elog(ERROR, "Conditional NOTIFY is not implemented");
else
elog(ERROR, "Conditional utility statements are not implemented");
}
/* INTERSECT want's the original, but we need to copy - Jan */
copy = copyObject(havingQual);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册