ValueIsNotNull return a predicate for checking that a JSON value (returned by the path) is not null literal (JSON "null"). sqljson.ValueIsNotNull("a", sqljson.Path("b"))
(column string, opts ...Option)
| 68 | // |
| 69 | // sqljson.ValueIsNotNull("a", sqljson.Path("b")) |
| 70 | func ValueIsNotNull(column string, opts ...Option) *sql.Predicate { |
| 71 | return sql.P(func(b *sql.Builder) { |
| 72 | switch b.Dialect() { |
| 73 | case dialect.Postgres: |
| 74 | valuePath(b, column, append(opts, Cast("jsonb"))...) |
| 75 | b.WriteOp(sql.OpNEQ).WriteString("'null'::jsonb") |
| 76 | case dialect.SQLite: |
| 77 | path := identPath(column, opts...) |
| 78 | path.mysqlFunc("JSON_TYPE", b) |
| 79 | b.WriteOp(sql.OpNEQ).WriteString("'null'") |
| 80 | case dialect.MySQL: |
| 81 | path := identPath(column, opts...) |
| 82 | b.WriteString("NOT(JSON_CONTAINS").Wrap(func(b *sql.Builder) { |
| 83 | b.Ident(column).Comma() |
| 84 | b.WriteString("'null'").Comma() |
| 85 | path.mysqlPath(b) |
| 86 | }).WriteString(")") |
| 87 | } |
| 88 | }) |
| 89 | } |
| 90 | |
| 91 | // ValueEQ return a predicate for checking that a JSON value |
| 92 | // (returned by the path) is equal to the given argument. |
searching dependent graphs…