@InterfaceStability.Uncommitted @InterfaceAudience.Private public class N1qlQueryExecutor extends Object
Modifier and Type | Field and Description |
---|---|
static rx.functions.Func1<? super AsyncN1qlQueryResult,? extends rx.Observable<? extends N1qlQueryResult>> |
ASYNC_RESULT_TO_SYNC
A function that can be used in a flatMap to convert an
AsyncN1qlQueryResult to a N1qlQueryResult . |
static String |
ENCODED_PLAN_ENABLED_PROPERTY |
protected static String |
ERROR_5000_SPECIFIC_MESSAGE |
Modifier | Constructor and Description |
---|---|
|
N1qlQueryExecutor(ClusterFacade core,
String bucket,
String password)
Construct a new N1qlQueryExecutor that will send requests through the given
ClusterFacade . |
|
N1qlQueryExecutor(ClusterFacade core,
String bucket,
String password,
boolean encodedPlanEnabled)
Construct a new N1qlQueryExecutor that will send requests through the given
ClusterFacade . |
|
N1qlQueryExecutor(ClusterFacade core,
String bucket,
String username,
String password)
Construct a new N1qlQueryExecutor that will send requests through the given
ClusterFacade . |
|
N1qlQueryExecutor(ClusterFacade core,
String bucket,
String username,
String password,
boolean encodedPlanEnabled)
Construct a new N1qlQueryExecutor that will send requests through the given
ClusterFacade . |
protected |
N1qlQueryExecutor(ClusterFacade core,
String bucket,
String username,
String password,
LRUCache<String,PreparedPayload> lruCache,
boolean encodedPlanEnabled)
This constructor is for testing purpose, prefer using
N1qlQueryExecutor(ClusterFacade, String, String, String) . |
Modifier and Type | Method and Description |
---|---|
protected rx.Observable<AsyncN1qlQueryResult> |
dispatchPrepared(N1qlQuery query,
CouchbaseEnvironment env,
long timeout,
TimeUnit timeUnit) |
rx.Observable<AsyncN1qlQueryResult> |
execute(N1qlQuery query,
CouchbaseEnvironment env,
long timeout,
TimeUnit timeUnit) |
protected rx.Observable<AsyncN1qlQueryResult> |
executePrepared(N1qlQuery query,
PreparedPayload payload,
CouchbaseEnvironment env,
long timeout,
TimeUnit timeUnit)
Issues a proper N1QL EXECUTE, detecting if parameters must be added to it.
|
protected rx.Observable<AsyncN1qlQueryResult> |
executeQuery(N1qlQuery query,
CouchbaseEnvironment env,
long timeout,
TimeUnit timeUnit)
Internal: Queries a N1QL secondary index.
|
protected PreparedPayload |
extractPreparedPayloadFromResponse(PrepareStatement prepared,
JsonObject response)
Extracts the
PreparedPayload from the server's response during a PREPARE. |
int |
invalidateQueryCache()
Invalidates and clears the query cache.
|
boolean |
isEncodedPlanEnabled() |
protected rx.Observable<PreparedPayload> |
prepare(Statement statement)
Queries a N1QL secondary index and prepare an execution plan via the given
statement in
String form. |
protected rx.Observable<AsyncN1qlQueryResult> |
prepareAndExecute(N1qlQuery query,
CouchbaseEnvironment env,
long timeout,
TimeUnit timeUnit)
Issues a N1QL PREPARE, puts the plan in cache then EXECUTE it.
|
protected rx.Observable<AsyncN1qlQueryResult> |
retryPrepareAndExecuteOnce(Throwable error,
N1qlQuery query,
CouchbaseEnvironment env,
long timeout,
TimeUnit timeUnit)
In case the error warrants a retry, issue a PREPARE, followed by an update
of the cache and an EXECUTE.
|
protected static final String ERROR_5000_SPECIFIC_MESSAGE
public static final String ENCODED_PLAN_ENABLED_PROPERTY
public static final rx.functions.Func1<? super AsyncN1qlQueryResult,? extends rx.Observable<? extends N1qlQueryResult>> ASYNC_RESULT_TO_SYNC
AsyncN1qlQueryResult
to a N1qlQueryResult
.public N1qlQueryExecutor(ClusterFacade core, String bucket, String username, String password)
ClusterFacade
. For queries that
are not ad-hoc, it will cache up to QUERY_CACHE_SIZE
queries.core
- the core through which to send requests.bucket
- the bucket to bootstrap from.username
- the user authorized for bucket access.password
- the password for the bucket.public N1qlQueryExecutor(ClusterFacade core, String bucket, String password)
ClusterFacade
. For queries that
are not ad-hoc, it will cache up to QUERY_CACHE_SIZE
queries.core
- the core through which to send requests.bucket
- the bucket to bootstrap from.password
- the password for the bucket.public N1qlQueryExecutor(ClusterFacade core, String bucket, String password, boolean encodedPlanEnabled)
ClusterFacade
. For queries that
are not ad-hoc, it will cache up to QUERY_CACHE_SIZE
queries.core
- the core through which to send requests.bucket
- the bucket to bootstrap from.password
- the password for the bucket.encodedPlanEnabled
- true to include an encoded plan when running prepared queries, false otherwise.public N1qlQueryExecutor(ClusterFacade core, String bucket, String username, String password, boolean encodedPlanEnabled)
ClusterFacade
. For queries that
are not ad-hoc, it will cache up to QUERY_CACHE_SIZE
queries.core
- the core through which to send requests.bucket
- the bucket to bootstrap from.username
- the user authorized for bucket access.password
- the password for the user.encodedPlanEnabled
- true to include an encoded plan when running prepared queries, false otherwise.protected N1qlQueryExecutor(ClusterFacade core, String bucket, String username, String password, LRUCache<String,PreparedPayload> lruCache, boolean encodedPlanEnabled)
N1qlQueryExecutor(ClusterFacade, String, String, String)
.public rx.Observable<AsyncN1qlQueryResult> execute(N1qlQuery query, CouchbaseEnvironment env, long timeout, TimeUnit timeUnit)
protected rx.Observable<AsyncN1qlQueryResult> executeQuery(N1qlQuery query, CouchbaseEnvironment env, long timeout, TimeUnit timeUnit)
Observable
can error under the following conditions:
- The producer outpaces the SDK: BackpressureException
- The operation had to be cancelled while "in flight" on the wire: RequestCancelledException
query
- the full query as a Json String, including all necessary parameters.protected rx.Observable<AsyncN1qlQueryResult> dispatchPrepared(N1qlQuery query, CouchbaseEnvironment env, long timeout, TimeUnit timeUnit)
protected rx.Observable<AsyncN1qlQueryResult> retryPrepareAndExecuteOnce(Throwable error, N1qlQuery query, CouchbaseEnvironment env, long timeout, TimeUnit timeUnit)
protected rx.Observable<AsyncN1qlQueryResult> prepareAndExecute(N1qlQuery query, CouchbaseEnvironment env, long timeout, TimeUnit timeUnit)
protected rx.Observable<AsyncN1qlQueryResult> executePrepared(N1qlQuery query, PreparedPayload payload, CouchbaseEnvironment env, long timeout, TimeUnit timeUnit)
protected rx.Observable<PreparedPayload> prepare(Statement statement)
String
form. Statement can contain placeholders.
The resulting PreparedPayload
can be cached and (re)used later in a PreparedN1qlQuery
.
The returned Observable
can error under the following conditions:
- The producer outpaces the SDK: BackpressureException
- The operation had to be cancelled while on the wire or the retry strategy cancelled it instead of
retrying: RequestCancelledException
statement
- the statement to prepare a plan for.PreparedPayload
that can be cached and reused later in PreparedN1qlQuery
.protected PreparedPayload extractPreparedPayloadFromResponse(PrepareStatement prepared, JsonObject response)
PreparedPayload
from the server's response during a PREPARE.public int invalidateQueryCache()
public boolean isEncodedPlanEnabled()
Copyright © 2015 Couchbase, Inc.