Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[BUG] Preserve DynamoDB N and NS numeric fidelity during decoding

Aperta
#110 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@allenkim0129 ci sta già lavorando.

Dal 16/9/2026.

  • #112 di @allenkim0129 — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
java
Ambito
databases

Direzione di ricerca

Individua l’implementazione di DynamoItemMapper e i test round-trip esistenti per read, query, update e number-set. Inizia tracciando il modo in cui le stringhe N e NS diventano nodi Jackson, quindi verifica che i decimali ad alta precisione, le forme esponenziali e gli interi fuori intervallo preservino i propri valori numerici durante la decodifica e la ricodifica. Il limite numerico portabile deve essere esplicito, come richiesto dai criteri di accettazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug java

Bug description

DynamoItemMapper currently decodes DynamoDB N and NS strings through Java primitive parsers. Decimal values are converted through Double.parseDouble(...), which can silently lose DynamoDB's native decimal precision, and integral values outside the long range cannot be represented by the current fallback.

The behavior affects read/query/update result fidelity and predates #105, so it should be fixed independently of partial update.

Provider

  • Azure Cosmos DB
  • Amazon DynamoDB
  • Google Cloud Spanner
  • Not provider-specific

Reproduction steps

  1. Store an N value with more precision than binary64 can represent, such as a 38-digit DynamoDB decimal.
  2. Store a valid DynamoDB integral value outside the Java long range.
  3. Read the item or decode the same values through an NS attribute.
  4. Compare the returned Jackson nodes with the native numeric strings.

Expected behaviour

The mapper preserves native DynamoDB numeric fidelity (for example with DecimalNode/BigIntegerNode) until the portable API applies its explicitly documented numeric contract.

Actual behaviour

Decimal values can be silently rounded to binary64, and large integral values can fail during primitive parsing.

Acceptance criteria

  • N and every member of NS decode without binary64 precision loss.
  • Valid DynamoDB integers outside the Java long range are handled deterministically.
  • Encoding the decoded node back to DynamoDB preserves the numeric value.
  • Read, query, and partial-update round-trip tests cover high-precision decimals, exponent forms, large positive/negative integers, and number sets.
  • Integration with the future portable numeric boundary is explicit rather than an accidental mapper conversion.

Additional context

Related umbrella issues: #37 and #64.

Lingua principale
Java
Stelle
7
Fork
7
Merge medio
1g 19h
PR unite (30g)
3

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/multiclouddb-sdk-for-java

Tutte le issue di microsoft/multiclouddb-sdk-for-java

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.