示例#1
0
 public NQOptimizationInfo(Predicate predicate, string message
     , object optimized)
 {
     _predicate = predicate;
     _message = message;
     _optimized = optimized;
 }
示例#2
0
		public abstract IObjectSet Query(Predicate arg1, IQueryComparator arg2);
示例#3
0
		public abstract IObjectSet Query(Predicate arg1);
示例#4
0
		public IObjectSet Query(Transaction trans, Predicate predicate, IQueryComparator 
			comparator)
		{
			lock (_lock)
			{
				return GetNativeQueryHandler().Execute(Query(trans), predicate, comparator);
			}
		}
示例#5
0
		public IObjectSet Query(Transaction trans, Predicate predicate)
		{
			return Query(trans, predicate, (IQueryComparator)null);
		}
示例#6
0
 public IObjectSet Query(Transaction trans, Predicate predicate)
 {
     return Query(trans, predicate, null);
 }
        private void ExpectFailure(string expression, Predicate predicate)
        {
            _failures.Clear();

            Db().Configure().OptimizeNativeQueries(true);

            var handler = Stream().GetNativeQueryHandler();
            handler.QueryOptimizationFailure += OnOptimizationFailure;
            try
            {
                Db().Query(predicate);
                Assert.AreEqual(1, _failures.Count, Join(_failures));
                Assert.AreEqual("Unsupported expression: " + expression, _failures[0].Message);
            }
            finally
            {
                handler.QueryOptimizationFailure -= OnOptimizationFailure;
            }
        }
示例#8
0
 public override sealed IObjectSet Query(Predicate predicate)
 {
     return Query(predicate, (IQueryComparator) null);
 }
		/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception>
		/// <exception cref="Db4objects.Db4o.Ext.DatabaseClosedException"></exception>
		public virtual IObjectSet Query(Predicate predicate, IQueryComparator comparator)
		{
			lock (Lock())
			{
				CheckClosed();
				return _server.Query(_transaction, predicate, comparator);
			}
		}
		/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception>
		/// <exception cref="Db4objects.Db4o.Ext.DatabaseClosedException"></exception>
		public virtual IObjectSet Query(Predicate predicate)
		{
			lock (Lock())
			{
				CheckClosed();
				return _server.Query(_transaction, predicate);
			}
		}
		private void AssertQuery(Person[] expected, Predicate<Person> predicate, string name)
		{
			AssertSodaEvaluation(expected, name);
			AssertSodaQuery(expected, name);
			AssertNativeQuery(expected, predicate);
			AssertUnoptimizedNativeQuery(expected);
			AssertQBEQuery(expected, new Person(name, 0, default(DateTime)));
		}
		private void AssertNativeQuery(Person[] expected, Predicate<Person> predicate)
		{
			ReconnectAndRun(
				delegate
				{
					Iterator4Assert.SameContent(expected, _client.Query(predicate).GetEnumerator());
					Assert.IsTrue(_queryStatus.Optimized);
				});
		}
示例#13
0
 public virtual Db4objects.Db4o.IObjectSet Execute(Db4objects.Db4o.Query.IQuery query, Db4objects.Db4o.Query.Predicate predicate, Db4objects.Db4o.Query.IQueryComparator comparator)
 {
     Db4objects.Db4o.Query.IQuery q = ConfigureQuery(query, predicate);
     q.SortBy(comparator);
     return(q.Execute());
 }
示例#14
0
        private Db4objects.Db4o.Query.IQuery ConfigureQuery(Db4objects.Db4o.Query.IQuery query, Db4objects.Db4o.Query.Predicate predicate)
        {
            IDb4oEnhancedFilter filter = predicate as IDb4oEnhancedFilter;

            if (null != filter)
            {
                filter.OptimizeQuery(query);
                OnQueryExecution(predicate, QueryExecutionKind.PreOptimized);
                return(query);
            }

            query.Constrain(predicate.ExtentType());

            try
            {
                if (OptimizeNativeQueries())
                {
                    OptimizeQuery(query, predicate, predicate.GetFilterMethod());
                    OnQueryExecution(predicate, QueryExecutionKind.DynamicallyOptimized);
                    return(query);
                }
            }
            catch (System.Exception e)
            {
                OnQueryOptimizationFailure(e);

                if (OptimizeNativeQueries())
                {
                    DiagnosticProcessor dp = Container()._handlers.DiagnosticProcessor();
                    if (dp.Enabled())
                    {
                        dp.NativeQueryUnoptimized(predicate, e);
                    }
                }
            }

            query.Constrain(new Db4objects.Db4o.Internal.Query.PredicateEvaluation(predicate));
            OnQueryExecution(predicate, QueryExecutionKind.Unoptimized);
            return(query);
        }
示例#15
0
 public PredicateEvaluation(Predicate predicate)
 {
     // CS
     _predicate = predicate;
 }
 public IObjectSet Query(Db4objects.Db4o.Query.Predicate match, System.Collections.IComparer comparer)
 {
     return(_server.Query(_transaction, match, new ComparerAdaptor(comparer)));
 }
示例#17
0
		public virtual void NativeQueryUnoptimized(Predicate predicate, Exception exception
			)
		{
			OnDiagnostic(new NativeQueryNotOptimized(predicate, exception));
		}
示例#18
0
 public override sealed IObjectSet Query(Predicate predicate, IQueryComparator comparator
     )
 {
     return Query(null, predicate, comparator);
 }
		/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception>
		/// <exception cref="Db4objects.Db4o.Ext.DatabaseClosedException"></exception>
		public virtual IObjectSet Query(Predicate predicate)
		{
			throw new NotImplementedException();
		}
示例#20
0
 public NativeQueryNotOptimized(Predicate predicate, Exception details)
 {
     _predicate = predicate;
     _details = details;
 }
		/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception>
		/// <exception cref="Db4objects.Db4o.Ext.DatabaseClosedException"></exception>
		public virtual IObjectSet Query(Predicate predicate, IComparer comparator)
		{
			throw new NotImplementedException();
		}