From 422b8fdecd08f4bb6ce30e5d49bf2a6f24ef7591 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 17 Nov 2023 21:11:42 +0800 Subject: [PATCH] :art: Kernel API `/api/query/sql` support `||` operator https://github.com/siyuan-note/siyuan/issues/9662 --- kernel/sql/asset_content_query.go | 4 ++-- kernel/sql/block_query.go | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/kernel/sql/asset_content_query.go b/kernel/sql/asset_content_query.go index 4f25dbbd6..22c14af82 100644 --- a/kernel/sql/asset_content_query.go +++ b/kernel/sql/asset_content_query.go @@ -46,7 +46,7 @@ func queryAssetContentRawStmt(stmt string, limit int) (ret []map[string]interfac return } - noLimit := !strings.Contains(strings.ToLower(stmt), " limit ") + noLimit := !containsLimitClause(stmt) var count, errCount int for rows.Next() { columns := make([]interface{}, len(cols)) @@ -152,7 +152,7 @@ func selectAssetContentsRawStmt(stmt string, limit int) (ret []*AssetContent) { } defer rows.Close() - noLimit := !strings.Contains(strings.ToLower(stmt), " limit ") + noLimit := !containsLimitClause(stmt) var count, errCount int for rows.Next() { count++ diff --git a/kernel/sql/block_query.go b/kernel/sql/block_query.go index 385d1d2de..b555bdc86 100644 --- a/kernel/sql/block_query.go +++ b/kernel/sql/block_query.go @@ -503,7 +503,7 @@ func queryRawStmt(stmt string, limit int) (ret []map[string]interface{}, err err return } - noLimit := !strings.Contains(strings.ToLower(stmt), " limit ") + noLimit := !containsLimitClause(stmt) var count, errCount int for rows.Next() { columns := make([]interface{}, len(cols)) @@ -609,7 +609,7 @@ func selectBlocksRawStmt(stmt string, limit int) (ret []*Block) { } defer rows.Close() - noLimit := !strings.Contains(strings.ToLower(stmt), " limit ") + noLimit := !containsLimitClause(stmt) var count, errCount int for rows.Next() { count++ @@ -836,3 +836,8 @@ func GetContainerText(container *ast.Node) string { }) return buf.String() } + +func containsLimitClause(stmt string) bool { + return strings.Contains(strings.ToLower(stmt), " limit ") || + strings.Contains(strings.ToLower(stmt), "\nlimit ") +}