From deb125db4b2a2c11a419b6e092551cfe623f2a22 Mon Sep 17 00:00:00 2001 From: TakshakRamteke Date: Sat, 25 Jul 2026 23:55:24 +0530 Subject: [PATCH] fix: #2 statement.stype isn't cleared on reruns --- internals/repl/repl.go | 2 ++ internals/vm/vm.go | 16 ++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/internals/repl/repl.go b/internals/repl/repl.go index 7f60529..4e2de24 100644 --- a/internals/repl/repl.go +++ b/internals/repl/repl.go @@ -44,6 +44,8 @@ func Run() { fmt.Println("Executed.") case ExecuteTableFull: fmt.Println("Error: Table is full") + case ExecuteFail: + //todo } } diff --git a/internals/vm/vm.go b/internals/vm/vm.go index 86f7162..584faa4 100644 --- a/internals/vm/vm.go +++ b/internals/vm/vm.go @@ -29,6 +29,7 @@ type statementType int const ( StatementSelect statementType = iota StatementInsert + StatementUnrecognized ) const ( @@ -52,6 +53,7 @@ type ExecuteResult int const ( ExecuteSuccess ExecuteResult = iota ExecuteTableFull + ExecuteFail ) type row struct { @@ -71,7 +73,8 @@ type Table struct { } func NewStatement() *Statement { - return &Statement{0, row{0, "", ""}} + statement := &Statement{} + return statement } func NewTable() *Table { @@ -149,12 +152,13 @@ func DoMetaCommands(inputBuffer *InputBuffer) MetaCommandResults { } func (statement *Statement) PrepareStatements(inputBuffer *InputBuffer) PrepareResults { + statement.stype = StatementUnrecognized if strings.HasPrefix(inputBuffer.Buffer, "insert") { argsAssigned, err := fmt.Sscanf(inputBuffer.Buffer, "insert %d %s %s", &statement.row.id, &statement.row.username, &statement.row.email) - // if err != nil { - // fmt.Println("error parsing insert statement") - // fmt.Println(err.Error()) - // } + if err != nil { + fmt.Println("error parsing insert statement") + fmt.Println(err.Error()) + } if err != nil || argsAssigned > 3 { return PrepareSyntaxError } @@ -169,7 +173,7 @@ func (statement *Statement) PrepareStatements(inputBuffer *InputBuffer) PrepareR } func (statement *Statement) ExecuteStatement(table *Table) ExecuteResult { - var result ExecuteResult + var result ExecuteResult = ExecuteFail switch statement.stype { case StatementInsert: result = statement.execInsert(table)