@@ -480,31 +480,17 @@ void Dag_SetTensorInGlobalCtx(RedisAI_RunInfo *rinfo, size_t index, RAI_Tensor *
480
480
void RedisAI_DagRunSessionStep (RedisAI_RunInfo * rinfo , const char * devicestr ) {
481
481
RAI_DagOp * currentOp = RedisAI_DagCurrentOp (rinfo );
482
482
483
- switch (currentOp -> commandType ) {
484
- case REDISAI_DAG_CMD_TENSORSET : {
485
- // TENSORSET op is done in parsing stage (consider removing it from dag ops).
486
- currentOp -> result = REDISMODULE_OK ;
487
- break ;
488
- }
489
- case REDISAI_DAG_CMD_TENSORGET : {
490
- // TENSORSET op is done when we finish (consider removing it from dag ops).
491
- currentOp -> result = REDISMODULE_OK ;
492
- break ;
493
- }
494
- case REDISAI_DAG_CMD_MODELRUN : {
483
+ // Verify that the op type belongs to the DAGCommand enum.
484
+ VALIDATE_DAG_COMMAND (currentOp -> commandType )
485
+
486
+ if (currentOp -> commandType == REDISAI_DAG_CMD_MODELRUN ) {
495
487
RedisAI_DagRunSession_ModelRun_Step (rinfo , currentOp );
496
- break ;
497
- }
498
- case REDISAI_DAG_CMD_SCRIPTRUN : {
488
+ } else if (currentOp -> commandType == REDISAI_DAG_CMD_SCRIPTRUN ) {
499
489
RedisAI_DagRunSession_ScriptRun_Step (rinfo , currentOp );
500
- break ;
501
- }
502
- default : {
503
- /* unsupported DAG's command */
504
- RAI_SetError (currentOp -> err , RAI_EDAGRUN , "ERR unsupported command within DAG" );
505
- currentOp -> result = REDISMODULE_ERR ;
506
- break ;
507
- }
490
+ } else {
491
+ // do nothing for tensorset (executed on parsing) and for tensorget (done
492
+ // on dag reply).
493
+ return ;
508
494
}
509
495
510
496
if (currentOp -> result != REDISMODULE_OK ) {
@@ -568,26 +554,21 @@ int RedisAI_DagRun_Reply(RedisModuleCtx *ctx, RedisModuleString **argv, int argc
568
554
569
555
for (size_t i = 0 ; i < n_dagOps ; i ++ ) {
570
556
RAI_DagOp * currentOp = rinfo -> dagOps [i ];
557
+
571
558
switch (currentOp -> commandType ) {
572
559
case REDISAI_DAG_CMD_TENSORSET : {
573
560
rinfo -> dagReplyLength ++ ;
574
- if (currentOp -> result == REDISMODULE_ERR ) {
575
- RedisModule_ReplyWithError (ctx , currentOp -> err -> detail_oneline );
576
- dag_error = 1 ;
577
- } else if (currentOp -> result == -1 ) {
578
- RedisModule_ReplyWithSimpleString (ctx , "NA" );
579
- } else {
580
- RedisModule_ReplyWithSimpleString (ctx , "OK" );
581
- }
561
+ RedisModule_Assert (currentOp -> result == REDISMODULE_OK );
562
+ RedisModule_ReplyWithSimpleString (ctx , "OK" );
582
563
break ;
583
564
}
584
565
585
566
case REDISAI_DAG_CMD_TENSORGET : {
586
567
rinfo -> dagReplyLength ++ ;
587
- if (currentOp -> result == -1 ) {
568
+ RAI_Tensor * t = Dag_GetTensorFromGlobalCtx (rinfo , currentOp -> inkeys_indices [0 ]);
569
+ if (t == NULL ) {
588
570
RedisModule_ReplyWithSimpleString (ctx , "NA" );
589
571
} else {
590
- RAI_Tensor * t = Dag_GetTensorFromGlobalCtx (rinfo , currentOp -> inkeys_indices [0 ]);
591
572
ReplyWithTensor (ctx , currentOp -> fmt , t );
592
573
}
593
574
break ;
@@ -636,8 +617,7 @@ int RedisAI_DagRun_Reply(RedisModuleCtx *ctx, RedisModuleString **argv, int argc
636
617
break ;
637
618
}
638
619
default :
639
- /* no-op */
640
- break ;
620
+ RedisModule_Assert (false && "Dag reply - invalid op" );
641
621
}
642
622
}
643
623
if (dag_error ) {
0 commit comments