mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 11:42:19 +08:00
68 lines
1.3 KiB
Go
68 lines
1.3 KiB
Go
package sql
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestParse(t *testing.T) {
|
|
sql := "select * from foo"
|
|
tables, err := parseTables((sql))
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, "foo", tables[0])
|
|
}
|
|
|
|
func TestParseWithComma(t *testing.T) {
|
|
sql := "select * from foo,bar"
|
|
tables, err := parseTables((sql))
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, "foo", tables[0])
|
|
assert.Equal(t, "bar", tables[1])
|
|
}
|
|
|
|
func TestParseWithCommas(t *testing.T) {
|
|
sql := "select * from foo,bar,baz"
|
|
tables, err := parseTables((sql))
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, "foo", tables[0])
|
|
assert.Equal(t, "bar", tables[1])
|
|
assert.Equal(t, "baz", tables[2])
|
|
}
|
|
|
|
func TestArray(t *testing.T) {
|
|
sql := "SELECT array_value(1, 2, 3)"
|
|
tables, err := TablesList((sql))
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, 0, len(tables))
|
|
}
|
|
|
|
func TestArray2(t *testing.T) {
|
|
sql := "SELECT array_value(1, 2, 3)[2]"
|
|
tables, err := TablesList((sql))
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, 0, len(tables))
|
|
}
|
|
|
|
func TestXxx(t *testing.T) {
|
|
sql := "SELECT [3, 2, 1]::INT[3];"
|
|
tables, err := TablesList((sql))
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, 0, len(tables))
|
|
}
|
|
|
|
func TestParseSubquery(t *testing.T) {
|
|
sql := "select * from (select * from people limit 1)"
|
|
tables, err := TablesList((sql))
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, 1, len(tables))
|
|
assert.Equal(t, "people", tables[0])
|
|
}
|