Skip to content

Commit b49c1b5

Browse files
committed
Publish with docs and perf results
1 parent b43646f commit b49c1b5

1 file changed

Lines changed: 40 additions & 17 deletions

File tree

test_sqlite_blaster.cpp

Lines changed: 40 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ bool file_exists(const char *filename) {
128128
return (stat(filename, &buffer) == 0);
129129
}
130130

131+
const char *empty_cols[] = {""};
132+
131133
int insert_db(int argc, char *argv[]) {
132134
if (!file_exists(argv[2]))
133135
cout << "File does not exist" << endl;
@@ -136,7 +138,7 @@ int insert_db(int argc, char *argv[]) {
136138
return SQLT_RES_ERR;
137139
int col_count = atoi(argv[4]);
138140
int pk_col_count = atoi(argv[5]);
139-
sqlite_index_blaster sqib(col_count, pk_col_count, (const char *[]) {""}, "", page_size, 320, argv[2]);
141+
sqlite_index_blaster sqib(col_count, pk_col_count, empty_cols, "", page_size, 320, argv[2]);
140142
char *parsed_csv[col_count];
141143
for (int i = 0; i < argc-6; i++) {
142144
read_csv(parsed_csv, argv[6 + i], col_count, false);
@@ -156,7 +158,7 @@ int read_db(int argc, char *argv[]) {
156158
return SQLT_RES_ERR;
157159
int col_count = atoi(argv[4]);
158160
int pk_col_count = atoi(argv[5]);
159-
sqlite_index_blaster sqib(col_count, pk_col_count, (const char *[]) {""}, "", page_size, 320, argv[2]);
161+
sqlite_index_blaster sqib(col_count, pk_col_count, empty_cols, "", page_size, 320, argv[2]);
160162
int rec_len = 10000;
161163
uint8_t *rec = (uint8_t *) malloc(rec_len);
162164
int val_len = 2000;
@@ -318,12 +320,15 @@ void check_value(const char *key, int key_len, const char *val, int val_len,
318320
}
319321
}
320322

323+
const char *census_col_names[] = {"cum_prop100k", "rank", "name", "year", "count", "prop100k", "pctwhite", "pctblack", "pctapi", "pctaian", "pct2prace", "pcthispanic"};
324+
const void *census_col_values[12];
325+
const uint8_t census_col_types[] = {SQLT_TYPE_REAL, SQLT_TYPE_INT32, SQLT_TYPE_TEXT, SQLT_TYPE_INT32, SQLT_TYPE_INT32, SQLT_TYPE_REAL,
326+
SQLT_TYPE_REAL, SQLT_TYPE_REAL, SQLT_TYPE_REAL, SQLT_TYPE_REAL, SQLT_TYPE_REAL, SQLT_TYPE_REAL};
327+
321328
bool test_census(int page_size, int cache_size, const char *filename) {
322329

323330
unlink(filename);
324-
sqlite_index_blaster *sqib = new sqlite_index_blaster(12, 3,
325-
(const char *[]) {"cum_prop100k", "rank", "name", "year", "count", "prop100k", "pctwhite", "pctblack", "pctapi", "pctaian", "pct2prace", "pcthispanic"},
326-
"surnames", page_size, cache_size, filename);
331+
sqlite_index_blaster *sqib = new sqlite_index_blaster(12, 3, census_col_names, "surnames", page_size, cache_size, filename);
327332
ifstream file("sample_data/census.txt");
328333
if (file.is_open()) {
329334
string line;
@@ -391,11 +396,19 @@ bool test_census(int page_size, int cache_size, const char *filename) {
391396
pcthispanic = 0;
392397
//cout << endl;
393398
uint8_t rec[line.length() + 500];
394-
int rec_len = sqib->make_new_rec(rec, 12,
395-
(const void *[]) {&cum_prop100k, &rank, name.c_str(), &year, &count, &prop100k,
396-
&pctwhite, &pctblack, &pctapi, &pctaian, &pct2prace, &pcthispanic},
397-
NULL, (uint8_t[]) {SQLT_TYPE_REAL, SQLT_TYPE_INT32, SQLT_TYPE_TEXT, SQLT_TYPE_INT32, SQLT_TYPE_INT32, SQLT_TYPE_REAL,
398-
SQLT_TYPE_REAL, SQLT_TYPE_REAL, SQLT_TYPE_REAL, SQLT_TYPE_REAL, SQLT_TYPE_REAL, SQLT_TYPE_REAL});
399+
census_col_values[0] = &cum_prop100k;
400+
census_col_values[1] = &rank;
401+
census_col_values[2] = (const void *) name.c_str();
402+
census_col_values[3] = &year;
403+
census_col_values[4] = &count;
404+
census_col_values[5] = &prop100k;
405+
census_col_values[6] = &pctwhite;
406+
census_col_values[7] = &pctblack;
407+
census_col_values[8] = &pctapi;
408+
census_col_values[9] = &pctaian;
409+
census_col_values[10] = &pct2prace;
410+
census_col_values[11] = &pcthispanic;
411+
int rec_len = sqib->make_new_rec(rec, 12, census_col_values, NULL, census_col_types);
399412
sqib->put(rec, -rec_len, NULL, 0);
400413
}
401414
file.close();
@@ -435,12 +448,15 @@ bool test_census() {
435448
return true;
436449
}
437450

451+
const char *baby_col_names[] = {"year", "state", "name", "total_babies", "primary_sex", "primary_sex_ratio", "per_100k_in_state"};
452+
const uint8_t baby_col_types[] = {SQLT_TYPE_INT32, SQLT_TYPE_TEXT, SQLT_TYPE_TEXT, SQLT_TYPE_INT32, SQLT_TYPE_TEXT, SQLT_TYPE_REAL, SQLT_TYPE_REAL};
453+
const void *baby_col_values[7];
454+
438455
bool test_babynames(int page_size, int cache_size, const char *filename) {
439456

440457
unlink(filename);
441-
sqlite_index_blaster *sqib = new sqlite_index_blaster(7, 3,
442-
(const char *[]) {"year", "state", "name", "total_babies", "primary_sex", "primary_sex_ratio", "per_100k_in_state"},
443-
"gendered_names", page_size, cache_size, filename);
458+
sqlite_index_blaster *sqib = new sqlite_index_blaster(7, 3, baby_col_names,
459+
"gendered_names", page_size, cache_size, filename);
444460
ifstream file("sample_data/babynames.txt");
445461
if (file.is_open()) {
446462
string line;
@@ -488,9 +504,14 @@ bool test_babynames(int page_size, int cache_size, const char *filename) {
488504
per_100k_in_state = 0;
489505
//cout << endl;
490506
uint8_t rec[line.length() + 100];
491-
int rec_len = sqib->make_new_rec(rec, 7,
492-
(const void *[]) {&year, state.c_str(), name.c_str(), &total_babies, primary_sex.c_str(), &primary_sex_ratio, &per_100k_in_state},
493-
NULL, (uint8_t[]) {SQLT_TYPE_INT32, SQLT_TYPE_TEXT, SQLT_TYPE_TEXT, SQLT_TYPE_INT32, SQLT_TYPE_TEXT, SQLT_TYPE_REAL, SQLT_TYPE_REAL});
507+
baby_col_values[0] = &year;
508+
baby_col_values[1] = (const void *) state.c_str();
509+
baby_col_values[2] = (const void *) name.c_str();
510+
baby_col_values[3] = &total_babies;
511+
baby_col_values[4] = (const void *) primary_sex.c_str();
512+
baby_col_values[5] = &primary_sex_ratio;
513+
baby_col_values[6] = &per_100k_in_state;
514+
int rec_len = sqib->make_new_rec(rec, 7, baby_col_values, NULL, baby_col_types);
494515
sqib->put(rec, -rec_len, NULL, 0);
495516
}
496517
file.close();
@@ -529,6 +550,8 @@ bool test_babynames() {
529550
return true;
530551
}
531552

553+
const char *const_kv[] = {"key", "value"};
554+
532555
bool test_random_data(int page_size, long start_count, int cache_size, char *filename) {
533556
unlink(filename);
534557
int U = page_size - 5;
@@ -541,7 +564,7 @@ bool test_random_data(int page_size, long start_count, int cache_size, char *fil
541564
int64_t data_sz = prepare_data(&data_buf, data_alloc_sz, KEY_LEN, VALUE_LEN, NUM_ENTRIES, 1, true);
542565
cout << "Testing page size: " << page_size << ", count: " << NUM_ENTRIES
543566
<< ", Data size: " << data_sz / 1000 << "kb" << ", Cache size: " << cache_size << "kb" << endl;
544-
sqlite_index_blaster sqib(2, 1, (const char *[]) {"key", "value"}, "imain", page_size, cache_size, filename);
567+
sqlite_index_blaster sqib(2, 1, const_kv, "imain", page_size, cache_size, filename);
545568
for (int64_t pos = 0; pos < data_sz; pos++) {
546569
int8_t vlen;
547570
uint32_t key_len = read_vint32(data_buf + pos, &vlen);

0 commit comments

Comments
 (0)