Revert to 54d389e329a860add1f609508c676761521a8ad0 due to erroneous fix.

This commit is contained in:
VilhoRaatikka 2014-11-03 08:57:02 +02:00
parent fb02e44e7e
commit b15ac9c019

View File

@ -1,4 +1,3 @@
#include <my_config.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@ -8,7 +7,7 @@
#include <mysql.h>
static char* server_options[] = {
"MariaDB Corporation MaxScale",
"SkySQL Gateway",
"--datadir=./",
"--language=./",
"--skip-innodb",
@ -25,108 +24,98 @@ static char* server_groups[] = {
NULL
};
/**
* @return 0 if succeed, 1 if failed
*/
int main(int argc, char** argv)
{
int fdin;
int fdout;
int fsz;
int i;
int bsz = 4;
int z=0;
unsigned int psize;
GWBUF** qbuff;
char *qin;
char *buffer;
char *tok;
bool failed;
if (argc != 3)
{
printf("Usage: canonizer <input file> <output file>\n");
return 1;
}
failed = mysql_library_init(num_elements, server_options, server_groups);
if (failed)
{
printf("Embedded server init failed.\n");
return 1;
}
fdin = open(argv[1],O_RDONLY);
fsz = lseek(fdin,0,SEEK_END);
lseek(fdin,0,SEEK_SET);
if (!(buffer = (char *)calloc(1, fsz+1)))
{
mysql_library_end();
printf("Error: Failed to allocate memory.");
return 1;
}
read(fdin,buffer,fsz);
qbuff = (GWBUF **)calloc(bsz, sizeof(GWBUF*));
tok = strtok(buffer,"\n");
i = 0;
while(tok)
{
if (i>=bsz)
{
GWBUF** tmp = (GWBUF **)calloc(bsz*2, sizeof(GWBUF*));
if (!tmp)
{
printf("Error: Failed to allocate memory.");
return 1;
}
for (z=0; z<bsz; z++)
{
tmp[z] = qbuff[z];
}
free(qbuff);
qbuff = tmp;
bsz *= 2;
}
if (strlen(tok) > 0)
{
qin = strdup(tok);
psize = strlen(qin);
qbuff[i] = gwbuf_alloc(psize + 6);
*(qbuff[i]->sbuf->data + 0) = (unsigned char)psize;
*(qbuff[i]->sbuf->data + 1) = (unsigned char)(psize>>8);
*(qbuff[i]->sbuf->data + 2) = (unsigned char)(psize>>16);
*(qbuff[i]->sbuf->data + 4) = 0x03;
memcpy(qbuff[i]->sbuf->data + 5,qin,psize);
*(qbuff[i]->sbuf->data + 5 + psize) = 0x00;
tok = strtok(NULL,"\n\0");
free(qin);
i++;
}
}
fdout = open(argv[2],O_TRUNC|O_CREAT|O_WRONLY,S_IRWXU|S_IXGRP|S_IXOTH);
for (i = 0;i<bsz;i++)
{
if (qbuff[i])
{
parse_query(qbuff[i]);
tok = skygw_get_canonical(qbuff[i]);
write(fdout,tok,strlen(tok));
write(fdout,"\n",1);
gwbuf_free(qbuff[i]);
}
}
free(qbuff);
free(buffer);
close(fdin);
close(fdout);
mysql_library_end();
return 0;
}
int fdin,fdout,i=0,fnamelen,fsz,lines = 0;
unsigned int psize;
GWBUF** qbuff;
char *qin, *outnm, *buffer, *tok;
if(argc != 3){
printf("Usage: canonizer <input file> <output file>\n");
return 1;
}
bool failed = mysql_library_init(num_elements, server_options, server_groups);
if(failed){
printf("Embedded server init failed.\n");
return 1;
}
fnamelen = strlen(argv[1]) + 16;
fdin = open(argv[1],O_RDONLY);
fsz = lseek(fdin,0,SEEK_END);
lseek(fdin,0,SEEK_SET);
if(!(buffer = malloc(sizeof(char)*fsz + 1))){
printf("Error: Failed to allocate memory.");
return 1;
}
read(fdin,buffer,fsz);
buffer[fsz] = '\0';
i = 0;
int bsz = 4,z=0;
qbuff = calloc(bsz,sizeof(GWBUF*));
tok = strtok(buffer,"\n");
while(tok){
if(i>=bsz){
GWBUF** tmp = calloc(bsz*2,sizeof(GWBUF*));
if(!tmp){
printf("Error: Failed to allocate memory.");
return 1;
}
for(z=0;z<bsz;z++){
tmp[z] = qbuff[z];
}
free(qbuff);
qbuff = tmp;
bsz *= 2;
}
if(strlen(tok) > 0){
qin = strdup(tok);
psize = strlen(qin);
qbuff[i] = gwbuf_alloc(psize + 6);
*(qbuff[i]->sbuf->data + 0) = (unsigned char)psize;
*(qbuff[i]->sbuf->data + 1) = (unsigned char)(psize>>8);
*(qbuff[i]->sbuf->data + 2) = (unsigned char)(psize>>16);
*(qbuff[i]->sbuf->data + 4) = 0x03;
memcpy(qbuff[i]->sbuf->data + 5,qin,psize);
*(qbuff[i]->sbuf->data + 5 + psize) = 0x00;
tok = strtok(NULL,"\n\0");
free(qin);
i++;
}
}
fdout = open(argv[2],O_TRUNC|O_CREAT|O_WRONLY,S_IRWXU|S_IXGRP|S_IXOTH);
for(i = 0;i<bsz;i++){
if(qbuff[i]){
parse_query(qbuff[i]);
tok = skygw_get_canonical(qbuff[i]);
write(fdout,tok,strlen(tok));
write(fdout,"\n",1);
gwbuf_free(qbuff[i]);
}
}
free(qbuff);
free(buffer);
close(fdin);
close(fdout);
return 0;
}