Handle unsupported set operators for MySQL.
This commit is contained in:
parent
4c5584aaae
commit
7930fb23ba
4 changed files with 133 additions and 13 deletions
|
|
@ -15,6 +15,8 @@ func NewDialect() jet.Dialect {
|
|||
serializeOverrides["/"] = mysql_DIVISION
|
||||
serializeOverrides["#"] = mysql_BIT_XOR
|
||||
serializeOverrides[jet.StringConcatOperator] = mysql_CONCAT_operator
|
||||
serializeOverrides[jet.Except] = mysql_EXCEPT
|
||||
serializeOverrides[jet.Intersect] = mysql_INTERSECT
|
||||
|
||||
mySQLDialectParams := jet.DialectParams{
|
||||
Name: "MySQL",
|
||||
|
|
@ -31,6 +33,18 @@ func NewDialect() jet.Dialect {
|
|||
return jet.NewDialect(mySQLDialectParams)
|
||||
}
|
||||
|
||||
func mysql_EXCEPT(expressions ...jet.Expression) jet.SerializeFunc {
|
||||
return func(statement jet.StatementType, out *jet.SqlBuilder, options ...jet.SerializeOption) error {
|
||||
panic("jet: MySQL does not support EXCEPT operator.")
|
||||
}
|
||||
}
|
||||
|
||||
func mysql_INTERSECT(expressions ...jet.Expression) jet.SerializeFunc {
|
||||
return func(statement jet.StatementType, out *jet.SqlBuilder, options ...jet.SerializeOption) error {
|
||||
panic("jet: MySQL does not support INTERSECT operator.")
|
||||
}
|
||||
}
|
||||
|
||||
func mysql_BIT_XOR(expressions ...jet.Expression) jet.SerializeFunc {
|
||||
return func(statement jet.StatementType, out *jet.SqlBuilder, options ...jet.SerializeOption) error {
|
||||
if len(expressions) != 2 {
|
||||
|
|
|
|||
|
|
@ -15,10 +15,6 @@ var (
|
|||
|
||||
var UNION = jet.UNION
|
||||
var UNION_ALL = jet.UNION_ALL
|
||||
var INTERSECT = jet.INTERSECT
|
||||
var INTERSECT_ALL = jet.INTERSECT_ALL
|
||||
var EXCEPT = jet.EXCEPT
|
||||
var EXCEPT_ALL = jet.EXCEPT_ALL
|
||||
|
||||
//-----------------literals----------------------//
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue