[
https://issues.apache.org/jira/browse/TRAFODION-2146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15413923#comment-15413923
]
ASF GitHub Bot commented on TRAFODION-2146:
-------------------------------------------
Github user sandhyasun commented on a diff in the pull request:
https://github.com/apache/incubator-trafodion/pull/647#discussion_r74111802
--- Diff: core/sql/generator/GenResources.cpp ---
@@ -97,92 +77,74 @@ static ExScratchDiskDrive * genScratchDriveList(const
NAString &def,
LIST(ExScratchDiskDrive *) tempList;
CollHeap *heap = generator->wHeap();
Space *space = generator->getSpace();
+ struct stat st;
+
+
+ Lng32 nodeNum;
+ char *token = new(heap) char[PATH_MAX];
- // ---------------------------------------------------------------------
- // process the NT default
- // ---------------------------------------------------------------------
- while (str && *str)
+ char *sep = (char *)":";
+ token = strtok((char *)str,sep);
+ while (token != NULL)
{
- Lng32 nodeNum;
- char *driveLetter = new(heap) char[2];
-
- driveLetter[1] = 0;
- if (ValidateDiskListNT::getNextDriveLetterAndAdvance(
- str,nodeNum,driveLetter[0]))
- {
- // syntax error in default, issue a warning (not an error)
- *CmpCommon::diags() << DgSqlCode(2055)
+ //validate the directory
+ if ((stat(token,&st) != 0 ) && !S_ISDIR(st.st_mode) ) //&& (numDirs
> MAX_SCRATCH_LOCATIONS))
+ {
+ // syntax error in default, issue a warning (not an error)
+ *CmpCommon::diags() << DgSqlCode(2055)
<< DgString0(def)
<< DgString1(defName);
- // don't continue after a syntax error
- str = NULL;
- }
+ // don't continue after a syntax error
+ str = NULL;
+ }
else
- {
- tempList.insert(new(heap) ExScratchDiskDrive(
- driveLetter,
- 1, // Thanks to Bill Gates
- nodeNum));
- }
-
- NADELETEBASIC(driveLetter, heap);
- driveLetter = NULL;
-
+ {
+ tempList.insert(new(heap) ExScratchDiskDrive(
+ token,
+ strlen(token) ));
+ }
+ token = strtok(NULL,sep);
}
+
+ NADELETEBASIC(token, heap);
--- End diff --
Thanks ! Yes...I'll need to save the original pointer and deallocate.
> Use of CQD to set scratch directory locations
> ---------------------------------------------
>
> Key: TRAFODION-2146
> URL: https://issues.apache.org/jira/browse/TRAFODION-2146
> Project: Apache Trafodion
> Issue Type: Improvement
> Components: foundation, sql-exe
> Reporter: Sandhya Sundaresan
> Assignee: Sandhya Sundaresan
>
> Allow a CQD specification to override the env settings for STFS locations.
> Currently the scratch directory locations and set at installtion time . The
> STFS layer that manages the scratch file creation reads the envvar in ms.env
> to determine where to create the scratch files.
> Now we allow a CQD to be specified that will override the envvar setting. If
> the CQD is not set (empty) , the envvar setting will work. This will give the
> user some flexibility to change scratch directory locations. The requirement
> is that the directoryies MUST exists on every node and that Trafodion user
> will need permissions to write to those directories. If not an error will be
> returned when a query invliving sort/hash overflow is executed. .
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)