mirror of
https://github.com/pikami/cosmium.git
synced 2025-12-21 09:50:35 +00:00
Refactored query engine utilizing iterators
This commit is contained in:
20
internal/converters/document_to_rowtype.go
Normal file
20
internal/converters/document_to_rowtype.go
Normal 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()
|
||||
}
|
||||
@@ -40,5 +40,4 @@ type DataStore interface {
|
||||
|
||||
type DocumentIterator interface {
|
||||
Next() (Document, DataStoreStatus)
|
||||
HasMore() bool
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ const (
|
||||
StatusNotFound = 2
|
||||
Conflict = 3
|
||||
BadRequest = 4
|
||||
IterEOF = 5
|
||||
)
|
||||
|
||||
type TriggerOperation string
|
||||
|
||||
Reference in New Issue
Block a user