Skip to content

Commit 310ed26

Browse files
authored
Merge pull request #462 from aerospike/stage
v8.0.0
2 parents 8580877 + b741695 commit 310ed26

28 files changed

+351
-167
lines changed

CHANGELOG.md

+18
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,23 @@
11
# Change History
22

3+
## January 22 2025: v8.0.0
4+
5+
- **New Features**
6+
- [CLIENT-3257] Implement iterator support for `Recordset`.
7+
8+
- **Fixes**
9+
- [CLIENT-3275] Return an error when Transaction commit called, but transaction was already aborted.
10+
- [CLIENT-3295] Duplicate parsing of fields in RecordParser.ParseRecord.
11+
- [CLIENT-3261] New `OnLockingOnly` attribute for various write policies to write only if provisional does not exist.
12+
- [CLIENT-3227] Clarify that `BasePolicy.UseCompression` requires Enterprise Edition.
13+
- [CLIENT-3260] Add `MRT_ALREADY_LOCKED` and `MRT_MONITOR_EXISTS` error codes.
14+
- [CLIENT-3292][CLIENT-3293] Update dependencies due to Snyk CVE reports.
15+
- [CLIENT-3274] Fix Transaction related client exception inconsistency between clients.
16+
- [CLIENT-3207] Do not close/delete Transaction monitor record on abort/commit when a write command in that Transaction fails and is `inDoubt`.
17+
- [CLIENT-3283] Remove the txn instance from the copied write policy when adding Transaction monitor keys.
18+
- [CLIENT-3270] Normalize API reference language with server 8.0 site docs.
19+
- [CLIENT-3258] Transaction commit returns 'Failed to commit one or more record versions' error.
20+
321
## December 20 2024: v8.0.0-beta.2
422

523
- **New Features**

abort_status.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414

1515
package aerospike
1616

17-
// Multi-record transaction (MRT) abort status code.
17+
// Transaction abort status code.
1818
type AbortStatus string
1919

2020
const (
2121
AbortStatusOK AbortStatus = "Abort succeeded"
2222
AbortStatusAlreadyCommitted AbortStatus = "Already committed"
2323
AbortStatusAlreadyAborted AbortStatus = "Already aborted"
24-
AbortStatusRollBackAbandoned AbortStatus = "MRT client roll back abandoned. Server will eventually abort the MRT."
25-
AbortStatusCloseAbandoned AbortStatus = "MRT has been rolled back, but MRT client close was abandoned. Server will eventually close the MRT."
24+
AbortStatusRollBackAbandoned AbortStatus = "Transaction client roll back abandoned. Server will eventually abort the Transaction."
25+
AbortStatusCloseAbandoned AbortStatus = "Transaction has been rolled back, but Transaction client close was abandoned. Server will eventually close the Transaction."
2626
)

batch_attr.go

+13
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ func (ba *batchAttr) setRead(rp *BatchPolicy) {
115115
case ReadModeSCAllowUnavailable:
116116
ba.infoAttr = _INFO3_SC_READ_TYPE | _INFO3_SC_READ_RELAX
117117
}
118+
ba.txnAttr = 0
118119
ba.expiration = uint32(rp.ReadTouchTTLPercent)
119120
ba.generation = 0
120121
ba.hasWrite = false
@@ -142,6 +143,7 @@ func (ba *batchAttr) setBatchRead(rp *BatchReadPolicy) {
142143
case ReadModeSCAllowUnavailable:
143144
ba.infoAttr = _INFO3_SC_READ_TYPE | _INFO3_SC_READ_RELAX
144145
}
146+
ba.txnAttr = 0
145147
ba.expiration = uint32(rp.ReadTouchTTLPercent)
146148
ba.generation = 0
147149
ba.hasWrite = false
@@ -174,6 +176,7 @@ func (ba *batchAttr) setBatchWrite(wp *BatchWritePolicy) {
174176
ba.readAttr = 0
175177
ba.writeAttr = _INFO2_WRITE | _INFO2_RESPOND_ALL_OPS
176178
ba.infoAttr = 0
179+
ba.txnAttr = 0
177180
ba.expiration = wp.Expiration
178181
ba.hasWrite = true
179182
ba.sendKey = wp.SendKey
@@ -209,6 +212,10 @@ func (ba *batchAttr) setBatchWrite(wp *BatchWritePolicy) {
209212
ba.writeAttr |= _INFO2_DURABLE_DELETE
210213
}
211214

215+
if wp.OnLockingOnly {
216+
ba.txnAttr |= _INFO4_MRT_ON_LOCKING_ONLY
217+
}
218+
212219
if wp.CommitLevel == COMMIT_MASTER {
213220
ba.infoAttr |= _INFO3_COMMIT_MASTER
214221
}
@@ -251,6 +258,7 @@ func (ba *batchAttr) setBatchUDF(up *BatchUDFPolicy) {
251258
ba.readAttr = 0
252259
ba.writeAttr = _INFO2_WRITE
253260
ba.infoAttr = 0
261+
ba.txnAttr = 0
254262
ba.expiration = up.Expiration
255263
ba.generation = 0
256264
ba.hasWrite = true
@@ -260,6 +268,10 @@ func (ba *batchAttr) setBatchUDF(up *BatchUDFPolicy) {
260268
ba.writeAttr |= _INFO2_DURABLE_DELETE
261269
}
262270

271+
if up.OnLockingOnly {
272+
ba.txnAttr |= _INFO4_MRT_ON_LOCKING_ONLY
273+
}
274+
263275
if up.CommitLevel == COMMIT_MASTER {
264276
ba.infoAttr |= _INFO3_COMMIT_MASTER
265277
}
@@ -270,6 +282,7 @@ func (ba *batchAttr) setBatchDelete(dp *BatchDeletePolicy) {
270282
ba.readAttr = 0
271283
ba.writeAttr = _INFO2_WRITE | _INFO2_RESPOND_ALL_OPS | _INFO2_DELETE
272284
ba.infoAttr = 0
285+
ba.txnAttr = 0
273286
ba.expiration = 0
274287
ba.hasWrite = true
275288
ba.sendKey = dp.SendKey

batch_command.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func (cmd *batchCommand) retryBatch(ifc batcher, cluster *Cluster, deadline time
9090

9191
cmd.splitRetry = true
9292

93-
// Run batch requests sequentially in same thread.
93+
// Run batch requests sequentially in same goroutine.
9494
var ferr Error
9595
for _, batchNode := range batchNodes {
9696
command := ifc.cloneBatchCommand(batchNode)

batch_udf_policy.go

+10
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,16 @@ type BatchUDFPolicy struct {
4343
// Valid for Aerospike Server Enterprise Edition 3.10+ only.
4444
DurableDelete bool
4545

46+
// Execute the write command only if the record is not already locked by this transaction.
47+
// If this field is true and the record is already locked by this transaction, the command
48+
// will return an error with the [types.MRT_ALREADY_LOCKED] error code.
49+
//
50+
// This field is useful for safely retrying non-idempotent writes as an alternative to simply
51+
// aborting the transaction.
52+
//
53+
// Default: false
54+
OnLockingOnly bool
55+
4656
// SendKey determines to whether send user defined key in addition to hash digest on both reads and writes.
4757
// If true and the UDF writes a record, the key will be stored with the record on the server.
4858
// The default is to not send the user defined key.

batch_write_policy.go

+10
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,16 @@ type BatchWritePolicy struct {
6767
// Valid for Aerospike Server Enterprise Edition 3.10+ only.
6868
DurableDelete bool
6969

70+
// Execute the write command only if the record is not already locked by this transaction.
71+
// If this field is true and the record is already locked by this transaction, the command
72+
// will return an error with the [types.MRT_ALREADY_LOCKED] error code.
73+
//
74+
// This field is useful for safely retrying non-idempotent writes as an alternative to simply
75+
// aborting the transaction.
76+
//
77+
// Default: false
78+
OnLockingOnly bool
79+
7080
// SendKey determines to whether send user defined key in addition to hash digest on both reads and writes.
7181
// If the key is sent on a write, the key will be stored with the record on
7282
// the server.

client.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ type Client struct {
6161
DefaultAdminPolicy *AdminPolicy
6262
// DefaultInfoPolicy is used for all info commands without a specific policy.
6363
DefaultInfoPolicy *InfoPolicy
64-
// Default multi-record transaction (MRT) policy when verifying record versions in a batch on a commit.
64+
// Default transaction policy when verifying record versions in a batch on a commit.
6565
DefaultTxnVerifyPolicy *TxnVerifyPolicy
66-
// Default multi-record transaction (MRT) policy when rolling the transaction records forward (commit)
66+
// Default transaction policy when rolling the transaction records forward (commit)
6767
// or back (abort) in a batch.
6868
DefaultTxnRollPolicy *TxnRollPolicy
6969
}
@@ -1474,7 +1474,7 @@ func (clnt *Client) Commit(txn *Txn) (CommitStatus, Error) {
14741474
case TxnStateCommitted:
14751475
return CommitStatusAlreadyCommitted, nil
14761476
case TxnStateAborted:
1477-
return CommitStatusAlreadyAborted, nil
1477+
return CommitStatusAlreadyAborted, newError(types.TXN_ALREADY_ABORTED, "Transaction already aborted")
14781478
}
14791479
}
14801480

@@ -1491,7 +1491,7 @@ func (clnt *Client) Abort(txn *Txn) (AbortStatus, Error) {
14911491
case TxnStateVerified:
14921492
return tr.Abort(&clnt.GetDefaultTxnRollPolicy().BatchPolicy)
14931493
case TxnStateCommitted:
1494-
return AbortStatusAlreadyCommitted, nil
1494+
return AbortStatusAlreadyCommitted, newError(types.TXN_ALREADY_COMMITTED, "Transaction already committed")
14951495
case TxnStateAborted:
14961496
return AbortStatusAlreadyAborted, nil
14971497
}

command.go

+19-7
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,14 @@ const (
8686
// See Below
8787
_INFO3_SC_READ_RELAX int = (1 << 7)
8888

89-
// Send MRT version to the server to be verified.
89+
// Send Transaction version to the server to be verified.
9090
_INFO4_MRT_VERIFY_READ = (1 << 0)
91-
// Roll forward MRT.
91+
// Roll forward Transaction.
9292
_INFO4_MRT_ROLL_FORWARD = (1 << 1)
93-
// Roll back MRT.
93+
// Roll back Transaction.
9494
_INFO4_MRT_ROLL_BACK = (1 << 2)
95+
// Must be able to lock record in transaction.
96+
_INFO4_MRT_ON_LOCKING_ONLY = (1 << 4)
9597

9698
// Interpret SC_READ bits in info3.
9799
//
@@ -626,7 +628,7 @@ func (cmd *baseCommand) sizeTxn(key *Key, txn *Txn, hasWrite bool) int {
626628

627629
func (cmd *baseCommand) sizeTxnBatch(txn *Txn, ver *uint64, hasWrite bool) {
628630
if txn != nil {
629-
cmd.dataOffset++ // Add info4 byte for MRT.
631+
cmd.dataOffset++ // Add info4 byte for Transaction.
630632
cmd.dataOffset += int(8 + _FIELD_HEADER_SIZE)
631633

632634
if ver != nil {
@@ -2892,6 +2894,7 @@ func (cmd *baseCommand) writeHeaderWrite(policy *WritePolicy, writeAttr, fieldCo
28922894
generation := uint32(0)
28932895
readAttr := 0
28942896
infoAttr := 0
2897+
txnAttr := 0
28952898

28962899
switch policy.RecordExistsAction {
28972900
case UPDATE:
@@ -2923,6 +2926,10 @@ func (cmd *baseCommand) writeHeaderWrite(policy *WritePolicy, writeAttr, fieldCo
29232926
writeAttr |= _INFO2_DURABLE_DELETE
29242927
}
29252928

2929+
if policy.OnLockingOnly {
2930+
txnAttr |= _INFO4_MRT_ON_LOCKING_ONLY
2931+
}
2932+
29262933
// if (policy.Xdr) {
29272934
// readAttr |= _INFO1_XDR;
29282935
// }
@@ -2932,7 +2939,7 @@ func (cmd *baseCommand) writeHeaderWrite(policy *WritePolicy, writeAttr, fieldCo
29322939
cmd.dataBuffer[9] = byte(readAttr)
29332940
cmd.dataBuffer[10] = byte(writeAttr)
29342941
cmd.dataBuffer[11] = byte(infoAttr)
2935-
cmd.dataBuffer[12] = 0 // unused
2942+
cmd.dataBuffer[12] = byte(txnAttr)
29362943
cmd.dataBuffer[13] = 0 // clear the result code
29372944
cmd.dataOffset = 14
29382945
cmd.WriteUint32(generation)
@@ -2954,6 +2961,7 @@ func (cmd *baseCommand) writeHeaderReadWrite(policy *WritePolicy, args *operateA
29542961
readAttr := args.readAttr
29552962
writeAttr := args.writeAttr
29562963
infoAttr := 0
2964+
txnAttr := 0
29572965
operationCount := len(args.operations)
29582966

29592967
switch policy.RecordExistsAction {
@@ -2986,6 +2994,10 @@ func (cmd *baseCommand) writeHeaderReadWrite(policy *WritePolicy, args *operateA
29862994
writeAttr |= _INFO2_DURABLE_DELETE
29872995
}
29882996

2997+
if policy.OnLockingOnly {
2998+
txnAttr |= _INFO4_MRT_ON_LOCKING_ONLY
2999+
}
3000+
29893001
// if (policy.xdr) {
29903002
// readAttr |= _INFO1_XDR;
29913003
// }
@@ -3013,7 +3025,7 @@ func (cmd *baseCommand) writeHeaderReadWrite(policy *WritePolicy, args *operateA
30133025
cmd.dataBuffer[9] = byte(readAttr)
30143026
cmd.dataBuffer[10] = byte(writeAttr)
30153027
cmd.dataBuffer[11] = byte(infoAttr)
3016-
cmd.dataBuffer[12] = 0 // unused
3028+
cmd.dataBuffer[12] = byte(txnAttr)
30173029
cmd.dataBuffer[13] = 0 // clear the result code
30183030
cmd.dataOffset = 14
30193031
cmd.WriteUint32(generation)
@@ -3113,7 +3125,7 @@ func (cmd *baseCommand) writeKeyAttr(
31133125
cmd.WriteByte(byte(attr.readAttr))
31143126
cmd.WriteByte(byte(attr.writeAttr))
31153127
cmd.WriteByte(byte(attr.infoAttr))
3116-
cmd.WriteByte(0) // unused
3128+
cmd.WriteByte(byte(attr.txnAttr))
31173129
cmd.WriteByte(0) // clear the result code
31183130
cmd.WriteUint32(attr.generation)
31193131
cmd.WriteUint32(attr.expiration)

commit_error.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414

1515
package aerospike
1616

17-
// Multi-record transaction (MRT) error status.
17+
// Transaction error status.
1818
type CommitError string
1919

2020
const (
21-
CommitErrorVerifyFail CommitError = "MRT verify failed. MRT aborted."
22-
CommitErrorVerifyFailCloseAbandoned CommitError = "MRT verify failed. MRT aborted. MRT client close abandoned. Server will eventually close the MRT."
23-
CommitErrorVerifyFailAbortAbandoned CommitError = "MRT verify failed. MRT client abort abandoned. Server will eventually abort the MRT."
24-
CommitErrorMarkRollForwardAbandoned CommitError = "MRT client mark roll forward abandoned. Server will eventually abort the MRT."
21+
CommitErrorVerifyFail CommitError = "Transaction verify failed. Transaction aborted."
22+
CommitErrorVerifyFailCloseAbandoned CommitError = "Transaction verify failed. Transaction aborted. Transaction client close abandoned. Server will eventually close the Transaction."
23+
CommitErrorVerifyFailAbortAbandoned CommitError = "Transaction verify failed. Transaction client abort abandoned. Server will eventually abort the Transaction."
24+
CommitErrorMarkRollForwardAbandoned CommitError = "Transaction client mark roll forward abandoned. Server will eventually abort the Transaction."
2525
)

commit_status.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414

1515
package aerospike
1616

17-
// Multi-record transaction (MRT) commit status code.
17+
// Transaction commit status code.
1818
type CommitStatus string
1919

2020
const (
2121
CommitStatusOK CommitStatus = "Commit succeeded"
2222
CommitStatusUnverified CommitStatus = "Commit process was disrupted on client side and unverified"
2323
CommitStatusAlreadyCommitted CommitStatus = "Already committed"
2424
CommitStatusAlreadyAborted CommitStatus = "Already aborted"
25-
CommitStatusRollForwardAbandoned CommitStatus = "MRT client roll forward abandoned. Server will eventually commit the MRT."
26-
CommitStatusCloseAbandoned CommitStatus = "MRT has been rolled forward, but MRT client close was abandoned. Server will eventually close the MRT."
25+
CommitStatusRollForwardAbandoned CommitStatus = "Transaction client roll forward abandoned. Server will eventually commit the Transaction."
26+
CommitStatusCloseAbandoned CommitStatus = "Transaction has been rolled forward, but Transaction client close was abandoned. Server will eventually close the Transaction."
2727
)

go.mod

+4-5
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ module github.com/aerospike/aerospike-client-go/v8
33
go 1.23
44

55
require (
6-
github.com/onsi/ginkgo/v2 v2.22.0
7-
github.com/onsi/gomega v1.36.1
6+
github.com/onsi/ginkgo/v2 v2.22.2
7+
github.com/onsi/gomega v1.36.2
8+
github.com/wadey/gocovmerge v0.0.0-20160331181800-b5bfa59ec0ad
89
github.com/yuin/gopher-lua v1.1.1
910
golang.org/x/sync v0.10.0
1011
)
@@ -16,12 +17,10 @@ require (
1617
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
1718
github.com/kr/pretty v0.3.1 // indirect
1819
github.com/stretchr/testify v1.10.0 // indirect
19-
github.com/wadey/gocovmerge v0.0.0-20160331181800-b5bfa59ec0ad // indirect
20-
golang.org/x/net v0.32.0 // indirect
20+
golang.org/x/net v0.33.0 // indirect
2121
golang.org/x/sys v0.28.0 // indirect
2222
golang.org/x/text v0.21.0 // indirect
2323
golang.org/x/tools v0.28.0 // indirect
24-
google.golang.org/protobuf v1.35.2 // indirect
2524
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
2625
gopkg.in/yaml.v3 v3.0.1 // indirect
2726
)

go.sum

+10-8
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,23 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
1616
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
1717
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
1818
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
19-
github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg=
20-
github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
21-
github.com/onsi/gomega v1.36.1 h1:bJDPBO7ibjxcbHMgSCoo4Yj18UWbKDlLwX1x9sybDcw=
22-
github.com/onsi/gomega v1.36.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
19+
github.com/onsi/ginkgo/v2 v2.22.2 h1:/3X8Panh8/WwhU/3Ssa6rCKqPLuAkVY2I0RoyDLySlU=
20+
github.com/onsi/ginkgo/v2 v2.22.2/go.mod h1:oeMosUL+8LtarXBHu/c0bx2D/K9zyQ6uX3cTyztHwsk=
21+
github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8=
22+
github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY=
2323
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
2424
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
2525
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
2626
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
2727
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
2828
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
2929
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
30+
github.com/wadey/gocovmerge v0.0.0-20160331181800-b5bfa59ec0ad h1:W0LEBv82YCGEtcmPA3uNZBI33/qF//HAAs3MawDjRa0=
31+
github.com/wadey/gocovmerge v0.0.0-20160331181800-b5bfa59ec0ad/go.mod h1:Hy8o65+MXnS6EwGElrSRjUzQDLXreJlzYLlWiHtt8hM=
3032
github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M=
3133
github.com/yuin/gopher-lua v1.1.1/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
32-
golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI=
33-
golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs=
34+
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
35+
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
3436
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
3537
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
3638
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
@@ -39,8 +41,8 @@ golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
3941
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
4042
golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8=
4143
golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw=
42-
google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io=
43-
google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
44+
google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk=
45+
google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
4446
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
4547
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
4648
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

policy.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ var _ Policy = &BasePolicy{}
3333
// BasePolicy encapsulates parameters for command policy attributes
3434
// used in all database operation calls.
3535
type BasePolicy struct {
36-
// Multi-record transaction identifier (MRT). If this field is populated, the corresponding
37-
// command will be included in the MRT. This field is ignored for scan/query.
36+
// Multi-record transaction identifier (Transaction). If this field is populated, the corresponding
37+
// command will be included in the Transaction. This field is ignored for scan/query.
3838
Txn *Txn
3939

4040
// FilterExpression is the optional Filter Expression. Supported on Server v5.2+
@@ -159,6 +159,8 @@ type BasePolicy struct {
159159
// This option will increase cpu and memory usage (for extra compressed buffers),but
160160
// decrease the size of data sent over the network.
161161
//
162+
// Valid for Aerospike Server Enterprise Edition only.
163+
//
162164
// Default: false
163165
UseCompression bool // = false
164166

0 commit comments

Comments
 (0)