|
|
@ -18,12 +18,12 @@ func TestConvertExprToSQL(t *testing.T) {
|
|
|
|
{
|
|
|
|
{
|
|
|
|
filter: `tag in ["tag1", "tag2"]`,
|
|
|
|
filter: `tag in ["tag1", "tag2"]`,
|
|
|
|
want: "(JSON_CONTAINS(JSON_EXTRACT(`memo`.`payload`, '$.tags'), ?) OR JSON_CONTAINS(JSON_EXTRACT(`memo`.`payload`, '$.tags'), ?))",
|
|
|
|
want: "(JSON_CONTAINS(JSON_EXTRACT(`memo`.`payload`, '$.tags'), ?) OR JSON_CONTAINS(JSON_EXTRACT(`memo`.`payload`, '$.tags'), ?))",
|
|
|
|
args: []any{"tag1", "tag2"},
|
|
|
|
args: []any{`"tag1"`, `"tag2"`},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
filter: `!(tag in ["tag1", "tag2"])`,
|
|
|
|
filter: `!(tag in ["tag1", "tag2"])`,
|
|
|
|
want: "NOT ((JSON_CONTAINS(JSON_EXTRACT(`memo`.`payload`, '$.tags'), ?) OR JSON_CONTAINS(JSON_EXTRACT(`memo`.`payload`, '$.tags'), ?)))",
|
|
|
|
want: "NOT ((JSON_CONTAINS(JSON_EXTRACT(`memo`.`payload`, '$.tags'), ?) OR JSON_CONTAINS(JSON_EXTRACT(`memo`.`payload`, '$.tags'), ?)))",
|
|
|
|
args: []any{"tag1", "tag2"},
|
|
|
|
args: []any{`"tag1"`, `"tag2"`},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
filter: `content.contains("memos")`,
|
|
|
|
filter: `content.contains("memos")`,
|
|
|
@ -43,7 +43,7 @@ func TestConvertExprToSQL(t *testing.T) {
|
|
|
|
{
|
|
|
|
{
|
|
|
|
filter: `tag in ['tag1'] || content.contains('hello')`,
|
|
|
|
filter: `tag in ['tag1'] || content.contains('hello')`,
|
|
|
|
want: "(JSON_CONTAINS(JSON_EXTRACT(`memo`.`payload`, '$.tags'), ?) OR `memo`.`content` LIKE ?)",
|
|
|
|
want: "(JSON_CONTAINS(JSON_EXTRACT(`memo`.`payload`, '$.tags'), ?) OR `memo`.`content` LIKE ?)",
|
|
|
|
args: []any{"tag1", "%hello%"},
|
|
|
|
args: []any{`"tag1"`, "%hello%"},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
filter: `1`,
|
|
|
|
filter: `1`,
|
|
|
|