github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/index_query.go (about) 1 package ravendb 2 3 import ( 4 "time" 5 ) 6 7 type IndexQuery struct { 8 9 // from IndexQueryBase<T> 10 pageSize int // if 0, not set 11 query string 12 queryParameters Parameters 13 start int 14 waitForNonStaleResults bool 15 waitForNonStaleResultsTimeout time.Duration 16 17 // from IndexQueryWithParameters 18 skipDuplicateChecking bool 19 20 // from IndexQuery 21 disableCaching bool 22 } 23 24 // from IndexQuery 25 func NewIndexQuery(query string) *IndexQuery { 26 return &IndexQuery{ 27 query: query, 28 pageSize: 0, 29 } 30 } 31 32 // from IndexQueryBase<T> 33 34 // TODO: only for tests? Could expose with build-tags only for testing 35 func (q *IndexQuery) GetQuery() string { 36 return q.query 37 } 38 39 // TODO: only for tests? Could expose with build-tags only for testing 40 func (q *IndexQuery) GetQueryParameters() Parameters { 41 return q.queryParameters 42 } 43 44 func (q *IndexQuery) GetQueryHash() string { 45 hasher := &HashCalculator{} 46 hasher.write(q.query) 47 hasher.write(q.waitForNonStaleResults) 48 hasher.write(q.skipDuplicateChecking) 49 //TBD 4.1 hasher.write(isShowTimings()); 50 //TBD 4.1 hasher.write(isExplainScores()); 51 n := int64(q.waitForNonStaleResultsTimeout) 52 hasher.write(n) 53 hasher.write(q.start) 54 hasher.write(q.pageSize) 55 hasher.write(q.queryParameters) 56 return hasher.getHash() 57 } 58 59 func (q *IndexQuery) String() string { 60 return q.query 61 }