Skip to content

Commit 9a48e21

Browse files
committed
Remove dead code
1 parent 53d7c1b commit 9a48e21

File tree

9 files changed

+41
-296
lines changed

9 files changed

+41
-296
lines changed

document/array.go

Lines changed: 0 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package document
22

33
import (
4-
"sort"
5-
64
"github.com/buger/jsonparser"
75
"github.com/genjidb/genji/internal/errors"
86
"github.com/genjidb/genji/types"
@@ -241,84 +239,3 @@ func (vb *ValueBuffer) UnmarshalJSON(data []byte) error {
241239

242240
return nil
243241
}
244-
245-
func (vb *ValueBuffer) Types() []types.ValueType {
246-
types := make([]types.ValueType, len(vb.Values))
247-
248-
for i, v := range vb.Values {
249-
types[i] = v.Type()
250-
}
251-
252-
return types
253-
}
254-
255-
// IsEqual compares two ValueBuffer and returns true if and only if
256-
// both each values and types are respectively equal.
257-
func (vb *ValueBuffer) IsEqual(other *ValueBuffer) bool {
258-
if vb.Len() != other.Len() {
259-
return false
260-
}
261-
262-
// empty buffers are always equal eh
263-
if vb.Len() == 0 && other.Len() == 0 {
264-
return true
265-
}
266-
267-
otherTypes := other.Types()
268-
tps := vb.Types()
269-
270-
for i, typ := range tps {
271-
if typ != otherTypes[i] {
272-
return false
273-
}
274-
}
275-
276-
for i, v := range vb.Values {
277-
if eq, err := types.IsEqual(v, other.Values[i]); err != nil || !eq {
278-
return false
279-
}
280-
}
281-
282-
return true
283-
}
284-
285-
func (vb *ValueBuffer) Swap(i, j int) {
286-
vb.Values[i], vb.Values[j] = vb.Values[j], vb.Values[i]
287-
}
288-
289-
func (vb *ValueBuffer) Less(i, j int) (ok bool) {
290-
it, jt := vb.Values[i].Type(), vb.Values[j].Type()
291-
if it == jt || (it.IsNumber() && jt.IsNumber()) {
292-
// TODO(asdine) make the types package work with static documents
293-
// to avoid having to deal with errors?
294-
ok, _ = types.IsLesserThan(vb.Values[i], vb.Values[j])
295-
return
296-
}
297-
298-
return it < jt
299-
}
300-
301-
// SortArray creates a new sorted array.
302-
// Types are sorted in the following ascending order:
303-
// - NULL
304-
// - Booleans
305-
// - Numbers
306-
// - Text
307-
// - Blob
308-
// - Arrays
309-
// - Documents
310-
// It doesn't sort nested arrays.
311-
func SortArray(a types.Array) (*ValueBuffer, error) {
312-
vb, ok := a.(*ValueBuffer)
313-
if !ok {
314-
vb := NewValueBuffer()
315-
err := vb.Copy(a)
316-
if err != nil {
317-
return nil, err
318-
}
319-
}
320-
321-
sort.Sort(vb)
322-
323-
return vb, nil
324-
}

document/array_test.go

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -30,33 +30,6 @@ func TestArrayContains(t *testing.T) {
3030
require.False(t, ok)
3131
}
3232

33-
func TestSortArray(t *testing.T) {
34-
tests := []struct {
35-
name string
36-
arr string
37-
expected string
38-
}{
39-
{"empty array", `[]`, `[]`},
40-
{"numbers", `[1.4,3,2.1,-5]`, `[-5,1.4,2.1,3]`},
41-
{"text", `["foo","bar",""]`, `["","bar","foo"]`},
42-
{"arrays", `[[1, 2],[-1,10],[]]`, `[[],[-1,10],[1,2]]`},
43-
{"documents", `[{"z":10},{"a":40},{}]`, `[{},{"a":40},{"z":10}]`},
44-
{"mixed", `["foo",["a"],{},null,true,10]`, `[null,true,10,"foo",["a"],{}]`},
45-
}
46-
47-
for _, test := range tests {
48-
t.Run(test.name, func(t *testing.T) {
49-
var arr document.ValueBuffer
50-
assert.NoError(t, arr.UnmarshalJSON([]byte(test.arr)))
51-
output, err := document.SortArray(&arr)
52-
assert.NoError(t, err)
53-
actual, err := json.Marshal(output)
54-
assert.NoError(t, err)
55-
require.Equal(t, test.expected, string(actual))
56-
})
57-
}
58-
}
59-
6033
func TestValueBufferCopy(t *testing.T) {
6134
tests := []struct {
6235
name string

document/document.go

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
package document
33

44
import (
5-
"sort"
65
"strconv"
76
"strings"
87

@@ -57,16 +56,6 @@ func Length(d types.Document) (int, error) {
5756
return len, err
5857
}
5958

60-
// Fields returns a list of all the fields at the root of the document
61-
// sorted lexicographically.
62-
func Fields(d types.Document) ([]string, error) {
63-
if fb, ok := d.(*FieldBuffer); ok {
64-
return fb.Fields(), nil
65-
}
66-
67-
return types.Fields(d)
68-
}
69-
7059
// FieldBuffer stores a group of fields in memory. It implements the Document interface.
7160
type FieldBuffer struct {
7261
fields []fieldValue
@@ -342,14 +331,6 @@ func (fb *FieldBuffer) Copy(d types.Document) error {
342331
return nil
343332
}
344333

345-
// Clone the buffer.
346-
func (fb *FieldBuffer) Clone() *FieldBuffer {
347-
var newFb FieldBuffer
348-
349-
_ = newFb.Copy(fb)
350-
return &newFb
351-
}
352-
353334
// Apply a function to all the values of the buffer.
354335
func (fb *FieldBuffer) Apply(fn func(p Path, v types.Value) (types.Value, error)) error {
355336
path := Path{PathFragment{}}
@@ -415,18 +396,6 @@ func (fb *FieldBuffer) Reset() {
415396
fb.fields = fb.fields[:0]
416397
}
417398

418-
// Fields returns a sorted list of root field names.
419-
func (fb *FieldBuffer) Fields() []string {
420-
fields := make([]string, len(fb.fields))
421-
422-
for i := range fb.fields {
423-
fields[i] = fb.fields[i].Field
424-
}
425-
426-
sort.Strings(fields)
427-
return fields
428-
}
429-
430399
// A Path represents the path to a particular value within a document.
431400
type Path []PathFragment
432401

document/document_test.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,6 @@ func TestFieldBuffer(t *testing.T) {
8181
require.Zero(t, v)
8282
})
8383

84-
t.Run("Fields", func(t *testing.T) {
85-
require.Equal(t, []string{}, document.NewFieldBuffer().Fields())
86-
require.Equal(t, []string{"a", "b"}, buf.Fields())
87-
})
88-
8984
t.Run("Set", func(t *testing.T) {
9085
tests := []struct {
9186
name string

internal/database/table_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,11 @@ func TestTableInsert(t *testing.T) {
124124
defer cleanup()
125125

126126
doc := newDocument()
127-
key1, _, err := tb.Insert(doc.Clone())
127+
key1, _, err := tb.Insert(testutil.CloneDocument(t, doc))
128128
assert.NoError(t, err)
129129
require.NotEmpty(t, key1)
130130

131-
key2, _, err := tb.Insert(doc.Clone())
131+
key2, _, err := tb.Insert(testutil.CloneDocument(t, doc))
132132
assert.NoError(t, err)
133133
require.NotEmpty(t, key2)
134134

@@ -532,9 +532,9 @@ func TestTableDelete(t *testing.T) {
532532
doc1.Add("fieldc", types.NewIntegerValue(40))
533533
doc2 := newDocument()
534534

535-
key1, _, err := tb.Insert(doc1.Clone())
535+
key1, _, err := tb.Insert(testutil.CloneDocument(t, doc1))
536536
assert.NoError(t, err)
537-
key2, _, err := tb.Insert(doc2.Clone())
537+
key2, _, err := tb.Insert(testutil.CloneDocument(t, doc2))
538538
assert.NoError(t, err)
539539

540540
// delete the document

internal/environment/env.go

Lines changed: 0 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package environment
22

33
import (
4-
"strings"
5-
64
"github.com/genjidb/genji/document"
75
"github.com/genjidb/genji/internal/database"
86
"github.com/genjidb/genji/internal/stringutil"
@@ -12,7 +10,6 @@ import (
1210
var (
1311
TableKey = document.Path{document.PathFragment{FieldName: "$table"}}
1412
DocPKKey = document.Path{document.PathFragment{FieldName: "$pk"}}
15-
// OriginalDocumentKey = document.Path{document.PathFragment{FieldName: "$originalDocument"}}
1613
)
1714

1815
// A Param represents a parameter passed by the user to the statement.
@@ -162,99 +159,3 @@ func (e *Environment) GetCatalog() *database.Catalog {
162159

163160
return nil
164161
}
165-
166-
func (e *Environment) Clone() (*Environment, error) {
167-
var newEnv Environment
168-
169-
newEnv.Params = e.Params
170-
newEnv.Tx = e.Tx
171-
newEnv.Catalog = e.Catalog
172-
173-
if e.Doc != nil {
174-
fb := document.NewFieldBuffer()
175-
err := fb.Copy(e.Doc)
176-
if err != nil {
177-
return nil, err
178-
}
179-
180-
newEnv.Doc = fb
181-
}
182-
183-
if e.Vars != nil {
184-
fb := document.NewFieldBuffer()
185-
err := fb.Copy(e.Vars)
186-
if err != nil {
187-
return nil, err
188-
}
189-
190-
newEnv.Vars = fb
191-
}
192-
193-
if e.Outer != nil {
194-
newOuter, err := e.Outer.Clone()
195-
if err != nil {
196-
return nil, err
197-
}
198-
newEnv.Outer = newOuter
199-
}
200-
201-
return &newEnv, nil
202-
}
203-
204-
func (e *Environment) MarshalJSON() ([]byte, error) {
205-
var sb strings.Builder
206-
207-
var needComa bool
208-
sb.WriteByte('{')
209-
if e.Doc != nil {
210-
sb.WriteString("\"Doc\":")
211-
b, err := types.NewDocumentValue(e.Doc).MarshalJSON()
212-
if err != nil {
213-
return nil, err
214-
}
215-
sb.Write(b)
216-
needComa = true
217-
}
218-
219-
if e.Vars != nil {
220-
if needComa {
221-
sb.WriteByte(',')
222-
}
223-
sb.WriteString("\"Vars\":")
224-
b, err := types.NewDocumentValue(e.Vars).MarshalJSON()
225-
if err != nil {
226-
return nil, err
227-
}
228-
sb.Write(b)
229-
needComa = true
230-
}
231-
232-
if e.Params != nil {
233-
if needComa {
234-
sb.WriteByte(',')
235-
}
236-
sb.WriteString("\"Params\":")
237-
for i, p := range e.Params {
238-
if i > 0 {
239-
sb.WriteByte(',')
240-
}
241-
sb.WriteString(stringutil.Sprintf("{\"Name\":\"%s\",\"Value\":%v}", p.Name, p.Value))
242-
}
243-
244-
needComa = true
245-
}
246-
247-
if e.Outer != nil {
248-
if needComa {
249-
sb.WriteByte(',')
250-
}
251-
sb.WriteString("\"Outer\":")
252-
b, _ := e.Outer.MarshalJSON()
253-
sb.Write(b)
254-
needComa = true
255-
}
256-
257-
sb.WriteByte('}')
258-
259-
return []byte(sb.String()), nil
260-
}

internal/environment/env_test.go

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)