Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
e24f92b7
Commit
e24f92b7
authored
Jul 22, 2025
by
johnnyjoy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: tests
parent
b55904a4
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
11 additions
and
19 deletions
+11
-19
memo_filter.go
store/db/mysql/memo_filter.go
+3
-3
memo_filter.go
store/db/postgres/memo_filter.go
+5
-13
memo_filter.go
store/db/sqlite/memo_filter.go
+3
-3
No files found.
store/db/mysql/memo_filter.go
View file @
e24f92b7
...
@@ -184,7 +184,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
...
@@ -184,7 +184,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
if
!
ok
{
if
!
ok
{
return
errors
.
Errorf
(
"invalid boolean value for %s"
,
identifier
)
return
errors
.
Errorf
(
"invalid boolean value for %s"
,
identifier
)
}
}
// Map identifier to JSON path
// Map identifier to JSON path
var
jsonPath
string
var
jsonPath
string
switch
identifier
{
switch
identifier
{
...
@@ -195,7 +195,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
...
@@ -195,7 +195,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
case
"has_incomplete_tasks"
:
case
"has_incomplete_tasks"
:
jsonPath
=
"$.property.hasIncompleteTasks"
jsonPath
=
"$.property.hasIncompleteTasks"
}
}
// Use JSON_EXTRACT for boolean comparison like has_task_list
// Use JSON_EXTRACT for boolean comparison like has_task_list
var
sqlTemplate
string
var
sqlTemplate
string
if
operator
==
"="
{
if
operator
==
"="
{
...
@@ -323,7 +323,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
...
@@ -323,7 +323,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
return
err
return
err
}
}
}
else
if
identifier
==
"has_code"
{
}
else
if
identifier
==
"has_code"
{
// Handle has_code as a standalone boolean identifier
// Handle has_code as a standalone boolean identifier
if
_
,
err
:=
ctx
.
Buffer
.
WriteString
(
"JSON_EXTRACT(`memo`.`payload`, '$.property.hasCode') = CAST('true' AS JSON)"
);
err
!=
nil
{
if
_
,
err
:=
ctx
.
Buffer
.
WriteString
(
"JSON_EXTRACT(`memo`.`payload`, '$.property.hasCode') = CAST('true' AS JSON)"
);
err
!=
nil
{
return
err
return
err
}
}
...
...
store/db/postgres/memo_filter.go
View file @
e24f92b7
...
@@ -192,7 +192,7 @@ func (d *DB) convertWithParameterIndex(ctx *filter.ConvertContext, expr *exprv1.
...
@@ -192,7 +192,7 @@ func (d *DB) convertWithParameterIndex(ctx *filter.ConvertContext, expr *exprv1.
if
!
ok
{
if
!
ok
{
return
paramIndex
,
errors
.
Errorf
(
"invalid boolean value for %s"
,
identifier
)
return
paramIndex
,
errors
.
Errorf
(
"invalid boolean value for %s"
,
identifier
)
}
}
// Map identifier to JSON path
// Map identifier to JSON path
var
jsonPath
string
var
jsonPath
string
switch
identifier
{
switch
identifier
{
...
@@ -203,22 +203,14 @@ func (d *DB) convertWithParameterIndex(ctx *filter.ConvertContext, expr *exprv1.
...
@@ -203,22 +203,14 @@ func (d *DB) convertWithParameterIndex(ctx *filter.ConvertContext, expr *exprv1.
case
"has_incomplete_tasks"
:
case
"has_incomplete_tasks"
:
jsonPath
=
"$.property.hasIncompleteTasks"
jsonPath
=
"$.property.hasIncompleteTasks"
}
}
// Use JSON path for boolean comparison with PostgreSQL parameter placeholder
// Use JSON path for boolean comparison with PostgreSQL parameter placeholder
placeholder
:=
filter
.
GetParameterPlaceholder
(
dbType
,
paramIndex
)
placeholder
:=
filter
.
GetParameterPlaceholder
(
dbType
,
paramIndex
)
var
sqlTemplate
string
var
sqlTemplate
string
if
operator
==
"="
{
if
operator
==
"="
{
if
valueBool
{
sqlTemplate
=
fmt
.
Sprintf
(
"(%s->'payload'->'property'->>'%s')::boolean = %s"
,
filter
.
GetSQL
(
"table_prefix"
,
dbType
),
strings
.
TrimPrefix
(
jsonPath
,
"$.property."
),
placeholder
)
sqlTemplate
=
fmt
.
Sprintf
(
"(%s->'payload'->'property'->>'%s')::boolean = %s"
,
filter
.
GetSQL
(
"table_prefix"
,
dbType
),
strings
.
TrimPrefix
(
jsonPath
,
"$.property."
),
placeholder
)
}
else
{
sqlTemplate
=
fmt
.
Sprintf
(
"(%s->'payload'->'property'->>'%s')::boolean = %s"
,
filter
.
GetSQL
(
"table_prefix"
,
dbType
),
strings
.
TrimPrefix
(
jsonPath
,
"$.property."
),
placeholder
)
}
}
else
{
// operator == "!="
}
else
{
// operator == "!="
if
valueBool
{
sqlTemplate
=
fmt
.
Sprintf
(
"(%s->'payload'->'property'->>'%s')::boolean != %s"
,
filter
.
GetSQL
(
"table_prefix"
,
dbType
),
strings
.
TrimPrefix
(
jsonPath
,
"$.property."
),
placeholder
)
sqlTemplate
=
fmt
.
Sprintf
(
"(%s->'payload'->'property'->>'%s')::boolean != %s"
,
filter
.
GetSQL
(
"table_prefix"
,
dbType
),
strings
.
TrimPrefix
(
jsonPath
,
"$.property."
),
placeholder
)
}
else
{
sqlTemplate
=
fmt
.
Sprintf
(
"(%s->'payload'->'property'->>'%s')::boolean != %s"
,
filter
.
GetSQL
(
"table_prefix"
,
dbType
),
strings
.
TrimPrefix
(
jsonPath
,
"$.property."
),
placeholder
)
}
}
}
if
_
,
err
:=
ctx
.
Buffer
.
WriteString
(
sqlTemplate
);
err
!=
nil
{
if
_
,
err
:=
ctx
.
Buffer
.
WriteString
(
sqlTemplate
);
err
!=
nil
{
return
paramIndex
,
err
return
paramIndex
,
err
...
@@ -347,7 +339,7 @@ func (d *DB) convertWithParameterIndex(ctx *filter.ConvertContext, expr *exprv1.
...
@@ -347,7 +339,7 @@ func (d *DB) convertWithParameterIndex(ctx *filter.ConvertContext, expr *exprv1.
return
paramIndex
,
err
return
paramIndex
,
err
}
}
}
else
if
identifier
==
"has_code"
{
}
else
if
identifier
==
"has_code"
{
// Handle has_code as a standalone boolean identifier
// Handle has_code as a standalone boolean identifier
if
_
,
err
:=
ctx
.
Buffer
.
WriteString
(
fmt
.
Sprintf
(
"(%s->'payload'->'property'->>'hasCode')::boolean = true"
,
filter
.
GetSQL
(
"table_prefix"
,
dbType
)));
err
!=
nil
{
if
_
,
err
:=
ctx
.
Buffer
.
WriteString
(
fmt
.
Sprintf
(
"(%s->'payload'->'property'->>'hasCode')::boolean = true"
,
filter
.
GetSQL
(
"table_prefix"
,
dbType
)));
err
!=
nil
{
return
paramIndex
,
err
return
paramIndex
,
err
}
}
...
...
store/db/sqlite/memo_filter.go
View file @
e24f92b7
...
@@ -184,7 +184,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
...
@@ -184,7 +184,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
if
!
ok
{
if
!
ok
{
return
errors
.
Errorf
(
"invalid boolean value for %s"
,
identifier
)
return
errors
.
Errorf
(
"invalid boolean value for %s"
,
identifier
)
}
}
// Map identifier to JSON path
// Map identifier to JSON path
var
jsonPath
string
var
jsonPath
string
switch
identifier
{
switch
identifier
{
...
@@ -195,7 +195,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
...
@@ -195,7 +195,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
case
"has_incomplete_tasks"
:
case
"has_incomplete_tasks"
:
jsonPath
=
"$.property.hasIncompleteTasks"
jsonPath
=
"$.property.hasIncompleteTasks"
}
}
// Use JSON_EXTRACT for boolean comparison like has_task_list
// Use JSON_EXTRACT for boolean comparison like has_task_list
var
sqlTemplate
string
var
sqlTemplate
string
if
operator
==
"="
{
if
operator
==
"="
{
...
@@ -323,7 +323,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
...
@@ -323,7 +323,7 @@ func (d *DB) convertWithTemplates(ctx *filter.ConvertContext, expr *exprv1.Expr)
return
err
return
err
}
}
}
else
if
identifier
==
"has_code"
{
}
else
if
identifier
==
"has_code"
{
// Handle has_code as a standalone boolean identifier
// Handle has_code as a standalone boolean identifier
if
_
,
err
:=
ctx
.
Buffer
.
WriteString
(
"JSON_EXTRACT(`memo`.`payload`, '$.property.hasCode') = JSON('true')"
);
err
!=
nil
{
if
_
,
err
:=
ctx
.
Buffer
.
WriteString
(
"JSON_EXTRACT(`memo`.`payload`, '$.property.hasCode') = JSON('true')"
);
err
!=
nil
{
return
err
return
err
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment