diff --git a/ql/test/library-tests/semmle/go/frameworks/NoSQL/go.mod b/ql/test/library-tests/semmle/go/frameworks/NoSQL/go.mod index 6cd131e192f..c30ef6ba903 100644 --- a/ql/test/library-tests/semmle/go/frameworks/NoSQL/go.mod +++ b/ql/test/library-tests/semmle/go/frameworks/NoSQL/go.mod @@ -2,4 +2,13 @@ module main go 1.14 -require go.mongodb.org/mongo-driver v1.3.2 +require ( + github.com/google/uuid v1.1.4 // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect + go.mongodb.org/mongo-driver v1.3.2 + gopkg.in/couchbase/gocb.v1 v1.6.7 + gopkg.in/couchbase/gocbcore.v7 v7.1.18 // indirect + gopkg.in/couchbaselabs/gocbconnstr.v1 v1.0.4 // indirect + gopkg.in/couchbaselabs/gojcbmock.v1 v1.0.4 // indirect + gopkg.in/couchbaselabs/jsonx.v1 v1.0.0 // indirect +) diff --git a/ql/test/library-tests/semmle/go/frameworks/NoSQL/main.go b/ql/test/library-tests/semmle/go/frameworks/NoSQL/main.go index d4dcdddefee..043e465392c 100644 --- a/ql/test/library-tests/semmle/go/frameworks/NoSQL/main.go +++ b/ql/test/library-tests/semmle/go/frameworks/NoSQL/main.go @@ -2,10 +2,13 @@ package main //go:generate depstubber -vendor go.mongodb.org/mongo-driver/bson/primitive D //go:generate depstubber -vendor go.mongodb.org/mongo-driver/mongo Collection,Pipeline +//go:generate depstubber -vendor gopkg.in/couchbase/gocb.v1 Bucket,Cluster import ( "context" + gocbv1 "gopkg.in/couchbase/gocb.v1" + "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" ) @@ -49,4 +52,11 @@ func test(coll *mongo.Collection, filter interface{}, models []mongo.WriteModel, coll.Watch(ctx, pipeline) // $nosqlquery=pipeline } +func testGocbV1(bucket gocbv1.Bucket, cluster gocbv1.Cluster, aq *gocbv1.AnalyticsQuery, nq *gocbv1.N1qlQuery) { + bucket.ExecuteAnalyticsQuery(aq, nil) // $nosqlquery=aq + cluster.ExecuteAnalyticsQuery(aq, nil) // $nosqlquery=aq + bucket.ExecuteN1qlQuery(nq, nil) // $nosqlquery=nq + cluster.ExecuteN1qlQuery(nq, nil) // $nosqlquery=nq +} + func main() {} diff --git a/ql/test/library-tests/semmle/go/frameworks/NoSQL/vendor/gopkg.in/couchbase/gocb.v1/stub.go b/ql/test/library-tests/semmle/go/frameworks/NoSQL/vendor/gopkg.in/couchbase/gocb.v1/stub.go new file mode 100644 index 00000000000..4de2e52e229 --- /dev/null +++ b/ql/test/library-tests/semmle/go/frameworks/NoSQL/vendor/gopkg.in/couchbase/gocb.v1/stub.go @@ -0,0 +1,1273 @@ +// Code generated by depstubber. DO NOT EDIT. +// This is a simple stub for gopkg.in/couchbase/gocb.v1, strictly for use in testing. + +// See the LICENSE file for information about the licensing of the original library. +// Source: gopkg.in/couchbase/gocb.v1 (exports: Bucket,Cluster; functions: ) + +// Package gocb is a stub of gopkg.in/couchbase/gocb.v1, generated by depstubber. +package gocb + +import ( + time "time" +) + +type AnalyticsDeferredResultHandle interface { + Close() error + Next(_ interface{}) bool + NextBytes() []byte + One(_ interface{}) error + Status() (string, error) +} + +type AnalyticsIngestOptions struct{} + +func (_ *AnalyticsIngestOptions) AnalyticsTimeout(_ time.Duration) *AnalyticsIngestOptions { + return nil +} + +func (_ *AnalyticsIngestOptions) DataConverter(_ DataConverterFunction) *AnalyticsIngestOptions { + return nil +} + +func (_ *AnalyticsIngestOptions) IdGenerator(_ IdGeneratorFunction) *AnalyticsIngestOptions { + return nil +} + +func (_ *AnalyticsIngestOptions) IgnoreIngestError(_ bool) *AnalyticsIngestOptions { + return nil +} + +func (_ *AnalyticsIngestOptions) IngestMethod(_ interface{}) *AnalyticsIngestOptions { + return nil +} + +func (_ *AnalyticsIngestOptions) KVRetryBehavior(_ QueryRetryBehavior) *AnalyticsIngestOptions { + return nil +} + +func (_ *AnalyticsIngestOptions) KVRetryOn(_ []error) *AnalyticsIngestOptions { + return nil +} + +type AnalyticsQuery struct{} + +func (_ *AnalyticsQuery) ContextId(_ string) *AnalyticsQuery { + return nil +} + +func (_ *AnalyticsQuery) Deferred(_ bool) *AnalyticsQuery { + return nil +} + +func (_ *AnalyticsQuery) Pretty(_ bool) *AnalyticsQuery { + return nil +} + +func (_ *AnalyticsQuery) Priority(_ bool) *AnalyticsQuery { + return nil +} + +func (_ *AnalyticsQuery) RawParam(_ string, _ interface{}) *AnalyticsQuery { + return nil +} + +func (_ *AnalyticsQuery) ServerSideTimeout(_ time.Duration) *AnalyticsQuery { + return nil +} + +type AnalyticsResultMetrics struct { + ElapsedTime time.Duration + ExecutionTime time.Duration + ResultCount uint + ResultSize uint + MutationCount uint + SortCount uint + ErrorCount uint + WarningCount uint + ProcessedObjects uint +} + +type AnalyticsResults interface { + ClientContextId() string + Close() error + Handle() AnalyticsDeferredResultHandle + Metrics() AnalyticsResultMetrics + Next(_ interface{}) bool + NextBytes() []byte + One(_ interface{}) error + RequestId() string + Signature() interface{} + Status() string + Warnings() []AnalyticsWarning +} + +type AnalyticsWarning struct { + Code uint32 + Message string +} + +type AuthCredsRequest struct { + Service ServiceType + Endpoint string + Bucket string +} + +type AuthDomain string + +type Authenticator interface { + Credentials(_ AuthCredsRequest) ([]UserPassPair, error) +} + +type Bucket struct{} + +func (_ *Bucket) AnalyticsIngest(_ *AnalyticsQuery, _ []interface{}, _ *AnalyticsIngestOptions) error { + return nil +} + +func (_ *Bucket) AnalyticsTimeout() time.Duration { + return 0 +} + +func (_ *Bucket) Append(_ string, _ string) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) AppendDura(_ string, _ string, _ uint, _ uint) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) AppendMt(_ string, _ string) (Cas, MutationToken, error) { + return 0, MutationToken{}, nil +} + +func (_ *Bucket) BulkOperationTimeout() time.Duration { + return 0 +} + +func (_ *Bucket) Close() error { + return nil +} + +func (_ *Bucket) Counter(_ string, _ int64, _ int64, _ uint32) (uint64, Cas, error) { + return 0, 0, nil +} + +func (_ *Bucket) CounterDura(_ string, _ int64, _ int64, _ uint32, _ uint, _ uint) (uint64, Cas, error) { + return 0, 0, nil +} + +func (_ *Bucket) CounterMt(_ string, _ int64, _ int64, _ uint32) (uint64, Cas, MutationToken, error) { + return 0, 0, MutationToken{}, nil +} + +func (_ *Bucket) Diagnostics() (*DiagnosticReport, error) { + return nil, nil +} + +func (_ *Bucket) Do(_ []BulkOp) error { + return nil +} + +func (_ *Bucket) DurabilityPollTimeout() time.Duration { + return 0 +} + +func (_ *Bucket) DurabilityTimeout() time.Duration { + return 0 +} + +func (_ *Bucket) ExecuteAnalyticsQuery(_ *AnalyticsQuery, _ interface{}) (AnalyticsResults, error) { + return nil, nil +} + +func (_ *Bucket) ExecuteN1qlQuery(_ *N1qlQuery, _ interface{}) (QueryResults, error) { + return nil, nil +} + +func (_ *Bucket) ExecuteSearchQuery(_ *SearchQuery) (SearchResults, error) { + return nil, nil +} + +func (_ *Bucket) ExecuteSpatialQuery(_ *SpatialQuery) (ViewResults, error) { + return nil, nil +} + +func (_ *Bucket) ExecuteViewQuery(_ *ViewQuery) (ViewResults, error) { + return nil, nil +} + +func (_ *Bucket) Get(_ string, _ interface{}) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) GetAndLock(_ string, _ uint32, _ interface{}) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) GetAndTouch(_ string, _ uint32, _ interface{}) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) GetReplica(_ string, _ interface{}, _ int) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) Insert(_ string, _ interface{}, _ uint32) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) InsertDura(_ string, _ interface{}, _ uint32, _ uint, _ uint) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) InsertMt(_ string, _ interface{}, _ uint32) (Cas, MutationToken, error) { + return 0, MutationToken{}, nil +} + +func (_ *Bucket) Internal() *BucketInternal { + return nil +} + +func (_ *Bucket) InvalidateQueryCache() {} + +func (_ *Bucket) IoRouter() interface{} { + return nil +} + +func (_ *Bucket) ListAppend(_ string, _ interface{}, _ bool) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) ListGet(_ string, _ uint, _ interface{}) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) ListPrepend(_ string, _ interface{}, _ bool) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) ListRemove(_ string, _ uint) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) ListSet(_ string, _ uint, _ interface{}) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) ListSize(_ string) (uint, Cas, error) { + return 0, 0, nil +} + +func (_ *Bucket) LookupIn(_ string) *LookupInBuilder { + return nil +} + +func (_ *Bucket) LookupInEx(_ string, _ SubdocDocFlag) *LookupInBuilder { + return nil +} + +func (_ *Bucket) Manager(_ string, _ string) *BucketManager { + return nil +} + +func (_ *Bucket) MapAdd(_ string, _ string, _ interface{}, _ bool) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) MapGet(_ string, _ string, _ interface{}) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) MapRemove(_ string, _ string) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) MapSize(_ string) (uint, Cas, error) { + return 0, 0, nil +} + +func (_ *Bucket) MutateIn(_ string, _ Cas, _ uint32) *MutateInBuilder { + return nil +} + +func (_ *Bucket) MutateInEx(_ string, _ SubdocDocFlag, _ Cas, _ uint32) *MutateInBuilder { + return nil +} + +func (_ *Bucket) MutateInExDura(_ string, _ SubdocDocFlag, _ Cas, _ uint32, _ uint, _ uint) *MutateInBuilder { + return nil +} + +func (_ *Bucket) N1qlTimeout() time.Duration { + return 0 +} + +func (_ *Bucket) Name() string { + return "" +} + +func (_ *Bucket) OperationTimeout() time.Duration { + return 0 +} + +func (_ *Bucket) Ping(_ []ServiceType) (*PingReport, error) { + return nil, nil +} + +func (_ *Bucket) Prepend(_ string, _ string) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) PrependDura(_ string, _ string, _ uint, _ uint) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) PrependMt(_ string, _ string) (Cas, MutationToken, error) { + return 0, MutationToken{}, nil +} + +func (_ *Bucket) QueuePop(_ string, _ interface{}) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) QueuePush(_ string, _ interface{}, _ bool) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) QueueSize(_ string) (uint, Cas, error) { + return 0, 0, nil +} + +func (_ *Bucket) Remove(_ string, _ Cas) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) RemoveDura(_ string, _ Cas, _ uint, _ uint) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) RemoveMt(_ string, _ Cas) (Cas, MutationToken, error) { + return 0, MutationToken{}, nil +} + +func (_ *Bucket) Replace(_ string, _ interface{}, _ Cas, _ uint32) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) ReplaceDura(_ string, _ interface{}, _ Cas, _ uint32, _ uint, _ uint) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) ReplaceMt(_ string, _ interface{}, _ Cas, _ uint32) (Cas, MutationToken, error) { + return 0, MutationToken{}, nil +} + +func (_ *Bucket) SetAdd(_ string, _ interface{}, _ bool) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) SetAnalyticsQueryRetryBehavior(_ QueryRetryBehavior) {} + +func (_ *Bucket) SetAnalyticsTimeout(_ time.Duration) {} + +func (_ *Bucket) SetBulkOperationTimeout(_ time.Duration) {} + +func (_ *Bucket) SetDurabilityPollTimeout(_ time.Duration) {} + +func (_ *Bucket) SetDurabilityTimeout(_ time.Duration) {} + +func (_ *Bucket) SetExists(_ string, _ interface{}) (bool, Cas, error) { + return false, 0, nil +} + +func (_ *Bucket) SetN1qlTimeout(_ time.Duration) {} + +func (_ *Bucket) SetOperationTimeout(_ time.Duration) {} + +func (_ *Bucket) SetRemove(_ string, _ interface{}) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) SetSearchQueryRetryBehavior(_ QueryRetryBehavior) {} + +func (_ *Bucket) SetSize(_ string) (uint, Cas, error) { + return 0, 0, nil +} + +func (_ *Bucket) SetTranscoder(_ Transcoder) {} + +func (_ *Bucket) SetViewTimeout(_ time.Duration) {} + +func (_ *Bucket) Stats(_ string) (ServerStats, error) { + return nil, nil +} + +func (_ *Bucket) Touch(_ string, _ Cas, _ uint32) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) TouchDura(_ string, _ Cas, _ uint32, _ uint, _ uint) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) UUID() string { + return "" +} + +func (_ *Bucket) Unlock(_ string, _ Cas) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) Upsert(_ string, _ interface{}, _ uint32) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) UpsertDura(_ string, _ interface{}, _ uint32, _ uint, _ uint) (Cas, error) { + return 0, nil +} + +func (_ *Bucket) UpsertMt(_ string, _ interface{}, _ uint32) (Cas, MutationToken, error) { + return 0, MutationToken{}, nil +} + +func (_ *Bucket) ViewTimeout() time.Duration { + return 0 +} + +type BucketInternal struct{} + +func (_ *BucketInternal) GetRandom(_ interface{}) (string, Cas, error) { + return "", 0, nil +} + +func (_ *BucketInternal) RemoveMeta(_ string, _ []byte, _ []byte, _ byte, _ uint32, _ uint32, _ uint32, _ uint64, _ uint64) (Cas, error) { + return 0, nil +} + +func (_ *BucketInternal) UpsertMeta(_ string, _ []byte, _ []byte, _ byte, _ uint32, _ uint32, _ uint32, _ uint64, _ uint64) (Cas, error) { + return 0, nil +} + +type BucketManager struct{} + +func (_ *BucketManager) BuildDeferredIndexes() ([]string, error) { + return nil, nil +} + +func (_ *BucketManager) CreateIndex(_ string, _ []string, _ bool, _ bool) error { + return nil +} + +func (_ *BucketManager) CreatePrimaryIndex(_ string, _ bool, _ bool) error { + return nil +} + +func (_ *BucketManager) DropIndex(_ string, _ bool) error { + return nil +} + +func (_ *BucketManager) DropPrimaryIndex(_ string, _ bool) error { + return nil +} + +func (_ *BucketManager) Flush() error { + return nil +} + +func (_ *BucketManager) GetDesignDocument(_ string) (*DesignDocument, error) { + return nil, nil +} + +func (_ *BucketManager) GetDesignDocuments() ([]*DesignDocument, error) { + return nil, nil +} + +func (_ *BucketManager) GetIndexes() ([]IndexInfo, error) { + return nil, nil +} + +func (_ *BucketManager) InsertDesignDocument(_ *DesignDocument) error { + return nil +} + +func (_ *BucketManager) RemoveDesignDocument(_ string) error { + return nil +} + +func (_ *BucketManager) UpsertDesignDocument(_ *DesignDocument) error { + return nil +} + +func (_ *BucketManager) WatchIndexes(_ []string, _ bool, _ time.Duration) error { + return nil +} + +type BucketSettings struct { + FlushEnabled bool + IndexReplicas bool + Name string + Password string + Quota int + Replicas int + Type BucketType +} + +type BucketType int + +type BulkOp interface{} + +type Cas uint64 + +type Cluster struct{} + +func (_ *Cluster) AnalyticsTimeout() time.Duration { + return 0 +} + +func (_ *Cluster) Authenticate(_ Authenticator) error { + return nil +} + +func (_ *Cluster) Close() error { + return nil +} + +func (_ *Cluster) ConnectTimeout() time.Duration { + return 0 +} + +func (_ *Cluster) EnhancedErrors() bool { + return false +} + +func (_ *Cluster) ExecuteAnalyticsQuery(_ *AnalyticsQuery, _ interface{}) (AnalyticsResults, error) { + return nil, nil +} + +func (_ *Cluster) ExecuteN1qlQuery(_ *N1qlQuery, _ interface{}) (QueryResults, error) { + return nil, nil +} + +func (_ *Cluster) ExecuteSearchQuery(_ *SearchQuery) (SearchResults, error) { + return nil, nil +} + +func (_ *Cluster) FtsTimeout() time.Duration { + return 0 +} + +func (_ *Cluster) InvalidateQueryCache() {} + +func (_ *Cluster) Manager(_ string, _ string) *ClusterManager { + return nil +} + +func (_ *Cluster) N1qlTimeout() time.Duration { + return 0 +} + +func (_ *Cluster) NmvRetryDelay() time.Duration { + return 0 +} + +func (_ *Cluster) OpenBucket(_ string, _ string) (*Bucket, error) { + return nil, nil +} + +func (_ *Cluster) OpenBucketWithMt(_ string, _ string) (*Bucket, error) { + return nil, nil +} + +func (_ *Cluster) OpenStreamingBucket(_ string, _ string, _ string) (*StreamingBucket, error) { + return nil, nil +} + +func (_ *Cluster) ServerConnectTimeout() time.Duration { + return 0 +} + +func (_ *Cluster) SetAnalyticsTimeout(_ time.Duration) {} + +func (_ *Cluster) SetConnectTimeout(_ time.Duration) {} + +func (_ *Cluster) SetEnhancedErrors(_ bool) {} + +func (_ *Cluster) SetFtsTimeout(_ time.Duration) {} + +func (_ *Cluster) SetN1qlTimeout(_ time.Duration) {} + +func (_ *Cluster) SetNmvRetryDelay(_ time.Duration) {} + +func (_ *Cluster) SetServerConnectTimeout(_ time.Duration) {} + +func (_ *Cluster) SetTracer(_ interface{}) {} + +type ClusterManager struct{} + +func (_ *ClusterManager) GetBuckets() ([]*BucketSettings, error) { + return nil, nil +} + +func (_ *ClusterManager) GetUser(_ AuthDomain, _ string) (*User, error) { + return nil, nil +} + +func (_ *ClusterManager) GetUsers(_ AuthDomain) ([]*User, error) { + return nil, nil +} + +func (_ *ClusterManager) InsertBucket(_ *BucketSettings) error { + return nil +} + +func (_ *ClusterManager) Internal() *ClusterManagerInternal { + return nil +} + +func (_ *ClusterManager) RemoveBucket(_ string) error { + return nil +} + +func (_ *ClusterManager) RemoveUser(_ AuthDomain, _ string) error { + return nil +} + +func (_ *ClusterManager) SearchIndexManager() *SearchIndexManager { + return nil +} + +func (_ *ClusterManager) UpdateBucket(_ *BucketSettings) error { + return nil +} + +func (_ *ClusterManager) UpsertUser(_ AuthDomain, _ string, _ *UserSettings) error { + return nil +} + +type ClusterManagerInternal struct{} + +func (_ *ClusterManagerInternal) GetNodesMetadata() ([]NodeMetadata, error) { + return nil, nil +} + +type ConsistencyMode int + +type DataConverterFunction func([]byte) (interface{}, error) + +type DesignDocument struct { + Name string + Views map[string]View + SpatialViews map[string]View +} + +type DiagConnState int + +type DiagnosticEntry struct { + Service ServiceType + State DiagConnState + LocalAddr string + RemoteAddr string + LastActivity time.Time +} + +type DiagnosticReport struct { + ConfigRev int64 + Services []DiagnosticEntry +} + +func (_ *DiagnosticReport) MarshalJSON() ([]byte, error) { + return nil, nil +} + +type DocumentFragment struct{} + +func (_ *DocumentFragment) Cas() Cas { + return 0 +} + +func (_ *DocumentFragment) Content(_ string, _ interface{}) error { + return nil +} + +func (_ *DocumentFragment) ContentByIndex(_ int, _ interface{}) error { + return nil +} + +func (_ *DocumentFragment) Exists(_ string) bool { + return false +} + +func (_ *DocumentFragment) MutationToken() MutationToken { + return MutationToken{} +} + +type IdGeneratorFunction func(interface{}) (string, error) + +type IndexInfo struct { + Name string + IsPrimary bool + Type IndexType + State string + Keyspace string + Namespace string + IndexKey []string +} + +type IndexType string + +type LookupInBuilder struct{} + +func (_ *LookupInBuilder) Execute() (*DocumentFragment, error) { + return nil, nil +} + +func (_ *LookupInBuilder) Exists(_ string) *LookupInBuilder { + return nil +} + +func (_ *LookupInBuilder) ExistsEx(_ string, _ SubdocFlag) *LookupInBuilder { + return nil +} + +func (_ *LookupInBuilder) Get(_ string) *LookupInBuilder { + return nil +} + +func (_ *LookupInBuilder) GetCount(_ string) *LookupInBuilder { + return nil +} + +func (_ *LookupInBuilder) GetCountEx(_ string, _ SubdocFlag) *LookupInBuilder { + return nil +} + +func (_ *LookupInBuilder) GetEx(_ string, _ SubdocFlag) *LookupInBuilder { + return nil +} + +type MutateInBuilder struct{} + +func (_ *MutateInBuilder) ArrayAddUnique(_ string, _ interface{}, _ bool) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayAddUniqueEx(_ string, _ interface{}, _ SubdocFlag) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayAppend(_ string, _ interface{}, _ bool) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayAppendEx(_ string, _ interface{}, _ SubdocFlag) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayAppendMulti(_ string, _ interface{}, _ bool) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayAppendMultiEx(_ string, _ interface{}, _ SubdocFlag) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayInsert(_ string, _ interface{}) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayInsertEx(_ string, _ interface{}, _ SubdocFlag) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayInsertMulti(_ string, _ interface{}) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayInsertMultiEx(_ string, _ interface{}, _ SubdocFlag) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayPrepend(_ string, _ interface{}, _ bool) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayPrependEx(_ string, _ interface{}, _ SubdocFlag) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayPrependMulti(_ string, _ interface{}, _ bool) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ArrayPrependMultiEx(_ string, _ interface{}, _ SubdocFlag) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) Counter(_ string, _ int64, _ bool) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) CounterEx(_ string, _ int64, _ SubdocFlag) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) Execute() (*DocumentFragment, error) { + return nil, nil +} + +func (_ *MutateInBuilder) Insert(_ string, _ interface{}, _ bool) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) InsertEx(_ string, _ interface{}, _ SubdocFlag) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) Remove(_ string) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) RemoveEx(_ string, _ SubdocFlag) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) Replace(_ string, _ interface{}) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) ReplaceEx(_ string, _ interface{}, _ SubdocFlag) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) Upsert(_ string, _ interface{}, _ bool) *MutateInBuilder { + return nil +} + +func (_ *MutateInBuilder) UpsertEx(_ string, _ interface{}, _ SubdocFlag) *MutateInBuilder { + return nil +} + +type MutationState struct{} + +func (_ *MutationState) Add(_ ...MutationToken) {} + +func (_ *MutationState) MarshalJSON() ([]byte, error) { + return nil, nil +} + +func (_ *MutationState) UnmarshalJSON(_ []byte) error { + return nil +} + +type MutationToken struct{} + +type N1qlQuery struct{} + +func (_ *N1qlQuery) AdHoc(_ bool) *N1qlQuery { + return nil +} + +func (_ *N1qlQuery) Consistency(_ ConsistencyMode) *N1qlQuery { + return nil +} + +func (_ *N1qlQuery) ConsistentWith(_ *MutationState) *N1qlQuery { + return nil +} + +func (_ *N1qlQuery) Custom(_ string, _ interface{}) *N1qlQuery { + return nil +} + +func (_ *N1qlQuery) PipelineBatch(_ int) *N1qlQuery { + return nil +} + +func (_ *N1qlQuery) PipelineCap(_ int) *N1qlQuery { + return nil +} + +func (_ *N1qlQuery) Profile(_ QueryProfileType) *N1qlQuery { + return nil +} + +func (_ *N1qlQuery) ReadOnly(_ bool) *N1qlQuery { + return nil +} + +func (_ *N1qlQuery) ScanCap(_ int) *N1qlQuery { + return nil +} + +func (_ *N1qlQuery) Timeout(_ time.Duration) *N1qlQuery { + return nil +} + +type NodeMetadata struct { + ClusterCompatibility int + ClusterMembership string + CouchAPIBase string + Hostname string + InterestingStats map[string]float64 + MCDMemoryAllocated float64 + MCDMemoryReserved float64 + MemoryFree float64 + MemoryTotal float64 + OS string + Ports map[string]int + Status string + Uptime int + Version string + ThisNode bool +} + +type PingReport struct { + Services []PingServiceEntry +} + +func (_ *PingReport) MarshalJSON() ([]byte, error) { + return nil, nil +} + +type PingServiceEntry struct { + Service ServiceType + Endpoint string + Success bool + Latency time.Duration +} + +type QueryProfileType string + +type QueryResultMetrics struct { + ElapsedTime time.Duration + ExecutionTime time.Duration + ResultCount uint + ResultSize uint + MutationCount uint + SortCount uint + ErrorCount uint + WarningCount uint +} + +type QueryResults interface { + ClientContextId() string + Close() error + Metrics() QueryResultMetrics + Next(_ interface{}) bool + NextBytes() []byte + One(_ interface{}) error + Profile() interface{} + RequestId() string + SourceEndpoint() string +} + +type QueryRetryBehavior interface { + CanRetry(_ uint) bool + NextInterval(_ uint) time.Duration +} + +type SearchHighlightStyle string + +type SearchIndexDefinitionBuilder struct{} + +func (_ *SearchIndexDefinitionBuilder) AddField(_ string, _ interface{}) *SearchIndexDefinitionBuilder { + return nil +} + +type SearchIndexManager struct{} + +func (_ *SearchIndexManager) CreateIndex(_ SearchIndexDefinitionBuilder) error { + return nil +} + +func (_ *SearchIndexManager) DeleteIndex(_ string) (bool, error) { + return false, nil +} + +func (_ *SearchIndexManager) GetAllIndexDefinitions() ([]interface{}, error) { + return nil, nil +} + +func (_ *SearchIndexManager) GetAllIndexPartitionInfo() (interface{}, error) { + return nil, nil +} + +func (_ *SearchIndexManager) GetAllIndexStats() (interface{}, error) { + return nil, nil +} + +func (_ *SearchIndexManager) GetIndexDefinition(_ string) (interface{}, error) { + return nil, nil +} + +func (_ *SearchIndexManager) GetIndexPartitionIndexedDocumentCount(_ string) (int, error) { + return 0, nil +} + +func (_ *SearchIndexManager) GetIndexPartitionInfo(_ string) (interface{}, error) { + return nil, nil +} + +func (_ *SearchIndexManager) GetIndexStats(_ string) (interface{}, error) { + return nil, nil +} + +func (_ *SearchIndexManager) GetIndexedDocumentCount(_ string) (int, error) { + return 0, nil +} + +func (_ *SearchIndexManager) SetIndexIngestion(_ string, _ string) (bool, error) { + return false, nil +} + +func (_ *SearchIndexManager) SetIndexPlanFreeze(_ string, _ string) (bool, error) { + return false, nil +} + +func (_ *SearchIndexManager) SetIndexQuerying(_ string, _ string) (bool, error) { + return false, nil +} + +type SearchQuery struct{} + +func (_ *SearchQuery) AddFacet(_ string, _ interface{}) *SearchQuery { + return nil +} + +func (_ *SearchQuery) Consistency(_ ConsistencyMode) *SearchQuery { + return nil +} + +func (_ *SearchQuery) ConsistentWith(_ *MutationState) *SearchQuery { + return nil +} + +func (_ *SearchQuery) Explain(_ bool) *SearchQuery { + return nil +} + +func (_ *SearchQuery) Fields(_ ...string) *SearchQuery { + return nil +} + +func (_ *SearchQuery) Highlight(_ SearchHighlightStyle, _ ...string) *SearchQuery { + return nil +} + +func (_ *SearchQuery) Limit(_ int) *SearchQuery { + return nil +} + +func (_ *SearchQuery) Skip(_ int) *SearchQuery { + return nil +} + +func (_ *SearchQuery) Sort(_ ...interface{}) *SearchQuery { + return nil +} + +func (_ *SearchQuery) Timeout(_ time.Duration) *SearchQuery { + return nil +} + +type SearchResultDateFacet struct { + Name string + Min string + Max string + Count int +} + +type SearchResultFacet struct { + Field string + Total int + Missing int + Other int + Terms []SearchResultTermFacet + NumericRanges []SearchResultNumericFacet + DateRanges []SearchResultDateFacet +} + +type SearchResultHit struct { + Index string + Id string + Score float64 + Explanation map[string]interface{} + Locations map[string]map[string][]SearchResultLocation + Fragments map[string][]string + Fields map[string]string + AllFields map[string]interface{} +} + +type SearchResultLocation struct { + Position int + Start int + End int + ArrayPositions []uint +} + +type SearchResultNumericFacet struct { + Name string + Min float64 + Max float64 + Count int +} + +type SearchResultStatus struct { + Total int + Failed int + Successful int + Errors interface{} +} + +type SearchResultTermFacet struct { + Term string + Count int +} + +type SearchResults interface { + Errors() []string + Facets() map[string]SearchResultFacet + Hits() []SearchResultHit + MaxScore() float64 + Status() SearchResultStatus + Took() time.Duration + TotalHits() int +} + +type ServerStats map[string]map[string]string + +type ServiceType int + +type SortOrder int + +type SpatialQuery struct{} + +func (_ *SpatialQuery) Bbox(_ []float64) *SpatialQuery { + return nil +} + +func (_ *SpatialQuery) Custom(_ string, _ string) *SpatialQuery { + return nil +} + +func (_ *SpatialQuery) Development(_ bool) *SpatialQuery { + return nil +} + +func (_ *SpatialQuery) Limit(_ uint) *SpatialQuery { + return nil +} + +func (_ *SpatialQuery) Skip(_ uint) *SpatialQuery { + return nil +} + +func (_ *SpatialQuery) Stale(_ StaleMode) *SpatialQuery { + return nil +} + +type StaleMode int + +type StreamingBucket struct{} + +func (_ *StreamingBucket) IoRouter() interface{} { + return nil +} + +type SubdocDocFlag uint8 + +type SubdocFlag uint8 + +type Transcoder interface { + Decode(_ []byte, _ uint32, _ interface{}) error + Encode(_ interface{}) ([]byte, uint32, error) +} + +type User struct { + Id string + Name string + Type string + Roles []UserRole +} + +type UserPassPair struct { + Username string + Password string +} + +type UserRole struct { + Role string + BucketName string +} + +type UserSettings struct { + Name string + Password string + Roles []UserRole +} + +type View struct { + Map string + Reduce string +} + +type ViewQuery struct{} + +func (_ *ViewQuery) Custom(_ string, _ string) *ViewQuery { + return nil +} + +func (_ *ViewQuery) Development(_ bool) *ViewQuery { + return nil +} + +func (_ *ViewQuery) Group(_ bool) *ViewQuery { + return nil +} + +func (_ *ViewQuery) GroupLevel(_ uint) *ViewQuery { + return nil +} + +func (_ *ViewQuery) IdRange(_ string, _ string) *ViewQuery { + return nil +} + +func (_ *ViewQuery) Key(_ interface{}) *ViewQuery { + return nil +} + +func (_ *ViewQuery) Keys(_ []interface{}) *ViewQuery { + return nil +} + +func (_ *ViewQuery) Limit(_ uint) *ViewQuery { + return nil +} + +func (_ *ViewQuery) Order(_ SortOrder) *ViewQuery { + return nil +} + +func (_ *ViewQuery) Range(_ interface{}, _ interface{}, _ bool) *ViewQuery { + return nil +} + +func (_ *ViewQuery) Reduce(_ bool) *ViewQuery { + return nil +} + +func (_ *ViewQuery) Skip(_ uint) *ViewQuery { + return nil +} + +func (_ *ViewQuery) Stale(_ StaleMode) *ViewQuery { + return nil +} + +type ViewResults interface { + Close() error + Next(_ interface{}) bool + NextBytes() []byte + One(_ interface{}) error +} diff --git a/ql/test/library-tests/semmle/go/frameworks/NoSQL/vendor/modules.txt b/ql/test/library-tests/semmle/go/frameworks/NoSQL/vendor/modules.txt index bcea2f371ea..66f693a3561 100644 --- a/ql/test/library-tests/semmle/go/frameworks/NoSQL/vendor/modules.txt +++ b/ql/test/library-tests/semmle/go/frameworks/NoSQL/vendor/modules.txt @@ -1,3 +1,24 @@ # go.mongodb.org/mongo-driver v1.3.2 ## explicit go.mongodb.org/mongo-driver +# github.com/google/uuid v1.1.4 +## explicit +github.com/google/uuid +# github.com/opentracing/opentracing-go v1.2.0 +## explicit +github.com/opentracing/opentracing-go +# gopkg.in/couchbase/gocb.v1 v1.6.7 +## explicit +gopkg.in/couchbase/gocb.v1 +# gopkg.in/couchbase/gocbcore.v7 v7.1.18 +## explicit +gopkg.in/couchbase/gocbcore.v7 +# gopkg.in/couchbaselabs/gocbconnstr.v1 v1.0.4 +## explicit +gopkg.in/couchbaselabs/gocbconnstr.v1 +# gopkg.in/couchbaselabs/gojcbmock.v1 v1.0.4 +## explicit +gopkg.in/couchbaselabs/gojcbmock.v1 +# gopkg.in/couchbaselabs/jsonx.v1 v1.0.0 +## explicit +gopkg.in/couchbaselabs/jsonx.v1