public int getFieldJdbcType(int fieldOrdinal) {
   RelDataType type = getFieldNamedType(fieldOrdinal);
   SqlTypeName typeName = type.getSqlTypeName();
   if (typeName == null) {
     return Types.OTHER;
   }
   return typeName.getJdbcOrdinal();
 }
 public RelDataType getFieldType(int fieldOrdinal) {
   RelDataType namedType = getFieldNamedType(fieldOrdinal);
   if (namedType.getSqlTypeName() == SqlTypeName.DISTINCT) {
     // for most metadata calls, report information about the
     // predefined type on which the distinct type is based
     return namedType.getFields()[0].getType();
   } else {
     return namedType;
   }
 }
 public int getFieldScale(int fieldOrdinal) {
   RelDataType type = getFieldType(fieldOrdinal);
   SqlTypeName typeName = type.getSqlTypeName();
   if (typeName == null) {
     return 0;
   }
   if (typeName.allowsPrecScale(true, true)) {
     return type.getScale();
   } else {
     return 0;
   }
 }
 public String getFieldTypeName(int fieldOrdinal) {
   RelDataType type = getFieldNamedType(fieldOrdinal);
   SqlTypeName typeName = type.getSqlTypeName();
   if (typeName == null) {
     return type.toString();
   }
   switch (typeName) {
     case STRUCTURED:
     case DISTINCT:
       return type.getSqlIdentifier().toString();
     case INTERVAL_DAY_TIME:
     case INTERVAL_YEAR_MONTH:
       return type.toString();
   }
   return typeName.name();
 }
 /**
  * Creates a FarragoJdbcMetaDataImpl.
  *
  * @param rowType Type info to return
  * @param fieldOrigins Origin of each field in column of catalog object
  */
 protected FarragoJdbcMetaDataImpl(RelDataType rowType, List<List<String>> fieldOrigins) {
   this.rowType = rowType;
   this.fieldOrigins = fieldOrigins;
   assert rowType != null;
   assert fieldOrigins != null;
   assert fieldOrigins.size() == rowType.getFieldCount()
       : "field origins " + fieldOrigins + " have different count than row type " + rowType;
 }
 public int getFieldCount() {
   return rowType.getFieldCount();
 }
 public String getFieldName(int fieldOrdinal) {
   return rowType.getFields()[fieldOrdinal - 1].getName();
 }
 public RelDataType getFieldNamedType(int fieldOrdinal) {
   return rowType.getFields()[fieldOrdinal - 1].getType();
 }
 public boolean isFieldSearchable(int fieldOrdinal) {
   RelDataType type = getFieldType(fieldOrdinal);
   return RelDataTypeComparability.None != type.getComparability();
 }
Example #10
0
 public int isFieldNullable(int fieldOrdinal) {
   RelDataType type = getFieldType(fieldOrdinal);
   return type.isNullable() ? ResultSetMetaData.columnNullable : ResultSetMetaData.columnNoNulls;
 }
Example #11
0
 public int getFieldPrecision(int fieldOrdinal) {
   RelDataType type = getFieldType(fieldOrdinal);
   return type.getPrecision();
 }