Refactored query engine utilizing iterators

This commit is contained in:
Pijus Kamandulis
2025-03-11 17:36:28 +02:00
parent 221f029a1d
commit e526b2269e
20 changed files with 1160 additions and 735 deletions

View File

@@ -0,0 +1,20 @@
package converters
import (
"github.com/pikami/cosmium/internal/datastore"
memoryexecutor "github.com/pikami/cosmium/query_executors/memory_executor"
)
type DocumentToRowTypeIterator struct {
documents datastore.DocumentIterator
}
func NewDocumentToRowTypeIterator(documents datastore.DocumentIterator) *DocumentToRowTypeIterator {
return &DocumentToRowTypeIterator{
documents: documents,
}
}
func (di *DocumentToRowTypeIterator) Next() (memoryexecutor.RowType, datastore.DataStoreStatus) {
return di.documents.Next()
}

View File

@@ -40,5 +40,4 @@ type DataStore interface {
type DocumentIterator interface {
Next() (Document, DataStoreStatus)
HasMore() bool
}

View File

@@ -15,7 +15,3 @@ func (i *ArrayDocumentIterator) Next() (datastore.Document, datastore.DataStoreS
return i.documents[i.index], datastore.StatusOk
}
func (i *ArrayDocumentIterator) HasMore() bool {
return i.index < len(i.documents)-1
}

View File

@@ -15,6 +15,7 @@ const (
StatusNotFound = 2
Conflict = 3
BadRequest = 4
IterEOF = 5
)
type TriggerOperation string