snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
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
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
This commit is contained in:
63
internal/sql/lang/operator.go
Normal file
63
internal/sql/lang/operator.go
Normal file
@@ -0,0 +1,63 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user