public void ifNotInTransaction(SqlConsumer<? super Connection> action) throws SQLException { if (!inTransaction) { action.accept(connection); } }
/** * Returns the COLLATE fragment needed to make ORDER BY statements sort correctly, using default collation * @return the COLLATE fragment needed to make ORDER BY statements sort correctly, using default collation */ default SqlPredicateFragment getCollateFragment() { return of(""); }
protected Optional<Driver> driver(String driverName) { return drivers.driver(driverName); }
protected StringBinding defaultConnectionUrlProperty(T document, DbmsHandlerComponent dbmsHandlerComponent) { return Bindings.createStringBinding(() -> DatabaseUtil.findDbmsType(dbmsHandlerComponent, document).getConnectionUrlGenerator().from(document), document.typeNameProperty(), document.ipAddressProperty(), document.portProperty(), document.usernameProperty() ); } }
protected String encloseField(Dbms dbms, String fieldName) { return dbmsTypeOf(dbmsHandlerComponent, dbms).getDatabaseNamingConvention().encloseField(fieldName); }
@Override protected SqlPredicateFragment notEqualHelper(String cn, Object argument) { return of("(" + cn + " != ?)").add(argument); }
/** * Returns the full name used in the database for the specified * ColumnIdentifier. This is typically constructed by combining the schema, * table and column name with a separator, but that might be different in * different implementations. * * @param fieldIdentifier to use * @return the full name */ default String fullNameOf(ColumnIdentifier<?> fieldIdentifier) { return fullNameOf(fieldIdentifier.getSchemaId(), fieldIdentifier.getTableId(), fieldIdentifier.getColumnId()); }
default SqlPredicate<T> negate() { return t -> !test(t); }
protected JavaTypeMap newJavaTypeMap() { return JavaTypeMap.create(); }
@Override public void close() { consumed = true; try { ComposeRunnableUtil.composedRunnable(closeHandlers); } finally { asynchronousQueryResult.close(); } }
@Override public SqlPredicateFragment getCollateFragment() { return of(" COLLATE " + binaryCollationName); }
default Function<T, R> unWrap() { return t -> { try { return this.apply(t); } catch (SQLException sqle) { throw new SpeedmentException(sqle); } }; }
default Predicate<T> unWrap() { return t -> { try { return this.test(t); } catch (SQLException sqle) { throw new SpeedmentException(sqle); } }; }
public void ifInTransaction(SqlConsumer<? super Connection> action) throws SQLException { if (inTransaction) { action.accept(connection); } }
protected static SqlPredicateFragment of(String sql) { return SqlPredicateFragment.of(sql); }
private <T> Consumer<T> wrapSqlException(SqlConsumer<T> sqlConsumer, String label) { return (T t) -> { try { sqlConsumer.accept(t); } catch (SQLException sqle) { throw new TransactionException("Unable to " + label + ": " + t, sqle); } }; }
@Override public SqlPredicateFragment getCollateFragment() { return of(" COLLATE " + binaryCollationName); }
protected static SqlPredicateFragment of(String sql, Object object) { return SqlPredicateFragment.of(sql, object); }
protected static SqlPredicateFragment of(String sql, Collection<Object> objects) { return SqlPredicateFragment.of(sql, objects); }