@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { Expression delimiterExpr = children.get(1); if (!delimiterExpr.evaluate(tuple, ptr)) { return false; } else if (ptr.getLength() == 0) { return true; } String delimiter = (String) delimiterExpr.getDataType().toObject(ptr, delimiterExpr.getSortOrder(), delimiterExpr.getMaxLength(), delimiterExpr.getScale()); Expression arrayExpr = children.get(0); if (!arrayExpr.evaluate(tuple, ptr)) { return false; } else if (ptr.getLength() == 0) { return true; } PhoenixArray array = (PhoenixArray) arrayExpr.getDataType().toObject(ptr, arrayExpr.getSortOrder(), arrayExpr.getMaxLength(), arrayExpr.getScale()); Expression nullExpr = children.get(2); String nullString = null; if (nullExpr.evaluate(tuple, ptr) && ptr.getLength() != 0) { nullString = (String) nullExpr.getDataType().toObject(ptr, nullExpr.getSortOrder(), nullExpr.getMaxLength(), nullExpr.getScale()); } return PArrayDataType.arrayToString(ptr, array, delimiter, nullString, getSortOrder()); }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { Expression delimiterExpr = children.get(1); if (!delimiterExpr.evaluate(tuple, ptr)) { return false; } else if (ptr.getLength() == 0) { return true; } String delimiter = (String) delimiterExpr.getDataType().toObject(ptr, delimiterExpr.getSortOrder(), delimiterExpr.getMaxLength(), delimiterExpr.getScale()); Expression arrayExpr = children.get(0); if (!arrayExpr.evaluate(tuple, ptr)) { return false; } else if (ptr.getLength() == 0) { return true; } PhoenixArray array = (PhoenixArray) arrayExpr.getDataType().toObject(ptr, arrayExpr.getSortOrder(), arrayExpr.getMaxLength(), arrayExpr.getScale()); Expression nullExpr = children.get(2); String nullString = null; if (nullExpr.evaluate(tuple, ptr) && ptr.getLength() != 0) { nullString = (String) nullExpr.getDataType().toObject(ptr, nullExpr.getSortOrder(), nullExpr.getMaxLength(), nullExpr.getScale()); } return PArrayDataType.arrayToString(ptr, array, delimiter, nullString, getSortOrder()); }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { Expression delimiterExpr = children.get(1); if (!delimiterExpr.evaluate(tuple, ptr)) { return false; } else if (ptr.getLength() == 0) { return true; } String delimiter = (String) delimiterExpr.getDataType().toObject(ptr, delimiterExpr.getSortOrder(), delimiterExpr.getMaxLength(), delimiterExpr.getScale()); Expression arrayExpr = children.get(0); if (!arrayExpr.evaluate(tuple, ptr)) { return false; } else if (ptr.getLength() == 0) { return true; } PhoenixArray array = (PhoenixArray) arrayExpr.getDataType().toObject(ptr, arrayExpr.getSortOrder(), arrayExpr.getMaxLength(), arrayExpr.getScale()); Expression nullExpr = children.get(2); String nullString = null; if (nullExpr.evaluate(tuple, ptr) && ptr.getLength() != 0) { nullString = (String) nullExpr.getDataType().toObject(ptr, nullExpr.getSortOrder(), nullExpr.getMaxLength(), nullExpr.getScale()); } return PArrayDataType.arrayToString(ptr, array, delimiter, nullString, getSortOrder()); }