Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

1.10版本中发现连续Join时抛出数组越界异常

Offen
#304 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
java, sql

Rechercherichtung

Beginne in com.dtstack.flink.sql.side.ParserJoinField, insbesondere bei getAllField(JoinScope scope) etwa in den Zeilen 124–127, und reproduziere die gemeldete Abfrage mit zwei Joins auf dieselbe Dimensionstabelle. Vergleiche field.getFieldNames() mit field.getTotalFields(), wenn das Feld einen Row enthält, und überprüfe anschließend, dass die Abfrage keinen Array-Index-Fehler mehr auslöst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

我将flinkStreamSql从1.8.1升级到1.10,原来可以运行的Join语句出错了。
tableA是源表, tableB 是维表,执行下面的语句
CREATE VIEW v_a_join_b AS
SELECT A.col_a1,A.col_a2,A.col_a3,B1.col_b as col_b1,B2.col_b as col_b2
FROM tableA AS A
LEFT JOIN tableB AS B1 ON A.col_a1 = B1.col_b
LEFT JOIN tableB AS B2 ON A.col_a2 = B2.col_b;
在com.dtstack.flink.sql.side.ParserJoinField类的
private static List getAllField(JoinScope scope) 方法中
会出现124行,String[] fieldNames = field.getFieldNames(); 只有两个字段f1,f2,其中f1是true,f2是Row其实包含了很多字段。 但是在126行,field.getTotalFields()会是实际包含的字段数,这样在127行, String fieldName = fieldNames[i]; 就会抛出数组越界的异常。 这个问题只在 多次Join需要进行表转流,流转表的时候才会遇到。
UI5M81IRAH)Y3YB NRF6726

Vorherrschende Sprache
Java
Sterne
2k
Forks
913
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus DTStack/flinkStreamSQL

Alle Issues in DTStack/flinkStreamSQL

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

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