[Bug] RemoteTableQuery keySerializer should not include partition keys

Abierto Apto para principiantes
#8,145 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
java
Área
databases

Línea de trabajo

Comience en org.apache.paimon.flink.query.RemoteTableQuery.lookup y siga su uso de InternalRowSerializer.toBinaryRow. Reproduzca una combinación de búsqueda remota contra una tabla particionada de clave primaria en la que los tipos de partición y de clave recortada difieran; después, verifique que la serialización ya no lea los campos de partición y que la ClassCastException haya desaparecido.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug
Search before asking
  • I searched in the issues and found nothing similar.
Paimon version

When doing a lookup join to the remote query service (for primary key tables), we pass the partition keys, a bucket number, and a row to join to the existing table. Right now, serialization of the row fails because the serializer expected by the remote query service client assumes that the row includes partition fields, but we do not pass them (this is the same in LocalTableQuery, not a bug).

Let's change the key serializer here to avoid looking for partition keys.

Compute Engine

Flink

Minimal reproduce step

Use the remote query service to perform a lookup join from a flink row to a paimon table. The table must be partitioned, and the partitioned key and trimmed key must have different types (e.g. int vs. string). I'll include a test case in the PR that trips it up.

What doesn't meet your expectations?
java.lang.ClassCastException: class org.apache.paimon.data.BinaryString cannot be cast to class java.lang.Integer                                                                                   
        at org.apache.paimon.data.GenericRow.getInt(GenericRow.java:152)
        at org.apache.paimon.data.serializer.InternalRowSerializer.toBinaryRow(InternalRowSerializer.java:123)
        at org.apache.paimon.flink.query.RemoteTableQuery.lookup(RemoteTableQuery.java:73)
Anything else?

No response

Are you willing to submit a PR?
  • I'm willing to submit a PR!
Lenguaje dominante
Java
Estrellas
3.4k
Forks
1.4k
Merge medio
1 d 14 h
PR fusionados (30 d)
468

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/paimon

Todos los issues de apache/paimon

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.