public override unsafe IResultSet Execute() { if (Database == null) { throw new InvalidOperationException(CouchbaseLiteErrorMessage.InvalidQueryDBNull); } var options = C4QueryOptions.Default; var e = (C4QueryEnumerator *)ThreadSafety.DoLockedBridge(err => { if (_disposalWatchdog.IsDisposed) { return(null); } var localOpts = options; return(NativeRaw.c4query_run(_c4Query, &localOpts, FLSlice.Null, err)); }); if (e == null) { return(new NullResultSet()); } var retVal = new QueryResultSet(this, ThreadSafety, e, _columnNames); _history.Add(retVal); return(retVal); }
public override unsafe IResultSet Execute() { if (Database == null) { throw new InvalidOperationException(CouchbaseLiteErrorMessage.InvalidQueryDBNull); } var fromImpl = FromImpl; if (SelectImpl == null || fromImpl == null) { throw new InvalidOperationException(CouchbaseLiteErrorMessage.InvalidQueryMissingSelectOrFrom); } var options = C4QueryOptions.Default; var paramJson = Parameters.FLEncode(); var e = (C4QueryEnumerator *)fromImpl.ThreadSafety.DoLockedBridge(err => { if (_disposalWatchdog.IsDisposed) { return(null); } if (_c4Query == null) { Check(); } var localOpts = options; return(NativeRaw.c4query_run(_c4Query, &localOpts, (FLSlice)paramJson, err)); }); paramJson.Dispose(); if (e == null) { return(new NullResultSet()); } var retVal = new QueryResultSet(this, fromImpl.ThreadSafety, e, _columnNames); _history.Add(retVal); return(retVal); }
public Enumerator([NotNull] QueryResultSet parent) { _parent = parent; _enum = _parent._c4Enum; WriteLog.To.Query.I(Tag, $"Beginning query enumeration ({(long) _enum:x})"); }