31 Commits

Author SHA1 Message Date
84c58f45a3 Delete everything except query builder 2025-11-20 16:09:09 +01:00
Dmitry Kropachev
38001d64ac Update gocql version to v1.16.1 (#353)
* Update gocql version to v1.16.1

1. Update gocql to v1.16.1
2. Update golang to 1.25, since new gocql version requres it

* Update golangci to 2.5.0

It is needed since 1.64.8 does not support golang 1.25.
1. Update golangci to 2.5.0
2. Migrate from golangci config v1 to v2
3. Integrate fieldaligment to golangci
4. Drop fieldaligment from Makefile
5. Address complaints
2025-10-28 14:52:22 -04:00
sylwiaszunejko
7072863b0c Replace Unsafe with Strict mechanism
Previously by default the presence of a missing field in
a udt would result in an error reported. The Unsafe
mechanism could be used to ignore these fields.

This PR changes the default behavior to ignoring missing
fields and only reporting an error if Strict mode is used.
This approach is in line with the gocql.
2024-06-25 15:29:10 +02:00
Dmitry Kropachev
c6f942afc7 Introduce Unsafe method on Queryx
It enables local control over `unsafe` mode for .Bind methods of `Queryx` and iterators
spawn by it.
2024-06-25 12:32:16 +02:00
Dmitry Kropachev
ab80d70106 Update golangci-lint and turn it on in CI 2024-06-19 08:08:54 +02:00
Maciej Zimnoch
52c5f6873a queryx: Added CAS functions (#98)
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
2020-04-22 11:57:35 +02:00
Michał Matczuk
95d96fa939 Merge pull request #3 from hailocab/upstream-merge
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>
2020-04-21 10:07:45 +02:00
Michał Matczuk
ab279e68ed Automated UDT support
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>
2020-04-21 09:41:41 +02:00
Martin Sucha
a08a66ee85 iterx: Allow forcing scanning as struct
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>
2020-04-17 09:26:48 +02:00
Michał Matczuk
a9ce16bfc6 iterx: Refactor DefaultUnsafe handling
Assign unsafe from DefaultUnsafe and simplify condition.

Signed-off-by: Michał Matczuk <michal@scylladb.com>
2020-04-16 13:04:13 +02:00
Michał Matczuk
710f921b79 Remove deprecated top level functions Get and Select
Signed-off-by: Michał Matczuk <michal@scylladb.com>
2020-04-16 12:39:34 +02:00
Michał Matczuk
7c0a35d621 iterx: Move isScannable to Iterx
Signed-off-by: Michał Matczuk <michal@scylladb.com>
2020-04-16 12:39:34 +02:00
Michał Matczuk
bd53297a6c iterx: Change field order
Signed-off-by: Michał Matczuk <michal@scylladb.com>
2020-04-16 12:39:34 +02:00
Michał Matczuk
2c5ac087ec iterx: Improve error messages 2020-04-16 12:39:34 +02:00
Daniel Lohse
a471f98eed Add DefaultUnsafe global
Setting it to true will enable Iter's `Unsafe()` behavior for all queries.
2020-01-15 15:24:45 +01:00
Henrik Johansson
8b6f083cdc iterx: paging iteration working
We used to rely upon NumRows to determine if there are
new pages available. This is not correct since the server
is allowed to return empty pages with has_more_data flag
set and the needed data to do this is not exposed by
the gocql driver.

We simply remove these checks and let the driver decide
when to stop reading.

Co-authored-by: Henrik Johansson <henrik@scylladb.com>
Co-authored-by: Piotr Sarna <sarna@scylladb.com>
2019-06-03 11:19:43 +02:00
Michał Matczuk
2348379a4f reflectx: use github.com/scylladb/go-reflectx
Signed-off-by: Michał Matczuk <michal@scylladb.com>
2019-01-25 15:41:41 +01:00
Michał Matczuk
aef66f4663 reflectx: code ported from github.com/jmoiron/sqlx a2429ba
Depending on sqlx makes users pull SQL related code that is usually not
needed. Tools like dep make it easier by explicitly listing relevant
subpackages but the code needs to be downloaded anyway.
2018-05-25 11:17:07 +02:00
Michał Matczuk
6e4a05de42 queryx: added Get, GetRelease, Select and SelectRelease helper functions
I have piggy backed with this change some docs update.

Fixes #41
2018-05-23 11:25:00 +02:00
Josh Giles
cbe2659e0d Do not release queries in Get/Select. Fix #25
Releasing query objects in Get/Select could easily lead to
double-releases, which can cause dangerous and tricky data races.

Remove the query field of Iterx and its usages (all release-related).
This is a breaking API change, because it removes the exported method
ReleaseQuery.

Update documenting examples to demonstrate the deferred query release
pattern clients can use to manage query release.
2017-11-13 10:13:38 +01:00
Michał Matczuk
a66169d3ba Update iterx.go
iter: doc update
2017-10-02 12:46:25 +02:00
Michał Matczuk
3ce82982bb iterx: ErrNotFound for Get only 2017-09-28 15:10:47 +02:00
Michał Matczuk
f2af2384ed iter: ErrNotFound bug fix 2017-09-22 15:02:12 +02:00
Michał Matczuk
9e40fcfed4 license: added license header 2017-09-21 21:43:27 +02:00
Michał Matczuk
46603152a1 error: %s replaced with %q in missing field errors 2017-09-21 21:29:44 +02:00
Michał Matczuk
e079a7b36a iter: return ErrNotFound for no results 2017-08-24 10:53:56 +02:00
Michał Matczuk
4025a4d426 docs: whitespace fix 2017-08-23 16:07:55 +02:00
Michał Matczuk
4be0a35207 iter: unsafe 2017-08-23 15:26:16 +02:00
Michał Matczuk
a4a965f662 get: rename v to value follow select 2017-08-03 12:06:02 +02:00
Michał Matczuk
3b6b4ff687 select: reduce allocations and improve code structure 2017-08-03 12:02:23 +02:00
Michał Matczuk
fee479a584 Iterx put to separate file 2017-07-25 11:09:41 +02:00