/******************************************************************************/ /* File : pr_stats.cc */ /* Schema : bdeschema.sch */ /* GENCPP Version : Chgen V 12 - Sathya */ /******************************************************************************/ #include #ifdef WIN32 #include #endif #include "bdeschema.h" #include "SVschema.h" #include "TTschema.h" #include "TAschema.h" #include "VVschema.h" #include "TSschema.h" #include "FOschema.h" #include "GDschema.h" #include "HGschema.h" #include "HNschema.h" #include "HAschema.h" #include "HLschema.h" #include "HPschema.h" #include "HIschema.h" #include "CGschema.h" #include "GXschema.h" /******************************************************************************/ /* This routine will write-out some basic statistcis about the schema, and */ /* what is currently loaded. */ /******************************************************************************/ void pr_stats ( char *file_name, char *modestr ) { static char rcsid[] = "$Id: gen_pr_stats.c,v 1.2.4.1 1999/05/04 17:00:01 jkarner Exp $"; int i,total_rows,total_size,row_size; if (!hcg_initialized) { printf("Error: pr_stats() called when database is not yet initialized.\n"); exit(1); } if ((hcg_stats_fp=fopen(file_name,modestr)) == NULL) { printf("Error: pr_stats() cannot open %s using file mode %s\n", file_name,modestr); exit(1); } fprintf(hcg_stats_fp,"Schema Name : %s\n",SCHEMA_TEXT_FILE_NAME); fprintf(hcg_stats_fp,"GENCPP Version : %s (%s)\n",CHGEN_VERSION,CHGEN_RELEASE_DATE); fprintf(hcg_stats_fp,"Chgen Qualifiers : %s\n\n",CHGEN_QUALIFIERS); fprintf(hcg_stats_fp,"Views : (Num Views = %d) (Memory Overhead = %d bytes)\n\n",hcg_view_list.num_views,sizeof(hcg_view_list)); fprintf(hcg_stats_fp," Name Mode Table Version\n"); fprintf(hcg_stats_fp," --------------------------- ---- ----- -------\n"); for (hcg_view_idx = 0; hcg_view_idx < hcg_view_list.num_views; hcg_view_idx++) { fprintf(hcg_stats_fp,"\n %-30s %-5c ", hcg_view_list.view_list[hcg_view_idx].view_name, hcg_view_list.view_list[hcg_view_idx].mode); for (hcg_tbl_idx = 0; hcg_tbl_idx < HCG_NUM_TABLES; hcg_tbl_idx++) if (hcg_view_list.view_list[hcg_view_idx].version_list[hcg_tbl_idx] != '\0') fprintf(hcg_stats_fp,"%-6s %-8d\n\t\t\t\t\t", hcg_table_seq_list[hcg_tbl_idx].ttabbrev, hcg_view_list.view_list[hcg_view_idx].version_list[hcg_tbl_idx]); } fprintf(hcg_stats_fp,"\n\n"); total_size = total_rows = 0; fprintf(hcg_stats_fp,"Tables : (Num Tables = %d) (Memory Overhead = %d bytes)\n\n",HCG_NUM_TABLES,sizeof(hcg_table_seq_list)+sizeof(hcg_ts_list)); fprintf(hcg_stats_fp," Table Size Version Rows MaxKey\n"); fprintf(hcg_stats_fp," ----- ------ ------- ---- ------\n"); for (hcg_tbl_idx = 0; hcg_tbl_idx < HCG_NUM_TABLES; hcg_tbl_idx++) { fprintf(hcg_stats_fp,"\n %-5s ",hcg_table_seq_list[hcg_tbl_idx].ttabbrev); switch (encoding(hcg_table_seq_list[hcg_tbl_idx].ttabbrev)) { case 0 : /* encoding of SV */ row_size = sizeof(SV); break; case 1 : /* encoding of TT */ row_size = sizeof(TT); break; case 2 : /* encoding of TA */ row_size = sizeof(TA); break; case 3 : /* encoding of VV */ row_size = sizeof(VV); break; case 4 : /* encoding of TS */ row_size = sizeof(TS); break; case 5 : /* encoding of FO */ row_size = sizeof(FO); break; case 6 : /* encoding of GD */ row_size = sizeof(GD); break; case 7 : /* encoding of HG */ row_size = sizeof(HG); break; case 8 : /* encoding of HN */ row_size = sizeof(HN); break; case 9 : /* encoding of HA */ row_size = sizeof(HA); break; case 10 : /* encoding of HL */ row_size = sizeof(HL); break; case 11 : /* encoding of HP */ row_size = sizeof(HP); break; case 12 : /* encoding of HI */ row_size = sizeof(HI); break; case 13 : /* encoding of CG */ row_size = sizeof(CG); break; case 14 : /* encoding of GX */ row_size = sizeof(GX); break; } fprintf(hcg_stats_fp," %-7d ",row_size); for (i = 1; i < 100; i++) if (hcg_ts_list[hcg_tbl_idx].ts_list[i].rcount > 0) { fprintf(hcg_stats_fp," %-8d %-5d %-5d\n\t\t ",i,hcg_ts_list[hcg_tbl_idx].ts_list[i].rcount,hcg_ts_list[hcg_tbl_idx].ts_list[i].maxrow); total_rows += hcg_ts_list[hcg_tbl_idx].ts_list[i].rcount; total_size += row_size*hcg_ts_list[hcg_tbl_idx].ts_list[i].rcount; } } fprintf(hcg_stats_fp,"\n\n"); fprintf(hcg_stats_fp,"Total Row Count : %d\n",total_rows); fprintf(hcg_stats_fp,"Total Row Storage : %d bytes\n",total_size); fclose(hcg_stats_fp); }