diff --git a/src/main/java/org/apache/sysds/parser/DMLTranslator.java b/src/main/java/org/apache/sysds/parser/DMLTranslator.java index b0673be092e..4eff055dbdc 100644 --- a/src/main/java/org/apache/sysds/parser/DMLTranslator.java +++ b/src/main/java/org/apache/sysds/parser/DMLTranslator.java @@ -1686,11 +1686,13 @@ private Hop processIndexingExpression(IndexedIdentifier source, DataIdentifier t if (target == null) { target = createTarget(source); } + //unknown nnz after range indexing (applies to indexing op but also //data dependent operations) target.setNnz(-1); - Hop indexOp = new IndexingOp(target.getName(), target.getDataType(), target.getValueType(), + DataType dt = target.getDataType().isScalar() ? DataType.MATRIX : target.getDataType(); + Hop indexOp = new IndexingOp(target.getName(), dt, target.getValueType(), hops.get(source.getName()), ixRange[0], ixRange[1], ixRange[2], ixRange[3], source.getRowLowerEqualsUpper(), source.getColLowerEqualsUpper()); diff --git a/src/test/scripts/functions/rewrite/RewriteNonScalarPrint.dml b/src/test/scripts/functions/rewrite/RewriteNonScalarPrint.dml index cf4c3e79c2b..609cf4f1c7e 100644 --- a/src/test/scripts/functions/rewrite/RewriteNonScalarPrint.dml +++ b/src/test/scripts/functions/rewrite/RewriteNonScalarPrint.dml @@ -36,8 +36,7 @@ else if(type==3){ # standard list case print(A_list) } else if(type==4){ # slice row from matrix - A_row = A[1,] - print(A_row) # print(A[1,]) produces incorrect output + print(A[1,]) } else if(type==5){ # slice column from matrix A_col = A[,1]