Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

go-gorm/sharding plugin would fail when combining with hints.ForceIndex in MySQL #159

Open
zhaojames0707 opened this issue Apr 30, 2024 · 2 comments
Assignees

Comments

@zhaojames0707
Copy link

GORM Playground Link

go-gorm/playground#726

Description

I create a logical table named message, and use two underlying sharding tables: message_01 and message_02.
When using go-gorm/sharding plugin alone, everything works well, as in test case TestSharding.
However, after I added Clauses(hints.ForceIndex("idx_content")) in the query, the sharding plugin would fail, as in test case TestShardingAndForceIndex.
The error log shows Error 1146 (42S02): Table 'gorm.message' doesn't exist.
After some digging up, I found the cause of the issue comes from this line:

expr, err := sqlparser.NewParser(strings.NewReader(query)).ParseStatement()

It seems sqlparser can't handle the FORCE INDEX syntax in SQL, causing the sharding plugin fails and falls back to original(not sharded) SQL.
A relevant issue: #91

@zhaojames0707
Copy link
Author

@jinzhu

@fomalhaut-w
Copy link

any update?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants