Skip to content

Commit 6e3b627

Browse files
added default policies for the search commands
1 parent de1b16c commit 6e3b627

File tree

2 files changed

+106
-13
lines changed

2 files changed

+106
-13
lines changed

command_policy_manager.go

Lines changed: 106 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,114 @@
11
package redis
22

33
import (
4+
"strings"
45
"sync"
56

67
"github.com/redis/go-redis/v9/internal/routing"
78
)
89

9-
var defaultPolicies = map[string]*routing.CommandPolicy{}
10+
var defaultPolicies = map[string]*routing.CommandPolicy{
11+
"ft.create": {
12+
Request: routing.ReqDefault,
13+
Response: routing.RespDefaultKeyless,
14+
},
15+
"ft.search": {
16+
Request: routing.ReqDefault,
17+
Response: routing.RespDefaultKeyless,
18+
},
19+
"ft.aggregate": {
20+
Request: routing.ReqDefault,
21+
Response: routing.RespDefaultKeyless,
22+
},
23+
"ft.dictadd": {
24+
Request: routing.ReqDefault,
25+
Response: routing.RespDefaultKeyless,
26+
},
27+
"ft.dictdump": {
28+
Request: routing.ReqDefault,
29+
Response: routing.RespDefaultKeyless,
30+
},
31+
"ft.dictdel": {
32+
Request: routing.ReqDefault,
33+
Response: routing.RespDefaultKeyless,
34+
},
35+
"ft.suglen": {
36+
Request: routing.ReqDefault,
37+
Response: routing.RespDefaultHashSlot,
38+
},
39+
"ft.cursor": {
40+
Request: routing.ReqSpecial,
41+
Response: routing.RespDefaultKeyless,
42+
},
43+
"ft.sugadd": {
44+
Request: routing.ReqDefault,
45+
Response: routing.RespDefaultHashSlot,
46+
},
47+
"ft.sugget": {
48+
Request: routing.ReqDefault,
49+
Response: routing.RespDefaultHashSlot,
50+
},
51+
"ft.sugdel": {
52+
Request: routing.ReqDefault,
53+
Response: routing.RespDefaultHashSlot,
54+
},
55+
"ft.spellcheck": {
56+
Request: routing.ReqDefault,
57+
Response: routing.RespDefaultKeyless,
58+
},
59+
"ft.explain": {
60+
Request: routing.ReqDefault,
61+
Response: routing.RespDefaultKeyless,
62+
},
63+
"ft.explaincli": {
64+
Request: routing.ReqDefault,
65+
Response: routing.RespDefaultKeyless,
66+
},
67+
"ft.aliasadd": {
68+
Request: routing.ReqDefault,
69+
Response: routing.RespDefaultKeyless,
70+
},
71+
"ft.aliasupdate": {
72+
Request: routing.ReqDefault,
73+
Response: routing.RespDefaultKeyless,
74+
},
75+
"ft.aliasdel": {
76+
Request: routing.ReqDefault,
77+
Response: routing.RespDefaultKeyless,
78+
},
79+
"ft.info": {
80+
Request: routing.ReqDefault,
81+
Response: routing.RespDefaultKeyless,
82+
},
83+
"ft.tagvals": {
84+
Request: routing.ReqDefault,
85+
Response: routing.RespDefaultKeyless,
86+
},
87+
"ft.syndump": {
88+
Request: routing.ReqDefault,
89+
Response: routing.RespDefaultKeyless,
90+
},
91+
"ft.synupdate": {
92+
Request: routing.ReqDefault,
93+
Response: routing.RespDefaultKeyless,
94+
},
95+
"ft.profile": {
96+
Request: routing.ReqDefault,
97+
Response: routing.RespDefaultKeyless,
98+
},
99+
"ft.alter": {
100+
Request: routing.ReqDefault,
101+
Response: routing.RespDefaultKeyless,
102+
},
103+
"ft.dropindex": {
104+
Request: routing.ReqDefault,
105+
Response: routing.RespDefaultKeyless,
106+
},
107+
"ft.drop": {
108+
Request: routing.ReqDefault,
109+
Response: routing.RespDefaultKeyless,
110+
},
111+
}
10112

11113
type commandPolicyManager struct {
12114
rwmutex *sync.RWMutex
@@ -15,10 +117,12 @@ type commandPolicyManager struct {
15117
}
16118

17119
func newCommandPolicyManager(overwrites interface{}) *commandPolicyManager {
120+
// TODO: To be implemented in the next req-resp development stage
18121
return &commandPolicyManager{}
19122
}
20123

21124
func (cpm *commandPolicyManager) updateClientPolicies(policies interface{}) {
125+
// TODO: To be implemented in the next req-resp development stage
22126
cpm.rwmutex.Lock()
23127
defer cpm.rwmutex.Unlock()
24128
}
@@ -27,8 +131,7 @@ func (cpm *commandPolicyManager) getCmdPolicy(cmd Cmder) *routing.CommandPolicy
27131
cpm.rwmutex.RLock()
28132
defer cpm.rwmutex.RUnlock()
29133

30-
cmdName := cmd.Name()
31-
134+
cmdName := strings.ToLower(cmd.Name())
32135
if policy, ok := cpm.overwrittenPolicies[cmdName]; ok {
33136
return policy
34137
}

osscluster_router.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,6 @@ func (c *ClusterClient) routeAndRun(ctx context.Context, cmd Cmder, node *cluste
3737
}
3838
}
3939

40-
// getCommandPolicy retrieves the routing policy for a command
41-
func (c *ClusterClient) getCommandPolicy(cmd Cmder) *routing.CommandPolicy {
42-
43-
return c.cmdPolicyManager.getCmdPolicy(cmd)
44-
// if cmdInfo := c.cmdInfo(ctx, cmd.Name()); cmdInfo != nil && cmdInfo.Tips != nil {
45-
// return cmdInfo.Tips
46-
// }
47-
// return nil
48-
}
49-
5040
// executeDefault handles standard command routing based on keys
5141
func (c *ClusterClient) executeDefault(ctx context.Context, cmd Cmder, node *clusterNode) error {
5242
if c.hasKeys(cmd) {

0 commit comments

Comments
 (0)