/
githubmirror
/
squirrel
Обзор
Документация
Войти
/
githubmirror
/
squirrel
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
placeholder_test.go
67 строк
2 KB
Pavel Patrin
MS SQL Server compatible placeholders (#244)
12 апр 2020, 17:41
Не верифицирован
12 апр 2020, 17:41
8186d41
Код
Авторство
О чём код?
package squirrel import ( "strings" "testing" "github.com/stretchr/testify/assert" ) func TestQuestion(t *testing.T) { sql := "x = ? AND y = ?" s, _ := Question.ReplacePlaceholders(sql) assert.Equal(t, sql, s) } func TestDollar(t *testing.T) { sql := "x = ? AND y = ?" s, _ := Dollar.ReplacePlaceholders(sql) assert.Equal(t, "x = $1 AND y = $2", s) } func TestColon(t *testing.T) { sql := "x = ? AND y = ?" s, _ := Colon.ReplacePlaceholders(sql) assert.Equal(t, "x = :1 AND y = :2", s) } func TestAtp(t *testing.T) { sql := "x = ? AND y = ?" s, _ := AtP.ReplacePlaceholders(sql) assert.Equal(t, "x = @p1 AND y = @p2", s) } func TestPlaceholders(t *testing.T) { assert.Equal(t, Placeholders(2), "?,?") } func TestEscapeDollar(t *testing.T) { sql := "SELECT uuid, \"data\" #> '{tags}' AS tags FROM nodes WHERE \"data\" -> 'tags' ??| array['?'] AND enabled = ?" s, _ := Dollar.ReplacePlaceholders(sql) assert.Equal(t, "SELECT uuid, \"data\" #> '{tags}' AS tags FROM nodes WHERE \"data\" -> 'tags' ?| array['$1'] AND enabled = $2", s) } func TestEscapeColon(t *testing.T) { sql := "SELECT uuid, \"data\" #> '{tags}' AS tags FROM nodes WHERE \"data\" -> 'tags' ??| array['?'] AND enabled = ?" s, _ := Colon.ReplacePlaceholders(sql) assert.Equal(t, "SELECT uuid, \"data\" #> '{tags}' AS tags FROM nodes WHERE \"data\" -> 'tags' ?| array[':1'] AND enabled = :2", s) } func TestEscapeAtp(t *testing.T) { sql := "SELECT uuid, \"data\" #> '{tags}' AS tags FROM nodes WHERE \"data\" -> 'tags' ??| array['?'] AND enabled = ?" s, _ := AtP.ReplacePlaceholders(sql) assert.Equal(t, "SELECT uuid, \"data\" #> '{tags}' AS tags FROM nodes WHERE \"data\" -> 'tags' ?| array['@p1'] AND enabled = @p2", s) } func BenchmarkPlaceholdersArray(b *testing.B) { var count = b.N placeholders := make([]string, count) for i := 0; i < count; i++ { placeholders[i] = "?" } var _ = strings.Join(placeholders, ",") } func BenchmarkPlaceholdersStrings(b *testing.B) { Placeholders(b.N) }