Skip to content

Commit 9dea9f9

Browse files
authored
Merge pull request beego#3994 from HarryWang29/develop
update support bit operation
2 parents ad68e8d + 0f6735e commit 9dea9f9

File tree

4 files changed

+26
-3
lines changed

4 files changed

+26
-3
lines changed

go.mod

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,17 @@ require (
1313
github.com/elastic/go-elasticsearch/v6 v6.8.5
1414
github.com/elazarl/go-bindata-assetfs v1.0.0
1515
github.com/go-redis/redis v6.14.2+incompatible
16-
github.com/go-sql-driver/mysql v1.4.1
16+
github.com/go-sql-driver/mysql v1.5.0
1717
github.com/gogo/protobuf v1.1.1
1818
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db // indirect
1919
github.com/gomodule/redigo v2.0.0+incompatible
2020
github.com/hashicorp/golang-lru v0.5.4
2121
github.com/ledisdb/ledisdb v0.0.0-20200510135210-d35789ec47e6
2222
github.com/lib/pq v1.0.0
23-
github.com/mattn/go-sqlite3 v1.10.0
23+
github.com/mattn/go-sqlite3 v2.0.3+incompatible
2424
github.com/pelletier/go-toml v1.2.0 // indirect
25+
github.com/pingcap/tidb v2.0.11+incompatible // indirect
26+
github.com/pkg/errors v0.8.0 // indirect
2527
github.com/prometheus/client_golang v1.7.0
2628
github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644
2729
github.com/ssdb/gossdb v0.0.0-20180723034631-88f6b59b84ec

go.sum

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ github.com/go-redis/redis v6.14.2+incompatible h1:UE9pLhzmWf+xHNmZsoccjXosPicuiN
5757
github.com/go-redis/redis v6.14.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
5858
github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA=
5959
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
60+
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
61+
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
6062
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
6163
github.com/go-yaml/yaml v0.0.0-20180328195020-5420a8b6744d h1:xy93KVe+KrIIwWDEAfQBdIfsiHJkepbYsDr+VY3g9/o=
6264
github.com/go-yaml/yaml v0.0.0-20180328195020-5420a8b6744d/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -100,6 +102,8 @@ github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
100102
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
101103
github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o=
102104
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
105+
github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U=
106+
github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
103107
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
104108
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
105109
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -115,6 +119,7 @@ github.com/pelletier/go-toml v1.0.1/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/9
115119
github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc=
116120
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
117121
github.com/peterh/liner v1.0.1-0.20171122030339-3681c2a91233/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
122+
github.com/pingcap/tidb v2.0.11+incompatible/go.mod h1:I8C6jrPINP2rrVunTRd7C9fRRhQrtR43S1/CL5ix/yQ=
118123
github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=
119124
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
120125
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=

orm/db.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -770,6 +770,16 @@ func (d *dbBase) UpdateBatch(q dbQuerier, qs *querySet, mi *modelInfo, cond *Con
770770
cols = append(cols, col+" = "+col+" * ?")
771771
case ColExcept:
772772
cols = append(cols, col+" = "+col+" / ?")
773+
case ColBitAnd:
774+
cols = append(cols, col+" = "+col+" & ?")
775+
case ColBitRShift:
776+
cols = append(cols, col+" = "+col+" >> ?")
777+
case ColBitLShift:
778+
cols = append(cols, col+" = "+col+" << ?")
779+
case ColBitXOR:
780+
cols = append(cols, col+" = "+col+" ^ ?")
781+
case ColBitOr:
782+
cols = append(cols, col+" = "+col+" | ?")
773783
}
774784
values[i] = c.value
775785
} else {

orm/orm_queryset.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ const (
3232
ColMinus
3333
ColMultiply
3434
ColExcept
35+
ColBitAnd
36+
ColBitRShift
37+
ColBitLShift
38+
ColBitXOR
39+
ColBitOr
3540
)
3641

3742
// ColValue do the field raw changes. e.g Nums = Nums + 10. usage:
@@ -40,7 +45,8 @@ const (
4045
// }
4146
func ColValue(opt operator, value interface{}) interface{} {
4247
switch opt {
43-
case ColAdd, ColMinus, ColMultiply, ColExcept:
48+
case ColAdd, ColMinus, ColMultiply, ColExcept, ColBitAnd, ColBitRShift,
49+
ColBitLShift, ColBitXOR, ColBitOr:
4450
default:
4551
panic(fmt.Errorf("orm.ColValue wrong operator"))
4652
}

0 commit comments

Comments
 (0)