Skip to content

Commit

Permalink
chore: add integer's symbol in parseFields method to enhance performance
Browse files Browse the repository at this point in the history
Signed-off-by: PennyYoon <525296438@qq.com>
  • Loading branch information
Chenxulin97 committed Jan 30, 2024
1 parent e5c057e commit f96f2b3
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 1 deletion.
2 changes: 1 addition & 1 deletion opengemini/point.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ func parseFields(fields map[string]interface{}) string {
case string:
builder.WriteString("\"" + v + "\"")
case int8, uint8, int16, uint16, int, uint, int32, uint32, int64, uint64:
builder.WriteString(fmt.Sprintf("%d", v))
builder.WriteString(fmt.Sprintf("%di", v))
case float32, float64:
builder.WriteString(fmt.Sprintf("%f", v))
case bool:
Expand Down
45 changes: 45 additions & 0 deletions opengemini/write_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package opengemini

import (
"fmt"
"github.com/stretchr/testify/assert"
"reflect"
"strings"
"testing"
"time"
)
Expand Down Expand Up @@ -85,3 +88,45 @@ func TestClientWritePoint(t *testing.T) {
err = c.WritePoint(database, point, callback)
assert.Nil(t, err)
}

func TestWriteAssignedIntegerField(t *testing.T) {
c := testDefaultClient(t)

// create a test database with rand suffix
database := randomDatabaseName()
err := c.CreateDatabase(database)
assert.Nil(t, err)

// delete test database before exit test case
defer func() {
err := c.DropDatabase(database)
assert.Nil(t, err)
}()

callback := func(err error) {
assert.Nil(t, err)
}
measurement := randomMeasurement()
point := &Point{}
point.Measurement = measurement
point.AddTag("tag", "test")
point.AddField("field", 123)
err = c.WritePoint(database, point, callback)
assert.Nil(t, err)

time.Sleep(time.Second * 5)

// check field's data type
res, err := c.ShowFieldKeys(database, fmt.Sprintf("SHOW FIELD KEYS FROM %s", measurement))
assert.Nil(t, err)
values := res[0].Values
if value, ok := values[0].(string); !ok {
t.Log(reflect.TypeOf(value))
t.Fail()
} else {
if !strings.Contains(value, "integer") {
t.Error("not contain integer")
t.Fail()
}
}
}

0 comments on commit f96f2b3

Please sign in to comment.