Changeset 48
- Timestamp:
- 11/10/07 19:12:27 (1 year ago)
- Files:
-
- vowfsc/Makefile (modified) (2 diffs)
- vowfsc/db.c (modified) (34 diffs)
- vowfsc/db.h (modified) (3 diffs)
- vowfsc/dir.db (modified) (1 diff)
- vowfsc/file.db (modified) (1 diff)
- vowfsc/stream.db (modified) (1 diff)
- vowfsc/test.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
vowfsc/Makefile
r46 r48 1 current: db1 current: test 2 2 @echo made $@ 3 3 4 test: test. cdb.o xdelta3.o5 gcc test.c db.o xdelta3.o -lpq -o test4 test: test.o db.o xdelta3.o 5 gcc test.c xdelta3.o db.o -lpq -o test 6 6 7 db: db.o xdelta3.o 8 gcc xdelta3.o db.o -lpq -o db 9 10 xdelta: xdelta.o xdelta3.o 11 gcc xdelta.o xdelta3.o -o xdelta 7 test.o: test.c 8 gcc test.c -c 12 9 13 10 db.o: db.c db.h file.db dir.db stream.db … … 17 14 gcc xdelta3.c -c 18 15 19 xdelta.o: xdelta.c20 gcc xdelta.c -c21 22 16 clean: 23 17 rm *.o vowfsc/db.c
r45 r48 3 3 // For get_file and get_dir functions 4 4 struct{ 5 #define db( type, name ) int name; 6 #define db_string( name ) int name; 5 #define db_int( name ) int name; 6 #define db_long( name ) int name; 7 #define db_string( name ) int name; 7 8 #include "file.db" 8 9 } file_format; … … 10 11 11 12 struct{ 12 #define db( type, name ) int name; 13 #define db_string( name ) int name; 13 #define db_int( name ) int name; 14 #define db_long( name ) int name; 15 #define db_string( name ) int name; 14 16 #include "dir.db" 15 17 } dir_format; … … 17 19 18 20 struct{ 19 #define db( type, name ) int name; 20 #define db_string( name ) int name; 21 #define db_int( name ) int name; 22 #define db_long( name ) int name; 23 #define db_string( name ) int name; 21 24 #include "stream.db" 22 25 } stream_format; 23 26 int NUM_STREAM_FIELDS; 24 25 27 26 28 // For DB communications … … 102 104 } 103 105 104 char *new_str=malloc(str_len );106 char *new_str=malloc(str_len+1); 105 107 new_str[0]='/'; 106 108 int str_pos=1; … … 117 119 free(temp); 118 120 } 121 new_str[str_pos]='\0'; 119 122 return new_str; 120 123 } … … 133 136 134 137 // The result should be in the first row of the first column 135 int revision_id= *(int*)PQgetvalue(res,0,0);138 int revision_id=atoi(PQgetvalue(res,0,0)); 136 139 137 140 PQfreemem(res); … … 167 170 168 171 // The result should be in the first row of the first column 169 int file_id= *(int*)PQgetvalue(res,0,0);172 int file_id=atoi(PQgetvalue(res,0,0)); 170 173 171 174 PQfreemem(res); … … 196 199 197 200 // Fill file_format with column numbers 198 #define db(type, name) file_format.name = PQfnumber(res, #name ); 201 #define db_int(name) file_format.name = PQfnumber(res, #name ); 202 #define db_long(name) file_format.name = PQfnumber(res, #name ); 199 203 #define db_string(name) file_format.name = PQfnumber(res, #name ); 200 204 #include "file.db" … … 206 210 207 211 // Fill stat 208 #define db(type, name) stat->name = *(type*)PQgetvalue(res, 0, file_format.name ); 212 #define db_int(name) stat->name = atoi(PQgetvalue(res, 0, file_format.name )); 213 #define db_long(name) stat->name = atol(PQgetvalue(res, 0, file_format.name )); 209 214 #define db_string(name) stat->name = strdup(PQgetvalue(res, 0, file_format.name )); 210 215 #include "file.db" … … 238 243 239 244 // Fill file_format with column numbers 240 #define db(type, name) file_format.name = PQfnumber(res, #name ); 245 #define db_int(name) file_format.name = PQfnumber(res, #name ); 246 #define db_long(name) file_format.name = PQfnumber(res, #name ); 241 247 #define db_string(name) file_format.name = PQfnumber(res, #name ); 242 248 #include "file.db" … … 248 254 249 255 // Fill stat 250 #define db(type, name) stat->name = *(type*)PQgetvalue(res, 0, file_format.name ); 256 #define db_int(name) stat->name = atoi(PQgetvalue(res, 0, file_format.name )); 257 #define db_long(name) stat->name = atol(PQgetvalue(res, 0, file_format.name )); 251 258 #define db_string(name) stat->name = strdup(PQgetvalue(res, 0, file_format.name )); 252 259 #include "file.db" … … 343 350 344 351 // The result should be in the first row of the first column 345 int dir_id= *(int*)PQgetvalue(res,0,0);352 int dir_id=atoi(PQgetvalue(res,0,0)); 346 353 347 354 PQfreemem(res); … … 370 377 371 378 // Fill dir_format with column numbers 372 #define db(type, name) dir_format.name = PQfnumber(res, #name ); 379 #define db_int(name) dir_format.name = PQfnumber(res, #name ); 380 #define db_long(name) dir_format.name = PQfnumber(res, #name ); 373 381 #define db_string(name) dir_format.name = PQfnumber(res, #name ); 374 382 #include "dir.db" … … 380 388 381 389 // Fill stat 382 #define db(type, name) stat->name = *(type*)PQgetvalue(res, 0, dir_format.name ); 390 #define db_int(name) stat->name = atoi(PQgetvalue(res, 0, dir_format.name )); 391 #define db_long(name) stat->name = atol(PQgetvalue(res, 0, dir_format.name )); 383 392 #define db_string(name) stat->name = strdup(PQgetvalue(res, 0, dir_format.name )); 384 393 #include "dir.db" … … 410 419 411 420 // Fill dir_format with column numbers 412 #define db(type, name) dir_format.name = PQfnumber(res, #name ); 421 #define db_int(name) dir_format.name = PQfnumber(res, #name ); 422 #define db_long(name) dir_format.name = PQfnumber(res, #name ); 413 423 #define db_string(name) dir_format.name = PQfnumber(res, #name ); 414 424 #include "dir.db" … … 420 430 421 431 // Fill stat 422 #define db(type, name) stat->name = *(type*)PQgetvalue(res, 0, dir_format.name ); 432 #define db_int(name) stat->name = atoi(PQgetvalue(res, 0, dir_format.name )); 433 #define db_long(name) stat->name = atol(PQgetvalue(res, 0, dir_format.name )); 423 434 #define db_string(name) stat->name = strdup(PQgetvalue(res, 0, dir_format.name )); 424 435 #include "dir.db" … … 441 452 442 453 // The result should be in the first row of the first column 443 int revision_id= *(int*)PQgetvalue(res,0,0);454 int revision_id=atoi(PQgetvalue(res,0,0)); 444 455 445 456 PQfreemem(res); … … 490 501 491 502 // Fill stream_format with column numbers 492 #define db(type, name) stream_format.name = PQfnumber(res, #name ); 503 #define db_int(name) stream_format.name = PQfnumber(res, #name ); 504 #define db_long(name) stream_format.name = PQfnumber(res, #name ); 493 505 #define db_string(name) stream_format.name = PQfnumber(res, #name ); 494 506 #include "stream.db" … … 500 512 501 513 // Fill stat 502 #define db(type, name) stat->name = *(type*)PQgetvalue(res, 0, stream_format.name ); 514 #define db_int(name) stat->name = atoi(PQgetvalue(res, 0, stream_format.name )); 515 #define db_long(name) stat->name = atol(PQgetvalue(res, 0, stream_format.name )); 503 516 #define db_string(name) stat->name = strdup(PQgetvalue(res, 0, stream_format.name )); 504 517 #include "stream.db" … … 514 527 if( PQresultStatus(res) != PGRES_TUPLES_OK ) return NULL; 515 528 516 int stream_id= *(int*)PQgetvalue(res,0,0);529 int stream_id=atoi(PQgetvalue(res,0,0)); 517 530 518 531 PQfreemem(res); … … 534 547 535 548 if( PQresultStatus == PGRES_TUPLES_OK ){ 536 stream_id = *(int*)PQgetvalue(res,0,0);549 stream_id = atoi(PQgetvalue(res,0,0)); 537 550 PQfreemem(res); 538 551 … … 562 575 if( PQresultStatus(res) != PGRES_TUPLES_OK ) return 0; 563 576 564 int file_id= *(int*)PQgetvalue(res,0,0);577 int file_id=atoi(PQgetvalue(res,0,0)); 565 578 566 579 PQfreemem(res); … … 574 587 if( PQresultStatus(res) != PGRES_TUPLES_OK ) return 0; 575 588 576 int file_uid= *(int*)PQgetvalue(res,0,0);589 int file_uid=atoi(PQgetvalue(res,0,0)); 577 590 578 591 PQfreemem(res); … … 622 635 623 636 // Fill dir_format with column numbers 624 #define db(type, name) dir_format.name = PQfnumber(res, #name ); 637 #define db_int(name) dir_format.name = PQfnumber(res, #name ); 638 #define db_long(name) dir_format.name = PQfnumber(res, #name ); 625 639 #define db_string(name) dir_format.name = PQfnumber(res, #name ); 626 640 #include "dir.db" … … 631 645 int i; 632 646 for( i=0; i< *length; ++i ){ 633 #define db(type, name) listing[i].name = *(type*)PQgetvalue(res, i, dir_format.name ); 647 #define db_int(name) listing[i].name = atoi(PQgetvalue(res, i, dir_format.name )); 648 #define db_long(name) listing[i].name = atol(PQgetvalue(res, i, dir_format.name )); 634 649 #define db_string(name) listing[i].name = strdup(PQgetvalue(res, i, dir_format.name )); 635 650 #include "dir.db" … … 664 679 665 680 // Fill file_format with column numbers 666 #define db(type, name) file_format.name = PQfnumber(res, #name ); 681 #define db_int(name) file_format.name = PQfnumber(res, #name ); 682 #define db_long(name) file_format.name = PQfnumber(res, #name ); 667 683 #define db_string(name) file_format.name = PQfnumber(res, #name ); 668 684 #include "file.db" … … 673 689 int i; 674 690 for( i=0; i< *length; ++i ){ 675 #define db(type, name) listing[i].name = *(type*)PQgetvalue(res, i, file_format.name ); 691 #define db_int(name) listing[i].name = atoi(PQgetvalue(res, i, file_format.name )); 692 #define db_long(name) listing[i].name = atol(PQgetvalue(res, i, file_format.name )); 676 693 #define db_string(name) listing[i].name = strdup(PQgetvalue(res, i, file_format.name )); 677 694 #include "file.db" … … 691 708 if( PQresultStatus(res) != PGRES_TUPLES_OK ) return NULL; 692 709 693 int file_uid = PQgetvalue(res, 0,0);710 int file_uid = atoi(PQgetvalue(res, 0,0)); 694 711 695 712 PQfreemem(res); … … 913 930 914 931 // Fill stream_format with column numbers 915 #define db(type, name) stream_format.name = PQfnumber(res, #name ); 932 #define db_int(name) stream_format.name = PQfnumber(res, #name ); 933 #define db_long(name) stream_format.name = PQfnumber(res, #name ); 916 934 #define db_string(name) stream_format.name = PQfnumber(res, #name ); 917 935 #include "stream.db" … … 923 941 924 942 // Fill stat 925 #define db(type, name) stat->name = *(type*)PQgetvalue(res, 0, stream_format.name ); 943 #define db_int(name) stat->name = atoi(PQgetvalue(res, 0, stream_format.name )); 944 #define db_long(name) stat->name = atol(PQgetvalue(res, 0, stream_format.name )); 926 945 #define db_string(name) stat->name = strdup(PQgetvalue(res, 0, stream_format.name )); 927 946 #include "stream.db" … … 932 951 } 933 952 934 stream_t *db_get_ file_rev_stream( int file_id, int revision_id ){953 stream_t *db_get_stream_rev_stream( int file_id, int revision_id ){ 935 954 stream_t *stat=malloc(sizeof(stream_t)); 936 955 … … 945 964 if( PQresultStatus(res) != PGRES_TUPLES_OK ) return NULL; 946 965 947 int stream_id = PQgetvalue(res, 0,0);966 int stream_id = atoi(PQgetvalue(res, 0,0)); 948 967 949 968 PQfreemem(res); … … 964 983 965 984 // Fill stream_format with column numbers 966 #define db(type, name) stream_format.name = PQfnumber(res, #name ); 985 #define db_int(name) stream_format.name = PQfnumber(res, #name ); 986 #define db_long(name) stream_format.name = PQfnumber(res, #name ); 967 987 #define db_string(name) stream_format.name = PQfnumber(res, #name ); 968 988 #include "stream.db" … … 974 994 975 995 // Fill stat 976 #define db(type, name) stat->name = *(type*)PQgetvalue(res, 0, stream_format.name ); 996 #define db_int(name) stat->name = atoi(PQgetvalue(res, 0, stream_format.name )); 997 #define db_long(name) stat->name = atol(PQgetvalue(res, 0, stream_format.name )); 977 998 #define db_string(name) stat->name = strdup(PQgetvalue(res, 0, stream_format.name )); 978 999 #include "stream.db" vowfsc/db.h
r45 r48 13 13 typedef struct file file_t; 14 14 struct file{ 15 #define db( type, name) type name; 16 #define db_string( name ) char *name; 15 #define db_int( name) int name; 16 #define db_long( name) long name; 17 #define db_string( name ) char *name; 17 18 #include "file.db" 18 19 }; … … 20 21 typedef struct dir dir_t; 21 22 struct dir{ 22 #define db( type, name ) type name; 23 #define db_string( name ) char *name; 23 #define db_int( name) int name; 24 #define db_long( name) long name; 25 #define db_string( name ) char *name; 24 26 #include "dir.db" 25 27 }; … … 27 29 typedef struct stream stream_t; 28 30 struct stream{ 29 #define db( type, name ) type name; 30 #define db_string( name ) char *name; 31 #define db_int( name) int name; 32 #define db_long( name) long name; 33 #define db_string( name ) char *name; 31 34 #include "stream.db" 32 35 }; vowfsc/dir.db
r43 r48 1 db (int,directory_id)2 db (int,parent_id)3 db (int,revision_id)4 db (int,stream_id)1 db_int(directory_id) 2 db_int(parent_id) 3 db_int(revision_id) 4 db_int(stream_id) 5 5 6 db (long,start_time)7 db (long,end_time)6 db_long(start_time) 7 db_long(end_time) 8 8 9 9 db_string(directory_path) vowfsc/file.db
r43 r48 1 db(int,file_id) 2 db(int,revision_id) 3 db(int,file_length) 4 db(int,parent_file_id) 5 db(int,directory_id) 6 db(int,stream_id) 1 db_int(file_id) 2 db_int(revision_id) 3 db_int(file_length) 4 db_int(parent_file_id) 5 db_int(directory_id) 6 db_int(stream_id) 7 db_int(deleted_flag) 7 8 8 db(long,end_time) 9 10 db(bool,deleted_flag) 9 db_long(end_time) 11 10 12 11 db_string(file_name) vowfsc/stream.db
r35 r48 1 db (int,stream_id);1 db_int(stream_id); 2 2 3 3 db_string(stream_name); vowfsc/test.c
r47 r48 3 3 4 4 5 <<<<<<< .mine 6 int main () { 7 ======= 5 8 int main () 6 9 { 10 >>>>>>> .r47 7 11 int db_stat = db_init("localhost", 5432, "template1", "postgres", ""); 8 if (db_stat) 9 { 12 if (db_stat) { 10 13 db_destroy(); 11 14 return -1; 12 15 } 13 16 17 <<<<<<< .mine 18 printf("The dir id is: %i\n", db_get_dir_id("/foo/bar/")); 19 ======= 14 20 db_get_dir_id("/foo/bar/"); 21 >>>>>>> .r47 15 22 db_destroy(); 16 23 return 0;
