2024-02-27 15:16:00 -06:00
|
|
|
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)
|
|
|
|
|
2024-05-02 07:43:20 -05:00
|
|
|
assert.Equal(t, "foo", tables[0])
|
2024-02-27 15:16:00 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestParseWithComma(t *testing.T) {
|
|
|
|
sql := "select * from foo,bar"
|
|
|
|
tables, err := parseTables((sql))
|
|
|
|
assert.Nil(t, err)
|
|
|
|
|
2024-05-02 07:43:20 -05:00
|
|
|
assert.Equal(t, "foo", tables[0])
|
|
|
|
assert.Equal(t, "bar", tables[1])
|
2024-02-27 15:16:00 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestParseWithCommas(t *testing.T) {
|
|
|
|
sql := "select * from foo,bar,baz"
|
|
|
|
tables, err := parseTables((sql))
|
|
|
|
assert.Nil(t, err)
|
|
|
|
|
2024-05-02 07:43:20 -05:00
|
|
|
assert.Equal(t, "foo", tables[0])
|
|
|
|
assert.Equal(t, "bar", tables[1])
|
|
|
|
assert.Equal(t, "baz", tables[2])
|
2024-02-27 15:16:00 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
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))
|
|
|
|
}
|
2024-05-02 07:43:20 -05:00
|
|
|
|
|
|
|
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])
|
|
|
|
}
|