Github user selvaganesang commented on a diff in the pull request:
https://github.com/apache/trafodion/pull/1502#discussion_r179559224
--- Diff: core/sql/executor/ExExeUtilGet.cpp ---
@@ -5795,40 +5833,51 @@ short ExExeUtilHiveMDaccessTcb::work()
str_cpy(infoCol->colName,
(hcd ? hcd->name_ : hpd->name_), 256, ' ');
- infoCol->fsDatatype =
- getFSTypeFromHiveColType(hcd ? hcd->type_ : hpd->type_);
-
- if (infoCol->fsDatatype < 0)
+ Lng32 fstype = -1;
+ Lng32 length = -1;
+ Lng32 precision = -1;
+ Lng32 scale = -1;
+ char sqlType[50];
+ char displayType[100];
+ char charset[50];
+ retcode =
+ getTypeAttrsFromHiveColType(hcd ? hcd->type_ : hpd->type_,
+ htd->getSDs()->isOrcFile(),
+ fstype, length, precision, scale,
+ sqlType, displayType, charset);
+
+ if (retcode < 0)
{
+ // add a warning and continue.
char strP[300];
- sprintf(strP, "Datatype %s is not supported.",
- (hcd ? hcd->type_ : hpd->type_));
- *diags << DgSqlCode(-CLI_GET_METADATA_INFO_ERROR)
+ sprintf(strP, "Datatype %s for column '%s' in table %s.%s.%s is
not supported. This table will be ignored.",
--- End diff --
In #1504 I am changing this type of populating error to use
ExRaiseSqlError. This needs to be changed to use ExRaiseSqlError because diags
could be null
---