Github user kevinxu021 commented on a diff in the pull request:

    https://github.com/apache/incubator-trafodion/pull/243#discussion_r50368867
  
    --- Diff: core/conn/jdbc_type2/native/SrvrCommon.cpp ---
    @@ -1634,6 +1635,53 @@ short do_ExecSMD(
                             tableParam[0], inputParam[0], inputParam[1],
                             inputParam[2], inputParam[3]);
                         break;
    +   case SQL_API_SQLSTATISTICS:
    +               if ((!checkIfWildCard(catalogNm, catalogNmNoEsc) || 
!checkIfWildCard(schemaNm, schemaNmNoEsc)
    +                   || !checkIfWildCard(tableNm, tableNmNoEsc)) && 
!metadataId)
    +               {
    +                   executeException->exception_nr = 
odbc_SQLSvc_GetSQLCatalogs_ParamError_exn_;
    +                   executeException->u.ParamError.ParamDesc = 
SQLSVC_EXCEPTION_WILDCARD_NOT_SUPPORTED;
    +                   
FUNCTION_RETURN_NUMERIC(EXECUTE_EXCEPTION,("EXECUTE_EXCEPTION"));
    +               }
    +
    +               if (strcmp(catalogNm,"") == 0)
    +                   strcpy(tableName1,SEABASE_MD_CATALOG);
    +               else
    +                   strcpy(tableName1, catalogNm);
    +               tableParam[0] = tableName1;
    +               convertWildcard(metadataId, TRUE, schemaNm, expSchemaNm);
    +               convertWildcardNoEsc(metadataId, TRUE, schemaNm, 
schemaNmNoEsc);
    +               convertWildcard(metadataId, TRUE, tableNm, expTableNm);
    +               convertWildcardNoEsc(metadataId, TRUE, tableNm, 
tableNmNoEsc);
    +               if( inputParam[5] != NULL )
    +               {
    +                   sprintf(cunique, " and index.IS_UNIQUE=1");
    +               }
    +               inputParam[0] = schemaNmNoEsc;
    +               inputParam[1] = expSchemaNm;
    +               inputParam[2] = tableNmNoEsc;
    +               inputParam[3] = expTableNm;
    +               inputParam[4] = NULL;
    +               snprintf((char *)sqlString->dataValue._buffer, totalSize,
    +               "select "
    +               "obj.CATALOG_NAME TABLE_CAT, obj.SCHEMA_NAME TABLE_SCHEM, 
obj.OBJECT_NAME TABLE_NAME,"
    +               "cast((case when index.IS_UNIQUE=0 then 1 else 0 end) as 
smallint) NON_UNIQUE, "
    +               "cast(NULL as varchar(32)) INDEX_QUALIFIER, 
idxobj.OBJECT_NAME INDEX_NAME, "
    +               "cast(-2 as smallint) TYPE, cols.COLUMN_NUMBER 
ORDINAL_POSITION, "
    +               "substr(cols.COLUMN_NAME,0,CHAR_LENGTH(cols.COLUMN_NAME)) 
COLUMN_NAME, "
    +               "cast((case when keys.ORDERING=0 then 'A' else 'D' end) as 
varchar(4)) ASC_OR_DESC,"
    +               "cast(-2 as int) CARDINALITY, cast(-2 as int) PAGES, 
cast(NULL as varchar(10)) FILTER_CONDITION "
    --- End diff --
    
    For table name is null, API says table name is required.
    Parameters:
    catalog a catalog name; must match the catalog name as it is stored in this 
database; "" retrieves those without a catalog; null means that the catalog 
name should not be used to narrow the search
    schema a schema name; must match the schema name as it is stored in this 
database; "" retrieves those without a schema; null means that the schema name 
should not be used to narrow the search
    table a table name; must match the table name as it is stored in this 
database
    unique when true, return only indices for unique values; when false, return 
indices regardless of whether unique or not
    approximate when true, result is allowed to reflect approximate or out of 
data values; when false, results are requested to be accurate


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to