trafodion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sure...@apache.org
Subject [1/5] incubator-trafodion git commit: [TRAFODION-1676]support better runtime error message when a SQL function meet fital error
Date Tue, 05 Jul 2016 13:28:48 GMT
Repository: incubator-trafodion
Updated Branches:
  refs/heads/master f1b85eebd -> d3de6851a


[TRAFODION-1676]support better runtime error message when a SQL function meet fital error


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

Branch: refs/heads/master
Commit: 5b8eba5598f8e45339a1ba649cd2214117ed7381
Parents: 4934fde
Author: Liu Ming <ovis_poly@sina.com>
Authored: Wed Jun 29 12:47:38 2016 +0000
Committer: Liu Ming <ovis_poly@sina.com>
Committed: Wed Jun 29 12:47:38 2016 +0000

----------------------------------------------------------------------
 core/sql/bin/SqlciErrors.txt             |   4 +-
 core/sql/cli/Statement.cpp               |  28 ++++
 core/sql/exp/exp_conv.cpp                | 122 ++++++++++++++--
 core/sql/exp/exp_datetime.cpp            | 203 +++++++++++++++++++++++++-
 core/sql/exp/exp_function.cpp            |  33 ++++-
 core/sql/regress/core/EXPECTED038.LINUX  |   2 +-
 core/sql/regress/executor/EXPECTED022.SB | 152 +++++++++----------
 core/sql/regress/executor/EXPECTED050    |   4 +-
 core/sql/regress/hive/EXPECTED005        |  10 +-
 core/sql/regress/seabase/EXPECTED030     |   6 +-
 10 files changed, 453 insertions(+), 111 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5b8eba55/core/sql/bin/SqlciErrors.txt
----------------------------------------------------------------------
diff --git a/core/sql/bin/SqlciErrors.txt b/core/sql/bin/SqlciErrors.txt
index ec84dd9..6c8933d 100644
--- a/core/sql/bin/SqlciErrors.txt
+++ b/core/sql/bin/SqlciErrors.txt
@@ -1529,9 +1529,9 @@ $1~String1 --------------------------------
 8410 22025 99999 BEGINNER MINOR LOGONLY An escape character in a LIKE pattern must be followed by another escape character, an underscore, or a percent character.
 8411 22003 99999 BEGINNER MINOR LOGONLY A numeric overflow occurred during an arithmetic computation or data conversion.$0~string0
 8412 22024 99999 BEGINNER MINOR LOGONLY An input character host variable is missing its null terminator.
-8413 22007 99999 BEGINNER MINOR LOGONLY The string argument contains characters that cannot be converted.
+8413 22007 99999 BEGINNER MINOR LOGONLY The string argument contains characters that cannot be converted. Source data $0~string0
 8414 0A000 99999 BEGINNER MINOR LOGONLY The attempted conversion is not supported on this platform.
-8415 22007 99999 BEGINNER MINOR LOGONLY The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+8415 22007 99999 BEGINNER MINOR LOGONLY The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data $0~string0
 8416 22008 99999 BEGINNER MINOR LOGONLY A datetime expression evaluated to an invalid datetime value.
 8417 ZZZZZ 99999 BEGINNER MAJOR DBADMIN An error occurred during the evaluation of USER function. The provided userid $0~string0 is invalid, incorrect, obsolete or inexistent and could not be converted to username.
 8418 0A000 99999 BEGINNER MINOR LOGONLY The USER function is not supported on this platform.

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5b8eba55/core/sql/cli/Statement.cpp
----------------------------------------------------------------------
diff --git a/core/sql/cli/Statement.cpp b/core/sql/cli/Statement.cpp
index a1f2171..ae59dc0 100644
--- a/core/sql/cli/Statement.cpp
+++ b/core/sql/cli/Statement.cpp
@@ -2102,6 +2102,30 @@ Statement * Statement::getCurrentOfCursorStatement(char * cursorName)
 
 }
 
+//////////////////////////////////////////////////////////////////
+////
+//// A helper function to show buffer in HEX
+////
+//// ///////////////////////////////////////////////////////////////
+
+static char *stringToHex(char * out, Int32 outLen, char * in, Int32 inLen)
+{
+  //clear out buffer first
+  memset(out,0,outLen);
+
+  outLen = (outLen / 2) ;
+
+  if(inLen < outLen) outLen = inLen;
+
+  char hex[3];
+  for(int i = 0; i < outLen; i++)
+  {
+    sprintf(hex, "%02x", in[i]);
+    strcat(out,hex);
+  }
+  return out;
+}
+
 ///////////////////////////////////////////////////////////////////////
 // RETURN: doSimCheck: if true, do similarity check.
 //         doFixup:    if true and doSimCheck is false, do fixup again.
@@ -2298,6 +2322,10 @@ RETCODE Statement::resolveNames(LateNameInfoList * lnil,
 	      if (retcode != ex_expr::EXPR_OK)
 		{
 		  diagsArea << DgSqlCode(-EXE_CONVERT_STRING_ERROR);
+                  char hexstr[256];
+                  memset(hexstr, 0 , sizeof(hexstr) );
+                  diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
 		  return ERROR;  
 		}
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5b8eba55/core/sql/exp/exp_conv.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/exp_conv.cpp b/core/sql/exp/exp_conv.cpp
index 034c9e3..53f16dd 100644
--- a/core/sql/exp/exp_conv.cpp
+++ b/core/sql/exp/exp_conv.cpp
@@ -1445,6 +1445,10 @@ ex_expr::exp_return_type convUnicodeToDatetime(char *target,
    }
 
    ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+   char hexstr[256];
+   if(*diagsArea)
+     **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr) , source, sourceLen ));
+
    return ex_expr::EXPR_ERROR;
 
 }
@@ -1533,6 +1537,9 @@ ex_expr::exp_return_type convDatetimeDatetime(char * target,
                                              &roundedDown) != 0) {
 
     ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+    char hexstr[256];
+    if(*diagsArea)
+      **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
     return ex_expr::EXPR_ERROR;
   }
 
@@ -1579,6 +1586,9 @@ ex_expr::exp_return_type convAsciiToFloat64(char * target,
 
     // string contains only blanks.
     ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+    char hexstr[256];
+    if(*diagsArea)
+      **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
     return ex_expr::EXPR_ERROR;
   };
 
@@ -1730,6 +1740,10 @@ ex_expr::exp_return_type convAsciiToFloat64(char * target,
 	  {
 	    // string contains only blanks.
 	    ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+            char hexstr[256];
+            if(*diagsArea)
+              **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
 	    return ex_expr::EXPR_ERROR;
 	  };
 	  break;
@@ -1748,6 +1762,9 @@ ex_expr::exp_return_type convAsciiToFloat64(char * target,
     {
 	  // LCOV_EXCL_START
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+      char hexstr[256];
+      if(*diagsArea)
+        **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
       return ex_expr::EXPR_ERROR;
       // LCOV_EXCL_STOP
     };
@@ -1845,6 +1862,10 @@ ex_expr::exp_return_type convAsciiToInt64(Int64 &target,
         {
 	// syntax error in the input
         ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+        char hexstr[256];
+        if(*diagsArea)
+          **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
 	return ex_expr::EXPR_ERROR;
         }
       digitCnt++;
@@ -1943,6 +1964,10 @@ ex_expr::exp_return_type convAsciiToInt64(Int64 &target,
         // or we found a point already.
         // A sign is an error now!
 	ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+        char hexstr[256];
+        if(*diagsArea)
+          **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
 	return ex_expr::EXPR_ERROR;
         }
       SignFound = TRUE;
@@ -1956,6 +1981,10 @@ ex_expr::exp_return_type convAsciiToInt64(Int64 &target,
         // we are already not allowing anymore digits because of illegal
         // blank space(s)
 	ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+        char hexstr[256];
+        if(*diagsArea)
+          **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
 	return ex_expr::EXPR_ERROR;
         }
       pointFound = TRUE;
@@ -1971,6 +2000,10 @@ ex_expr::exp_return_type convAsciiToInt64(Int64 &target,
 	    {
 	      // 'E' alone is not a valid numeric.
 	      ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+              char hexstr[256];
+              if(*diagsArea)
+                **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
 	      return ex_expr::EXPR_ERROR;
 	    }
 
@@ -2004,6 +2037,10 @@ ex_expr::exp_return_type convAsciiToInt64(Int64 &target,
         {
 	  // illegal character in this input string
 	  ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+          char hexstr[256];
+          if(*diagsArea)
+            **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
 	  return ex_expr::EXPR_ERROR;
         }
       }
@@ -2021,6 +2058,10 @@ ex_expr::exp_return_type convAsciiToInt64(Int64 &target,
 	}
       
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+      char hexstr[256];
+      if(*diagsArea)
+        **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
       return ex_expr::EXPR_ERROR;
     }
 
@@ -2165,6 +2206,10 @@ ex_expr::exp_return_type convAsciiToDec(char *target,
       }
  
     ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+    char hexstr[256];
+    if(*diagsArea)
+      **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
     return ex_expr::EXPR_ERROR;
   };
   // LCOV_EXCL_STOP
@@ -2284,6 +2329,10 @@ ex_expr::exp_return_type convAsciiToDec(char *target,
       // if source is not a digit, we have an error
       if (source[sourcePos] < '0' || source[sourcePos] > '9') {
 	ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+        char hexstr[256];
+        if(*diagsArea)
+          **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
         return ex_expr::EXPR_ERROR;
       };
       // copy source to target
@@ -2540,6 +2589,10 @@ ex_expr::exp_return_type convAsciiFieldToInt64(Int64 &target,
   {
     // No digits were found
     ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+    char hexstr[256];
+    if(*diagsArea)
+      **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
     return ex_expr::EXPR_ERROR;
   }
   // return the number of digits read
@@ -3384,6 +3437,10 @@ ex_expr::exp_return_type convDecToInt64(Int64 &target,
   while (currPos < sourceLen) {
     if (source[currPos] < '0' || source[currPos] > '9') {
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+      char hexstr[256];
+      if(*diagsArea)
+        **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
       return ex_expr::EXPR_ERROR;
     };
     target *= 10;
@@ -3433,6 +3490,10 @@ ex_expr::exp_return_type convDecToDec(char *target,
 
       // target string is not long enough - overflow
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+      char hexstr[256];
+      if(*diagsArea)
+        **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
       return ex_expr::EXPR_ERROR;
     };
     
@@ -3440,6 +3501,10 @@ ex_expr::exp_return_type convDecToDec(char *target,
     for (Lng32 i = 1; i < sourceIndex; i++)
       if (source[i] != '0') {
 	ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+        char hexstr[256];
+        if(*diagsArea)
+          **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
         return ex_expr::EXPR_ERROR;
       };
     str_cpy_all(target, &source[sourceIndex], targetLen);
@@ -4342,8 +4407,8 @@ unicodeToSByteTarget(
        {
           ExRaiseSqlError(heap, diagsArea, EXE_INVALID_CHAR_IN_TRANSLATE_FUNC);
           char hexstr[256];
-          memset(hexstr,0,256);
-          *(*diagsArea) << DgString0("UNICODE") << DgString1("ISO88591") << DgString2(stringToHex(hexstr,256,source,sourceLen));
+          if(*diagsArea)
+            *(*diagsArea) << DgString0("UNICODE") << DgString1("ISO88591") << DgString2(stringToHex(hexstr,sizeof(hexstr),source,sourceLen));
           retcode = ex_expr::EXPR_ERROR;
        }
     }
@@ -4440,11 +4505,12 @@ unicodeToMByteTarget(
        {
           ExRaiseSqlError(heap, diagsArea, EXE_INVALID_CHAR_IN_TRANSLATE_FUNC);
           char hexstr[256];
-          memset(hexstr,0,256);
-	  if ( targetScale == SQLCHARSETCODE_UTF8 )
-            *(*diagsArea) << DgString0("UNICODE") << DgString1("UTF8") << DgString2(stringToHex(hexstr,256,source,sourceLen));
-          else
-            *(*diagsArea) << DgString0("UNICODE") << DgString1("SJIS") << DgString2(stringToHex(hexstr,256,source,sourceLen));
+          if( *diagsArea ) {
+	    if ( targetScale == SQLCHARSETCODE_UTF8 )
+              *(*diagsArea) << DgString0("UNICODE") << DgString1("UTF8") << DgString2(stringToHex(hexstr,sizeof(hexstr),source,sourceLen));
+            else
+              *(*diagsArea) << DgString0("UNICODE") << DgString1("SJIS") << DgString2(stringToHex(hexstr,sizeof(hexstr),source,sourceLen));
+          }
           retcode = ex_expr::EXPR_ERROR;
           // LCOV_EXCL_STOP
        }
@@ -4578,8 +4644,8 @@ ex_expr::exp_return_type convCharToChar(
           if(errCode == EXE_INVALID_CHAR_IN_TRANSLATE_FUNC)
           {
             char hexstr[256];
-            memset(hexstr,0,256);
-            *(*diagsArea) << DgString0(scaleToString(sourceScale)) << DgString1(scaleToString(targetScale)) << DgString2(stringToHex(hexstr,256,source,sourceLen));
+            if( *diagsArea ) 
+              *(*diagsArea) << DgString0(scaleToString(sourceScale)) << DgString1(scaleToString(targetScale)) << DgString2(stringToHex(hexstr,sizeof(hexstr),source,sourceLen));
           }
           if (intermediateStr && intermediateStr != stackBuffer)
             NADELETEBASIC(intermediateStr, heap);
@@ -4721,8 +4787,8 @@ ex_expr::exp_return_type convCharToChar(
                       if(errCode == EXE_INVALID_CHAR_IN_TRANSLATE_FUNC)
                       {
                         char hexstr[256];
-                        memset(hexstr,0,256);
-                        *(*diagsArea) << DgString0(scaleToString(sourceScale)) << DgString1(scaleToString(targetScale)) << DgString2(stringToHex(hexstr,256,source,sourceLen));
+                        if( *diagsArea ) 
+                          *(*diagsArea) << DgString0(scaleToString(sourceScale)) << DgString1(scaleToString(targetScale)) << DgString2(stringToHex(hexstr,sizeof(hexstr),source,sourceLen));
                       }
                       if (intermediateStr && intermediateStr != stackBuffer)
                         NADELETEBASIC(intermediateStr, heap);
@@ -4767,8 +4833,8 @@ ex_expr::exp_return_type convCharToChar(
              // source string is not valid UTF-8
              ExRaiseSqlError(heap, diagsArea, EXE_INVALID_CHAR_IN_TRANSLATE_FUNC);
              char hexstr[256];
-             memset(hexstr,0,256);
-             *(*diagsArea) << DgString0(scaleToString(sourceScale)) << DgString1(scaleToString(targetScale)) << DgString2(stringToHex(hexstr,256,source,sourceLen));
+             if( *diagsArea ) 
+               *(*diagsArea) << DgString0(scaleToString(sourceScale)) << DgString1(scaleToString(targetScale)) << DgString2(stringToHex(hexstr,sizeof(hexstr),source,sourceLen));
              return ex_expr::EXPR_ERROR;
          }
       }
@@ -4795,8 +4861,8 @@ ex_expr::exp_return_type convCharToChar(
                   // source string is not valid UTF-8
                   ExRaiseSqlError(heap, diagsArea, EXE_INVALID_CHAR_IN_TRANSLATE_FUNC);
                   char hexstr[256];
-                  memset(hexstr,0,256);
-                  *(*diagsArea) << DgString0(scaleToString(sourceScale)) << DgString1(scaleToString(targetScale)) << DgString2(stringToHex(hexstr,256,source,sourceLen));
+                  if( *diagsArea ) 
+                    *(*diagsArea) << DgString0(scaleToString(sourceScale)) << DgString1(scaleToString(targetScale)) << DgString2(stringToHex(hexstr,sizeof(hexstr),source,sourceLen));
                   return ex_expr::EXPR_ERROR;
                 }
 
@@ -8585,6 +8651,10 @@ convDoIt(char * source,
 
    } else {
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+      char hexstr[256];
+      if( *diagsArea ) 
+        **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
       ok = ex_expr::EXPR_ERROR;
    }
 
@@ -8670,6 +8740,9 @@ convDoIt(char * source,
       ok = ex_expr::EXPR_OK;
    } else {
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+      char hexstr[256];
+      if( *diagsArea ) 
+        **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
       ok = ex_expr::EXPR_ERROR;
    }
 
@@ -9025,6 +9098,10 @@ convDoIt(char * source,
       ok = ex_expr::EXPR_OK;
    } else {
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+      char hexstr[256];
+      if( *diagsArea ) 
+        **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
       ok = ex_expr::EXPR_ERROR;
    }
 
@@ -9099,6 +9176,10 @@ convDoIt(char * source,
    }
 
    ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+   char hexstr[256];
+   if( *diagsArea ) 
+     **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
    return ex_expr::EXPR_ERROR;
   };
   break;
@@ -9259,6 +9340,10 @@ convDoIt(char * source,
    }
 
    ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+   char hexstr[256];
+   if( *diagsArea ) 
+     **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
    return ex_expr::EXPR_ERROR;
 
   };
@@ -9299,6 +9384,9 @@ convDoIt(char * source,
    }
 
    ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+   char hexstr[256];
+   if( *diagsArea ) 
+     **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
    return ex_expr::EXPR_ERROR;
   };
   break;
@@ -9402,6 +9490,10 @@ convDoIt(char * source,
       if ( varCharLen )
         setVCLength(varCharLen, varCharLenSize, copyLen);
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+      char hexstr[256];
+      if( *diagsArea ) 
+        **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), source, sourceLen ));
+
       return ex_expr::EXPR_ERROR;
       // LCOV_EXCL_STOP
     }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5b8eba55/core/sql/exp/exp_datetime.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/exp_datetime.cpp b/core/sql/exp/exp_datetime.cpp
index 724bdb9..952fba0 100644
--- a/core/sql/exp/exp_datetime.cpp
+++ b/core/sql/exp/exp_datetime.cpp
@@ -1752,6 +1752,30 @@ containsField(rec_datetime_field field,
   }
 }
 
+//////////////////////////////////////////////////////////////////
+////
+//// A helper function to show buffer in HEX
+////
+//// ///////////////////////////////////////////////////////////////
+
+static char *stringToHex(char * out, Int32 outLen, char * in, Int32 inLen)
+{
+  //clear out buffer first
+  memset(out,0,outLen);
+
+  outLen = (outLen / 2) ;
+
+  if(inLen < outLen) outLen = inLen;
+
+  char hex[3];
+  for(int i = 0; i < outLen; i++)
+  {
+    sprintf(hex, "%02x", in[i]);
+    strcat(out,hex);
+  }
+  return out;
+}
+
 // scanField() =======================================================
 // This static helper function for the ExpDatetime class is used to
 // scan the various fields of a ASCII datetime value.
@@ -1908,6 +1932,11 @@ scanField(char *&src,
       // An unknown character was encountered in the string.
       //
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_STRING_ERROR);
+      char hexstr[256];
+      memset(hexstr, 0 , sizeof(hexstr) );
+      if(*diagsArea)
+        **diagsArea << DgString0(stringToHex(hexstr, sizeof(hexstr), src, srcEnd-src));
+
       return FALSE;
     }
   } else if (src < srcEnd && isDigit8859_1(*src)) {
@@ -1939,7 +1968,8 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
 {
 
   NABoolean noDatetimeValidation = (flags & CONV_NO_DATETIME_VALIDATION) != 0;
-
+  Lng32 originalSrcLen = srcLen;
+  char * originalSrcData = srcData; 
   // skip leading and trailing blanks and adjust srcData and srcLen
   // accordingly
   //
@@ -1954,6 +1984,8 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
     // string contains only blanks.
     //
     ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+    if(*diagsArea != NULL)
+      **diagsArea << DgString0("(string contains only blanks)");   
     return -1;
   };
 
@@ -2019,6 +2051,14 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
   //
   if (format == DATETIME_FORMAT_ERROR) {
     ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+    char hexstr[256];
+    memset(hexstr, 0 , sizeof(hexstr) );
+    int copyLen = strlen(originalSrcData);
+    if(copyLen > sizeof(hexstr) -1 )
+      copyLen = sizeof(hexstr) -1;
+    strncpy(hexstr,originalSrcData,copyLen);
+    if(*diagsArea != NULL)
+      **diagsArea << DgString0(hexstr); 
     return -1;
   }
 
@@ -2055,6 +2095,14 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
   if ((defZ || TZD) && (dstEndField == REC_DATE_DAY))
     {
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+      char hexstr[256];
+      memset(hexstr, 0 , sizeof(hexstr) );
+      int copyLen = strlen(originalSrcData);
+      if(copyLen > sizeof(hexstr) -1 )
+        copyLen = sizeof(hexstr) -1;
+      strncpy(hexstr,originalSrcData,copyLen);
+      if(*diagsArea != NULL)
+        **diagsArea << DgString0(hexstr); 
       return -1;
     }
 
@@ -2151,6 +2199,14 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
                      diagsArea,
    	             flags)) {
         ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+        char hexstr[256];
+        memset(hexstr, 0 , sizeof(hexstr) );
+        int copyLen = strlen(originalSrcData);
+        if(copyLen > sizeof(hexstr) -1 )
+          copyLen = sizeof(hexstr) -1;
+        strncpy(hexstr,originalSrcData,copyLen);
+        if(*diagsArea != NULL)
+          **diagsArea << DgString0(hexstr); 
         return -1;
       }
     }
@@ -2159,6 +2215,14 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
   // If there are any remaining characters in the input string.
   if (src != srcEnd) {
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+      char hexstr[256];
+      memset(hexstr, 0 , sizeof(hexstr) );
+      int copyLen = strlen(originalSrcData);
+      if(copyLen > sizeof(hexstr) -1 )
+          copyLen = sizeof(hexstr) -1;
+      strncpy(hexstr,originalSrcData,copyLen);
+      if(*diagsArea != NULL)
+        **diagsArea << DgString0(hexstr); 
       return -1;
   }
 
@@ -2170,6 +2234,14 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
       usaAmPm) {
     if (datetimeValues[REC_DATE_HOUR] > 12) {
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+      char hexstr[256];
+      memset(hexstr, 0 , sizeof(hexstr) );
+      int copyLen = strlen(originalSrcData);
+      if(copyLen > sizeof(hexstr) -1 )
+          copyLen = sizeof(hexstr) -1;
+      strncpy(hexstr,originalSrcData,copyLen);
+      if(*diagsArea != NULL)
+        **diagsArea << DgString0(hexstr); 
       return -1;
     }
 
@@ -2190,6 +2262,14 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
     }
   } else if (usaAmPm) {
     ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+    char hexstr[256];
+    memset(hexstr, 0 , sizeof(hexstr) );
+    int copyLen = strlen(originalSrcData);
+    if(copyLen > sizeof(hexstr) -1 )
+          copyLen = sizeof(hexstr) -1;
+    strncpy(hexstr,originalSrcData,copyLen);
+    if(*diagsArea != NULL)
+      **diagsArea << DgString0(hexstr); 
     return -1;
   }
     
@@ -2240,6 +2320,14 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
       break;
     default:
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+      char hexstr[256];
+      memset(hexstr, 0 , sizeof(hexstr) );
+      int copyLen = strlen(originalSrcData);
+      if(copyLen > sizeof(hexstr) - 1 ) 
+        copyLen = sizeof(hexstr) - 1; 
+      strncpy(hexstr,originalSrcData, copyLen);
+      if(*diagsArea != NULL)
+        **diagsArea << DgString0(hexstr); 
       return -1;
     }
   }
@@ -2253,6 +2341,14 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
 		     dstData, NULL, FALSE, 
 		     LastDayPrevMonth)) {
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+      char hexstr[256];
+      memset(hexstr, 0 , sizeof(hexstr) );
+      int copyLen = strlen(originalSrcData);
+      if(copyLen > sizeof(hexstr) - 1 ) 
+        copyLen = sizeof(hexstr) - 1; 
+      strncpy(hexstr,originalSrcData, copyLen);
+      if(*diagsArea != NULL)
+        **diagsArea << DgString0(hexstr); 
       return -1;
     };
 
@@ -2269,6 +2365,14 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
     Int64 juliantimestamp = COMPUTETIMESTAMP(timestamp, &error);
     if (error) {
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+      char hexstr[256];
+      memset(hexstr, 0 , sizeof(hexstr) );
+      int copyLen = strlen(originalSrcData);
+      if(copyLen > sizeof(hexstr) - 1 ) 
+        copyLen = sizeof(hexstr) - 1; 
+      strncpy(hexstr,originalSrcData, copyLen);
+      if(*diagsArea != NULL)
+        **diagsArea << DgString0(hexstr); 
       return -1;
     }
 
@@ -2317,6 +2421,14 @@ ExpDatetime::convAsciiToDatetime(char *srcData,
         break;
       default:
         ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+        char hexstr[256];
+        memset(hexstr, 0 , sizeof(hexstr) );
+        int copyLen = strlen(originalSrcData);
+        if(copyLen > sizeof(hexstr) - 1 ) 
+          copyLen = sizeof(hexstr) - 1; 
+        strncpy(hexstr,originalSrcData, copyLen);
+        if(*diagsArea != NULL)
+          **diagsArea << DgString0(hexstr); 
         return -1;
       }
     }
@@ -2358,6 +2470,8 @@ static NABoolean convertStrToMonth(char* &srcData, char *result,
                                    const char * nextByte,
                                    CollHeap * heap, ComDiagsArea** diagsArea)
 {
+  int copyLen = strlen(srcData);
+  char * originalSrcData = srcData;
   const char * months[] = 
   {
     "JAN", 
@@ -2390,6 +2504,13 @@ static NABoolean convertStrToMonth(char* &srcData, char *result,
                 {
                   // string contains non-digit
                   ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+                  char hexstr[256];
+                  memset(hexstr, 0 , sizeof(hexstr) );
+                  if(copyLen > sizeof(hexstr) -1 ) 
+                    copyLen = sizeof(hexstr) -1;        
+                  strncpy(hexstr,originalSrcData,copyLen);
+                  if(*diagsArea != NULL)
+                    **diagsArea << DgString0(hexstr); 
                   return FALSE; // error
                 }    
               srcData++;
@@ -2454,6 +2575,14 @@ static short convSrcDataToDst(Lng32 numSrcBytes, char* &srcData,
       // string contains non-digit
       //
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+      char hexstr[256];
+      memset(hexstr, 0 , sizeof(hexstr) );
+      int copyLen = strlen(srcData);
+      if( copyLen > sizeof(hexstr) - 1)
+         copyLen = sizeof(hexstr) - 1; 
+      strncpy(hexstr,srcData,copyLen);
+      if(*diagsArea != NULL)
+        **diagsArea << DgString0(hexstr); 
       return -1;
     }
 
@@ -2472,6 +2601,14 @@ static short convSrcDataToDst(Lng32 numSrcBytes, char* &srcData,
         {
           // string contains non-digit
           ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+          char hexstr[256];
+          memset(hexstr, 0 , sizeof(hexstr) );
+          int copyLen = strlen(srcData);
+          if( copyLen > sizeof(hexstr) - 1)
+            copyLen = sizeof(hexstr) - 1; 
+          strncpy(hexstr,srcData,copyLen);
+          if(*diagsArea != NULL)
+            **diagsArea << DgString0(hexstr); 
           return -1;
         }    
 
@@ -2535,6 +2672,14 @@ ExpDatetime::convAsciiToDate(char *srcData,
       // string contains only blanks.
       //
       ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+      char hexstr[256];
+      memset(hexstr, 0 , sizeof(hexstr) );
+      int copyLen = strlen(srcData);
+      if(copyLen > sizeof(hexstr) - 1)
+        copyLen = sizeof(hexstr) - 1;
+      strncpy(hexstr,srcData,copyLen);
+      if(*diagsArea != NULL)
+        **diagsArea << DgString0(hexstr); 
       return -1;
     };
 
@@ -2554,6 +2699,14 @@ ExpDatetime::convAsciiToDate(char *srcData,
     // string doesn't seem to contain all date fields.
     //
     ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+    char hexstr[256];
+    memset(hexstr, 0 , sizeof(hexstr) );
+    int copyLen = strlen(srcData);
+    if(copyLen > sizeof(hexstr) - 1)
+      copyLen = sizeof(hexstr) - 1;
+    strncpy(hexstr,srcData,copyLen);
+    if(*diagsArea != NULL)
+      **diagsArea << DgString0(hexstr); 
     return -1;
   };
 
@@ -2765,6 +2918,14 @@ ExpDatetime::convAsciiToDate(char *srcData,
       char * prevSrcData = srcData;
       if (! convertStrToMonthLongFormat(srcData, &dstData[2])) {
         ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+        char hexstr[256];
+        memset(hexstr, 0 , sizeof(hexstr) );
+        int copyLen = strlen(srcData);
+        if(copyLen > sizeof(hexstr) -1 )
+          copyLen = sizeof(hexstr) -1 ;
+        strncpy(hexstr,srcData,copyLen);
+        if(*diagsArea != NULL)
+          **diagsArea << DgString0(hexstr); 
         return -1;
       }
       minLength += (srcData - prevSrcData);
@@ -2932,6 +3093,14 @@ ExpDatetime::convAsciiToDate(char *srcData,
     // Format could not be determined, issue an error.
     //
     ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+    char hexstr[256];
+    memset(hexstr, 0 , sizeof(hexstr) );
+    int copyLen = strlen(srcData);
+    if(copyLen > sizeof(hexstr) -1 )
+      copyLen = sizeof(hexstr) -1 ;
+    strncpy(hexstr,srcData,copyLen);
+    if(*diagsArea != NULL)
+      **diagsArea << DgString0(hexstr); 
     return -1;
     }
   };
@@ -2945,6 +3114,14 @@ ExpDatetime::convAsciiToDate(char *srcData,
         // string contains only blanks.
         //
         ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+        char hexstr[256];
+        memset(hexstr, 0 , sizeof(hexstr) );
+        int copyLen = strlen(srcData);
+        if(copyLen > sizeof(hexstr) -1 )
+          copyLen = sizeof(hexstr) -1 ;
+        strncpy(hexstr,srcData,copyLen);
+        if(*diagsArea != NULL)
+          **diagsArea << DgString0(hexstr); 
         return -1;
       }
     }
@@ -2959,6 +3136,14 @@ ExpDatetime::convAsciiToDate(char *srcData,
 			 dstData, NULL, FALSE, 
 			 LastDayPrevMonth)) {
 	  ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+          char hexstr[256];
+          memset(hexstr, 0 , sizeof(hexstr) );
+          int copyLen = strlen(srcData);
+          if(copyLen > sizeof(hexstr) -1 )
+            copyLen = sizeof(hexstr) -1 ;
+          strncpy(hexstr,srcData,copyLen);
+          if(*diagsArea != NULL)
+            **diagsArea << DgString0(hexstr); 
 	  return -1;
 	};
     }
@@ -3553,6 +3738,14 @@ ExpDatetime::convNumericTimeToASCII(char *srcData,
       if (format == DATETIME_FORMAT_NUM1)
         {
           ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+          char hexstr[256];
+          memset(hexstr, 0 , sizeof(hexstr) );
+          int copyLen = strlen(srcData);
+          if(copyLen > sizeof(hexstr) -1 )
+            copyLen = sizeof(hexstr) -1;
+          strncpy(hexstr,srcData,copyLen);
+          if(*diagsArea != NULL)
+            **diagsArea << DgString0(hexstr);
           return -1;
         }
 
@@ -3591,6 +3784,14 @@ ExpDatetime::convNumericTimeToASCII(char *srcData,
       if (temp > 0)
         {
           ExRaiseSqlError(heap, diagsArea, EXE_CONVERT_DATETIME_ERROR);
+          char hexstr[256];
+          memset(hexstr, 0 , sizeof(hexstr) );
+          int copyLen = strlen(srcData);
+          if(copyLen > sizeof(hexstr) -1 )
+            copyLen = sizeof(hexstr) -1;
+          strncpy(hexstr,srcData,copyLen);
+          if(*diagsArea != NULL)
+            **diagsArea << DgString0(hexstr);
           return -1;
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5b8eba55/core/sql/exp/exp_function.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/exp_function.cpp b/core/sql/exp/exp_function.cpp
index 4e3211d..d9cda1f 100644
--- a/core/sql/exp/exp_function.cpp
+++ b/core/sql/exp/exp_function.cpp
@@ -44,6 +44,7 @@
 
 #include <ctype.h>
 #include <string.h>
+#include <stdio.h>
 
 #include "NLSConversion.h"
 #include "nawstring.h"
@@ -2498,9 +2499,19 @@ ex_expr::exp_return_type ex_function_converttimestamp::eval(char *op_data[],
                                                         (Int64)  99999999;
   if ((juliantimestamp < minJuliantimestamp) ||
       (juliantimestamp > maxJuliantimestamp)) {
-    ExRaiseFunctionSqlError(heap, diagsArea, EXE_CONVERTTIMESTAMP_ERROR,
-			    derivedFunction(),
-			    origFunctionOperType());
+    char tmpbuf[24];
+    memset(tmpbuf, 0, sizeof(tmpbuf) );
+    sprintf(tmpbuf, "%ld", juliantimestamp);
+
+    ExRaiseSqlError(heap, diagsArea, EXE_CONVERTTIMESTAMP_ERROR);
+    if(*diagsArea)
+      **diagsArea << DgString0(tmpbuf);
+
+    if(derivedFunction())
+    {
+      **diagsArea << DgSqlCode(-EXE_MAPPED_FUNCTION_ERROR);
+       **diagsArea << DgString0(exClauseGetText(origFunctionOperType()));
+    }
     
     return ex_expr::EXPR_ERROR;
   }
@@ -2840,9 +2851,19 @@ ex_expr::exp_return_type ex_function_juliantimestamp::eval(char *op_data[],
   short error;
   juliantimestamp = COMPUTETIMESTAMP(timestamp, &error);
   if (error) {
-    ExRaiseFunctionSqlError(heap, diagsArea, EXE_JULIANTIMESTAMP_ERROR,
-			    derivedFunction(),
-			    origFunctionOperType());
+    char tmpbuf[24];
+    memset(tmpbuf, 0, sizeof(tmpbuf) );
+    sprintf(tmpbuf, "%ld", juliantimestamp);
+
+    ExRaiseSqlError(heap, diagsArea, EXE_JULIANTIMESTAMP_ERROR);
+    if(*diagsArea)
+      **diagsArea << DgString0(tmpbuf);
+
+    if(derivedFunction())
+    {
+      **diagsArea << DgSqlCode(-EXE_MAPPED_FUNCTION_ERROR);
+       **diagsArea << DgString0(exClauseGetText(origFunctionOperType()));
+    }
     
     return ex_expr::EXPR_ERROR;
   }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5b8eba55/core/sql/regress/core/EXPECTED038.LINUX
----------------------------------------------------------------------
diff --git a/core/sql/regress/core/EXPECTED038.LINUX b/core/sql/regress/core/EXPECTED038.LINUX
index 27eb294..8bb083a 100644
--- a/core/sql/regress/core/EXPECTED038.LINUX
+++ b/core/sql/regress/core/EXPECTED038.LINUX
@@ -2748,7 +2748,7 @@ B1
 --- 0 row(s) selected.
 >>select * from T038b where b1 < cast('1997-28-02' as DATE) + interval '2' day;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 1997-28-02
 
 --- 0 row(s) selected.
 >>

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5b8eba55/core/sql/regress/executor/EXPECTED022.SB
----------------------------------------------------------------------
diff --git a/core/sql/regress/executor/EXPECTED022.SB b/core/sql/regress/executor/EXPECTED022.SB
index cbe4b2f..4c448c1 100644
--- a/core/sql/regress/executor/EXPECTED022.SB
+++ b/core/sql/regress/executor/EXPECTED022.SB
@@ -786,17 +786,17 @@ A           B         C
 >>-- negative cases
 >>select cast('2016-01-29Z' as date) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 2016-01-29Z
 
 --- 0 row(s) selected.
 >>select cast('2016-01-29+05:00' as date) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 2016-01-29+05:00
 
 --- 0 row(s) selected.
 >>select cast('10:11:12-05:000' as time) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 10:11:12-05:000
 
 --- 0 row(s) selected.
 >>select date '2016-01-29Z' from t022t1;
@@ -825,17 +825,17 @@ A           B         C
 
 >>select cast ('23:11:61' as time) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 23:11:61-05:000
 
 --- 0 row(s) selected.
 >>select cast ('23:11:06' as timestamp) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 23:11:06
 
 --- 0 row(s) selected.
 >>select cast('2010-01-01' as time) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 2010-01-015:000
 
 --- 0 row(s) selected.
 >>select timestamp'2010-01-01 10' from t022t1;
@@ -2348,28 +2348,28 @@ Hello
 >>-- illegal european format
 >>select cast ('12.13.1987' as date) from t022t2;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 12.13.1987
 
 --- 0 row(s) selected.
 >>
 >>-- illegal US format
 >>select cast ('13/12/1987' as date) from t022t2;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 13/12/1987
 
 --- 0 row(s) selected.
 >>
 >>-- string overflow
 >>select cast (cast ('12.07.1961 03:04:55.123456' as timestamp) as char(18)) from t022t2;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 12.07.1961 03:04:55.123456
 
 --- 0 row(s) selected.
 >>
 >>-- Feb. 30th doesn't exist
 >>select cast('1997-30-02' as DATE) from t022t2;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 1997-30-02
 
 --- 0 row(s) selected.
 >>
@@ -2718,7 +2718,7 @@ A      B
 >>set param ?p '11/20/1997 15:15:08.123456 am';
 >>insert into t022t8 (c1) values ( ?p );
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 11/20/1997 15:15:08.123456 am
 
 *** ERROR[15015] PARAM ?p (value 11/20/1997 15:15:08.123456 am) cannot be converted to type TIMESTAMP(6).
 
@@ -2728,9 +2728,9 @@ A      B
 >>set param ?p '2100-01-01:ab:00:47.250000';
 >>insert into t022t8 (c1) values ( ?p );
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 61623a30303a34372e323530303030
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 2100-01-01:ab:00:47.250000
 
 *** ERROR[15015] PARAM ?p (value 2100-01-01:ab:00:47.250000) cannot be converted to type TIMESTAMP(6).
 
@@ -2740,7 +2740,7 @@ A      B
 >>set param ?p '1998-03-12 03:15:08.123456 pm';
 >>insert into t022t8 (c1) values ( ?p );
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 1998-03-12 03:15:08.123456 pm
 
 *** ERROR[15015] PARAM ?p (value 1998-03-12 03:15:08.123456 pm) cannot be converted to type TIMESTAMP(6).
 
@@ -2750,7 +2750,7 @@ A      B
 >>set param ?p '1996-05-23 16:15:08.123 am';
 >>insert into t022t8 (c1) values ( ?p );
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 1996-05-23 16:15:08.123 am
 
 *** ERROR[15015] PARAM ?p (value 1996-05-23 16:15:08.123 am) cannot be converted to type TIMESTAMP(6).
 
@@ -2823,9 +2823,9 @@ C1
 >>set param ?p '00:a1:00';
 >>insert into t022t8 (c2) values ( ?p );
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 61313a3030
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 00:a1:00
 
 *** ERROR[15015] PARAM ?p (value 00:a1:00) cannot be converted to type TIME(0).
 
@@ -2835,7 +2835,7 @@ C1
 >>set param ?p '14:59:59 am';
 >>insert into t022t8 (c2) values ( ?p );
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 14:59:59 am
 
 *** ERROR[15015] PARAM ?p (value 14:59:59 am) cannot be converted to type TIME(0).
 
@@ -2845,7 +2845,7 @@ C1
 >>set param ?p '11:60:59 am';
 >>insert into t022t8 (c2) values ( ?p );
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 11:60:59 am
 
 *** ERROR[15015] PARAM ?p (value 11:60:59 am) cannot be converted to type TIME(0).
 
@@ -3009,64 +3009,64 @@ C1                         C2
 >>-- negative cases (expect errors)
 >>select cast('.-2' as int) from t022t8;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e2d32
 
 --- 0 row(s) selected.
 >>select cast('.+3' as int) from t022t8;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e2b33
 
 --- 0 row(s) selected.
 >>select cast('.4-' as numeric(4)) from t022t8;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e342d
 
 --- 0 row(s) selected.
 >>select cast('-. 3' as int) from t022t8;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2d2e2033
 
 --- 0 row(s) selected.
 >>select cast('-3 . ' as int) from t022t8;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2d33202e20
 
 --- 0 row(s) selected.
 >>
 >>select c1 from t022t8 where cast('.-2' as int) < 1000;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e2d32
 
 --- 0 row(s) selected.
 >>select c1 from t022t8 where cast('.+3' as int) < 1000;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e2b33
 
 --- 0 row(s) selected.
 >>select c1 from t022t8 where cast('.4-' as numeric(4)) < 1;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e342d
 
 --- 0 row(s) selected.
 >>select c1 from t022t8 where cast('-. 3' as int) < 1;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2d2e2033
 
 --- 0 row(s) selected.
 >>select c1 from t022t8 where cast('-3 .' as int) < 1;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2d33202e
 
 --- 0 row(s) selected.
 >>
 >>select cast ('123..' as real) from (values(1)) as T;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 3132332e2e
 
 --- 0 row(s) selected.
 >>select cast ('123..12' as real)from (values(1)) as T;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 3132332e2e3132
 
 --- 0 row(s) selected.
 >>
@@ -3699,14 +3699,14 @@ Hello
 >>-- illegal european format
 >>select cast (N'12.13.1987' as date) from t022u;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 12.13.1987
 
 --- 0 row(s) selected.
 >>
 >>-- illegal US format
 >>select cast (N'13/12/1987' as date) from t022u;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 13/12/1987
 
 --- 0 row(s) selected.
 >>
@@ -3721,7 +3721,7 @@ Hello
 >>-- Feb. 32th doesn't exist
 >>select cast(N'1997-02-32' as DATE) from t022u;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 1997-02-32
 
 --- 0 row(s) selected.
 >>
@@ -3935,7 +3935,7 @@ Hello
 >>-- negative test on cast VAR/NCAR to DEC 
 >>select cast(N'1009a' as  DEC) from t022u;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 3130303961
 
 --- 0 row(s) selected.
 >>
@@ -3973,17 +3973,17 @@ Hello
 >>-- negative test on cast VAR/NCAR to float/real/double 
 >>select cast(N'this is not a number.' as float) from t022u;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 74686973206973206e6f742061206e756d6265722e
 
 --- 0 row(s) selected.
 >>select cast(N'1023u' as real) from t022u;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 3130323375
 
 --- 0 row(s) selected.
 >>select cast(N'''\2' as double precision) from t022u;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted.  Source data 275c32
 
 --- 0 row(s) selected.
 >>?ifNT
@@ -5519,17 +5519,17 @@ A           B         C
 >>-- negative cases
 >>select cast('2016-01-29Z' as date) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 2016-01-29Z
 
 --- 0 row(s) selected.
 >>select cast('2016-01-29+05:00' as date) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 2016-01-29+05:00
 
 --- 0 row(s) selected.
 >>select cast('10:11:12-05:000' as time) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 10:11:12-05:000
 
 --- 0 row(s) selected.
 >>select date '2016-01-29Z' from t022t1;
@@ -5558,17 +5558,17 @@ A           B         C
 
 >>select cast ('23:11:61' as time) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 23:11:61-05:000
 
 --- 0 row(s) selected.
 >>select cast ('23:11:06' as timestamp) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 23:11:06
 
 --- 0 row(s) selected.
 >>select cast('2010-01-01' as time) from t022t1;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 2010-01-015:000
 
 --- 0 row(s) selected.
 >>select timestamp'2010-01-01 10' from t022t1;
@@ -7081,28 +7081,28 @@ Hello
 >>-- illegal european format
 >>select cast ('12.13.1987' as date) from t022t2;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 12.13.1987
 
 --- 0 row(s) selected.
 >>
 >>-- illegal US format
 >>select cast ('13/12/1987' as date) from t022t2;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 13/12/1987
 
 --- 0 row(s) selected.
 >>
 >>-- string overflow
 >>select cast (cast ('12.07.1961 03:04:55.123456' as timestamp) as char(18)) from t022t2;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 12.07.1961 03:04:55.123456
 
 --- 0 row(s) selected.
 >>
 >>-- Feb. 30th doesn't exist
 >>select cast('1997-30-02' as DATE) from t022t2;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 1997-30-02
 
 --- 0 row(s) selected.
 >>
@@ -7451,7 +7451,7 @@ A      B
 >>set param ?p '11/20/1997 15:15:08.123456 am';
 >>insert into t022t8 (c1) values ( ?p );
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 11/20/1997 15:15:08.123456 am
 
 *** ERROR[15015] PARAM ?p (value 11/20/1997 15:15:08.123456 am) cannot be converted to type TIMESTAMP(6).
 
@@ -7461,9 +7461,9 @@ A      B
 >>set param ?p '2100-01-01:ab:00:47.250000';
 >>insert into t022t8 (c1) values ( ?p );
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 61623a30303a34372e323530303030
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 2100-01-01:ab:00:47.250000
 
 *** ERROR[15015] PARAM ?p (value 2100-01-01:ab:00:47.250000) cannot be converted to type TIMESTAMP(6).
 
@@ -7473,7 +7473,7 @@ A      B
 >>set param ?p '1998-03-12 03:15:08.123456 pm';
 >>insert into t022t8 (c1) values ( ?p );
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 1998-03-12 03:15:08.123456 pm
 
 *** ERROR[15015] PARAM ?p (value 1998-03-12 03:15:08.123456 pm) cannot be converted to type TIMESTAMP(6).
 
@@ -7483,7 +7483,7 @@ A      B
 >>set param ?p '1996-05-23 16:15:08.123 am';
 >>insert into t022t8 (c1) values ( ?p );
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 1996-05-23 16:15:08.123 am
 
 *** ERROR[15015] PARAM ?p (value 1996-05-23 16:15:08.123 am) cannot be converted to type TIMESTAMP(6).
 
@@ -7556,9 +7556,9 @@ C1
 >>set param ?p '00:a1:00';
 >>insert into t022t8 (c2) values ( ?p );
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 61313a3030
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 00:a1:00
 
 *** ERROR[15015] PARAM ?p (value 00:a1:00) cannot be converted to type TIME(0).
 
@@ -7568,7 +7568,7 @@ C1
 >>set param ?p '14:59:59 am';
 >>insert into t022t8 (c2) values ( ?p );
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 14:59:59 am
 
 *** ERROR[15015] PARAM ?p (value 14:59:59 am) cannot be converted to type TIME(0).
 
@@ -7578,7 +7578,7 @@ C1
 >>set param ?p '11:60:59 am';
 >>insert into t022t8 (c2) values ( ?p );
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 11:60:59 am
 
 *** ERROR[15015] PARAM ?p (value 11:60:59 am) cannot be converted to type TIME(0).
 
@@ -7742,64 +7742,64 @@ C1                         C2
 >>-- negative cases (expect errors)
 >>select cast('.-2' as int) from t022t8;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e2d32
 
 --- 0 row(s) selected.
 >>select cast('.+3' as int) from t022t8;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e2b33
 
 --- 0 row(s) selected.
 >>select cast('.4-' as numeric(4)) from t022t8;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e342d
 
 --- 0 row(s) selected.
 >>select cast('-. 3' as int) from t022t8;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2d2e2033
 
 --- 0 row(s) selected.
 >>select cast('-3 . ' as int) from t022t8;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2d33202e20
 
 --- 0 row(s) selected.
 >>
 >>select c1 from t022t8 where cast('.-2' as int) < 1000;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e2d32
 
 --- 0 row(s) selected.
 >>select c1 from t022t8 where cast('.+3' as int) < 1000;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e2b33
 
 --- 0 row(s) selected.
 >>select c1 from t022t8 where cast('.4-' as numeric(4)) < 1;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2e342d
 
 --- 0 row(s) selected.
 >>select c1 from t022t8 where cast('-. 3' as int) < 1;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2d2e2033
 
 --- 0 row(s) selected.
 >>select c1 from t022t8 where cast('-3 .' as int) < 1;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 2d33202e
 
 --- 0 row(s) selected.
 >>
 >>select cast ('123..' as real) from (values(1)) as T;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 3132332e2e
 
 --- 0 row(s) selected.
 >>select cast ('123..12' as real)from (values(1)) as T;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 3132332e2e3132
 
 --- 0 row(s) selected.
 >>
@@ -8432,14 +8432,14 @@ Hello
 >>-- illegal european format
 >>select cast (N'12.13.1987' as date) from t022u;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 12.13.1987
 
 --- 0 row(s) selected.
 >>
 >>-- illegal US format
 >>select cast (N'13/12/1987' as date) from t022u;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 13/12/1987
 
 --- 0 row(s) selected.
 >>
@@ -8454,7 +8454,7 @@ Hello
 >>-- Feb. 32th doesn't exist
 >>select cast(N'1997-02-32' as DATE) from t022u;
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 1997-02-32
 
 --- 0 row(s) selected.
 >>
@@ -8668,7 +8668,7 @@ Hello
 >>-- negative test on cast VAR/NCAR to DEC 
 >>select cast(N'1009a' as  DEC) from t022u;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 3130303961
 
 --- 0 row(s) selected.
 >>
@@ -8706,17 +8706,17 @@ Hello
 >>-- negative test on cast VAR/NCAR to float/real/double 
 >>select cast(N'this is not a number.' as float) from t022u;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 74686973206973206e6f742061206e756d6265722e
 
 --- 0 row(s) selected.
 >>select cast(N'1023u' as real) from t022u;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 3130323375
 
 --- 0 row(s) selected.
 >>select cast(N'''\2' as double precision) from t022u;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 275c32
 
 --- 0 row(s) selected.
 >>?ifNT

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5b8eba55/core/sql/regress/executor/EXPECTED050
----------------------------------------------------------------------
diff --git a/core/sql/regress/executor/EXPECTED050 b/core/sql/regress/executor/EXPECTED050
index 2b49aad..43b9571 100755
--- a/core/sql/regress/executor/EXPECTED050
+++ b/core/sql/regress/executor/EXPECTED050
@@ -135,7 +135,7 @@
 >>set param ?ee e;
 >>select * from T050a where d=?ee;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 65
 
 *** ERROR[15015] PARAM ?ee (value e) cannot be converted to type NUMERIC(18, 6).
 
@@ -235,7 +235,7 @@ PARAM ?c aa
 PARAM ?d foo
 >>execute x using 77;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 666f6f
 
 *** ERROR[15015] PARAM ?d (value foo) cannot be converted to type NUMERIC(18, 6).
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5b8eba55/core/sql/regress/hive/EXPECTED005
----------------------------------------------------------------------
diff --git a/core/sql/regress/hive/EXPECTED005 b/core/sql/regress/hive/EXPECTED005
index 0c505e3..e44c6d3 100644
--- a/core/sql/regress/hive/EXPECTED005
+++ b/core/sql/regress/hive/EXPECTED005
@@ -509,7 +509,7 @@ C1           C2           C3           C4
 --- SQL operation complete.
 >>load with NO OUTPUT into trafodion.seabase.tbl_dos_num select * from tbl_dos_num;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 33393437380d
 
 --- 0 row(s) loaded.
 >>cqd HIVE_SCAN_SPECIAL_MODE '1';
@@ -540,7 +540,7 @@ C1           C2
 --- SQL operation complete.
 >>select * from tbl_bad;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 61
 
 --- 0 row(s) selected.
 >>cqd HIVE_SCAN_SPECIAL_MODE '2';
@@ -581,17 +581,17 @@ C1           C2                    C3                         C4               C
 --- SQL operation complete.
 >>load with no output into trafodion.seabase.traf_tbl_bad select * from tbl_bad;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 61
 
 --- 0 row(s) loaded.
 >>insert into trafodion.seabase.traf_tbl_bad select * from tbl_bad;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 61
 
 --- 0 row(s) inserted.
 >>upsert into trafodion.seabase.traf_tbl_bad select * from tbl_bad;
 
-*** ERROR[8413] The string argument contains characters that cannot be converted.
+*** ERROR[8413] The string argument contains characters that cannot be converted. Source data 61
 
 --- 0 row(s) inserted.
 >>cqd HIVE_SCAN_SPECIAL_MODE '2';

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/5b8eba55/core/sql/regress/seabase/EXPECTED030
----------------------------------------------------------------------
diff --git a/core/sql/regress/seabase/EXPECTED030 b/core/sql/regress/seabase/EXPECTED030
index ebdc227..2376f64 100644
--- a/core/sql/regress/seabase/EXPECTED030
+++ b/core/sql/regress/seabase/EXPECTED030
@@ -549,7 +549,7 @@ March 01, 2016, 10:11:12
 
 >>select to_date('0103.2016', 'DD.MM.YYYY') from (values(1)) x(a);
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data 0103.2016
 
 --- 0 row(s) selected.
 >>select to_char('2016-03-01', 'YYYY-MM-DD') from (values(1)) x(a);
@@ -603,14 +603,14 @@ March 01, 2016, 10:11:12
 >>-- ms4 error cases
 >>select to_date(123456789, '99:99:99:99') from (values(1)) x(a);
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data ?
 
 *** ERROR[8001] An internal executor error occurred.
 
 --- 0 row(s) selected.
 >>select to_date(-12345678, '99:99:99:99') from (values(1)) x(a);
 
-*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
+*** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted. Source data ?
 
 *** ERROR[8001] An internal executor error occurred.
 


Mime
View raw message