public String getColumnTypeName()

in java/org.apache.derby.client/org/apache/derby/client/am/ColumnMetaData.java [528:618]


    public String getColumnTypeName(int column) throws SQLException {
        try
        {
            checkForClosedStatement();
            checkForValidColumnIndex(column);

            int jdbcType = types_[column - 1];
            // So these all come back zero for downlevel servers in PROTOCOL.
            // John is going to write some code to construct the sqlType_ array
            // based on the protocol types from the query descriptor.
            int sqlType = sqlType_[column - 1];

            switch (sqlType) {
            case DRDAConstants.DB2_SQLTYPE_BOOLEAN:
            case DRDAConstants.DB2_SQLTYPE_NBOOLEAN:
                return "BOOLEAN";
            case DRDAConstants.DB2_SQLTYPE_DATE:
            case DRDAConstants.DB2_SQLTYPE_NDATE:
                return "DATE";
            case DRDAConstants.DB2_SQLTYPE_TIME:
            case DRDAConstants.DB2_SQLTYPE_NTIME:
                return "TIME";
            case DRDAConstants.DB2_SQLTYPE_TIMESTAMP:
            case DRDAConstants.DB2_SQLTYPE_NTIMESTAMP:
                return "TIMESTAMP";
            case DRDAConstants.DB2_SQLTYPE_BLOB:
            case DRDAConstants.DB2_SQLTYPE_NBLOB:
                return "BLOB";
            case DRDAConstants.DB2_SQLTYPE_CLOB:
            case DRDAConstants.DB2_SQLTYPE_NCLOB:
                return "CLOB";
            case DRDAConstants.DB2_SQLTYPE_VARCHAR:
            case DRDAConstants.DB2_SQLTYPE_NVARCHAR:
                if (jdbcType == ClientTypes.VARBINARY) {
                    return "VARCHAR FOR BIT DATA";
                } else {
                    return "VARCHAR";
                }
            case DRDAConstants.DB2_SQLTYPE_CHAR:
            case DRDAConstants.DB2_SQLTYPE_NCHAR:
                if (jdbcType == ClientTypes.BINARY) {
                    return "CHAR FOR BIT DATA";
                } else {
                    return "CHAR";
                }
            case DRDAConstants.DB2_SQLTYPE_LONG:
            case DRDAConstants.DB2_SQLTYPE_NLONG:
                if (jdbcType == ClientTypes.LONGVARBINARY) {
                    return "LONG VARCHAR FOR BIT DATA";
                } else {
                    return "LONG VARCHAR";
                }
            case DRDAConstants.DB2_SQLTYPE_CSTR:
            case DRDAConstants.DB2_SQLTYPE_NCSTR:
                return "SBCS";
            case DRDAConstants.DB2_SQLTYPE_FLOAT:
            case DRDAConstants.DB2_SQLTYPE_NFLOAT:
                if (jdbcType == ClientTypes.DOUBLE) {
                    return "DOUBLE";
                }
                if (jdbcType == ClientTypes.REAL) {
                    return "REAL";
                }
            case DRDAConstants.DB2_SQLTYPE_DECIMAL:
            case DRDAConstants.DB2_SQLTYPE_NDECIMAL:
                return "DECIMAL";
            case DRDAConstants.DB2_SQLTYPE_BIGINT:
            case DRDAConstants.DB2_SQLTYPE_NBIGINT:
                return "BIGINT";
            case DRDAConstants.DB2_SQLTYPE_INTEGER:
            case DRDAConstants.DB2_SQLTYPE_NINTEGER:
                return "INTEGER";
            case DRDAConstants.DB2_SQLTYPE_SMALL:
            case DRDAConstants.DB2_SQLTYPE_NSMALL:
                return "SMALLINT";
            case DRDAConstants.DB2_SQLTYPE_NUMERIC:
            case DRDAConstants.DB2_SQLTYPE_NNUMERIC:
                return "NUMERIC";
            case DRDAConstants.DB2_SQLTYPE_FAKE_UDT:
            case DRDAConstants.DB2_SQLTYPE_FAKE_NUDT:
                return sqlUDTname_[ column - 1 ];
            default:
                throw new SqlException(logWriter_, 
                        new ClientMessageId (SQLState.UNSUPPORTED_TYPE));
            }
        }
        catch ( SqlException e )
        {
            throw e.getSQLException();
        }
    }