class UnicastBackendHandler implements TextProtocolBackendHandler {

    @Override
    public BackendResponse execute() throws SQLException {
        if (null == backendConnection.getSchemaName()) {
            Map<String, ShardingSphereSchema> schemas = ProxyContext.getInstance().getSchemaContexts().getSchemas();
            if (schemas.isEmpty()) {
                throw new NoDatabaseSelectedException();
            }
            if (!schemas.values().iterator().next().isComplete()) {
                throw new RuleNotExistsException();
            }
            // TODO we should remove set default ShardingSphere schema after parser can recognize all DAL broadcast SQL.
            backendConnection.setCurrentSchema(schemas.keySet().iterator().next());
        }
        databaseCommunicationEngine = databaseCommunicationEngineFactory.newTextProtocolInstance(sqlStatement, sql, backendConnection);
        return databaseCommunicationEngine.execute();
    }

}