[ https://issues.apache.org/jira/browse/TRAFODION-3216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16652933#comment-16652933 ]
ASF GitHub Bot commented on TRAFODION-3216: ------------------------------------------- Github user sandhyasun commented on a diff in the pull request: https://github.com/apache/trafodion/pull/1721#discussion_r225778436 --- Diff: core/sql/common/ComMisc.cpp --- @@ -357,3 +358,119 @@ NABoolean ComTrafReservedColName( return FALSE; } + + +Int32 ComGenerateUdrCachedLibName(NAString libname,Int64 redeftime, NAString schemaName, NAString userid, NAString &cachedLibName, NAString &cachedLibPath) +{ + NAString libPrefix, libSuffix; + struct stat statbuf; + NAString redefTimeString = Int64ToNAString(redeftime); + size_t lastDot = libname.last('.'); + if (lastDot != NA_NPOS) + { + libSuffix = libname(lastDot,libname.length()-lastDot); + libPrefix = libname(0,lastDot); + } + + //when isolated user support is added + if (userid.length()!=0) + { + + cachedLibPath = getenv("TRAF_HOME") ; + cachedLibPath += "/udr"; + if ( stat(cachedLibPath, &statbuf) != 0) + { + if (mkdir(cachedLibPath,S_IRWXU|S_IRWXG|S_IRWXO)) + { + return -1; + } + + } + cachedLibPath += "/"; + cachedLibPath += getenv("MY_UDR_CACHE_LIBDIR"); + if ( stat(cachedLibPath, &statbuf) != 0) + { + if (mkdir(cachedLibPath,S_IRWXU|S_IRWXG|S_IRWXO)) + { + return -1; + } + + } + cachedLibPath += "/"+ userid ; + if (stat(cachedLibPath, &statbuf) != 0) + { + if (mkdir(cachedLibPath,S_IRUSR|S_IWUSR|S_IXUSR))//Only this user has + //permission to read/write/execute in this directory and below. + { + return -1; + } + + } + cachedLibPath += "/" + schemaName; + if ( stat(cachedLibPath, &statbuf) != 0) + { + if (mkdir(cachedLibPath,S_IRWXU|S_IRWXG|S_IRWXO)) + { + return -1; --- End diff -- Good idea - added errno to the error message > UDR libraries need to be stored in metadata table as a blob > ----------------------------------------------------------- > > Key: TRAFODION-3216 > URL: https://issues.apache.org/jira/browse/TRAFODION-3216 > Project: Apache Trafodion > Issue Type: Improvement > Components: sql-general > Affects Versions: 2.4 > Reporter: Sandhya Sundaresan > Assignee: Sandhya Sundaresan > Priority: Major > Fix For: 2.4 > > Attachments: Support for LOB storage in metadata for UDR > libraries.docx > > > This is one of many infrastructure changes for SPJs that was planned. > * {color:#0070c0}Store UDR libraries in BLOBs {color} > * {color:#0070c0}Add BLOB column to library metadata table{color} > * {color:#0070c0}Change CREATE LIBRARY command to store library in > BLOB{color} > * {color:#0070c0}Change library file names to include the timestamp (so > updating a library changes the name){color} > * {color:#0070c0}Add a cache for libraries (a new directory, > $TRAF_HOME/udr/public/lib){color} > * {color:#0070c0}Change UDR code to read library from the metadata table > when not in cache{color} > * {color:#0070c0}Upgrade support{color} > -- This message was sent by Atlassian JIRA (v7.6.3#76005)