示例#1
0
 private void setupSelectListInputInfo() throws SemanticException {
   selectListInputTypeCheckCtx = new TypeCheckCtx(selectListInputRowResolver);
   selectListInputTypeCheckCtx.setUnparseTranslator(null);
   /*
    * create SelectListOI
    */
   selectListInputOI = PTFTranslator.getStandardStructOI(selectListInputRowResolver);
 }
示例#2
0
 public static ExprNodeDesc buildExprNode(ASTNode expr, TypeCheckCtx typeCheckCtx)
     throws SemanticException {
   // todo: use SemanticAnalyzer::genExprNodeDesc
   // currently SA not available to PTFTranslator.
   Map<ASTNode, ExprNodeDesc> map = TypeCheckProcFactory.genExprNode(expr, typeCheckCtx);
   ExprNodeDesc desc = map.get(expr);
   if (desc == null) {
     String errMsg = typeCheckCtx.getError();
     if (errMsg == null) {
       errMsg = "Error in parsing ";
     }
     throw new SemanticException(errMsg);
   }
   return desc;
 }
    @Override
    protected ExprNodeColumnDesc processQualifiedColRef(
        TypeCheckCtx ctx, ASTNode expr, Object... nodeOutputs) throws SemanticException {
      String tableAlias =
          BaseSemanticAnalyzer.unescapeIdentifier(expr.getChild(0).getChild(0).getText());
      // NOTE: tableAlias must be a valid non-ambiguous table alias,
      // because we've checked that in TOK_TABLE_OR_COL's process method.
      ColumnInfo colInfo =
          getColInfo(
              (JoinTypeCheckCtx) ctx,
              tableAlias,
              ((ExprNodeConstantDesc) nodeOutputs[1]).getValue().toString(),
              expr);

      if (colInfo == null) {
        ctx.setError(ErrorMsg.INVALID_COLUMN.getMsg(expr.getChild(1)), expr);
        return null;
      }
      return new ExprNodeColumnDesc(
          colInfo.getType(), colInfo.getInternalName(), tableAlias, colInfo.getIsVirtualCol());
    }