mirror of
https://github.com/SigNoz/signoz.git
synced 2026-03-18 10:42:14 +00:00
* feat(sqlschema): add support for partial unique indexes * feat(sqlschema): add support for multiple indexes * feat(sqlschema): add support for multiple indexes * feat(sqlschema): move normalizer to its own struct * feat(sqlschema): move normalizer tests to normalizer * feat(sqlschema): move normalizer tests to normalizer * feat(sqlschema): add more index tests from docs
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package sqlitesqlschema
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestExtractWhereClause(t *testing.T) {
|
|
testCases := []struct {
|
|
name string
|
|
sql string
|
|
where string
|
|
}{
|
|
{
|
|
name: "UppercaseWhere",
|
|
sql: `CREATE UNIQUE INDEX "idx" ON "users" ("email") WHERE "deleted_at" IS NULL`,
|
|
where: `"deleted_at" IS NULL`,
|
|
},
|
|
{
|
|
name: "LowercaseWhere",
|
|
sql: `CREATE UNIQUE INDEX "idx" ON "users" ("email") where "deleted_at" IS NULL`,
|
|
where: `"deleted_at" IS NULL`,
|
|
},
|
|
{
|
|
name: "NewlineBeforeWhere",
|
|
sql: "CREATE UNIQUE INDEX \"idx\" ON \"users\" (\"email\")\nWHERE \"deleted_at\" IS NULL",
|
|
where: `"deleted_at" IS NULL`,
|
|
},
|
|
{
|
|
name: "ExtraWhitespace",
|
|
sql: "CREATE UNIQUE INDEX \"idx\" ON \"users\" (\"email\") \n \t where \"deleted_at\" IS NULL ",
|
|
where: `"deleted_at" IS NULL`,
|
|
},
|
|
{
|
|
name: "WhereInStringLiteral",
|
|
sql: `CREATE UNIQUE INDEX "idx" ON "users" ("email") WHERE status = 'somewhere'`,
|
|
where: `status = 'somewhere'`,
|
|
},
|
|
{
|
|
name: "BooleanLiteral",
|
|
sql: `CREATE UNIQUE INDEX "idx" ON "users" ("email") WHERE active = true`,
|
|
where: `active = true`,
|
|
},
|
|
}
|
|
|
|
for _, testCase := range testCases {
|
|
t.Run(testCase.name, func(t *testing.T) {
|
|
assert.Equal(t, testCase.where, extractWhereClause(testCase.sql))
|
|
})
|
|
}
|
|
}
|