aws / aws/aws-sdk-java-v2

DynamoDB enhanced client DynamoDbIndex.query to return PageIterable

Offen
#2,855 2 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
dynamodb-enhanced feature-request p3
Vorherrschende Sprache
Java
Sterne
2.6k
Forks
1k
Ø Merge
2 T. 9 Std.
Gemergte PRs (30 T.)
51

Beschreibung

### Describe the feature

When using enhanced DynamoDB there is an interface for PageIterable that adds useful functionality on top of SDKIterable.java, namely an iterator across all pages from the result set. The [query method](https://github.com/aws/aws-sdk-java-v2/blob/8f54393ff4e166eb3f56bc1b411b27f6bf0213b5/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/client/DefaultDynamoDbIndex.java#L57) of DynamoDBTable.java returns said useful type, however similar class DynamoDBIndex.java returns the more basic SDKIterable.java in the [query method](https://github.com/aws/aws-sdk-java-v2/blob/8f54393ff4e166eb3f56bc1b411b27f6bf0213b5/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/client/DefaultDynamoDbTable.java#L177).

This was already raised in https://github.com/aws/aws-sdk-java-v2/issues/2185, but I believe the documentation fix is not the ideal long term solution. The solution would be to provide similar support for query() both in DynamoDBTable and DynamoDBIndex.

When using dynamo console in the browser, the query works the same for the default table index and the created GSIs, the code should behave consistently.

### Is your Feature Request related to a problem?

This requires all consumers of SDK to do extra coding for replicating code that the SDK already distributes. This increases code duplication as is error prone, both issues that PageIterable interface solves in the first place.

### Proposed Solution

Proposal for non-breaking change,
- Keep the existing DynamoDBIndex ```SdkIterable> query(QueryEnhancedRequest request);```
- Add a new method in DynamoDBIndex ```PageIterable query(QueryEnhancedRequest request);```

### Describe alternatives you've considered

_No response_

### Acknowledge

- [ ] I may be able to implement this feature request

### AWS Java SDK version used

2.17.76

### JDK version used

openjdk 11.0.12

### Operating System and version

MacOS 12.0.1

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit den Abfragedeklarationen von DynamoDBIndex und DynamoDBTable und vergleiche anschließend DefaultDynamoDbIndex.java mit DefaultDynamoDbTable.java, insbesondere die verknüpften Abfrageimplementierungen. Verfolge, wie PageIterable für Tabellenabfragen zurückgegeben wird, und ermittle das entsprechende Indexverhalten; die Aufgabe ist abgeschlossen, wenn Indexabfragen dieselbe Unterstützung für die Seiteniteration bieten und dabei die vorgeschlagenen Kompatibilitätsanforderungen beibehalten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
aws, java
Bereich
database
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.