11package  redis
22
33import  (
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
11113type  commandPolicyManager  struct  {
12114	rwmutex              * sync.RWMutex 
@@ -15,10 +117,12 @@ type commandPolicyManager struct {
15117}
16118
17119func  newCommandPolicyManager (overwrites  interface {}) * commandPolicyManager  {
120+ 	// TODO: To be implemented in the next req-resp development stage 
18121	return  & commandPolicyManager {}
19122}
20123
21124func  (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	}
0 commit comments