Github user robertamarton commented on a diff in the pull request:
https://github.com/apache/trafodion/pull/1721#discussion_r225015086
--- Diff: core/sql/sqlcomp/CmpSeabaseDDLtable.cpp ---
@@ -5619,8 +5620,80 @@ void CmpSeabaseDDL::alterSeabaseTableAddColumn(
processReturn();
return;
}
- char * col_name = new(STMTHEAP) char[colName.length() + 1];
+ */
+ char *col_name = new(STMTHEAP) char[colName.length() + 1];
strcpy(col_name, (char*)colName.data());
+ if ((datatype == REC_BLOB) ||
+ (datatype == REC_CLOB))
+ {
+
+ short *lobNumList = new (STMTHEAP) short;
+ short *lobTypList = new (STMTHEAP) short;
+ char **lobLocList = new (STMTHEAP) char*[1];
+ char **lobColNameList = new (STMTHEAP) char*[1];
+
+ Int64 lobMaxSize =
CmpCommon::getDefaultNumeric(LOB_MAX_SIZE)*1024*1024;
+
+
+
+ lobNumList[0] = nacolArr.entries();
+ lobTypList[0] = (short)(pColDef->getLobStorage());
+ char * loc = new (STMTHEAP) char[1024];
+
+ const char* f = ActiveSchemaDB()->getDefaults().
+ getValue(LOB_STORAGE_FILE_DIR);
+
+ strcpy(loc, f);
+
+ lobLocList[0] = loc;
+ lobColNameList[0] = col_name;
+ char lobHdfsServer[256] ; // max length determined by
dfs.namenode.fs-limits.max-component-length(255)
+ memset(lobHdfsServer,0,256);
+
strncpy(lobHdfsServer,CmpCommon::getDefaultString(LOB_HDFS_SERVER),sizeof(lobHdfsServer)-1);
+ Int32 lobHdfsPort =
(Lng32)CmpCommon::getDefaultNumeric(LOB_HDFS_PORT);
+ Int32 rc = sendAllControls(FALSE, FALSE, TRUE);
+
+ Int64 objUID = getObjectUID(&cliInterface,
+ catalogNamePart.data(),
schemaNamePart.data(),
+ objectNamePart.data(),
+ COM_BASE_TABLE_OBJECT_LIT);
+
--- End diff --
Is it possible that an invalid objectUID is returned? For example, an
error occurred reading OBJECT table. What would happen if objectUID = -1?
---