It allows to write shorter and more straightforward code.
Instead writing:
```
session.Query(qb.Select("cluster").Columns("id").ToCql())
```
you can write:
```
qb.Select("cluster").Columns("id").Query(session)
```
These shortucuts allows to write shorter more straightforward code.
It allows to write:
```
clusters.InsertQuery(session).BindStruct(r).ExecRelease()
```
instead of:
```
tmt, names := clusters.Insert()
session.Query(stmt,names).BindStruct(r).ExecRelease()
```
Added ExecCAS, ExecCASRelease, GetCAS, GetCASRelease functions
suitable for INSERT ... IF NOT EXISTS and UPDATE's containing IF statement.
Functions returns information wheter query was applied or not, together
with pre-image.
Fixes#98
Upstream merge
Add Session wrapper
With this patch we can now use gocqlx like:
```
session.Query(`SELECT * FROM struct_table`, nil).Get(&v)
```
instead of (old format):
```
gocqlx.Query(session.Query(`SELECT * FROM struct_table`), nil).Get(&v)
```
Signed-off-by: Michał Matczuk <michal@scylladb.com>
This patch adds the power of GocqlX to UDTs.
Now you can make a struct be UDT compatible by adding a single line.
```
type FullName struct {
gocqlx.UDT
FirstName string
LastName string
}
```
Signed-off-by: Michał Matczuk <michal@scylladb.com>
We have a structure type that implements UnmarshalCQL method.
We use it to unmarshal a user defined type. We also want to use the same struct for scanning an entire row.
There is StructScan method available in gocqlx for this purpose when iterating over rows, but no equivalent when doing a Select.
This commit introduces the possibility when doing select/get as well.
Co-authored-by: Michał Matczuk <michal@scylladb.com>
When table is used with SelectBuilder it triggers data race on Where()
condition usage.
This change copies underlining slices on table creation to allow safe
concurrent usage of the table.
Depending on what is set, schema agreement is checked before each file or before each statement.
Awaiting schema agreement after every migration has run is always done.
fix name
tidy
adding SetWhere
adding SetWhere
fix go mod
fix comment style
revert go mod
Avoid to append if no needed
fix git ignore
revert change in go.sum/go.mod
adding specific benchmark