Github user Librago commented on a diff in the pull request:
https://github.com/apache/incubator-hawq/pull/1384#discussion_r208449610
--- Diff: src/backend/commands/tablecmds.c ---
@@ -17561,29 +17887,67 @@ static Datum transformLocationUris(List *locs,
List* fmtopts, bool isweb, bool i
if (first_uri && uri->protocol == URI_CUSTOM)
{
Oid procOid = InvalidOid;
-
procOid =
LookupExtProtocolFunction(uri->customprotocol,
EXTPTC_FUNC_VALIDATOR,
false);
if (OidIsValid(procOid) && Gp_role == GP_ROLE_DISPATCH)
InvokeProtocolValidation(procOid,
uri->customprotocol,
-
iswritable,
+
iswritable, forceCreateDir,
locs, fmtopts);
+ first_customprotocal = uri->customprotocol;
}
+ if (first_uri && uri->protocol == URI_HDFS)
+ {
+ Oid procOid = InvalidOid;
+
+ procOid = LookupCustomProtocolValidatorFunc("hdfs");
+ if (OidIsValid(procOid) && Gp_role == GP_ROLE_DISPATCH)
+ {
+ InvokeProtocolValidation(procOid,
+
uri->customprotocol,
+
iswritable, forceCreateDir,
+
locs, fmtopts);
+ }
+ }
+
+ if (first_uri && uri->protocol == URI_HIVE)
+ {
+ Oid procOid = InvalidOid;
+ procOid = LookupCustomProtocolValidatorFunc("hive");
+ if (OidIsValid(procOid) && Gp_role == GP_ROLE_DISPATCH)
+ {
+ InvokeProtocolValidation(procOid,
+
uri->customprotocol,
+
iswritable, forceCreateDir,
+
locs, fmtopts);
+ }
+ }
+
+ if (first_uri && uri->protocol == URI_MAGMA)
--- End diff --
remove magma---
