List of usage examples for java.sql DatabaseMetaData attributeNoNulls
short attributeNoNulls
To view the source code for java.sql DatabaseMetaData attributeNoNulls.
Click Source Link
NULL
values might not be allowed. From source file:net.starschema.clouddb.jdbc.BQDatabaseMetadata.java
private String nullableAsInt(String mode) { if (mode == null) { return String.valueOf(DatabaseMetaData.attributeNullableUnknown); }/*from w w w.j a va 2 s . co m*/ if ("NULLABLE".equals(mode)) { return String.valueOf(DatabaseMetaData.attributeNullable); } if ("REQUIRED".equals(mode)) { return String.valueOf(DatabaseMetaData.attributeNoNulls); } if ("REPEATED".equals(mode)) { return String.valueOf(DatabaseMetaData.attributeNullableUnknown); } return String.valueOf(DatabaseMetaData.attributeNullableUnknown); }
From source file:org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.java
@Override public ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException { StringBuilder buf = new StringBuilder("select \n " + TENANT_ID + " " + TABLE_CAT + "," + // use this for tenant id TABLE_SCHEM + "," + TABLE_NAME + " ," + COLUMN_NAME + "," + ExternalSqlTypeIdFunction.NAME + "(" + DATA_TYPE + ") AS " + DATA_TYPE + "," + SqlTypeNameFunction.NAME + "(" + DATA_TYPE + ") AS " + TYPE_NAME + "," + COLUMN_SIZE + "," + BUFFER_LENGTH + "," + DECIMAL_DIGITS + "," + NUM_PREC_RADIX + "," + NULLABLE + "," + COLUMN_DEF + "," + SQL_DATA_TYPE + "," + SQL_DATETIME_SUB + "," + CHAR_OCTET_LENGTH + "," + "CASE WHEN " + TENANT_POS_SHIFT + " THEN " + ORDINAL_POSITION + "-1 ELSE " + ORDINAL_POSITION + " END AS " + ORDINAL_POSITION + "," + "CASE " + NULLABLE + " WHEN " + DatabaseMetaData.attributeNoNulls + " THEN '" + Boolean.FALSE.toString() + "' WHEN " + DatabaseMetaData.attributeNullable + " THEN '" + Boolean.TRUE.toString() + "' END AS " + IS_NULLABLE + "," + SCOPE_CATALOG + "," + SCOPE_SCHEMA + "," + SCOPE_TABLE + "," + SOURCE_DATA_TYPE + "," + IS_AUTOINCREMENT + "," + ARRAY_SIZE + "," + COLUMN_FAMILY + "," + DATA_TYPE + " " + TYPE_ID + "," + // raw type id for potential internal consumption VIEW_CONSTANT + "," + MULTI_TENANT + "," + "CASE WHEN " + TENANT_POS_SHIFT + " THEN " + KEY_SEQ + "-1 ELSE " + KEY_SEQ + " END AS " + KEY_SEQ + " from " + SYSTEM_CATALOG + " " + SYSTEM_CATALOG_ALIAS + "(" + TENANT_POS_SHIFT + " BOOLEAN)"); StringBuilder where = new StringBuilder(); addTenantIdFilter(where, catalog);/*ww w . j av a 2 s . c om*/ if (schemaPattern != null) { appendConjunction(where); where.append(TABLE_SCHEM + (schemaPattern.length() == 0 ? " is null" : " like '" + escapePattern(schemaPattern) + "'")); } if (tableNamePattern != null && tableNamePattern.length() > 0) { appendConjunction(where); where.append(TABLE_NAME + " like '" + escapePattern(tableNamePattern) + "'"); } // Allow a "." in columnNamePattern for column family match String colPattern = null; if (columnNamePattern != null && columnNamePattern.length() > 0) { String cfPattern = null; int index = columnNamePattern.indexOf('.'); if (index <= 0) { colPattern = columnNamePattern; } else { cfPattern = columnNamePattern.substring(0, index); if (columnNamePattern.length() > index + 1) { colPattern = columnNamePattern.substring(index + 1); } } if (cfPattern != null && cfPattern.length() > 0) { // if null or empty, will pick up all columns // Will pick up only KV columns appendConjunction(where); where.append(COLUMN_FAMILY + " like '" + escapePattern(cfPattern) + "'"); } if (colPattern != null && colPattern.length() > 0) { appendConjunction(where); where.append(COLUMN_NAME + " like '" + escapePattern(colPattern) + "'"); } } if (colPattern == null) { appendConjunction(where); where.append(COLUMN_NAME + " is not null"); } boolean isTenantSpecificConnection = connection.getTenantId() != null; if (isTenantSpecificConnection) { buf.append(" where (" + where + ") OR (" + COLUMN_FAMILY + " is null AND " + COLUMN_NAME + " is null)"); } else { buf.append(" where " + where); } buf.append(" order by " + TENANT_ID + "," + TABLE_SCHEM + "," + TABLE_NAME + "," + SYSTEM_CATALOG_ALIAS + "." + ORDINAL_POSITION); Statement stmt; if (isTenantSpecificConnection) { stmt = connection.createStatement(new PhoenixStatementFactory() { @Override public PhoenixStatement newStatement(PhoenixConnection connection) { return new PhoenixStatement(connection) { @Override protected PhoenixResultSet newResultSet(ResultIterator iterator, RowProjector projector) throws SQLException { return new PhoenixResultSet(new TenantColumnFilteringIterator(iterator, projector), projector, this); } }; } }); } else { stmt = connection.createStatement(); } return stmt.executeQuery(buf.toString()); }