#include #include #include #include #include #include #include #include static char* server_options[] = { "MariaDB Corporation MaxScale", "--datadir=./", "--language=./", "--skip-innodb", "--default-storage-engine=myisam", NULL }; const int num_elements = (sizeof(server_options) / sizeof(char *)) - 1; static char* server_groups[] = { "embedded", "server", "server", NULL }; int main(int argc, char** argv) { unsigned int psize; GWBUF* qbuff; char *tok; char readbuff[4092]; FILE* infile; FILE* outfile; if(argc != 3){ printf("Usage: canonizer \n"); return 1; } if(mysql_library_init(num_elements, server_options, server_groups)){ printf("Embedded server init failed.\n"); return 1; } infile = fopen(argv[1],"rb"); outfile = fopen(argv[2],"wb"); if(infile == NULL || outfile == NULL){ printf("Opening files failed.\n"); return 1; } while(!feof(infile)) { fgets(readbuff,4092,infile); psize = strlen(readbuff); if(psize < 4092){ qbuff = gwbuf_alloc(psize + 7); *(qbuff->sbuf->data + 0) = (unsigned char)psize; *(qbuff->sbuf->data + 1) = (unsigned char)(psize>>8); *(qbuff->sbuf->data + 2) = (unsigned char)(psize>>16); *(qbuff->sbuf->data + 4) = 0x03; memcpy(qbuff->start + 5,readbuff,psize + 1); parse_query(qbuff); tok = skygw_get_canonical(qbuff); fprintf(outfile,"%s\n",tok); free(tok); gwbuf_free(qbuff); } } fclose(infile); fclose(outfile); mysql_library_end(); return 0; }