private void ComparePlan(string[] expectedCSV) { GroupByRollupPlanDesc plan = SupportGroupRollupPlanHook.Plan; var levels = plan.RollupDesc.Levels; var received = new string[levels.Length][]; for (var i = 0; i < levels.Length; i++) { var level = levels[i]; if (level.IsAggregationTop) { received[i] = new string[0]; } else { received[i] = new string[level.RollupKeys.Length]; for (var j = 0; j < received[i].Length; j++) { var key = level.RollupKeys[j]; received[i][j] = plan.Expressions[key].ToExpressionStringMinPrecedenceSafe(); } } } Assert.AreEqual(expectedCSV.Length, received.Length, "Received: " + ToCSV(received)); for (var i = 0; i < expectedCSV.Length; i++) { var receivedCSV = ToCSV(received[i]); Assert.AreEqual(expectedCSV[i], receivedCSV, "Failed at row " + i); } }
public void Query(GroupByRollupPlanDesc desc) { if (Plan != null) { throw new IllegalStateException(); } Plan = desc; }
public static void Reset() { plan = null; }