void ExecutingPietLibraries::random(std::vector<PietTree> & pt){ if(pt.size() == 0 )return; if(pt[0].isLeaf()) return; pt = pt[0].Nodes(); if(pt.size() < 1) return; int max = pt[0].Val(); for(int i:range(1)) pt.pop_back(); std::uniform_int_distribution<int> randomrange( 0, max ) ; pt.push_back(PietTree( abs(randomrange(rnd)))); return; }
void table_gen(long long nrows, Stringlist wlist,int numcols, int *column_types, double *column_mins, double *column_maxes) { int itemp; int i,j,ii, nwords; int year, month, day, hour, minute, second; int minyear, minmonth, minday; int maxyear, maxmonth, maxday; int leaps[] = LEAPS; int nonleaps[] = NONLEAPS; //printf("Number of rows to be generated: %ld\n",nrows); //exit(0); for (i=0; i<nrows; i++) { for (j=0; j<numcols; j++) { switch (column_types[j]) { case INTEGER: //printf("column_type[%d] = INTEGER\n",j+1); printf("%d",(int)randomrange(column_mins[j],column_maxes[j])); break;; case VARCHAR: //printf("column_type[%d] = VARCHAR\n",j+1); nwords = (int)randomrange(column_mins[j],column_maxes[j]); for (ii=0; ii<nwords ; ii++) { itemp = (int)randomrange(0,wlist.used_size-1); printf("%s",wlist.list[itemp]); if (ii != (nwords-1)) printf(" "); } break;; case TIMESTAMP: //printf("column_type[%d] = TIMESTAMP\n",j+1); minyear = getyear(column_mins[j]); maxyear = getyear(column_maxes[j]); minmonth = getmonth(column_mins[j]); maxmonth = getmonth(column_maxes[j]); minday = getday(column_mins[j]); maxday = getday(column_maxes[j]); year = (int)randomrange(minyear,maxyear); month = (int)randomrange(minmonth,maxmonth); day = (int)randomrange(minday,maxday); if (ISLEAP(year)) { day = MIN(leaps[month-1],day); } else { day = MIN(nonleaps[month-1],day); } hour = (int)randomrange(0,23); minute = (int)randomrange(0,59); second = (int)randomrange(0,59); printf("%.4d-%.2d-%.2d %.2d:%.2d:%.2d",year,month,day,hour,minute,second); break;; case NUMERIC: //printf("column_type[%d] = NUMERIC\n",j+1); printf("%.6f",(float)randomrange(column_mins[j],column_maxes[j])); break;; } if (j != (numcols-1)) printf("|"); } //End of numcolumns printf("\n"); } }