4
4
#include <stdio.h>
5
5
#include <stdlib.h>
6
6
#include <string.h>
7
+ #include <stdint.h>
7
8
#include <unistd.h>
8
9
9
10
struct InputBuffer_t {
@@ -16,7 +17,6 @@ typedef struct InputBuffer_t InputBuffer;
16
17
enum ExecuteResult_t {
17
18
EXECUTE_SUCCESS ,
18
19
EXECUTE_DUPLICATE_KEY ,
19
- EXECUTE_TABLE_FULL
20
20
};
21
21
typedef enum ExecuteResult_t ExecuteResult ;
22
22
@@ -38,8 +38,8 @@ typedef enum PrepareResult_t PrepareResult;
38
38
enum StatementType_t { STATEMENT_INSERT , STATEMENT_SELECT };
39
39
typedef enum StatementType_t StatementType ;
40
40
41
- const uint32_t COLUMN_USERNAME_SIZE = 32 ;
42
- const uint32_t COLUMN_EMAIL_SIZE = 255 ;
41
+ #define COLUMN_USERNAME_SIZE 32
42
+ #define COLUMN_EMAIL_SIZE 255
43
43
struct Row_t {
44
44
uint32_t id ;
45
45
char username [COLUMN_USERNAME_SIZE + 1 ];
@@ -64,7 +64,7 @@ const uint32_t EMAIL_OFFSET = USERNAME_OFFSET + USERNAME_SIZE;
64
64
const uint32_t ROW_SIZE = ID_SIZE + USERNAME_SIZE + EMAIL_SIZE ;
65
65
66
66
const uint32_t PAGE_SIZE = 4096 ;
67
- const uint32_t TABLE_MAX_PAGES = 100 ;
67
+ #define TABLE_MAX_PAGES 100
68
68
69
69
struct Pager_t {
70
70
int file_descriptor ;
@@ -536,6 +536,11 @@ void read_input(InputBuffer* input_buffer) {
536
536
input_buffer -> buffer [bytes_read - 1 ] = 0 ;
537
537
}
538
538
539
+ void close_input_buffer (InputBuffer * input_buffer ) {
540
+ free (input_buffer -> buffer );
541
+ free (input_buffer );
542
+ }
543
+
539
544
void pager_flush (Pager * pager , uint32_t page_num ) {
540
545
if (pager -> pages [page_num ] == NULL ) {
541
546
printf ("Tried to flush null page\n" );
@@ -583,10 +588,12 @@ void db_close(Table* table) {
583
588
}
584
589
}
585
590
free (pager );
591
+ free (table );
586
592
}
587
593
588
594
MetaCommandResult do_meta_command (InputBuffer * input_buffer , Table * table ) {
589
595
if (strcmp (input_buffer -> buffer , ".exit" ) == 0 ) {
596
+ close_input_buffer (input_buffer );
590
597
db_close (table );
591
598
exit (EXIT_SUCCESS );
592
599
} else if (strcmp (input_buffer -> buffer , ".btree" ) == 0 ) {
@@ -904,9 +911,6 @@ int main(int argc, char* argv[]) {
904
911
case (EXECUTE_DUPLICATE_KEY ):
905
912
printf ("Error: Duplicate key.\n" );
906
913
break ;
907
- case (EXECUTE_TABLE_FULL ):
908
- printf ("Error: Table full.\n" );
909
- break ;
910
914
}
911
915
}
912
916
}
0 commit comments