enh(query): add retension for the results of show databases;
This commit is contained in:
		
							parent
							
								
									0c94c65acb
								
							
						
					
					
						commit
						978f73393d
					
				| 
						 | 
				
			
			@ -87,11 +87,12 @@ static const SSysDbTableSchema userDBSchema[] = {
 | 
			
		|||
    {.name = "wal", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT},
 | 
			
		||||
    {.name = "fsync", .bytes = 4, .type = TSDB_DATA_TYPE_INT},
 | 
			
		||||
    {.name = "comp", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT},
 | 
			
		||||
    {.name = "cachelast", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT},
 | 
			
		||||
    {.name = "cache_model", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
 | 
			
		||||
    {.name = "precision", .bytes = 2 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
 | 
			
		||||
    {.name = "single_stable", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT},
 | 
			
		||||
    {.name = "single_stable_model", .bytes = 1, .type = TSDB_DATA_TYPE_BOOL},
 | 
			
		||||
    {.name = "status", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
 | 
			
		||||
    {.name = "schemaless", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT},
 | 
			
		||||
    {.name = "schemaless", .bytes = 1, .type = TSDB_DATA_TYPE_BOOL},
 | 
			
		||||
    {.name = "retension", .bytes = 60 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
 | 
			
		||||
 | 
			
		||||
    // {.name = "update", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT},  // disable update
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1428,6 +1428,52 @@ const char *mndGetDbStr(const char *src) {
 | 
			
		|||
  return pos;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int64_t getValOfDiffPrecision(int8_t unit, int64_t val) {
 | 
			
		||||
  int64_t v = 0;
 | 
			
		||||
  switch(unit) {
 | 
			
		||||
    case 's': v = val / 1000; break;
 | 
			
		||||
    case 'm': v = val / tsTickPerMin[TSDB_TIME_PRECISION_MILLI]; break;
 | 
			
		||||
    case 'h': v = val / (tsTickPerMin[TSDB_TIME_PRECISION_MILLI] * 60); break;
 | 
			
		||||
    case 'd': v = val / (tsTickPerMin[TSDB_TIME_PRECISION_MILLI] * 24 * 60); break;
 | 
			
		||||
    case 'w': v = val / (tsTickPerMin[TSDB_TIME_PRECISION_MILLI] * 24 * 60 * 7); break;
 | 
			
		||||
    default:
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
char* buildRetension(SArray* pRetension) {
 | 
			
		||||
  size_t size = taosArrayGetSize(pRetension);
 | 
			
		||||
  if (size == 0) {
 | 
			
		||||
    return NULL;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  char* p1 = taosMemoryCalloc(1, 100);
 | 
			
		||||
  SRetention* p = taosArrayGet(pRetension, 0);
 | 
			
		||||
 | 
			
		||||
  int32_t len = 2;
 | 
			
		||||
 | 
			
		||||
  int64_t v1 = getValOfDiffPrecision(p->freqUnit, p->freq);
 | 
			
		||||
  int64_t v2 = getValOfDiffPrecision(p->keepUnit, p->keep);
 | 
			
		||||
  len += sprintf(p1 + len, "%"PRId64"%c:%"PRId64"%c,", v1, p->freqUnit, v2, p->keepUnit);
 | 
			
		||||
 | 
			
		||||
  p = taosArrayGet(pRetension, 1);
 | 
			
		||||
 | 
			
		||||
  v1 = getValOfDiffPrecision(p->freqUnit, p->freq);
 | 
			
		||||
  v2 = getValOfDiffPrecision(p->keepUnit, p->keep);
 | 
			
		||||
  len += sprintf(p1 + len, "%"PRId64"%c:%"PRId64"%c,", v1, p->freqUnit, v2, p->keepUnit);
 | 
			
		||||
 | 
			
		||||
  p = taosArrayGet(pRetension, 2);
 | 
			
		||||
 | 
			
		||||
  v1 = getValOfDiffPrecision(p->freqUnit, p->freq);
 | 
			
		||||
  v2 = getValOfDiffPrecision(p->keepUnit, p->keep);
 | 
			
		||||
  len += sprintf(p1 + len, "%"PRId64"%c:%"PRId64"%c", v1, p->freqUnit, v2, p->keepUnit);
 | 
			
		||||
 | 
			
		||||
  varDataSetLen(p1, len);
 | 
			
		||||
  return p1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void dumpDbInfoData(SSDataBlock *pBlock, SDbObj *pDb, SShowObj *pShow, int32_t rows, int64_t numOfTables,
 | 
			
		||||
                           bool sysDb) {
 | 
			
		||||
  int32_t cols = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -1475,7 +1521,7 @@ static void dumpDbInfoData(SSDataBlock *pBlock, SDbObj *pDb, SShowObj *pShow, in
 | 
			
		|||
    pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
 | 
			
		||||
    colDataAppend(pColInfo, rows, (const char *)&pDb->cfg.replications, false);
 | 
			
		||||
 | 
			
		||||
    const char *src = pDb->cfg.strict ? "strict" : "nostrict";
 | 
			
		||||
    const char *src = pDb->cfg.strict ? "strict" : "no_strict";
 | 
			
		||||
    char        strict[24] = {0};
 | 
			
		||||
    STR_WITH_SIZE_TO_VARSTR(strict, src, strlen(src));
 | 
			
		||||
    pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
 | 
			
		||||
| 
						 | 
				
			
			@ -1523,7 +1569,16 @@ static void dumpDbInfoData(SSDataBlock *pBlock, SDbObj *pDb, SShowObj *pShow, in
 | 
			
		|||
    colDataAppend(pColInfo, rows, (const char *)&pDb->cfg.compression, false);
 | 
			
		||||
 | 
			
		||||
    pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
 | 
			
		||||
    colDataAppend(pColInfo, rows, (const char *)&pDb->cfg.cacheLastRow, false);
 | 
			
		||||
 | 
			
		||||
    STR_WITH_SIZE_TO_VARSTR(strict, src, strlen(src));
 | 
			
		||||
 | 
			
		||||
    char cacheModel[24] = {0};
 | 
			
		||||
    if (pDb->cfg.cacheLastRow == 0) {
 | 
			
		||||
      STR_TO_VARSTR(cacheModel, "no_cache");
 | 
			
		||||
    } else {
 | 
			
		||||
      //
 | 
			
		||||
    }
 | 
			
		||||
    colDataAppend(pColInfo, rows, cacheModel, false);
 | 
			
		||||
 | 
			
		||||
    char *prec = NULL;
 | 
			
		||||
    switch (pDb->cfg.precision) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1552,8 +1607,18 @@ static void dumpDbInfoData(SSDataBlock *pBlock, SDbObj *pDb, SShowObj *pShow, in
 | 
			
		|||
    pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
 | 
			
		||||
    colDataAppend(pColInfo, rows, (const char *)statusB, false);
 | 
			
		||||
 | 
			
		||||
    pColInfo = taosArrayGet(pBlock->pDataBlock, cols);
 | 
			
		||||
    pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
 | 
			
		||||
    colDataAppend(pColInfo, rows, (const char *)&pDb->cfg.schemaless, false);
 | 
			
		||||
 | 
			
		||||
    char* p = buildRetension(pDb->cfg.pRetensions);
 | 
			
		||||
 | 
			
		||||
    pColInfo = taosArrayGet(pBlock->pDataBlock, cols);
 | 
			
		||||
    if (p == NULL) {
 | 
			
		||||
      colDataAppendNULL(pColInfo, rows);
 | 
			
		||||
    } else {
 | 
			
		||||
      colDataAppend(pColInfo, rows, (const char *)p, false);
 | 
			
		||||
      taosMemoryFree(p);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,45 +1,45 @@
 | 
			
		|||
run tsim/user/pass_alter.sim
 | 
			
		||||
run tsim/user/basic1.sim
 | 
			
		||||
run tsim/user/privilege2.sim
 | 
			
		||||
run tsim/user/user_len.sim
 | 
			
		||||
run tsim/user/privilege1.sim
 | 
			
		||||
run tsim/user/pass_len.sim
 | 
			
		||||
run tsim/table/basic1.sim
 | 
			
		||||
run tsim/trans/lossdata1.sim
 | 
			
		||||
run tsim/trans/create_db.sim
 | 
			
		||||
run tsim/stable/alter_metrics.sim
 | 
			
		||||
run tsim/stable/tag_modify.sim
 | 
			
		||||
run tsim/stable/alter_comment.sim
 | 
			
		||||
run tsim/stable/column_drop.sim
 | 
			
		||||
run tsim/stable/column_modify.sim
 | 
			
		||||
run tsim/stable/tag_rename.sim
 | 
			
		||||
run tsim/stable/vnode3.sim
 | 
			
		||||
run tsim/stable/metrics.sim
 | 
			
		||||
run tsim/stable/alter_insert2.sim
 | 
			
		||||
run tsim/stable/show.sim
 | 
			
		||||
run tsim/stable/alter_import.sim
 | 
			
		||||
run tsim/stable/tag_add.sim
 | 
			
		||||
run tsim/stable/tag_drop.sim
 | 
			
		||||
run tsim/stable/column_add.sim
 | 
			
		||||
run tsim/stable/alter_count.sim
 | 
			
		||||
run tsim/stable/values.sim
 | 
			
		||||
run tsim/stable/dnode3.sim
 | 
			
		||||
run tsim/stable/alter_insert1.sim
 | 
			
		||||
run tsim/stable/refcount.sim
 | 
			
		||||
run tsim/stable/disk.sim
 | 
			
		||||
run tsim/db/basic1.sim
 | 
			
		||||
run tsim/db/basic3.sim
 | 
			
		||||
run tsim/db/basic7.sim
 | 
			
		||||
run tsim/db/basic6.sim
 | 
			
		||||
run tsim/db/create_all_options.sim
 | 
			
		||||
run tsim/db/basic2.sim
 | 
			
		||||
run tsim/db/error1.sim
 | 
			
		||||
run tsim/db/taosdlog.sim
 | 
			
		||||
run tsim/db/alter_option.sim
 | 
			
		||||
run tsim/mnode/basic1.sim
 | 
			
		||||
run tsim/mnode/basic3.sim
 | 
			
		||||
run tsim/mnode/basic2.sim
 | 
			
		||||
run tsim/parser/fourArithmetic-basic.sim
 | 
			
		||||
#run tsim/user/pass_alter.sim
 | 
			
		||||
#run tsim/user/basic1.sim
 | 
			
		||||
#run tsim/user/privilege2.sim
 | 
			
		||||
#run tsim/user/user_len.sim
 | 
			
		||||
#run tsim/user/privilege1.sim
 | 
			
		||||
##run tsim/user/pass_len.sim
 | 
			
		||||
##run tsim/table/basic1.sim
 | 
			
		||||
#run tsim/trans/lossdata1.sim
 | 
			
		||||
#run tsim/trans/create_db.sim
 | 
			
		||||
##run tsim/stable/alter_metrics.sim
 | 
			
		||||
##run tsim/stable/tag_modify.sim
 | 
			
		||||
##run tsim/stable/alter_comment.sim
 | 
			
		||||
##run tsim/stable/column_drop.sim
 | 
			
		||||
##run tsim/stable/column_modify.sim
 | 
			
		||||
##run tsim/stable/tag_rename.sim
 | 
			
		||||
##run tsim/stable/vnode3.sim
 | 
			
		||||
##run tsim/stable/metrics.sim
 | 
			
		||||
##run tsim/stable/alter_insert2.sim
 | 
			
		||||
##run tsim/stable/show.sim
 | 
			
		||||
##run tsim/stable/alter_import.sim
 | 
			
		||||
##run tsim/stable/tag_add.sim
 | 
			
		||||
##run tsim/stable/tag_drop.sim
 | 
			
		||||
##run tsim/stable/column_add.sim
 | 
			
		||||
##run tsim/stable/alter_count.sim
 | 
			
		||||
##run tsim/stable/values.sim
 | 
			
		||||
##run tsim/stable/dnode3.sim
 | 
			
		||||
##run tsim/stable/alter_insert1.sim
 | 
			
		||||
##run tsim/stable/refcount.sim
 | 
			
		||||
##run tsim/stable/disk.sim
 | 
			
		||||
#run tsim/db/basic1.sim
 | 
			
		||||
#run tsim/db/basic3.sim
 | 
			
		||||
##run tsim/db/basic7.sim
 | 
			
		||||
#run tsim/db/basic6.sim
 | 
			
		||||
#run tsim/db/create_all_options.sim
 | 
			
		||||
#run tsim/db/basic2.sim
 | 
			
		||||
#run tsim/db/error1.sim
 | 
			
		||||
#run tsim/db/taosdlog.sim
 | 
			
		||||
#run tsim/db/alter_option.sim
 | 
			
		||||
#run tsim/mnode/basic1.sim
 | 
			
		||||
#run tsim/mnode/basic3.sim
 | 
			
		||||
#run tsim/mnode/basic2.sim
 | 
			
		||||
#run tsim/parser/fourArithmetic-basic.sim
 | 
			
		||||
run tsim/parser/groupby-basic.sim
 | 
			
		||||
run tsim/snode/basic1.sim
 | 
			
		||||
run tsim/query/time_process.sim
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue