for not nullalble column bypass the indicator get to avoid core dump

Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/5ddd7bfc
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/5ddd7bfc
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/5ddd7bfc

Branch: refs/heads/master
Commit: 5ddd7bfc89c9230d14aeb4b61272036a9797830a
Parents: e2a4b80
Author: Liu Ming <ovis_p...@sina.com>
Authored: Sat Aug 11 20:17:39 2018 +0000
Committer: Liu Ming <ovis_p...@sina.com>
Committed: Sat Aug 11 20:17:39 2018 +0000

----------------------------------------------------------------------
 core/sql/executor/ExExeUtilCli.cpp | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafodion/blob/5ddd7bfc/core/sql/executor/ExExeUtilCli.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilCli.cpp 
b/core/sql/executor/ExExeUtilCli.cpp
index 8a47f4d..1c827f6 100644
--- a/core/sql/executor/ExExeUtilCli.cpp
+++ b/core/sql/executor/ExExeUtilCli.cpp
@@ -1304,10 +1304,19 @@ short ExeCliInterface::fetchAllRows(Queue * &infoList,
           Lng32   type;
           short nulind=0;
           short *indaddr=&nulind;
-          short **ind;
+          short **ind=&indaddr;
           getAttributes(j+1, FALSE, type, len, NULL, NULL);
          getPtrAndLen(j+1, ptr, len, ind);
-          if( ((char*)*ind)[0] == -1 ) // NULL value
+          NABoolean  nullableCol = TRUE, isNullVal = FALSE;
+          if(*ind == NULL) // It is not a nullable value
+            isNullVal = FALSE; 
+          else
+          {
+            if( ((char*)*ind)[0] == -1 ) // NULL value
+              isNullVal = TRUE;
+          }
+  
+          if(isNullVal) 
           {
             oi->insert(j, NULL, 0, type);
           }

Reply via email to