@Override public String getColumnTypeName(final int column) throws SQLException { return resultSetMetaData.getColumnTypeName(column); }
@Override public String getColumnTypeName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnTypeName(column); } catch (SQLException se) { throw new InvalidResultSetAccessException(se); } }
/**判断是否为JSON类型 * @param rsmd * @param position * @return */ @Override public boolean isJSONType(ResultSetMetaData rsmd, int position) { try { //TODO CHAR和JSON类型的字段,getColumnType返回值都是1 ,如果不用CHAR,改用VARCHAR,则可以用上面这行来提高性能。 //return rsmd.getColumnType(position) == 1; return rsmd.getColumnTypeName(position).toLowerCase().contains("json"); } catch (SQLException e) { e.printStackTrace(); } return false; }
/** * Get the SQL type from the result set meta data for the given column. This * method uses the SQL type and type name. * * @param meta the meta data * @param columnIndex the column index (1, 2,...) * @return the value type */ public static int getValueTypeFromResultSet(ResultSetMetaData meta, int columnIndex) throws SQLException { return convertSQLTypeToValueType( meta.getColumnType(columnIndex), meta.getColumnTypeName(columnIndex)); }
throw new TypeMismatchDataAccessException( "Type mismatch affecting row number " + rowNum + " and column type '" + rsmd.getColumnTypeName(1) + "': " + ex.getMessage());
@Override public String resultSetMetaData_getColumnTypeName(ResultSetMetaDataProxy metaData, int column) throws SQLException { if (this.pos < filterSize) { return nextFilter() .resultSetMetaData_getColumnTypeName(this, metaData, column); } return metaData.getResultSetMetaDataRaw() .getColumnTypeName(column); }
@Test public void test_COLUMN_NAME_hasRightTypeString() throws SQLException { assertThat( rowsMetadata.getColumnTypeName( 4 ), equalTo( "CHARACTER VARYING" ) ); }
@Override @Test public void test_SOURCE_DATA_TYPE_hasRightTypeString() throws SQLException { assertThat( rowsMetadata.getColumnTypeName( 22 ), equalTo( "INTEGER" ) ); }
@Test public void test_TYPE_NAME_hasRightTypeString() throws SQLException { assertThat( rowsMetadata.getColumnTypeName( 6 ), equalTo( "CHARACTER VARYING" ) ); }
@Test public void test_IS_NULLABLE_hasRightTypeString() throws SQLException { assertThat( rowsMetadata.getColumnTypeName( 18 ), equalTo( "CHARACTER VARYING" ) ); }
@Test public void test_SCOPE_SCHEMA_hasRightTypeString() throws SQLException { assertThat( rowsMetadata.getColumnTypeName( 20 ), equalTo( "CHARACTER VARYING" ) ); }
@Test public void test_COLUMN_DEFAULT_hasRightTypeString() throws SQLException { assertThat( rowsMetadata.getColumnTypeName( 6 ), equalTo( "CHARACTER VARYING" ) ); }
@Test public void test_getColumnTypeName_forINTEGER() throws SQLException { assertThat( rowMetadata.getColumnTypeName( ordReqINTEGER ), equalTo( "INTEGER" ) ); }
@Test public void test_COLUMN_DEF_hasRightTypeString() throws SQLException { assertThat( rowsMetadata.getColumnTypeName( 13 ), equalTo( "CHARACTER VARYING" ) ); }
@Test public void test_IS_AUTOINCREMENT_hasRightTypeString() throws SQLException { assertThat( rowsMetadata.getColumnTypeName( 23 ), equalTo( "CHARACTER VARYING" ) ); }
@Test public void test_getColumnTypeName_forBOOLEAN() throws SQLException { assertThat( rowMetadata.getColumnTypeName( ordOptBOOLEAN ), equalTo( "BOOLEAN" ) ); }
@Test public void test_getColumnTypeName_forFLOAT() throws SQLException { assertThat( rowMetadata.getColumnTypeName( ordReqFLOAT ), equalTo( "FLOAT" ) ); }
@Test public void test_getColumnTypeName_forDATE() throws SQLException { assertThat( rowMetadata.getColumnTypeName( ordReqDATE ), equalTo( "DATE" ) ); }
@Ignore( "TODO(DRILL-3367): unignore when DECIMAL is no longer DOUBLE" ) @Test public void test_getColumnTypeName_forDECIMAL_5_3() throws SQLException { assertThat( rowMetadata.getColumnTypeName( ordReqDECIMAL_5_3 ), equalTo( "DECIMAL" ) ); }
@Ignore( "TODO(DRILL-3368): unignore when VARBINARY is implemented enough" ) @Test public void test_getColumnTypeName_forVARBINARY() throws SQLException { assertThat( rowMetadata.getColumnTypeName( ordOptVARBINARY_16 ), equalTo( "BINARY VARYING" ) ); }