Files
upstream-sqlc/internal/sql/lang/operator.go
upstream-mirror 0f4df23290
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
2026-09-16 02:17:34 +05:00

64 lines
1.1 KiB
Go

package lang
// TODO: This logic is PostgreSQL-specific and needs to be refactored to support MySQL
func IsComparisonOperator(s string) bool {
switch s {
case ">":
case "<":
case "<=":
case ">=":
case "=":
case "==":
case "<>":
case "!=":
// Comparisons an engine spells as a keyword rather than as punctuation.
// They are written upper case, which is how SQLite's parser records
// them; PostgreSQL and MySQL use distinct node types or their own
// operator names for these, so the spellings do not overlap.
case "IS":
case "IS NOT":
case "IS DISTINCT FROM":
case "IS NOT DISTINCT FROM":
case "ISNULL":
case "NOTNULL":
case "NOT NULL":
case "LIKE":
case "NOT LIKE":
case "GLOB":
case "NOT GLOB":
case "REGEXP":
case "NOT REGEXP":
case "MATCH":
case "NOT MATCH":
default:
return false
}
return true
}
func IsMathematicalOperator(s string) bool {
switch s {
case "+":
case "-":
case "*":
case "/":
case "%":
case "^":
case "|/":
case "||/":
case "!":
case "!!":
case "@":
case "&":
case "|":
case "#":
case "~":
case "<<":
case ">>":
default:
return false
}
return true
}