Ejemplo n.º 1
0
        public bool TryGetMetadata(IndexQueryBase <BlittableJsonReaderObject> query, out ulong metadataHash, out QueryMetadata metadata)
        {
            metadataHash = 0;
            metadata     = null;

            if (query == null || query.Query == null)
            {
                return(false);
            }

            metadataHash = GetQueryMetadataHash(query);

            metadata = _cache[metadataHash % CacheSize];
            if (metadata == null)
            {
                return(false);
            }

            if (metadata.CacheKey != metadataHash)
            {
                var nextProbe = Hashing.Mix(metadataHash) % CacheSize;
                metadata = _cache[nextProbe];
                if (metadata == null || metadata.CacheKey != metadataHash)
                {
                    return(false);
                }
            }

            // we don't compare the query parameters because they don't matter
            // for the query plan that we use, at any rate, they will either error
            // if the query uses them and it is missing or they are there and will
            // noop because they aren't being used
            return(query.Query == metadata.QueryText);
        }
Ejemplo n.º 2
0
 public RetrieveDocumentIdsVisitor(TransactionOperationContext serverContext, DocumentsOperationContext context, QueryMetadata metadata, ByteStringContext allocator) : base(metadata.Query.QueryText)
 {
     _query         = metadata.Query;
     _serverContext = serverContext;
     _context       = context;
     _metadata      = metadata;
     _allocator     = allocator;
 }
Ejemplo n.º 3
0
 public HasLoadIncludeCounterOrCmpXcngVisitor(QueryMetadata queryMetadata)
 {
     _queryMetadata = queryMetadata;
 }
Ejemplo n.º 4
0
 public IndexQueryServerSide(string query, BlittableJsonReaderObject queryParameters = null)
 {
     Query           = Uri.UnescapeDataString(query);
     QueryParameters = queryParameters;
     Metadata        = new QueryMetadata(Query, queryParameters, 0);
 }
Ejemplo n.º 5
0
 public IndexQueryServerSide(QueryMetadata metadata)
 {
     Metadata = metadata;
 }
Ejemplo n.º 6
0
 public RetrieveDocumentIdsVisitor(QueryMetadata metadata, ByteStringContext allocator) : base(metadata.Query.QueryText)
 {
     _query     = metadata.Query;
     _metadata  = metadata;
     _allocator = allocator;
 }
Ejemplo n.º 7
0
 public FilterKey(QueryMetadata queryMetadata)
 {
     _queryMetadata = queryMetadata;
 }
Ejemplo n.º 8
0
 public EsprimaHasLoadOrIncludeVisitor(QueryMetadata queryMetadata)
 {
     _queryMetadata = queryMetadata;
 }