From 70e2cd3987fddcc6f6221b4884012eb89e0d28c1 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 1 Feb 2023 09:53:40 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E7=B4=A2=E5=BC=95=E5=B5=8C=E5=85=A5?= =?UTF-8?q?=E5=9D=97=E5=86=85=E5=AE=B9=E5=8F=AF=E8=83=BD=E4=BC=9A=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E5=86=85=E6=A0=B8=E5=B4=A9=E6=BA=83=20https://github.?= =?UTF-8?q?com/siyuan-note/siyuan/issues/7213?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/index.go | 4 ++++ kernel/sql/block_query.go | 12 ++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/kernel/model/index.go b/kernel/model/index.go index 8d2c34957..a84325265 100644 --- a/kernel/model/index.go +++ b/kernel/model/index.go @@ -197,6 +197,10 @@ func autoIndexEmbedBlock(embedBlocks []*sql.Block) { for i, embedBlock := range embedBlocks { stmt := strings.TrimPrefix(embedBlock.Markdown, "{{") stmt = strings.TrimSuffix(stmt, "}}") + if !strings.Contains(strings.ToLower(stmt), "select") { + continue + } + queryResultBlocks := sql.SelectBlocksRawStmtNoParse(stmt, 102400) for _, block := range queryResultBlocks { embedBlock.Content += block.Content diff --git a/kernel/sql/block_query.go b/kernel/sql/block_query.go index d7eda5bfb..0d0f22c0c 100644 --- a/kernel/sql/block_query.go +++ b/kernel/sql/block_query.go @@ -468,14 +468,18 @@ func selectBlocksRawStmt(stmt string, limit int) (ret []*Block) { defer rows.Close() confLimit := !strings.Contains(strings.ToLower(stmt), " limit ") + var count, errCount int for rows.Next() { + count++ if block := scanBlockRows(rows); nil != block { ret = append(ret, block) - if confLimit && limit < len(ret) { - break - } } else { - logging.LogWarnf("raw sql query [%s] failed: %s", stmt, err) + logging.LogWarnf("raw sql query [%s] failed: %s", stmt) + errCount++ + } + + if (confLimit && limit < count) || 7 < errCount { + break } } return