feat: 新增 BooleanFunctionLookup 支持函数式操作符
- sqlgen: 新增 BooleanFunctionLookup,生成 FUNC(LHS, RHS) 格式,优先级高于 BooleanOperatorLookup - dialect/duckdb: 使用 regexp_matches 替代 ~ 实现部分匹配,等价于 MySQL REGEXP - sqlgen/expression_sql_generator_test: 补充 BooleanFunctionLookup 测试用例,修正 encode_error 前缀 - sqlgen/sql_dialect_options_test: 验证 BooleanFunctionLookup 默认为 nil - dialect/duckdb_test: 新增 regexp_matches SQL 生成测试
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
_ "github.com/marcboeker/go-duckdb"
|
||||
|
||||
"git.fsdpf.net/go/db"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
)
|
||||
|
||||
func DialectOptions() *db.SQLDialectOptions {
|
||||
@@ -30,6 +31,12 @@ func DialectOptions() *db.SQLDialectOptions {
|
||||
// Use double quotes for identifiers (PostgreSQL-style)
|
||||
do.QuoteRune = '"'
|
||||
|
||||
// regexp_matches(col, pattern) 做部分匹配,等价于 MySQL REGEXP
|
||||
do.BooleanFunctionLookup = map[exp.BooleanOperation][]byte{
|
||||
exp.RegexpLikeOp: []byte("regexp_matches"),
|
||||
exp.RegexpILikeOp: []byte("regexp_matches"),
|
||||
}
|
||||
|
||||
return do
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user