add taos_fetch_field_e api

This commit is contained in:
wangjiaming0909 2025-02-19 16:56:28 +08:00
parent 8ada049b0a
commit cd99b2c6d3
3 changed files with 16 additions and 0 deletions

View File

@ -271,6 +271,7 @@ DLL_EXPORT int taos_affected_rows(TAOS_RES *res);
DLL_EXPORT int64_t taos_affected_rows64(TAOS_RES *res);
DLL_EXPORT TAOS_FIELD *taos_fetch_fields(TAOS_RES *res);
DLL_EXPORT TAOS_FIELD_E *taos_fetch_fields_e(TAOS_RES *res);
DLL_EXPORT int taos_select_db(TAOS *taos, const char *db);
DLL_EXPORT int taos_print_row(char *str, TAOS_ROW row, TAOS_FIELD *fields, int num_fields);
DLL_EXPORT int taos_print_row_with_size(char *str, uint32_t size, TAOS_ROW row, TAOS_FIELD *fields, int num_fields);

View File

@ -599,6 +599,14 @@ TAOS_RES *taos_query_with_reqid(TAOS *taos, const char *sql, int64_t reqid) {
return taosQueryImplWithReqid(taos, sql, false, reqid);
}
TAOS_FIELD_E *taos_fetch_fields_e(TAOS_RES *res) {
if (taos_num_fields(res) == 0 || TD_RES_TMQ_META(res) || TD_RES_TMQ_BATCH_META(res)) {
return NULL;
}
SReqResultInfo* pResInfo = tscGetCurResInfo(res);
return pResInfo->fields;
}
TAOS_ROW taos_fetch_row(TAOS_RES *res) {
if (res == NULL) {
return NULL;

View File

@ -1384,6 +1384,13 @@ TEST_F(DecimalTest, api_taos_fetch_rows) {
taos_print_row(buf, row, fields, fieldNum);
cout << buf << endl;
}
auto* fields_e = taos_fetch_fields_e(res);
ASSERT_EQ(fields_e[0].type, TSDB_DATA_TYPE_DECIMAL64);
ASSERT_EQ(fields_e[1].type, TSDB_DATA_TYPE_DECIMAL);
ASSERT_EQ(fields_e[0].precision, 10);
ASSERT_EQ(fields_e[0].scale, 2);
ASSERT_EQ(fields_e[1].precision, 38);
ASSERT_EQ(fields_e[1].scale, 10);
taos_free_result(res);
res = taos_query(pTaos, sql);