/** String concatenation operator in executable SQL statement */
 public void operatorConcatSql(HplsqlParser.Expr_concatContext ctx) {
   StringBuilder sql = new StringBuilder();
   sql.append("CONCAT(");
   int cnt = ctx.expr_concat_item().size();
   for (int i = 0; i < cnt; i++) {
     sql.append(evalPop(ctx.expr_concat_item(i)).toString());
     if (i + 1 < cnt) {
       sql.append(", ");
     }
   }
   sql.append(")");
   exec.stackPush(sql);
 }
 /** String concatenation operator */
 public void operatorConcat(HplsqlParser.Expr_concatContext ctx) {
   StringBuilder val = new StringBuilder();
   int cnt = ctx.expr_concat_item().size();
   boolean nulls = true;
   for (int i = 0; i < cnt; i++) {
     Var c = evalPop(ctx.expr_concat_item(i));
     if (!c.isNull()) {
       val.append(c.toString());
       nulls = false;
     }
   }
   if (nulls) {
     evalNull();
   } else {
     evalString(val);
   }
 }