in src/odbc/rsodbc/rscatalog.cpp [2991:3119]
static void addTypeRow(char *szCatalogQuery, RS_TYPE_INFO *pTypeInfo)
{
int len;
len = strlen(szCatalogQuery);
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " '%s' AS TYPE_NAME, ", pTypeInfo->szTypeName);
len = strlen(szCatalogQuery);
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS DATA_TYPE, ", pTypeInfo->hType);
len = strlen(szCatalogQuery);
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS COLUMN_SIZE, ", pTypeInfo->iColumnSize);
len = strlen(szCatalogQuery);
if(pTypeInfo->szLiteralPrefix[0] != '\0') {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " '%s' AS LITERAL_PREFIX, ", pTypeInfo->szLiteralPrefix);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS LITERAL_PREFIX, ");
}
len = strlen(szCatalogQuery);
if(pTypeInfo->szLiteralSuffix[0] != '\0') {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " '%s' AS LITERAL_SUFFIX, ", pTypeInfo->szLiteralSuffix);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS LITERAL_SUFFIX, ");
}
len = strlen(szCatalogQuery);
if(pTypeInfo->szCreateParams[0] != '\0') {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " '%s' AS CREATE_PARAMS, ", pTypeInfo->szCreateParams);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS CREATE_PARAMS, ");
}
len = strlen(szCatalogQuery);
if(pTypeInfo->hNullable != SQL_NULL_DATA) {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS NULLABLE, ", pTypeInfo->hNullable);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS NULLABLE, ");
}
len = strlen(szCatalogQuery);
if(pTypeInfo->iCaseSensitive != SQL_NULL_DATA) {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS CASE_SENSITIVE, ", pTypeInfo->iCaseSensitive);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS CASE_SENSITIVE, ");
}
len = strlen(szCatalogQuery);
if(pTypeInfo->iSearchable != SQL_NULL_DATA) {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS SEARCHABLE, ", pTypeInfo->iSearchable);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS SEARCHABLE, ");
}
len = strlen(szCatalogQuery);
if(pTypeInfo->iUnsigned != SQL_NULL_DATA) {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS UNSIGNED_ATTRIBUTE, ", pTypeInfo->iUnsigned);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS UNSIGNED_ATTRIBUTE, ");
}
len = strlen(szCatalogQuery);
if(pTypeInfo->iFixedPrecScale != SQL_NULL_DATA) {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS FIXED_PREC_SCALE, ", pTypeInfo->iFixedPrecScale);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS FIXED_PREC_SCALE, ");
}
len = strlen(szCatalogQuery);
if(pTypeInfo->iAutoInc != SQL_NULL_DATA) {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS AUTO_UNIQUE, ", pTypeInfo->iAutoInc);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS AUTO_UNIQUE, ");
}
len = strlen(szCatalogQuery);
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " '%s' AS LOCAL_TYPE_NAME, ", pTypeInfo->szLocalTypeName);
len = strlen(szCatalogQuery);
if(pTypeInfo->hMinScale != SQL_NULL_DATA) {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS MINIMUM_SCALE, ", pTypeInfo->hMinScale);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS MINIMUM_SCALE, ");
}
len = strlen(szCatalogQuery);
if(pTypeInfo->hMaxScale != SQL_NULL_DATA) {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS MAXIMUM_SCALE, ", pTypeInfo->hMaxScale);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS MAXIMUM_SCALE, ");
}
len = strlen(szCatalogQuery);
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS SQL_DATA_TYPE, ", pTypeInfo->hSqlDataType);
len = strlen(szCatalogQuery);
if(pTypeInfo->hSqlDateTimeSub != SQL_NULL_DATA) {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS SQL_DATETIME_SUB, ", pTypeInfo->hSqlDateTimeSub);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS SQL_DATETIME_SUB, ");
}
len = strlen(szCatalogQuery);
if(pTypeInfo->iNumPrexRadix != SQL_NULL_DATA) {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS NUM_PREC_RADIX, ", pTypeInfo->iNumPrexRadix);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS NUM_PREC_RADIX, ");
}
len = strlen(szCatalogQuery);
if(pTypeInfo->iIntervalPrecision != SQL_NULL_DATA) {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS INTERVAL_PRECISION ", pTypeInfo->iIntervalPrecision);
}
else {
snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS INTERVAL_PRECISION ");
}
}