From 3b37894c2045c70f8df0d43ffeb52c46ee3e9e24 Mon Sep 17 00:00:00 2001 From: wang Date: Tue, 20 Mar 2018 12:22:02 -0400 Subject: [PATCH] use IR for smol col annotations --- src/main/scala/is/hail/variant/MatrixTable.scala | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/scala/is/hail/variant/MatrixTable.scala b/src/main/scala/is/hail/variant/MatrixTable.scala index 4dab7bb858e..d4be5a6f8dd 100644 --- a/src/main/scala/is/hail/variant/MatrixTable.scala +++ b/src/main/scala/is/hail/variant/MatrixTable.scala @@ -1583,11 +1583,12 @@ class MatrixTable(val hc: HailContext, val ast: MatrixIR) { val irs = asts.flatMap { case (f, a) => a.toIR().map((f, _)) } -// if (irs.length == asts.length) { -// val newEntries = ir.InsertFields(ir.Ref("g"), irs) -// -// new MatrixTable(hc, MapEntries(ast, newEntries)) -// } else { + val colValuesIsSmall = colType.size == 1 && colType.types.head.isOfType(TString()) + if (irs.length == asts.length && colValuesIsSmall) { + val newEntries = ir.InsertFields(ir.Ref("g"), irs) + + new MatrixTable(hc, MapEntries(ast, newEntries)) + } else { val (paths, types, f) = Parser.parseAnnotationExprs(expr, ec, Some(Annotation.ENTRY_HEAD)) @@ -1632,7 +1633,7 @@ class MatrixTable(val hc: HailContext, val ast: MatrixIR) { } rvb.endArray() }) -// } + } } def filterCols(p: (Annotation, Int) => Boolean): MatrixTable = {