mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-08-28 10:54:59 +00:00
* Add kafka support to CLI (fbsql) This commit adds the ability to provide a `--kafka-config` command line argument referncing a toml file to configure kafka. * Move "Molecula Consumer" message to the logger; hide it in basic mode * Fold decimal(scale) into kafka.source-type * Build fbsql with cgo in docker for CI * Re-organize the fbsql kafka config and setup. Allow field config to use the table schema if no fields provided. * Display timestamp fields with format RFC3339Nano * remove kafkaRunner (no longer used) * Fix cli/batch test (and make sure it's not excluded from CI) The logic in our Makefile was exluding from tests any package with `/batch` in the package name. This excluded `/cli/batch`, which is not good. This commit changes the exclusion logic to include the `/v3` portion of the package name, so `/v3/batch`. * Rename Basic() to SetBasic()
47 lines
891 B
Go
47 lines
891 B
Go
package batch
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/featurebasedb/featurebase/v3/dax"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestBatchSQL(t *testing.T) {
|
|
tbl := &dax.Table{
|
|
Name: "foo",
|
|
}
|
|
fields := []*dax.Field{
|
|
{
|
|
Name: "name",
|
|
Type: dax.BaseTypeString,
|
|
},
|
|
{
|
|
Name: "age",
|
|
Type: dax.BaseTypeInt,
|
|
},
|
|
}
|
|
ids := []interface{}{
|
|
0, 1, 2,
|
|
}
|
|
rows := [][]interface{}{
|
|
{
|
|
[]interface{}{"Alice", int64(11)},
|
|
},
|
|
{
|
|
[]interface{}{"Bob", int64(22)},
|
|
},
|
|
{
|
|
[]interface{}{"Carl,Comma", int64(33)},
|
|
},
|
|
}
|
|
|
|
s, err := buildBulkInsert(tbl, fields, ids, rows)
|
|
assert.NoError(t, err)
|
|
|
|
exp := `BULK INSERT INTO foo (_id,name,age) MAP ('$._id' id,'$.col_0' string,'$.col_1' int) FROM x'{"_id":0,"col_0":["Alice",11]}
|
|
{"_id":1,"col_0":["Bob",22]}
|
|
{"_id":2,"col_0":["Carl,Comma",33]}
|
|
' WITH BATCHSIZE 3 FORMAT 'NDJSON' INPUT 'STREAM'`
|
|
assert.Equal(t, exp, s)
|
|
}
|