1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-07 02:42:48 +03:00

Add the schema6.test module for demonstrating schemas that generate identical

and different content.

FossilOrigin-Name: ac1da06a829051d393ccb8bb986e78f5bd35b060687688f6b3661913b13c9a5a
This commit is contained in:
drh
2017-07-30 19:50:42 +00:00
parent df94966c8b
commit ea2844f153
4 changed files with 185 additions and 11 deletions

View File

@@ -3882,28 +3882,39 @@ static int SQLITE_TCLAPI md5file_cmd(
const char **argv
){
FILE *in;
int ofst;
int amt;
MD5Context ctx;
void (*converter)(unsigned char*, char*);
unsigned char digest[16];
char zBuf[10240];
if( argc!=2 ){
if( argc!=2 && argc!=4 ){
Tcl_AppendResult(interp,"wrong # args: should be \"", argv[0],
" FILENAME\"", (char*)0);
" FILENAME [OFFSET AMT]\"", (char*)0);
return TCL_ERROR;
}
if( argc==4 ){
ofst = atoi(argv[2]);
amt = atoi(argv[3]);
}else{
ofst = 0;
amt = 2147483647;
}
in = fopen(argv[1],"rb");
if( in==0 ){
Tcl_AppendResult(interp,"unable to open file \"", argv[1],
"\" for reading", (char*)0);
return TCL_ERROR;
}
fseek(in, ofst, SEEK_SET);
MD5Init(&ctx);
for(;;){
while( amt>0 ){
int n;
n = (int)fread(zBuf, 1, sizeof(zBuf), in);
n = (int)fread(zBuf, 1, sizeof(zBuf)<=amt ? sizeof(zBuf) : amt, in);
if( n<=0 ) break;
MD5Update(&ctx, (unsigned char*)zBuf, (unsigned)n);
amt -= n;
}
fclose(in);
MD5Final(digest, &ctx);