44#include <stdio.h>
55#include <stdlib.h>
66#include <string.h>
7+ #include <stdint.h>
78#include <unistd.h>
89
910struct InputBuffer_t {
@@ -16,7 +17,6 @@ typedef struct InputBuffer_t InputBuffer;
1617enum ExecuteResult_t {
1718 EXECUTE_SUCCESS ,
1819 EXECUTE_DUPLICATE_KEY ,
19- EXECUTE_TABLE_FULL
2020};
2121typedef enum ExecuteResult_t ExecuteResult ;
2222
@@ -38,8 +38,8 @@ typedef enum PrepareResult_t PrepareResult;
3838enum StatementType_t { STATEMENT_INSERT , STATEMENT_SELECT };
3939typedef enum StatementType_t StatementType ;
4040
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
4343struct Row_t {
4444 uint32_t id ;
4545 char username [COLUMN_USERNAME_SIZE + 1 ];
@@ -64,7 +64,7 @@ const uint32_t EMAIL_OFFSET = USERNAME_OFFSET + USERNAME_SIZE;
6464const uint32_t ROW_SIZE = ID_SIZE + USERNAME_SIZE + EMAIL_SIZE ;
6565
6666const uint32_t PAGE_SIZE = 4096 ;
67- const uint32_t TABLE_MAX_PAGES = 100 ;
67+ #define TABLE_MAX_PAGES 100
6868
6969struct Pager_t {
7070 int file_descriptor ;
@@ -536,6 +536,11 @@ void read_input(InputBuffer* input_buffer) {
536536 input_buffer -> buffer [bytes_read - 1 ] = 0 ;
537537}
538538
539+ void close_input_buffer (InputBuffer * input_buffer ) {
540+ free (input_buffer -> buffer );
541+ free (input_buffer );
542+ }
543+
539544void pager_flush (Pager * pager , uint32_t page_num ) {
540545 if (pager -> pages [page_num ] == NULL ) {
541546 printf ("Tried to flush null page\n" );
@@ -583,10 +588,12 @@ void db_close(Table* table) {
583588 }
584589 }
585590 free (pager );
591+ free (table );
586592}
587593
588594MetaCommandResult do_meta_command (InputBuffer * input_buffer , Table * table ) {
589595 if (strcmp (input_buffer -> buffer , ".exit" ) == 0 ) {
596+ close_input_buffer (input_buffer );
590597 db_close (table );
591598 exit (EXIT_SUCCESS );
592599 } else if (strcmp (input_buffer -> buffer , ".btree" ) == 0 ) {
@@ -904,9 +911,6 @@ int main(int argc, char* argv[]) {
904911 case (EXECUTE_DUPLICATE_KEY ):
905912 printf ("Error: Duplicate key.\n" );
906913 break ;
907- case (EXECUTE_TABLE_FULL ):
908- printf ("Error: Table full.\n" );
909- break ;
910914 }
911915 }
912916}
0 commit comments