提交 ac94bb85 编写于 作者: B Benguang Zhao

fix: show create database output case sensitively

上级 3a2d5bb5
...@@ -238,7 +238,7 @@ static int32_t tscGetNthFieldResult(TAOS_ROW row, TAOS_FIELD* fields, int *lengt ...@@ -238,7 +238,7 @@ static int32_t tscGetNthFieldResult(TAOS_ROW row, TAOS_FIELD* fields, int *lengt
sprintf(result, "%d", *((int32_t *)val)); sprintf(result, "%d", *((int32_t *)val));
break; break;
case TSDB_DATA_TYPE_BIGINT: case TSDB_DATA_TYPE_BIGINT:
sprintf(result, "%"PRId64, *((int64_t *)val)); sprintf(result, "%" PRId64, *((int64_t *)val));
break; break;
case TSDB_DATA_TYPE_UTINYINT: case TSDB_DATA_TYPE_UTINYINT:
sprintf(result, "%u", *((uint8_t *)val)); sprintf(result, "%u", *((uint8_t *)val));
...@@ -266,7 +266,7 @@ static int32_t tscGetNthFieldResult(TAOS_ROW row, TAOS_FIELD* fields, int *lengt ...@@ -266,7 +266,7 @@ static int32_t tscGetNthFieldResult(TAOS_ROW row, TAOS_FIELD* fields, int *lengt
case TSDB_DATA_TYPE_TIMESTAMP: case TSDB_DATA_TYPE_TIMESTAMP:
///formatTimestamp(buf, *(int64_t*)val, TSDB_TIME_PRECISION_MICRO); ///formatTimestamp(buf, *(int64_t*)val, TSDB_TIME_PRECISION_MICRO);
//memcpy(result, val, strlen(buf)); //memcpy(result, val, strlen(buf));
sprintf(result, "%"PRId64, *((int64_t *)val)); sprintf(result, "%" PRId64, *((int64_t *)val));
break; break;
default: default:
break; break;
...@@ -367,7 +367,7 @@ static int32_t tscGetTableTagValue(SCreateBuilder *builder, char *result) { ...@@ -367,7 +367,7 @@ static int32_t tscGetTableTagValue(SCreateBuilder *builder, char *result) {
return TSDB_CODE_TSC_INVALID_TABLE_NAME; return TSDB_CODE_TSC_INVALID_TABLE_NAME;
} }
int32_t* lengths = taos_fetch_lengths(pSql); int32_t *lengths = taos_fetch_lengths(pSql);
int num_fields = taos_num_fields(pSql); int num_fields = taos_num_fields(pSql);
TAOS_FIELD *fields = taos_fetch_fields(pSql); TAOS_FIELD *fields = taos_fetch_fields(pSql);
...@@ -383,9 +383,9 @@ static int32_t tscGetTableTagValue(SCreateBuilder *builder, char *result) { ...@@ -383,9 +383,9 @@ static int32_t tscGetTableTagValue(SCreateBuilder *builder, char *result) {
if (i == 0) { if (i == 0) {
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s", "("); snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s", "(");
} }
if ((fields[i].type == TSDB_DATA_TYPE_NCHAR if ((fields[i].type == TSDB_DATA_TYPE_NCHAR || fields[i].type == TSDB_DATA_TYPE_BINARY ||
|| fields[i].type == TSDB_DATA_TYPE_BINARY fields[i].type == TSDB_DATA_TYPE_TIMESTAMP) &&
|| fields[i].type == TSDB_DATA_TYPE_TIMESTAMP) && 0 == ret) { 0 == ret) {
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "\"%s\",", buf); snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "\"%s\",", buf);
} else if (fields[i].type == TSDB_DATA_TYPE_JSON) { } else if (fields[i].type == TSDB_DATA_TYPE_JSON) {
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "'%s,", buf); snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "'%s,", buf);
...@@ -410,7 +410,6 @@ static int32_t tscGetTableTagValue(SCreateBuilder *builder, char *result) { ...@@ -410,7 +410,6 @@ static int32_t tscGetTableTagValue(SCreateBuilder *builder, char *result) {
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;
} }
// build 'show create table/database' result fields // build 'show create table/database' result fields
static int32_t tscSCreateBuildResultFields(SSqlObj *pSql, BuildType type, const char *ddl) { static int32_t tscSCreateBuildResultFields(SSqlObj *pSql, BuildType type, const char *ddl) {
int32_t rowLen = 0; int32_t rowLen = 0;
...@@ -453,6 +452,7 @@ static int32_t tscSCreateBuildResultFields(SSqlObj *pSql, BuildType type, const ...@@ -453,6 +452,7 @@ static int32_t tscSCreateBuildResultFields(SSqlObj *pSql, BuildType type, const
return rowLen; return rowLen;
} }
static int32_t tscSCreateSetValueToResObj(SSqlObj *pSql, int32_t rowLen, const char *tableName, const char *ddl) { static int32_t tscSCreateSetValueToResObj(SSqlObj *pSql, int32_t rowLen, const char *tableName, const char *ddl) {
SSqlRes *pRes = &pSql->res; SSqlRes *pRes = &pSql->res;
...@@ -473,6 +473,7 @@ static int32_t tscSCreateSetValueToResObj(SSqlObj *pSql, int32_t rowLen, const c ...@@ -473,6 +473,7 @@ static int32_t tscSCreateSetValueToResObj(SSqlObj *pSql, int32_t rowLen, const c
STR_WITH_MAXSIZE_TO_VARSTR(dst, ddl, pField->bytes); STR_WITH_MAXSIZE_TO_VARSTR(dst, ddl, pField->bytes);
return 0; return 0;
} }
static int32_t tscSCreateBuildResult(SSqlObj *pSql, BuildType type, const char *str, const char *result) { static int32_t tscSCreateBuildResult(SSqlObj *pSql, BuildType type, const char *str, const char *result) {
SQueryInfo* pQueryInfo = tscGetQueryInfo(&pSql->cmd); SQueryInfo* pQueryInfo = tscGetQueryInfo(&pSql->cmd);
int32_t rowLen = tscSCreateBuildResultFields(pSql, type, result); int32_t rowLen = tscSCreateBuildResultFields(pSql, type, result);
...@@ -480,6 +481,7 @@ static int32_t tscSCreateBuildResult(SSqlObj *pSql, BuildType type, const char * ...@@ -480,6 +481,7 @@ static int32_t tscSCreateBuildResult(SSqlObj *pSql, BuildType type, const char *
tscFieldInfoUpdateOffset(pQueryInfo); tscFieldInfoUpdateOffset(pQueryInfo);
return tscSCreateSetValueToResObj(pSql, rowLen, str, result); return tscSCreateSetValueToResObj(pSql, rowLen, str, result);
} }
int32_t tscRebuildCreateTableStatement(void *param,char *result) { int32_t tscRebuildCreateTableStatement(void *param,char *result) {
SCreateBuilder *builder = (SCreateBuilder *)param; SCreateBuilder *builder = (SCreateBuilder *)param;
int32_t code = TSDB_CODE_SUCCESS; int32_t code = TSDB_CODE_SUCCESS;
...@@ -533,8 +535,8 @@ static int32_t tscGetDBInfo(SCreateBuilder *builder, char *result) { ...@@ -533,8 +535,8 @@ static int32_t tscGetDBInfo(SCreateBuilder *builder, char *result) {
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
int32_t* lengths = taos_fetch_lengths(pSql); int32_t* lengths = taos_fetch_lengths(pSql);
int32_t ret = tscGetNthFieldResult(row, fields, lengths, 0, buf); int32_t ret = tscGetNthFieldResult(row, fields, lengths, 0, buf);
if (0 == ret && STR_NOCASE_EQUAL(buf, strlen(buf), builder->buf, strlen(builder->buf))) { if (0 == ret && 0 == strcmp(buf, builder->buf)) {
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "CREATE DATABASE %s", buf); snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "CREATE DATABASE `%s`", buf);
for (int i = 1; i < num_fields; i++) { for (int i = 1; i < num_fields; i++) {
for (int j = 0; showColumns[j][0] != NULL; j++) { for (int j = 0; showColumns[j][0] != NULL; j++) {
if (STR_NOCASE_EQUAL(fields[i].name, strlen(fields[i].name), showColumns[j][0], strlen(showColumns[j][0]))) { if (STR_NOCASE_EQUAL(fields[i].name, strlen(fields[i].name), showColumns[j][0], strlen(showColumns[j][0]))) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册