High performance SQL builder with zero dependency for TDEngine
- Databases builder
- Super table builder
- Table builder
- Select builder
- Insert builder
- Delete builder
- Native TDEngine query funcs
- Zero dependency
go get github.com/tkcrm/tsbuilderb := tsbuilder.NewDatabaseBuilder().
Name("db_name").
Options(
"PRECISION ms",
"CACHEMODEL last_row",
)
sql, err := b.Build()
if err != nil {
log.Fatal(err)
}b := tsbuilder.NewSTableBuilder().
Name("s_table_name").
Definitions(
"ts TIMESTAMP",
"lat FLOAT",
"lng FLOAT",
"speed FLOAT",
).
Tags(map[string]any{
"deviceID": tsfuncs.Binary("36"),
}).
Options(
"option_1 value_1",
"option_2 value_2",
)
sql, err := b.Build()
if err != nil {
log.Fatal(err)
}b := tsbuilder.NewCreateTableBuilder().
TableName("test_table").
STable("s_table_name").
Tags(map[string]any{
"test": 1,
"test2": 2,
"test3": 3,
})
sql, err := b.Build()
if err != nil {
log.Fatal(err)
}b := tsbuilder.NewInsertBuilder()
b.AddTable("test_table_1").
Using("s_table_name_2").
Columns("column_1", "column_2", "column_3").
Values(1, 2, tsfuncs.Now()).
Values(1, 2, tsfuncs.Abs("4321")).
Values(1, 2, 3)
// add table 2
b.AddTable("test_table_2").
Using("s_table_name").
Tags(map[string]any{
"tag_1": 1,
"tag_2": 2,
"tag_3": 3,
}).
Columns("column_1", "column_2", "column_3").
Values(1, 2, 3).
Values(1, 2, 3).
Values(1, 2, 3)
sql, err := b.Build()
if err != nil {
log.Fatal(err)
}b := tsbuilder.NewSelectBuilder().
Columns("col_1", "col_2", "col_3").
From("dbName.test_table").
Where(
"asasd > asd",
"asdfasdf <= 1212",
)
sql, err := b.Build()
if err != nil {
t.Fatal(err)
}b := tsbuilder.NewDeleteBuilder().
From("dbName.test_table").
Where(
"asasd > asd",
"asdfasdf <= 1212",
)
sql, err := b.Build()
if err != nil {
t.Fatal(err)
}b := tsbuilder.NewDropTableBuilder().Tables("db_name.table_name")
sql, err := b.Build()
if err != nil {
t.Fatal(err)
}tsfuncs.Abs(expr)tsfuncs.Acos(expr)tsfuncs.Asin(expr)tsfuncs.Atan(expr)tsfuncs.Avg(expr)tsfuncs.Binary(expr)tsfuncs.Ceil(expr)tsfuncs.Cos(expr)tsfuncs.Cos(expr)tsfuncs.Count(columns ...string)tsfuncs.Floor(expr)tsfuncs.Now()tsfuncs.Round(expr)tsfuncs.Sin(expr)tsfuncs.Sum(expr)
- Add more tdengine funcs
- Add
Drop,Altermethods for database, super table and table - Add more tests
If you have an idea or a question, just post a pull request or an issue. Every feedback is appreciated.
This project is licensed under the terms of the MIT license.