Java Code Examples for java.sql.ResultSetMetaData#columnNullable()
The following examples show how to use
java.sql.ResultSetMetaData#columnNullable() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: JDBCAvroRegistry.java From components with Apache License 2.0 | 6 votes |
protected Schema inferSchemaResultSetMetaData(ResultSetMetaData metadata) throws SQLException { List<Field> fields = new ArrayList<>(); int count = metadata.getColumnCount(); for (int i = 1; i <= count; i++) { int size = metadata.getPrecision(i); int scale = metadata.getScale(i); boolean nullable = ResultSetMetaData.columnNullable == metadata.isNullable(i); int dbtype = metadata.getColumnType(i); String fieldName = metadata.getColumnLabel(i); String dbColumnName = metadata.getColumnName(i); // not necessary for the result schema from the query statement boolean isKey = false; Field field = sqlType2Avro(size, scale, dbtype, nullable, fieldName, dbColumnName, null, isKey); fields.add(field); } return Schema.createRecord("DYNAMIC", null, null, false, fields); }
Example 2
Source File: RowSetMetaDataTests.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 5 votes |
@DataProvider(name = "validSetNullableValues") private Object[][] validSetNullableValues() { return new Object[][]{ {ResultSetMetaData.columnNoNulls}, {ResultSetMetaData.columnNullable}, {ResultSetMetaData.columnNullableUnknown} }; }
Example 3
Source File: ParadoxResultSetMetaData.java From paradoxdriver with GNU Lesser General Public License v3.0 | 5 votes |
/** * {@inheritDoc}. */ @Override public int isNullable(final int column) throws SQLException { final Column dto = this.getColumn(column); if (dto.isNullable()) { return ResultSetMetaData.columnNullable; } return ResultSetMetaData.columnNoNulls; }
Example 4
Source File: TdsCore.java From jTDS with GNU Lesser General Public License v2.1 | 5 votes |
/** * Process a TDS 5.0 result set packet. * * @throws IOException * @throws ProtocolException */ private void tds5ResultToken() throws IOException, ProtocolException { in.readShort(); // Packet length int colCnt = in.readShort(); columns = new ColInfo[colCnt]; rowData = new Object[colCnt]; tables = null; for (int colNum = 0; colNum < colCnt; ++colNum) { // // Get the column name // ColInfo col = new ColInfo(); int colNameLen = in.read(); col.realName = in.readNonUnicodeString(colNameLen); col.name = col.realName; int column_flags = in.read(); /* Flags */ col.isCaseSensitive = false; col.nullable = ((column_flags & 0x20) != 0)? ResultSetMetaData.columnNullable: ResultSetMetaData.columnNoNulls; col.isWriteable = (column_flags & 0x10) != 0; col.isIdentity = (column_flags & 0x40) != 0; col.isKey = (column_flags & 0x02) != 0; col.isHidden = (column_flags & 0x01) != 0; col.userType = in.readInt(); TdsData.readType(in, col); // Skip locale information in.skip(1); columns[colNum] = col; } endOfResults = false; }
Example 5
Source File: RowSetMetaDataTests.java From jdk8u_jdk with GNU General Public License v2.0 | 5 votes |
@DataProvider(name = "validSetNullableValues") private Object[][] validSetNullableValues() { return new Object[][]{ {ResultSetMetaData.columnNoNulls}, {ResultSetMetaData.columnNullable}, {ResultSetMetaData.columnNullableUnknown} }; }
Example 6
Source File: RowSetMetaDataTests.java From hottub with GNU General Public License v2.0 | 5 votes |
@DataProvider(name = "validSetNullableValues") private Object[][] validSetNullableValues() { return new Object[][]{ {ResultSetMetaData.columnNoNulls}, {ResultSetMetaData.columnNullable}, {ResultSetMetaData.columnNullableUnknown} }; }
Example 7
Source File: SchemaInferer.java From components with Apache License 2.0 | 5 votes |
public static Schema infer(ResultSetMetaData metadata, Dbms mapping, boolean enableSpecialTableName) throws SQLException { List<Field> fields = new ArrayList<>(); Set<String> existNames = new HashSet<String>(); int index = 0; int count = metadata.getColumnCount(); for (int i = 1; i <= count; i++) { int size = metadata.getPrecision(i); int scale = metadata.getScale(i); boolean nullable = ResultSetMetaData.columnNullable == metadata.isNullable(i); int dbtype = metadata.getColumnType(i); String fieldName = metadata.getColumnLabel(i); String dbColumnName = metadata.getColumnName(i); // not necessary for the result schema from the query statement boolean isKey = false; String columnTypeName = metadata.getColumnTypeName(i).toUpperCase(); String validName = NameUtil.correct(fieldName, index++, existNames); existNames.add(validName); Field field = sqlType2Avro(size, scale, dbtype, nullable, validName, dbColumnName, null, isKey, mapping, columnTypeName); if(enableSpecialTableName && !validName.equals(dbColumnName)){ field.addProp(ENABLE_SPECIAL_TABLENAME,"true"); } fields.add(field); } return Schema.createRecord("DYNAMIC", null, null, false, fields); }
Example 8
Source File: RowSetMetaDataTests.java From openjdk-jdk8u with GNU General Public License v2.0 | 5 votes |
@DataProvider(name = "validSetNullableValues") private Object[][] validSetNullableValues() { return new Object[][]{ {ResultSetMetaData.columnNoNulls}, {ResultSetMetaData.columnNullable}, {ResultSetMetaData.columnNullableUnknown} }; }
Example 9
Source File: ClickHouseRowSerializer.java From clickhouse-jdbc-bridge with Apache License 2.0 | 5 votes |
public static ClickHouseRowSerializer create(ResultSetMetaData meta) throws SQLException { ClickHouseRowSerializer serializer = new ClickHouseRowSerializer(); for (int i = 1; i <= meta.getColumnCount(); i++) { int precision = meta.getPrecision(i); int scale = meta.getScale(i); ExtractorConverter<?> ser = ClickHouseConverter.getSerializerBySQLType(meta.getColumnType(i), precision, scale); boolean isNullable = meta.isNullable(i) == ResultSetMetaData.columnNullable; ClickHouseFieldSerializer<?> fieldSerializer = new ClickHouseFieldSerializer<>(isNullable, ser); serializer.add(fieldSerializer); } return serializer; }
Example 10
Source File: TajoResultSetMetaData.java From incubator-tajo with Apache License 2.0 | 4 votes |
@Override public int isNullable(int column) throws SQLException { return ResultSetMetaData.columnNullable; }
Example 11
Source File: TdsCore.java From jTDS with GNU Lesser General Public License v2.1 | 4 votes |
/** * Process a TDS 4.2 column format token. * * @throws IOException * @throws ProtocolException */ private void tds4ColFormatToken() throws IOException, ProtocolException { final int pktLen = in.readShort(); int bytesRead = 0; int numColumns = 0; while (bytesRead < pktLen) { if (numColumns > columns.length) { throw new ProtocolException("Too many columns in TDS_COL_FMT packet"); } ColInfo col = columns[numColumns]; if (serverType == Driver.SQLSERVER) { col.userType = in.readShort(); int flags = in.readShort(); col.nullable = ((flags & 0x01) != 0)? ResultSetMetaData.columnNullable: ResultSetMetaData.columnNoNulls; col.isCaseSensitive = (flags & 0x02) != 0; col.isWriteable = (flags & 0x0C) != 0; col.isIdentity = (flags & 0x10) != 0; } else { // Sybase does not send column flags col.isCaseSensitive = false; col.isWriteable = true; if (col.nullable == ResultSetMetaData.columnNoNulls) { col.nullable = ResultSetMetaData.columnNullableUnknown; } col.userType = in.readInt(); } bytesRead += 4; bytesRead += TdsData.readType(in, col); numColumns++; } if (numColumns != columns.length) { throw new ProtocolException("Too few columns in TDS_COL_FMT packet"); } endOfResults = false; }
Example 12
Source File: CassandraColumnDefinition.java From cassandra-jdbc-driver with Apache License 2.0 | 4 votes |
public int isNullable() { return ResultSetMetaData.columnNullable; }
Example 13
Source File: PhoenixResultSetMetaData.java From phoenix with Apache License 2.0 | 4 votes |
@Override public int isNullable(int column) throws SQLException { return rowProjector.getColumnProjector(column-1).getExpression().isNullable() ? ResultSetMetaData.columnNullable : ResultSetMetaData.columnNoNulls; }
Example 14
Source File: TdsCore.java From jTDS with GNU Lesser General Public License v2.1 | 4 votes |
/** * Process TDS 5 Dynamic results parameter descriptors. * <p> * With Sybase 12+ this has been superseded by the TDS5_PARAMFMT2_TOKEN * except when used to return extended error information. * * @throws IOException * @throws ProtocolException */ private void tds5ParamFmtToken() throws IOException, ProtocolException { in.readShort(); // Packet length int paramCnt = in.readShort(); ColInfo[] params = new ColInfo[paramCnt]; for (int i = 0; i < paramCnt; i++) { // // Get the parameter details using the // ColInfo class as the server format is the same. // ColInfo col = new ColInfo(); int colNameLen = in.read(); col.realName = in.readNonUnicodeString(colNameLen); int column_flags = in.read(); /* Flags */ col.isCaseSensitive = false; col.nullable = ((column_flags & 0x20) != 0)? ResultSetMetaData.columnNullable: ResultSetMetaData.columnNoNulls; col.isWriteable = (column_flags & 0x10) != 0; col.isIdentity = (column_flags & 0x40) != 0; col.isKey = (column_flags & 0x02) != 0; col.isHidden = (column_flags & 0x01) != 0; col.userType = in.readInt(); if ((byte)in.peek() == TDS_DONE_TOKEN) { // Sybase 11.92 bug data type missing! currentToken.dynamParamInfo = null; currentToken.dynamParamData = null; // error trapped in sybasePrepare(); messages.addDiagnostic(9999, 0, 16, "Prepare failed", "", "", 0); return; // Give up } TdsData.readType(in, col); // Skip locale information in.skip(1); params[i] = col; } currentToken.dynamParamInfo = params; currentToken.dynamParamData = new Object[paramCnt]; }
Example 15
Source File: TajoResultSetMetaData.java From tajo with Apache License 2.0 | 4 votes |
@Override public int isNullable(int column) throws SQLException { return ResultSetMetaData.columnNullable; }
Example 16
Source File: ESResultSetMetaData.java From sql4es with Apache License 2.0 | 4 votes |
@Override public int isNullable(int column) throws SQLException { return ResultSetMetaData.columnNullable; }
Example 17
Source File: TdsCore.java From jTDS with GNU Lesser General Public License v2.1 | 4 votes |
/** * Process Sybase 12+ wide result token which provides enhanced * column meta data. * * @throws IOException */ private void tds5WideResultToken() throws IOException, ProtocolException { in.readInt(); // Packet length int colCnt = in.readShort(); columns = new ColInfo[colCnt]; rowData = new Object[colCnt]; tables = null; for (int colNum = 0; colNum < colCnt; ++colNum) { ColInfo col = new ColInfo(); // // Get the alias name // int nameLen = in.read(); col.name = in.readNonUnicodeString(nameLen); // // Get the catalog name // nameLen = in.read(); col.catalog = in.readNonUnicodeString(nameLen); // // Get the schema name // nameLen = in.read(); col.schema = in.readNonUnicodeString(nameLen); // // Get the table name // nameLen = in.read(); col.tableName = in.readNonUnicodeString(nameLen); // // Get the column name // nameLen = in.read(); col.realName = in.readNonUnicodeString(nameLen); if (col.name == null || col.name.length() == 0) { col.name = col.realName; } int column_flags = in.readInt(); /* Flags */ col.isCaseSensitive = false; col.nullable = ((column_flags & 0x20) != 0)? ResultSetMetaData.columnNullable: ResultSetMetaData.columnNoNulls; col.isWriteable = (column_flags & 0x10) != 0; col.isIdentity = (column_flags & 0x40) != 0; col.isKey = (column_flags & 0x02) != 0; col.isHidden = (column_flags & 0x01) != 0; col.userType = in.readInt(); TdsData.readType(in, col); // Skip locale information in.skip(1); columns[colNum] = col; } endOfResults = false; }
Example 18
Source File: Foorm.java From sakai with Educational Community License v2.0 | 4 votes |
/** * * @param table * @param formDefinition * @param vendor * @param md * @return */ public String[] formAdjustTable(String table, String[] formDefinition, String vendor, ResultSetMetaData md) { ArrayList<String> rv = new ArrayList<String>(); for (String formField : formDefinition) { Properties info = parseFormString(formField); String field = info.getProperty("field", null); String type = info.getProperty("type", null); if ( "header".equals(type) ) continue; String maxs = adjustMax(info.getProperty("maxlength", null)); int maxlength = 0; if (maxs != null) maxlength = (new Integer(maxs)).intValue(); if (maxlength < 1) maxlength = 80; String sqlType = null; boolean autoIncrement = false; int sqlLength = -1; boolean isNullable = false; try { for( int i = 1; i <= md.getColumnCount(); i++ ) { if ( field.equalsIgnoreCase(md.getColumnLabel(i)) ) { sqlLength = md.getColumnDisplaySize(i); autoIncrement = md.isAutoIncrement(i); sqlType = getSuperType(md.getColumnClassName(i)); isNullable = (md.isNullable(i) == ResultSetMetaData.columnNullable); break; } } } catch(Exception e) { // ignore } log.debug("{} ({}) type={}", field, maxlength, type); log.debug("{} ({}) auto={} type={} null={}", field, sqlLength, autoIncrement, sqlType, isNullable); // If the field is not there... if ( sqlType == null ) { if ( "oracle".equals(vendor) ) { rv.add("ALTER TABLE "+table+" ADD ( " + formSql(formField, vendor) + " )"); } else if ( "mysql".equals(vendor) ) { rv.add("ALTER TABLE "+table+" ADD " + formSql(formField, vendor)); } else { rv.add("ALTER TABLE "+table+" ADD COLUMN " + formSql(formField, vendor)); } continue; } String ff = formSql(formField, vendor); // BLTI-220, BLTI-238 - Required will be enforced in software - not the DB boolean shouldAlter = false; if ("key".equals(type)) { if ( ! NUMBER_TYPE.equals(sqlType) ) log.warn("{} must be Integer and Auto Increment", field); } else if ("autodate".equals(type)) { } else if ("url".equals(type) || "text".equals(type) || "textarea".equals(type)) { if ( "oracle.sql.CLOB".equals(sqlType) || "oracle.jdbc.OracleClob".equals(sqlType) ) continue; // CLOBS large enough :) if ( ! STRING_TYPE.equals(sqlType)) { log.warn("{} must be String field", field); continue; } if ( sqlLength < maxlength ) shouldAlter = true; if ( ! isNullable ) shouldAlter = true; // BLTI-220, BLTI-238 // shouldAlter = true; // Temporary SAK-31695 to force ALTER statements to be emitted } else if ("radio".equals(type) || "checkbox".equals(type) || "integer".equals(type) ) { if ( NUMBER_TYPE.equals(sqlType)) continue; log.warn("{} must be Integer field", field); } if ( shouldAlter ) { if ( "oracle".equals(vendor) ) { rv.add("ALTER TABLE "+table+" MODIFY ( " + ff + " )"); } else if ( "mysql".equals(vendor) ) { rv.add("ALTER TABLE "+table+" MODIFY " + ff); } else { rv.add("ALTER TABLE "+table+" ALTER COLUMN " + ff); } } } return rv.toArray(new String[rv.size()]); }
Example 19
Source File: PhoenixParameterMetaData.java From phoenix with Apache License 2.0 | 4 votes |
@Override public int isNullable(int index) throws SQLException { return getParam(index).isNullable() ? ResultSetMetaData.columnNullable : ResultSetMetaData.columnNoNulls; }
Example 20
Source File: DataTypeUtilities.java From gemfirexd-oss with Apache License 2.0 | 2 votes |
/** * Is the data type nullable. * * @param dtd * data type descriptor */ public static int isNullable(DataTypeDescriptor dtd) { return dtd.isNullable() ? ResultSetMetaData.columnNullable : ResultSetMetaData.columnNoNulls; }