Compare commits

...
3 Commits
3 changed files with 18 additions and 6 deletions
+2
View File
@@ -44,6 +44,8 @@ func Run() {
fmt.Println("Executed.")
case ExecuteTableFull:
fmt.Println("Error: Table is full")
case ExecuteFail:
//todo
}
}
+10 -6
View File
@@ -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)
+6
View File
@@ -21,3 +21,9 @@ Start
Cleanup
```make clean```
Test
```make test```