Skip to content

Commit a629877

Browse files
authored
Skip EnhancedAttributeValue wrapping in converters transformTo when t… (#6707)
* Skip EnhancedAttributeValue wrapping in converters transformTo when type is already correct * Add isolated benchmarks for converters * Fix benchmark mode * Remove unusued benchmark * Add changelog --------- Co-authored-by: RanVaknin <>
1 parent 721cf44 commit a629877

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "Amazon DynamoDB Enhanced Client",
4+
"contributor": "",
5+
"description": "Improved performance by adding a fast path avoiding wrapping of String and Byte types"
6+
}

services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/attribute/ByteArrayAttributeConverter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public AttributeValue transformFrom(byte[] input) {
6969
@Override
7070
public byte[] transformTo(AttributeValue input) {
7171
if (input.b() != null) {
72-
return EnhancedAttributeValue.fromBytes(input.b()).convert(VISITOR);
72+
return input.b().asByteArray();
7373
}
7474

7575
return EnhancedAttributeValue.fromAttributeValue(input).convert(VISITOR);

services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/attribute/StringAttributeConverter.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@ public AttributeValue transformFrom(String input) {
7070

7171
@Override
7272
public String transformTo(AttributeValue input) {
73-
return Visitor.toString(input);
73+
if (input.s() != null) {
74+
return input.s();
75+
}
76+
return EnhancedAttributeValue.fromAttributeValue(input).convert(Visitor.INSTANCE);
7477
}
7578

7679
private static final class Visitor extends TypeConvertingVisitor<String> {

0 commit comments

Comments
 (0)