Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HasKey

func HasKey(column string, opts ...Option) *sql.Predicate

    HasKey return a predicate for checking that a JSON key exists and not NULL.

    sqljson.HasKey("column", sql.DotPath("a.b[2].c"))
    

    func LenEQ

    func LenEQ(column string, size int, opts ...Option) *sql.Predicate

      LenEQ return a predicate for checking that an array length of a JSON (returned by the path) is equal to the given argument.

      sqljson.LenEQ("a", 1, sqljson.Path("b"))
      

      func LenGT

      func LenGT(column string, size int, opts ...Option) *sql.Predicate

        LenGT return a predicate for checking that an array length of a JSON (returned by the path) is greater than the given argument.

        sqljson.LenGT("a", 1, sqljson.Path("b"))
        

        func LenGTE

        func LenGTE(column string, size int, opts ...Option) *sql.Predicate

          LenGTE return a predicate for checking that an array length of a JSON (returned by the path) is greater than or equal to the given argument.

          sqljson.LenGTE("a", 1, sqljson.Path("b"))
          

          func LenLT

          func LenLT(column string, size int, opts ...Option) *sql.Predicate

            LenLT return a predicate for checking that an array length of a JSON (returned by the path) is less than the given argument.

            sqljson.LenLT("a", 1, sqljson.Path("b"))
            

            func LenLTE

            func LenLTE(column string, size int, opts ...Option) *sql.Predicate

              LenLTE return a predicate for checking that an array length of a JSON (returned by the path) is less than or equal to the given argument.

              sqljson.LenLTE("a", 1, sqljson.Path("b"))
              

              func LenNEQ

              func LenNEQ(column string, size int, opts ...Option) *sql.Predicate

                LenNEQ return a predicate for checking that an array length of a JSON (returned by the path) is not equal to the given argument.

                sqljson.LenEQ("a", 1, sqljson.Path("b"))
                

                func LenPath

                func LenPath(b *sql.Builder, column string, opts ...Option)

                  LenPath writes to the given SQL builder the JSON path for getting the length of a given JSON path.

                  sqljson.LenPath(b, Path("a", "b", "[1]", "c"))
                  

                  func ParsePath

                  func ParsePath(dotpath string) ([]string, error)

                    ParsePath parses the "dotpath" for the DotPath option.

                    "a.b"		=> ["a", "b"]
                    "a[1][2]"	=> ["a", "[1]", "[2]"]
                    "a.\"b.c\"	=> ["a", "\"b.c\""]
                    

                    func ValueContains

                    func ValueContains(column string, arg interface{}, opts ...Option) *sql.Predicate

                      ValueContains return a predicate for checking that a JSON value (returned by the path) contains the given argument.

                      sqljson.ValueContains("a", 1, sqljson.Path("b"))
                      

                      func ValueEQ

                      func ValueEQ(column string, arg interface{}, opts ...Option) *sql.Predicate

                        ValueEQ return a predicate for checking that a JSON value (returned by the path) is equal to the given argument.

                        sqljson.ValueEQ("a", 1, sqljson.Path("b"))
                        

                        func ValueGT

                        func ValueGT(column string, arg interface{}, opts ...Option) *sql.Predicate

                          ValueGT return a predicate for checking that a JSON value (returned by the path) is greater than the given argument.

                          sqljson.ValueGT("a", 1, sqljson.Path("b"))
                          

                          func ValueGTE

                          func ValueGTE(column string, arg interface{}, opts ...Option) *sql.Predicate

                            ValueGTE return a predicate for checking that a JSON value (returned by the path) is greater than or equal to the given argument.

                            sqljson.ValueGTE("a", 1, sqljson.Path("b"))
                            

                            func ValueLT

                            func ValueLT(column string, arg interface{}, opts ...Option) *sql.Predicate

                              ValueLT return a predicate for checking that a JSON value (returned by the path) is less than the given argument.

                              sqljson.ValueLT("a", 1, sqljson.Path("b"))
                              

                              func ValueLTE

                              func ValueLTE(column string, arg interface{}, opts ...Option) *sql.Predicate

                                ValueLTE return a predicate for checking that a JSON value (returned by the path) is less than or equal to the given argument.

                                sqljson.ValueLTE("a", 1, sqljson.Path("b"))
                                

                                func ValueNEQ

                                func ValueNEQ(column string, arg interface{}, opts ...Option) *sql.Predicate

                                  ValueNEQ return a predicate for checking that a JSON value (returned by the path) is not equal to the given argument.

                                  sqljson.ValueNEQ("a", 1, sqljson.Path("b"))
                                  

                                  func ValuePath

                                  func ValuePath(b *sql.Builder, column string, opts ...Option)

                                    ValuePath writes to the given SQL builder the JSON path for getting the value of a given JSON path.

                                    sqljson.ValuePath(b, Path("a", "b", "[1]", "c"), Cast("int"))
                                    

                                    Types

                                    type Option

                                    type Option func(*PathOptions)

                                      Option allows for calling database JSON paths with functional options.

                                      func Cast

                                      func Cast(typ string) Option

                                        Cast indicates that the result value should be casted to the given type.

                                        ValuePath(b, "column", Path("a", "b", "[1]", "c"), Cast("int"))
                                        

                                        func DotPath

                                        func DotPath(dotpath string) Option

                                          DotPath is similar to Path, but accepts string with dot format.

                                          ValuePath(b, "column", DotPath("a.b.c"))
                                          ValuePath(b, "column", DotPath("a.b[2].c"))
                                          

                                          Note that DotPath is ignored if the input is invalid.

                                          func Path

                                          func Path(path ...string) Option

                                            Path sets the path to the JSON value of a column.

                                            ValuePath(b, "column", Path("a", "b", "[1]", "c"))
                                            

                                            func Unquote

                                            func Unquote(unquote bool) Option

                                              Unquote indicates that the result value should be unquoted.

                                              ValuePath(b, "column", Path("a", "b", "[1]", "c"), Unquote(true))
                                              

                                              type PathOptions

                                              type PathOptions struct {
                                              	Ident   string
                                              	Path    []string
                                              	Cast    string
                                              	Unquote bool
                                              }

                                                PathOptions holds the options for accessing a JSON value from an identifier.

                                                Source Files