コード例 #1
0
ファイル: OrderByScope.java プロジェクト: jacques-n/optiq
 public RelDataType resolveColumn(String name, SqlNode ctx) {
   final SqlValidatorNamespace selectNs = validator.getNamespace(select);
   final RelDataType rowType = selectNs.getRowType();
   final RelDataTypeField field = validator.catalogReader.field(rowType, name);
   if (field != null) {
     return field.getType();
   }
   final SqlValidatorScope selectScope = validator.getSelectScope(select);
   return selectScope.resolveColumn(name, ctx);
 }
コード例 #2
0
ファイル: SqlValidatorUtil.java プロジェクト: jacques-n/optiq
 /**
  * Resolves a multi-part identifier such as "SCHEMA.EMP.EMPNO" to a namespace. The returned
  * namespace may represent a schema, table, column, etc.
  *
  * @pre names.size() > 0
  * @post return != null
  */
 public static SqlValidatorNamespace lookup(SqlValidatorScope scope, List<String> names) {
   Util.pre(names.size() > 0, "names.size() > 0");
   SqlValidatorNamespace namespace = null;
   for (int i = 0; i < names.size(); i++) {
     String name = names.get(i);
     if (i == 0) {
       namespace = scope.resolve(name, null, null);
     } else {
       namespace = namespace.lookupChild(name);
     }
   }
   Util.permAssert(namespace != null, "post: namespace != null");
   return namespace;
 }