Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
f9340ed
update
joechenrh May 27, 2025
b47d075
update
joechenrh May 27, 2025
8d6872c
update
joechenrh May 28, 2025
2fef8fa
fix SQL
joechenrh May 29, 2025
a90c62f
change implement
joechenrh May 29, 2025
756e9b5
fix check SQL
joechenrh May 29, 2025
7b161dd
update comment
joechenrh May 29, 2025
86096c7
add limit to fast mv index check
joechenrh May 29, 2025
bf7d299
fix check
joechenrh May 29, 2025
4237c5d
fix and add test
joechenrh May 30, 2025
bd42a3b
update
joechenrh May 30, 2025
8c6b234
add double type
joechenrh May 30, 2025
02f97a7
fix
joechenrh May 30, 2025
cfd0b99
update
joechenrh Aug 8, 2025
75e8433
remove some code
joechenrh Aug 12, 2025
04ee5dd
Merge branch 'master' into test_mv_index
joechenrh Aug 12, 2025
594357f
update bazel
joechenrh Aug 12, 2025
07651fc
update test
joechenrh Aug 12, 2025
463d7ed
fixup
joechenrh Aug 13, 2025
624cf0d
fixup
joechenrh Aug 13, 2025
586a20b
update
joechenrh Aug 13, 2025
40afe4f
update generated file
joechenrh Aug 14, 2025
f11651f
Merge branch 'master' into test_mv_index
joechenrh Aug 18, 2025
6eceef0
fix after merge
joechenrh Aug 18, 2025
0cb2fdc
update
joechenrh Aug 18, 2025
ac55da3
update
joechenrh Aug 18, 2025
64f7068
remove test
joechenrh Aug 18, 2025
a93bec0
update
joechenrh Aug 19, 2025
ef9a580
fix JSON tests
joechenrh Aug 19, 2025
8d4de37
fix tests
joechenrh Aug 19, 2025
5555bba
remove unnecessary variables
joechenrh Aug 20, 2025
8bd6c3c
update
joechenrh Aug 20, 2025
be9e1d9
move test
joechenrh Aug 20, 2025
c350c78
fix unstable global index test
joechenrh Aug 20, 2025
bc3cc7b
Merge branch 'master' into test_mv_index
joechenrh Aug 25, 2025
1ee37e6
update
joechenrh Aug 25, 2025
b1b5ccc
make admin check for global index stable
joechenrh Aug 25, 2025
337a8f4
Update test
joechenrh Sep 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 28 additions & 13 deletions pkg/executor/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -510,24 +510,39 @@ func buildIndexLookUpChecker(b *executorBuilder, p *physicalop.PhysicalIndexLook
}
}

func (b *executorBuilder) buildCheckTable(v *plannercore.CheckTable) exec.Executor {
noMVIndexOrPrefixIndexOrColumnarIndex := true
for _, idx := range v.IndexInfos {
if idx.MVIndex || idx.IsColumnarIndex() {
noMVIndexOrPrefixIndexOrColumnarIndex = false
break
}
for _, col := range idx.Columns {
if col.Length != types.UnspecifiedLength {
noMVIndexOrPrefixIndexOrColumnarIndex = false
break
// indexSupportFastCheck checks whether the index supports fast check.
func indexSupportFastCheck(tblInfo *model.TableInfo, idxInfo *model.IndexInfo) bool {
// Columnar index does not support fast check.
if idxInfo.IsColumnarIndex() {
return false
}

for _, col := range idxInfo.Columns {
// Currently, MV Index only support fast check for part of data types.
tblCol := tblInfo.Columns[col.Offset]
if len(ExtractCastArrayExpr(tblCol)) > 0 {
// TODO(joechenrh): support all data types.
switch tblCol.FieldType.ArrayType().EvalType() {
case types.ETDatetime, types.ETDuration, types.ETString, types.ETInt, types.ETReal:
default:
return false
}
}
if !noMVIndexOrPrefixIndexOrColumnarIndex {
}

return true
}

func (b *executorBuilder) buildCheckTable(v *plannercore.CheckTable) exec.Executor {
supportFastAdminCheck := true
tblInfo := v.Table.Meta()
for _, idx := range v.IndexInfos {
if !indexSupportFastCheck(tblInfo, idx) {
supportFastAdminCheck = false
break
}
}
if b.ctx.GetSessionVars().FastCheckTable && noMVIndexOrPrefixIndexOrColumnarIndex {
if b.ctx.GetSessionVars().FastCheckTable && supportFastAdminCheck {
e := &FastCheckTableExec{
BaseExecutor: exec.NewBaseExecutor(b.ctx, v.Schema(), v.ID()),
dbName: v.DBName,
Expand Down
Loading