Repository: incubator-hawq Updated Branches: refs/heads/master 093330fe6 -> fad1b9050
HAWQ-1195. Fixed error "Two or more external tables use the same error table " The error table should be works same as normal user table on hdfs, which support multiple INSERTs. Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/fad1b905 Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/fad1b905 Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/fad1b905 Branch: refs/heads/master Commit: fad1b90505b3112d480cf1635f16edd8a957cc85 Parents: 093330f Author: Ming LI <[email protected]> Authored: Tue Dec 6 17:17:50 2016 +0800 Committer: Ming LI <[email protected]> Committed: Mon Dec 12 10:38:17 2016 +0800 ---------------------------------------------------------------------- src/backend/executor/execMain.c | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/fad1b905/src/backend/executor/execMain.c ---------------------------------------------------------------------- diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 578b9e8..27c1b15 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -258,25 +258,6 @@ SetupSegnoForErrorTable(Node *node, QueryCxtWalkerCxt *cxt) if (!OidIsValid(scan->fmterrtbl)) return false; - /* - * check if two external table use the same error table in a statement - */ - if (info->errTblOid) - { - ListCell *c; - Oid errtbloid; - foreach(c, info->errTblOid) - { - errtbloid = lfirst_oid(c); - if (errtbloid == scan->fmterrtbl) - { - Relation rel = heap_open(scan->fmterrtbl, AccessShareLock); - elog(ERROR, "Two or more external tables use the same error table \"%s\" in a statement", - RelationGetRelationName(rel)); - } - } - } - /* * Prepare error table for insert. */ @@ -285,12 +266,12 @@ SetupSegnoForErrorTable(Node *node, QueryCxtWalkerCxt *cxt) scan->errAosegnos = errSegnos; info->errTblOid = lcons_oid(scan->fmterrtbl, info->errTblOid); - Relation errRel = heap_open(scan->fmterrtbl, RowExclusiveLock); + Relation errRel = heap_open(scan->fmterrtbl, NoLock); CreateAppendOnlyParquetSegFileForRelationOnMaster(errRel, errSegnos); prepareDispatchedCatalogSingleRelation(info, scan->fmterrtbl, TRUE, errSegnos); scan->err_aosegfileinfos = fetchSegFileInfos(scan->fmterrtbl, errSegnos); - heap_close(errRel, RowExclusiveLock); + heap_close(errRel, NoLock); return false; default:
