Java SDK: `describeTable()` не возвращает JSON-индексы
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Start in table/src/main/java/tech/ydb/table/impl/BaseSession.java at mapDescribeTable(), which handles only the global, async and unique index kinds, and in table/src/main/java/tech/ydb/table/description/TableIndex.java, whose Type enum has no JSON entry. The protobuf dependency version is set in bom/pom.xml (ydb-proto-api 1.9.6), and the C++ SDK's kGlobalJsonIndex mapping is a reference for the expected shape. Done means a test with a GLOBAL USING json index returns it from getIndexes() with a JSON type and the payload column. The protobuf bump and the design of the new type should be agreed with maintainers first.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Проблема
Если у таблицы YDB есть индекс GLOBAL USING json, вызов Session.describeTable() возвращает TableDescription, в котором этот индекс отсутствует в getIndexes(). Обычные вторичные индексы той же таблицы отображаются.
Из-за этого по результату describeTable() нельзя получить полное описание индексов таблицы или даже определить, что JSON-индекс существует.
Как воспроизвести
-
Создать таблицу с JSON-индексом, например:
CREATE TABLE documents ( id Uint64 NOT NULL, payload JsonDocument NOT NULL, INDEX json_idx GLOBAL USING json ON (payload), PRIMARY KEY (id) ); -
В Java SDK вызвать
session.describeTable(path)и проверитьresult.getValue().getIndexes().
Фактически: json_idx отсутствует в списке индексов. Метод не сообщает об ошибке.
Ожидается: json_idx присутствует в описании таблицы с типом JSON-индекса и индексируемой колонкой payload.
Что видно в исходниках
BaseSession.mapDescribeTable() добавляет в TableDescription только global_index, global_async_index и global_unique_index. В TableIndex.Type отдельного типа для JSON-индекса также нет. Используемый ydb-proto-api версии 1.9.6 не содержит типизированного поля GlobalJsonIndex в TableIndexDescription.
Для сравнения, C++ SDK обрабатывает kGlobalJsonIndex и преобразует его в EIndexType::GlobalJson.
Похоже, Java SDK требуется поддержка JSON-индекса на уровне protobuf-зависимости, модели TableIndex и преобразования ответа describeTable(), а также тест на таблицу с таким индексом.
Версии
- Анализ исходников: ветка
master,2.4.12-SNAPSHOT.
- Lenguaje dominante
- Java
- Estrellas
- 53
- Forks
- 41
- Merge medio
- 1 d 13 h
- PR fusionados (30 d)
- 19
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ydb-platform/ydb-java-sdk
-
feat: Manage table attributesAbiertoenhancement feature-parity
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
ydb-platform/ydb-java-sdk#651 ·
Los mantenedores suelen responder en 1 día
-
bug: "Sent message larger than max" error is retryablePosiblemente ocupada @mnnekrashevich la tomó hace 40 días. Abiertoai_reviewed
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
ydb-platform/ydb-java-sdk#621 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Batching writes to topicAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
ydb-platform/ydb-java-sdk#573 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Topic API control event orderingAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
ydb-platform/ydb-java-sdk#553 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
ydb-platform/ydb-java-sdk#551 ·
Los mantenedores suelen responder en 1 día
Todos los issues de ydb-platform/ydb-java-sdk
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
bug new windows
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
iOS podspec depends on `React-Codegen`, which resolves to an unrelated pod on CocoaPods trunkAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
GantMan/jail-monkey#380 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
objectionary/jucs#145 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
objectionary/lints#1559 ·
Los mantenedores suelen responder en 2 días