int *getKeysFromCommand(struct redisCommand *cmd,robj **argv, int argc, int *numkeys, int flags) { if (cmd->getkeys_proc) { return cmd->getkeys_proc(cmd,argv,argc,numkeys,flags); } else { return getKeysUsingCommandTable(cmd,argv,argc,numkeys); } }
int *noPreloadGetKeys(struct redisCommand *cmd,robj **argv, int argc, int *numkeys, int flags) { if (flags & REDIS_GETKEYS_PRELOAD) { *numkeys = 0; return NULL; } else { return getKeysUsingCommandTable(cmd,argv,argc,numkeys); } }
/* Return all the arguments that are keys in the command passed via argc / argv. * * The command returns the positions of all the key arguments inside the array, * so the actual return value is an heap allocated array of integers. The * length of the array is returned by reference into *numkeys. * * 'cmd' must be point to the corresponding entry into the redisCommand * table, according to the command name in argv[0]. * * This function uses the command table if a command-specific helper function * is not required, otherwise it calls the command-specific function. */ int *getKeysFromCommand(struct redisCommand *cmd, robj **argv, int argc, int *numkeys) { if (cmd->flags & CMD_MODULE_GETKEYS) { return moduleGetCommandKeysViaAPI(cmd,argv,argc,numkeys); } else if (!(cmd->flags & CMD_MODULE) && cmd->getkeys_proc) { return cmd->getkeys_proc(cmd,argv,argc,numkeys); } else { return getKeysUsingCommandTable(cmd,argv,argc,numkeys); } }
int *renameGetKeys(struct redisCommand *cmd,robj **argv, int argc, int *numkeys, int flags) { if (flags & REDIS_GETKEYS_PRELOAD) { int *keys = zmalloc(sizeof(int)); *numkeys = 1; keys[0] = 1; return keys; } else { return getKeysUsingCommandTable(cmd,argv,argc,numkeys); } }
int *DXDB_getKeysFromCommand(rcommand *cmd, robj **argv, int argc, int *numkeys, int flags, sds *override_key, bool *err) { //printf("DXDB_getKeysFromCommand\n"); (void) override_key; (void) err; // compiler warnings #ifdef CLUSTER_VERSION if (cmd->proc == sqlSelectCommand || cmd->proc == insertCommand || cmd->proc == updateCommand || cmd->proc == deleteCommand || cmd->proc == replaceCommand || cmd->proc == tscanCommand) { *numkeys = 0; *override_key = override_getKeysFromComm(cmd, argv, argc, err); return NULL; } #endif if (cmd->getkeys_proc) { return cmd->getkeys_proc(cmd, argv, argc, numkeys, flags); } else { return getKeysUsingCommandTable(cmd, argv, argc, numkeys); } }