Skip to content

Commit

Permalink
fix index look up fail
Browse files Browse the repository at this point in the history
  • Loading branch information
shiyuhang0 committed Jul 23, 2024
1 parent c48aaaa commit 1da850a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@ class IssueTestSuite extends BaseTiSparkTest {
tidbStmt.execute(
s"CREATE TABLE $dbTable (`CI_NO` varchar(64) NOT NULL, `AC_DT` bigint(20) NOT NULL, `YM_DT` bigint(20) NOT NULL,`SYS_TYPE` varchar(20) NOT NULL, PRIMARY KEY (`CI_NO`,`AC_DT`,`YM_DT`,`SYS_TYPE`) /*T![clustered_index] CLUSTERED */, KEY `IDX_FLOW_01` (`CI_NO`,`AC_DT`))")
tidbStmt.execute(s"insert into $dbTable values('1',1,1,'1')")
spark.sql(s"select ci_no,ac_dt from $dbTable").show()
spark.sql(s"select ci_no,ac_dt from $dbTable").explain()
spark.sqlContext.setConf(TiConfigConst.USE_INDEX_SCAN_FIRST, "true")
spark.sql(s"select * from $dbTable").show()
spark.sqlContext.setConf(TiConfigConst.USE_INDEX_SCAN_FIRST, "false")
}

test("test like escape") {
Expand Down
13 changes: 10 additions & 3 deletions tikv-client/src/main/java/com/pingcap/tikv/meta/TiDAGRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -229,9 +229,6 @@ public DAGRequest buildDAGGetIndexData() {
for (TiIndexColumn col : tableInfo.getPrimaryKey().getIndexColumns()) {
TiColumnInfo columnInfo = tableInfo.getColumn(col.getName());
indexScanBuilder.addPrimaryColumnIds(columnInfo.getId());
// add primary columns to columns:
// https://github.com/pingcap/tidb/blob/ddcaadbb856f0890e91e4c77991f0d2aa5aa93d0/pkg/planner/core/planbuilder.go#L1515
indexScanBuilder.addColumns(ColumnInfo.newBuilder(columnInfo.toProto(tableInfo)));
}
}

Expand Down Expand Up @@ -304,6 +301,16 @@ private void addIndexReaderIndexRangeScanExecutorCols(
+ columnInfo.getName());
}
}
if (tableInfo.isCommonHandle()) {
for (TiIndexColumn col : tableInfo.getPrimaryKey().getIndexColumns()) {
TiColumnInfo columnInfo = tableInfo.getColumn(col.getName());
// add primary columns to columns:
// https://github.com/pingcap/tidb/blob/ddcaadbb856f0890e91e4c77991f0d2aa5aa93d0/pkg/planner/core/planbuilder.go#L1515
if (!isDoubleRead()) {
indexScanBuilder.addColumns(ColumnInfo.newBuilder(columnInfo.toProto(tableInfo)));
}
}
}
}

private void addIndexColsToScanBuilder(
Expand Down

0 comments on commit 1da850a

Please sign in to comment.