Github user robertamarton commented on a diff in the pull request:
https://github.com/apache/trafodion/pull/1721#discussion_r225014810
--- Diff: core/sql/executor/ExUdr.cpp ---
@@ -792,9 +796,57 @@ Int32 ExUdrTcb::fixup()
this, udrServer_->getUdrControlConnection());
}
}
-
+
+ NAString cachedLibName, cachedLibPath;
+ if ((myTdb().getLibraryRedefTime() != -1) &&
(myTdb().getLibraryRedefTime() != 0))
+ {
+ // Cache library locally.
+ NAString dummyUser;
+ NAString libOrJarName;
+
+ if (myTdb().getLanguage() == COM_LANGUAGE_JAVA)
+ libOrJarName = myTdb().getPathName();
+ else
+ libOrJarName = myTdb().getContainerName();
+ if(ComGenerateUdrCachedLibName(libOrJarName.data(),
+ myTdb().getLibraryRedefTime(),
+ myTdb().getLibrarySchName(),
+ dummyUser,
+ cachedLibName, cachedLibPath))
+ {
+ NAString cachedFullName = cachedLibPath+"/"+cachedLibName;
+ *getOrCreateStmtDiags() << DgSqlCode(-4316)
+ << DgString0(( char
*)cachedFullName.data());;
--- End diff --
As briefly mentioned this earlier. One thing that has been discussed is to
have better error messages that would make debugging customer problems easier.
In this case, instead of just saying unable to extract library, you could
mention that is was because we were unable to create the directory structure
and include details returned from mkdir.
---