Revert back to vesion dcb8b68ada4f8e05ad124203b1ab401838fc5a34 due to erroneous fix in latest version of canonizer.c
This commit is contained in:
@ -24,108 +24,98 @@ static char* server_groups[] = {
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* @return 0 if succeed, 1 if failed
|
|
||||||
*/
|
|
||||||
int main(int argc, char** argv)
|
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)
|
int fdin,fdout,i=0,fnamelen,fsz,lines = 0;
|
||||||
{
|
unsigned int psize;
|
||||||
|
GWBUF** qbuff;
|
||||||
|
char *qin, *outnm, *buffer, *tok;
|
||||||
|
|
||||||
if (i>=bsz)
|
if(argc != 3){
|
||||||
{
|
printf("Usage: canonizer <input file> <output file>\n");
|
||||||
GWBUF** tmp = (GWBUF **)calloc(bsz*2, sizeof(GWBUF*));
|
return 1;
|
||||||
|
}
|
||||||
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])
|
bool failed = mysql_library_init(num_elements, server_options, server_groups);
|
||||||
{
|
|
||||||
parse_query(qbuff[i]);
|
if(failed){
|
||||||
tok = skygw_get_canonical(qbuff[i]);
|
printf("Embedded server init failed.\n");
|
||||||
write(fdout,tok,strlen(tok));
|
return 1;
|
||||||
write(fdout,"\n",1);
|
}
|
||||||
gwbuf_free(qbuff[i]);
|
|
||||||
}
|
fnamelen = strlen(argv[1]) + 16;
|
||||||
}
|
fdin = open(argv[1],O_RDONLY);
|
||||||
free(qbuff);
|
fsz = lseek(fdin,0,SEEK_END);
|
||||||
free(buffer);
|
lseek(fdin,0,SEEK_SET);
|
||||||
close(fdin);
|
|
||||||
close(fdout);
|
if(!(buffer = malloc(sizeof(char)*fsz + 1))){
|
||||||
mysql_library_end();
|
printf("Error: Failed to allocate memory.");
|
||||||
|
return 1;
|
||||||
return 0;
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user