Skip to content

Commit 364f5b4

Browse files
committed
addresed first batch of comments
1 parent 34ba276 commit 364f5b4

File tree

5 files changed

+89
-273
lines changed

5 files changed

+89
-273
lines changed

command.go

Lines changed: 29 additions & 215 deletions
Original file line numberDiff line numberDiff line change
@@ -4193,15 +4193,15 @@ func (cmd *GeoPosCmd) Clone() Cmder {
41934193
//------------------------------------------------------------------------------
41944194

41954195
type CommandInfo struct {
4196-
Name string
4197-
Arity int8
4198-
Flags []string
4199-
ACLFlags []string
4200-
FirstKeyPos int8
4201-
LastKeyPos int8
4202-
StepCount int8
4203-
ReadOnly bool
4204-
Tips *routing.CommandPolicy
4196+
Name string
4197+
Arity int8
4198+
Flags []string
4199+
ACLFlags []string
4200+
FirstKeyPos int8
4201+
LastKeyPos int8
4202+
StepCount int8
4203+
ReadOnly bool
4204+
CommandPolicy *routing.CommandPolicy
42054205
}
42064206

42074207
type CommandsInfoCmd struct {
@@ -4355,7 +4355,7 @@ func (cmd *CommandsInfoCmd) readReply(rd *proto.Reader) error {
43554355
}
43564356
rawTips[k] = v
43574357
}
4358-
cmdInfo.Tips = parseCommandPolicies(rawTips)
4358+
cmdInfo.CommandPolicy = parseCommandPolicies(rawTips)
43594359

43604360
if err := rd.DiscardNext(); err != nil {
43614361
return err
@@ -4378,13 +4378,13 @@ func (cmd *CommandsInfoCmd) Clone() Cmder {
43784378
for k, v := range cmd.val {
43794379
if v != nil {
43804380
newInfo := &CommandInfo{
4381-
Name: v.Name,
4382-
Arity: v.Arity,
4383-
FirstKeyPos: v.FirstKeyPos,
4384-
LastKeyPos: v.LastKeyPos,
4385-
StepCount: v.StepCount,
4386-
ReadOnly: v.ReadOnly,
4387-
Tips: v.Tips, // CommandPolicy can be shared as it's immutable
4381+
Name: v.Name,
4382+
Arity: v.Arity,
4383+
FirstKeyPos: v.FirstKeyPos,
4384+
LastKeyPos: v.LastKeyPos,
4385+
StepCount: v.StepCount,
4386+
ReadOnly: v.ReadOnly,
4387+
CommandPolicy: v.CommandPolicy, // CommandPolicy can be shared as it's immutable
43884388
}
43894389
if v.Flags != nil {
43904390
newInfo.Flags = make([]string, len(v.Flags))
@@ -6995,14 +6995,21 @@ func ExtractCommandValue(cmd interface{}) interface{} {
69956995
if statusCmd, ok := cmd.(interface{ Val() string }); ok {
69966996
return statusCmd.Val()
69976997
}
6998-
case CmdTypeDuration:
6998+
case CmdTypeDuration, CmdTypeTime, CmdTypeStringStructMap, CmdTypeXMessageSlice,
6999+
CmdTypeXStreamSlice, CmdTypeXPending, CmdTypeXPendingExt, CmdTypeXAutoClaim,
7000+
CmdTypeXAutoClaimJustID, CmdTypeXInfoConsumers, CmdTypeXInfoGroups, CmdTypeXInfoStream,
7001+
CmdTypeXInfoStreamFull, CmdTypeZSlice, CmdTypeZWithKey, CmdTypeScan, CmdTypeClusterSlots,
7002+
CmdTypeGeoSearchLocation, CmdTypeGeoPos, CmdTypeCommandsInfo, CmdTypeSlowLog,
7003+
CmdTypeKeyValues, CmdTypeZSliceWithKey, CmdTypeFunctionList, CmdTypeFunctionStats,
7004+
CmdTypeLCS, CmdTypeKeyFlags, CmdTypeClusterLinks, CmdTypeClusterShards,
7005+
CmdTypeRankWithScore, CmdTypeClientInfo, CmdTypeACLLog, CmdTypeInfo, CmdTypeMonitor,
7006+
CmdTypeJSON, CmdTypeJSONSlice, CmdTypeIntPointerSlice, CmdTypeScanDump, CmdTypeBFInfo,
7007+
CmdTypeCFInfo, CmdTypeCMSInfo, CmdTypeTopKInfo, CmdTypeTDigestInfo, CmdTypeFTSearch,
7008+
CmdTypeFTInfo, CmdTypeFTSpellCheck, CmdTypeFTSynDump, CmdTypeAggregate,
7009+
CmdTypeTSTimestampValue, CmdTypeTSTimestampValueSlice:
69997010
if durationCmd, ok := cmd.(interface{ Val() interface{} }); ok {
70007011
return durationCmd.Val()
70017012
}
7002-
case CmdTypeTime:
7003-
if timeCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7004-
return timeCmd.Val()
7005-
}
70067013
case CmdTypeStringSlice:
70077014
if stringSliceCmd, ok := cmd.(interface{ Val() []string }); ok {
70087015
return stringSliceCmd.Val()
@@ -7047,199 +7054,6 @@ func ExtractCommandValue(cmd interface{}) interface{} {
70477054
}); ok {
70487055
return mapCmd.Val()
70497056
}
7050-
case CmdTypeStringStructMap:
7051-
if mapCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7052-
return mapCmd.Val()
7053-
}
7054-
case CmdTypeXMessageSlice:
7055-
if xMsgCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7056-
return xMsgCmd.Val()
7057-
}
7058-
case CmdTypeXStreamSlice:
7059-
if xStreamCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7060-
return xStreamCmd.Val()
7061-
}
7062-
case CmdTypeXPending:
7063-
if xPendingCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7064-
return xPendingCmd.Val()
7065-
}
7066-
case CmdTypeXPendingExt:
7067-
if xPendingExtCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7068-
return xPendingExtCmd.Val()
7069-
}
7070-
case CmdTypeXAutoClaim:
7071-
if xAutoClaimCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7072-
return xAutoClaimCmd.Val()
7073-
}
7074-
case CmdTypeXAutoClaimJustID:
7075-
if xAutoClaimJustIDCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7076-
return xAutoClaimJustIDCmd.Val()
7077-
}
7078-
case CmdTypeXInfoConsumers:
7079-
if xInfoConsumersCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7080-
return xInfoConsumersCmd.Val()
7081-
}
7082-
case CmdTypeXInfoGroups:
7083-
if xInfoGroupsCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7084-
return xInfoGroupsCmd.Val()
7085-
}
7086-
case CmdTypeXInfoStream:
7087-
if xInfoStreamCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7088-
return xInfoStreamCmd.Val()
7089-
}
7090-
case CmdTypeXInfoStreamFull:
7091-
if xInfoStreamFullCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7092-
return xInfoStreamFullCmd.Val()
7093-
}
7094-
case CmdTypeZSlice:
7095-
if zSliceCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7096-
return zSliceCmd.Val()
7097-
}
7098-
case CmdTypeZWithKey:
7099-
if zWithKeyCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7100-
return zWithKeyCmd.Val()
7101-
}
7102-
case CmdTypeScan:
7103-
if scanCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7104-
return scanCmd.Val()
7105-
}
7106-
case CmdTypeClusterSlots:
7107-
if clusterSlotsCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7108-
return clusterSlotsCmd.Val()
7109-
}
7110-
case CmdTypeGeoSearchLocation:
7111-
if geoSearchLocationCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7112-
return geoSearchLocationCmd.Val()
7113-
}
7114-
case CmdTypeGeoPos:
7115-
if geoPosCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7116-
return geoPosCmd.Val()
7117-
}
7118-
case CmdTypeCommandsInfo:
7119-
if commandsInfoCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7120-
return commandsInfoCmd.Val()
7121-
}
7122-
case CmdTypeSlowLog:
7123-
if slowLogCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7124-
return slowLogCmd.Val()
7125-
}
7126-
7127-
case CmdTypeKeyValues:
7128-
if keyValuesCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7129-
return keyValuesCmd.Val()
7130-
}
7131-
case CmdTypeZSliceWithKey:
7132-
if zSliceWithKeyCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7133-
return zSliceWithKeyCmd.Val()
7134-
}
7135-
case CmdTypeFunctionList:
7136-
if functionListCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7137-
return functionListCmd.Val()
7138-
}
7139-
case CmdTypeFunctionStats:
7140-
if functionStatsCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7141-
return functionStatsCmd.Val()
7142-
}
7143-
case CmdTypeLCS:
7144-
if lcsCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7145-
return lcsCmd.Val()
7146-
}
7147-
case CmdTypeKeyFlags:
7148-
if keyFlagsCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7149-
return keyFlagsCmd.Val()
7150-
}
7151-
case CmdTypeClusterLinks:
7152-
if clusterLinksCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7153-
return clusterLinksCmd.Val()
7154-
}
7155-
case CmdTypeClusterShards:
7156-
if clusterShardsCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7157-
return clusterShardsCmd.Val()
7158-
}
7159-
case CmdTypeRankWithScore:
7160-
if rankWithScoreCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7161-
return rankWithScoreCmd.Val()
7162-
}
7163-
case CmdTypeClientInfo:
7164-
if clientInfoCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7165-
return clientInfoCmd.Val()
7166-
}
7167-
case CmdTypeACLLog:
7168-
if aclLogCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7169-
return aclLogCmd.Val()
7170-
}
7171-
case CmdTypeInfo:
7172-
if infoCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7173-
return infoCmd.Val()
7174-
}
7175-
case CmdTypeMonitor:
7176-
if monitorCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7177-
return monitorCmd.Val()
7178-
}
7179-
case CmdTypeJSON:
7180-
if jsonCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7181-
return jsonCmd.Val()
7182-
}
7183-
case CmdTypeJSONSlice:
7184-
if jsonSliceCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7185-
return jsonSliceCmd.Val()
7186-
}
7187-
case CmdTypeIntPointerSlice:
7188-
if intPointerSliceCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7189-
return intPointerSliceCmd.Val()
7190-
}
7191-
case CmdTypeScanDump:
7192-
if scanDumpCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7193-
return scanDumpCmd.Val()
7194-
}
7195-
case CmdTypeBFInfo:
7196-
if bfInfoCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7197-
return bfInfoCmd.Val()
7198-
}
7199-
case CmdTypeCFInfo:
7200-
if cfInfoCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7201-
return cfInfoCmd.Val()
7202-
}
7203-
case CmdTypeCMSInfo:
7204-
if cmsInfoCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7205-
return cmsInfoCmd.Val()
7206-
}
7207-
case CmdTypeTopKInfo:
7208-
if topKInfoCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7209-
return topKInfoCmd.Val()
7210-
}
7211-
case CmdTypeTDigestInfo:
7212-
if tDigestInfoCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7213-
return tDigestInfoCmd.Val()
7214-
}
7215-
case CmdTypeFTSearch:
7216-
if ftSearchCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7217-
return ftSearchCmd.Val()
7218-
}
7219-
case CmdTypeFTInfo:
7220-
if ftInfoCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7221-
return ftInfoCmd.Val()
7222-
}
7223-
case CmdTypeFTSpellCheck:
7224-
if ftSpellCheckCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7225-
return ftSpellCheckCmd.Val()
7226-
}
7227-
case CmdTypeFTSynDump:
7228-
if ftSynDumpCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7229-
return ftSynDumpCmd.Val()
7230-
}
7231-
case CmdTypeAggregate:
7232-
if aggregateCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7233-
return aggregateCmd.Val()
7234-
}
7235-
case CmdTypeTSTimestampValue:
7236-
if tsTimestampValueCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7237-
return tsTimestampValueCmd.Val()
7238-
}
7239-
case CmdTypeTSTimestampValueSlice:
7240-
if tsTimestampValueSliceCmd, ok := cmd.(interface{ Val() interface{} }); ok {
7241-
return tsTimestampValueSliceCmd.Val()
7242-
}
72437057
default:
72447058
// For unknown command types, return nil
72457059
return nil

commands_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -665,13 +665,13 @@ var _ = Describe("Commands", func() {
665665

666666
cmd := cmds["touch"]
667667
Expect(cmd.Name).To(Equal("touch"))
668-
Expect(cmd.Tips.Request).To(Equal(routing.ReqMultiShard))
669-
Expect(cmd.Tips.Response).To(Equal(routing.RespAggSum))
668+
Expect(cmd.CommandPolicy.Request).To(Equal(routing.ReqMultiShard))
669+
Expect(cmd.CommandPolicy.Response).To(Equal(routing.RespAggSum))
670670

671671
cmd = cmds["flushall"]
672672
Expect(cmd.Name).To(Equal("flushall"))
673-
Expect(cmd.Tips.Request).To(Equal(routing.ReqAllShards))
674-
Expect(cmd.Tips.Response).To(Equal(routing.RespAllSucceeded))
673+
Expect(cmd.CommandPolicy.Request).To(Equal(routing.ReqAllShards))
674+
Expect(cmd.CommandPolicy.Response).To(Equal(routing.RespAllSucceeded))
675675
})
676676

677677
It("should return all command names", func() {

0 commit comments

Comments
 (0)