From 529b8c66e9c1aa45700502d878613f9a9bd34dfc Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 29 Dec 2023 16:57:58 +0800 Subject: [PATCH] Fix use hint with join bug --- internal/statements/query.go | 2 +- tests/session_test.go | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/statements/query.go b/internal/statements/query.go index a36d8ad3..e817403c 100644 --- a/internal/statements/query.go +++ b/internal/statements/query.go @@ -184,6 +184,7 @@ func (statement *Statement) writeFrom(w *builder.BytesWriter) error { statement.writeStrings(" FROM "), statement.writeTableName, statement.writeAlias, + statement.writeIndexHints, statement.writeJoins, ) } @@ -254,7 +255,6 @@ func (statement *Statement) writeSelect(buf *builder.BytesWriter, columnStr stri return statement.writeMultiple(buf, statement.writeSelectColumns(columnStr), statement.writeFrom, - statement.writeIndexHints, statement.writeWhere, statement.writeGroupBy, statement.writeHaving, diff --git a/tests/session_test.go b/tests/session_test.go index 3286ab2e..61715e66 100644 --- a/tests/session_test.go +++ b/tests/session_test.go @@ -78,4 +78,11 @@ func TestIndexHint(t *testing.T) { _, err = testEngine.Table("userinfo").IndexHint("USE", "GROUP BY", "UQE_userinfo_username").Get(new(Userinfo)) assert.NoError(t, err) + + // with join + _, err = testEngine.Table("userinfo"). + Join("LEFT", "userdetail", "userinfo.id = userdetail.id"). + IndexHint("USE", "", "UQE_userinfo_username"). + Get(new(Userinfo)) + assert.NoError(t, err) }