mirror of https://github.com/citusdata/citus.git
Call ErrorIfMergeInCopy only if Citus tables are involved, fix tests
parent
3db76fdc8f
commit
4e6b62fee8
|
@ -2842,6 +2842,11 @@ ErrorIfMergeInCopy(CopyStmt *copyStatement)
|
||||||
#else
|
#else
|
||||||
if (!copyStatement->relation && (IsA(copyStatement->query, MergeStmt)))
|
if (!copyStatement->relation && (IsA(copyStatement->query, MergeStmt)))
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* This path is currently not reachable because Merge in COPY can
|
||||||
|
* only work with a RETURNING clause, and a RETURNING check
|
||||||
|
* will error out sooner for Citus
|
||||||
|
*/
|
||||||
ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||||
errmsg("MERGE with Citus tables "
|
errmsg("MERGE with Citus tables "
|
||||||
"is not yet supported in COPY")));
|
"is not yet supported in COPY")));
|
||||||
|
@ -2860,8 +2865,6 @@ Node *
|
||||||
ProcessCopyStmt(CopyStmt *copyStatement, QueryCompletion *completionTag, const
|
ProcessCopyStmt(CopyStmt *copyStatement, QueryCompletion *completionTag, const
|
||||||
char *queryString)
|
char *queryString)
|
||||||
{
|
{
|
||||||
ErrorIfMergeInCopy(copyStatement);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handle special COPY "resultid" FROM STDIN WITH (format result) commands
|
* Handle special COPY "resultid" FROM STDIN WITH (format result) commands
|
||||||
* for sending intermediate results to workers.
|
* for sending intermediate results to workers.
|
||||||
|
@ -2889,6 +2892,8 @@ ProcessCopyStmt(CopyStmt *copyStatement, QueryCompletion *completionTag, const
|
||||||
*/
|
*/
|
||||||
if (copyStatement->relation != NULL)
|
if (copyStatement->relation != NULL)
|
||||||
{
|
{
|
||||||
|
ErrorIfMergeInCopy(copyStatement);
|
||||||
|
|
||||||
bool isFrom = copyStatement->is_from;
|
bool isFrom = copyStatement->is_from;
|
||||||
|
|
||||||
/* consider using RangeVarGetRelidExtended to check perms before locking */
|
/* consider using RangeVarGetRelidExtended to check perms before locking */
|
||||||
|
|
|
@ -40,7 +40,7 @@ COPY (
|
||||||
MERGE INTO target USING source ON (true)
|
MERGE INTO target USING source ON (true)
|
||||||
WHEN MATCHED THEN DELETE
|
WHEN MATCHED THEN DELETE
|
||||||
) TO stdout;
|
) TO stdout;
|
||||||
ERROR: MERGE with Citus tables is not yet supported in COPY
|
ERROR: COPY query must have a RETURNING clause
|
||||||
-- used in a CTE with RETURNING
|
-- used in a CTE with RETURNING
|
||||||
WITH foo AS (
|
WITH foo AS (
|
||||||
MERGE INTO target USING source ON (true)
|
MERGE INTO target USING source ON (true)
|
||||||
|
@ -52,7 +52,7 @@ COPY (
|
||||||
MERGE INTO target USING source ON (true)
|
MERGE INTO target USING source ON (true)
|
||||||
WHEN MATCHED THEN DELETE RETURNING target.*
|
WHEN MATCHED THEN DELETE RETURNING target.*
|
||||||
) TO stdout;
|
) TO stdout;
|
||||||
ERROR: MERGE with Citus tables is not yet supported in COPY
|
ERROR: MERGE with RETURNING is not yet supported for Citus tables
|
||||||
-- unsupported relation types
|
-- unsupported relation types
|
||||||
-- view
|
-- view
|
||||||
CREATE VIEW tv AS SELECT count(tid) AS tid FROM target;
|
CREATE VIEW tv AS SELECT count(tid) AS tid FROM target;
|
||||||
|
|
|
@ -162,12 +162,6 @@ ON tid = tid
|
||||||
WHEN MATCHED THEN DO NOTHING;
|
WHEN MATCHED THEN DO NOTHING;
|
||||||
ERROR: name "target" specified more than once
|
ERROR: name "target" specified more than once
|
||||||
DETAIL: The name is used both as MERGE target table and data source.
|
DETAIL: The name is used both as MERGE target table and data source.
|
||||||
-- used in COPY
|
|
||||||
COPY (
|
|
||||||
MERGE INTO target USING source ON (true)
|
|
||||||
WHEN MATCHED THEN DELETE
|
|
||||||
) TO stdout;
|
|
||||||
ERROR: MERGE with Citus tables is not yet supported in COPY
|
|
||||||
-- unsupported relation types
|
-- unsupported relation types
|
||||||
-- materialized view
|
-- materialized view
|
||||||
CREATE MATERIALIZED VIEW mv AS SELECT * FROM target;
|
CREATE MATERIALIZED VIEW mv AS SELECT * FROM target;
|
||||||
|
|
|
@ -116,11 +116,6 @@ MERGE INTO target
|
||||||
USING target
|
USING target
|
||||||
ON tid = tid
|
ON tid = tid
|
||||||
WHEN MATCHED THEN DO NOTHING;
|
WHEN MATCHED THEN DO NOTHING;
|
||||||
-- used in COPY
|
|
||||||
COPY (
|
|
||||||
MERGE INTO target USING source ON (true)
|
|
||||||
WHEN MATCHED THEN DELETE
|
|
||||||
) TO stdout;
|
|
||||||
|
|
||||||
-- unsupported relation types
|
-- unsupported relation types
|
||||||
-- materialized view
|
-- materialized view
|
||||||
|
|
Loading…
Reference in New Issue