Skip to content

Commit

Permalink
Add more fields to requests and responses (#4096)
Browse files Browse the repository at this point in the history
Closes #153.
  • Loading branch information
rumyantseva committed Feb 20, 2024
1 parent eb8f0b2 commit a1dc6c7
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 11 deletions.
1 change: 1 addition & 0 deletions internal/handler/common/delete_params.go
Expand Up @@ -36,6 +36,7 @@ type DeleteParams struct {

WriteConcern *types.Document `ferretdb:"writeConcern,ignored"`
LSID any `ferretdb:"lsid,ignored"`
TxnNumber int64 `ferretdb:"txnNumber,ignored"`
ClusterTime any `ferretdb:"$clusterTime,ignored"`
ReadPreference *types.Document `ferretdb:"$readPreference,ignored"`
}
Expand Down
19 changes: 11 additions & 8 deletions internal/handler/common/find.go
Expand Up @@ -46,14 +46,17 @@ type FindParams struct {
Collation *types.Document `ferretdb:"collation,unimplemented"`
Let *types.Document `ferretdb:"let,unimplemented"`

AllowDiskUse bool `ferretdb:"allowDiskUse,ignored"`
ReadConcern *types.Document `ferretdb:"readConcern,ignored"`
Max *types.Document `ferretdb:"max,ignored"`
Min *types.Document `ferretdb:"min,ignored"`
Hint any `ferretdb:"hint,ignored"`
LSID any `ferretdb:"lsid,ignored"`
ClusterTime any `ferretdb:"$clusterTime,ignored"`
ReadPreference *types.Document `ferretdb:"$readPreference,ignored"`
AllowDiskUse bool `ferretdb:"allowDiskUse,ignored"`
ReadConcern *types.Document `ferretdb:"readConcern,ignored"`
Max *types.Document `ferretdb:"max,ignored"`
Min *types.Document `ferretdb:"min,ignored"`
Hint any `ferretdb:"hint,ignored"`
LSID any `ferretdb:"lsid,ignored"`
TxnNumber int64 `ferretdb:"txnNumber,ignored"`
StartTransaction bool `ferretdb:"startTransaction,ignored"`
Autocommit bool `ferretdb:"autocommit,ignored"`
ClusterTime any `ferretdb:"$clusterTime,ignored"`
ReadPreference *types.Document `ferretdb:"$readPreference,ignored"`

ReturnKey bool `ferretdb:"returnKey,unimplemented-non-default"`
OplogReplay bool `ferretdb:"oplogReplay,ignored"`
Expand Down
3 changes: 3 additions & 0 deletions internal/handler/common/findandmodify.go
Expand Up @@ -25,6 +25,8 @@ import (
)

// FindAndModifyParams represent parameters for the findAndModify command.
//
//nolint:vet // for readability
type FindAndModifyParams struct {
DB string `ferretdb:"$db"`
Collection string `ferretdb:"findAndModify,collection"`
Expand All @@ -51,6 +53,7 @@ type FindAndModifyParams struct {
WriteConcern *types.Document `ferretdb:"writeConcern,ignored"`
BypassDocumentValidation bool `ferretdb:"bypassDocumentValidation,ignored"`
LSID any `ferretdb:"lsid,ignored"`
TxnNumber int64 `ferretdb:"txnNumber,ignored"`
ClusterTime any `ferretdb:"$clusterTime,ignored"`
ReadPreference *types.Document `ferretdb:"$readPreference,ignored"`
}
Expand Down
3 changes: 3 additions & 0 deletions internal/handler/common/insert.go
Expand Up @@ -26,6 +26,8 @@ import (
)

// InsertParams represents the parameters for an insert command.
//
//nolint:vet // for readability
type InsertParams struct {
Docs *types.Array `ferretdb:"documents,opt"`
DB string `ferretdb:"$db"`
Expand All @@ -36,6 +38,7 @@ type InsertParams struct {
BypassDocumentValidation bool `ferretdb:"bypassDocumentValidation,ignored"`
Comment string `ferretdb:"comment,ignored"`
LSID any `ferretdb:"lsid,ignored"`
TxnNumber int64 `ferretdb:"txnNumber,ignored"`
ClusterTime any `ferretdb:"$clusterTime,ignored"`
}

Expand Down
4 changes: 2 additions & 2 deletions internal/handler/common/ismaster.go
Expand Up @@ -39,7 +39,7 @@ func IsMaster(ctx context.Context, query *types.Document, tcpHost, name string)
return &reply, nil
}

// IsMasterDocuments returns isMaster's Documents field (identical for both OP_MSG and OP_QUERY).
// IsMasterDocument returns isMaster's Documents field (identical for both OP_MSG and OP_QUERY).
func IsMasterDocument(tcpHost, name string) *types.Document {
doc := must.NotFail(types.NewDocument(
"ismaster", true, // only lowercase
Expand All @@ -48,7 +48,7 @@ func IsMasterDocument(tcpHost, name string) *types.Document {
"maxMessageSizeBytes", int32(wire.MaxMsgLen),
"maxWriteBatchSize", int32(100000),
"localTime", time.Now(),
// logicalSessionTimeoutMinutes
"logicalSessionTimeoutMinutes", int32(30),
"connectionId", int32(42),
"minWireVersion", MinWireVersion,
"maxWireVersion", MaxWireVersion,
Expand Down
5 changes: 4 additions & 1 deletion internal/handler/common/update_params.go
Expand Up @@ -30,14 +30,17 @@ type UpdateParams struct {

Updates []Update `ferretdb:"updates"`

Comment string `ferretdb:"comment,opt"`
Comment string `ferretdb:"comment,opt"`
MaxTimeMS int64 `ferretdb:"maxTimeMS,ignored"`

Let *types.Document `ferretdb:"let,unimplemented"`

Ordered bool `ferretdb:"ordered,ignored"`
BypassDocumentValidation bool `ferretdb:"bypassDocumentValidation,ignored"`
WriteConcern *types.Document `ferretdb:"writeConcern,ignored"`
LSID any `ferretdb:"lsid,ignored"`
TxnNumber int64 `ferretdb:"txnNumber,ignored"`
Autocommit bool `ferretdb:"autocommit,ignored"`
ClusterTime any `ferretdb:"$clusterTime,ignored"`
ReadPreference *types.Document `ferretdb:"$readPreference,ignored"`
}
Expand Down
1 change: 1 addition & 0 deletions internal/wire/op_msg.go
Expand Up @@ -121,6 +121,7 @@ func (msg *OpMsg) Document() (*types.Document, error) {
}

if err := validateValue(res); err != nil {
res.Remove("lsid") // to simplify error message
return nil, newValidationError(fmt.Errorf("wire.OpMsg.Document: validation failed for %v with: %v",
types.FormatAnyValue(res),
err,
Expand Down

0 comments on commit a1dc6c7

Please sign in to comment.