Commit Graph

201 Commits (6a4ec2cd51f769777577ca08c439e29609f3da7d)

Author SHA1 Message Date
Vinícius Garcia 6a4ec2cd51 Update Exec signature to return the number of affected rows 2021-11-26 22:13:56 -03:00
Vinícius Garcia a1403dc9d3 Simplify the signature of the Delete() method
This change was finally made because the Delete function was the
only helper function that was not returning the ksql.ErrRecordNotFound
when no rows were found.

The other reason for this change is that we the most common use case is
by far for deleting a single element, and the philosophy of the library
is to optimize for the most common use-cases.

For making it easier to write queries for deleting many items
as well as many other less common use cases we
are already implementing the `kbuilder` package which is a
query builder.
2021-11-22 19:42:33 -03:00
Vinícius Garcia 40215d8099 Minor improvement on README file 2021-11-16 21:55:09 -03:00
Vinícius Garcia cb3d8eb572 Update benchmarks on README to include sql with prep statements 2021-11-16 21:18:23 -03:00
Vinícius Garcia 545ea48f0c Add benchmarks for the database/sql library using prepared-statements 2021-11-16 21:17:57 -03:00
Vinícius Garcia fc6a9c2950 Update README with the fixed version of the benchmark 2021-11-16 20:01:56 -03:00
Vinícius Garcia a5e71303cb Fix problem on the Querying benchmark for `sql`
By mistake (I forgot to delete a letter) I was calling
`sqlx.Open()` instead of `sql.Open()`, which invalidates
the benchmark.

This is now fixed.
2021-11-16 19:51:16 -03:00
Vinícius Garcia 83f0ce5369 Add constructor to SQLAdapter struct 2021-11-14 18:57:57 -03:00
Vinícius Garcia 25781352cb Add adapters for each possible db technology 2021-11-14 14:54:01 -03:00
Vinícius Garcia 54f19522e6 Update benchmarks on README 2021-11-14 11:23:54 -03:00
Vinícius Garcia b5a1f92fb8 Add pgx to benchmark 2021-11-14 11:13:35 -03:00
Vinícius Garcia a4617fc3b4 Update benchmarks on README.md 2021-11-14 01:46:41 -03:00
Vinícius Garcia 3424652db3 Add benchmark for database/sql 2021-11-14 01:36:55 -03:00
Vinícius Garcia 0090b791d2 Update benchmark results on README.md 2021-11-14 01:14:11 -03:00
Vinícius Garcia 23692d13d4 Add gorm to benchmarks 2021-11-14 01:10:57 -03:00
Vinícius Garcia e2899617f4 Fix benchmarks/go.mod so it always point the the local ksql copy 2021-11-14 00:22:58 -03:00
Vinícius Garcia e2705f2b8e Move benchmarks to submodule in order to reduce the go.mod deps 2021-11-13 23:59:33 -03:00
Vinícius Garcia a9c810d4a3 Update README 2021-11-07 01:59:05 -03:00
Vinícius Garcia 4b75696bb4 Add SetDefaultValues() func to the ksql.Config struct 2021-10-30 12:08:03 -03:00
Vinícius Garcia 45cb57cfa8 Add kpgx.New()
This new package kpgx was created so that in the future we can
make it a separate module.

This will be important in order to prevent users from having to
import all the backend libraries even when they might only be
using one of them.
2021-10-27 22:58:35 -03:00
Vinícius Garcia d280eb1eb1 Add LICENSE 2021-10-01 15:55:45 -03:00
Vinícius Garcia 268e3d3c36 Remove unnecessary extra argument from ksql.NewWithAdapter
To be honest I don't know how it ended up there =P
2021-09-27 18:58:55 -03:00
Vinícius Garcia af4eba4bf6 Improve how SetFallbackDatabase works so it only sets nil values 2021-09-27 15:12:54 -03:00
Vinícius Garcia c4df8b1748 Improve ksql.Mock to accept a fallback database 2021-09-27 14:54:30 -03:00
Vinícius Garcia 8bc726c287 Improve tests for Update() 2021-09-19 18:30:19 -03:00
Vinícius Garcia b92a751d5e Improve tests for the Delete() function 2021-09-18 21:24:22 -03:00
Vinícius Garcia 8b897d8ca9 Add error check for nil pointers passed as arguments to Delete() 2021-09-18 21:00:22 -03:00
Vinícius Garcia dffba55a8b Add error check for nil pointers passed as arguments to Update() 2021-09-18 20:52:48 -03:00
Vinícius Garcia 1cf671cd33 Add error check for nil pointers passed as arguments to Insert() 2021-09-18 18:29:00 -03:00
Vinícius Garcia e7e404dc86 Small refactor on Insert() to avoid using reflect.TypeOf multiple times 2021-09-18 18:25:17 -03:00
Vinícius Garcia 889662c4e0 Add error check for nil pointers used as arguments to QueryOne() 2021-09-18 14:42:53 -03:00
Vinícius Garcia 33dd982d7c
Merge pull request #2 from VinGarcia/kbuilder
Adds the kbuilder package (an integrated query builder)
2021-09-17 22:08:19 -03:00
Vinícius Garcia a503c218ba Improve kbuilder README 2021-09-17 22:06:06 -03:00
Vinícius Garcia 61f21409a0 Improve panic message when ksql.Mock methods are called but unimplemented 2021-09-16 12:35:05 -03:00
Vinícius Garcia 6935bddf29 Add the Insert struct to the kbuilder package 2021-09-07 12:01:34 -03:00
Vinícius Garcia 22fa8fdfa4 Improve the description of the Provider interface 2021-09-03 11:08:52 -03:00
Vinícius Garcia ba6727b14a Improve the list of methods on the kbuilder.Query struct
Add the queryBuilder interface
Make the kbuilder.Query implement this interface
Add kbuilder.Query.Build() helper method for facilitating the usage if
the person prefers no to inject the kbuilder.Builder struct.
2021-08-17 12:08:39 -03:00
Vinícius Garcia f68b71a0a1 Merge branch 'master' into kbuilder 2021-08-08 19:34:22 -03:00
Vinícius Garcia 6e3e558407 Update benchmark on README 2021-08-01 15:20:22 -03:00
Vinícius Garcia 37298e2c24 Simplify NewWithPGX() function 2021-08-01 15:04:47 -03:00
Vinícius Garcia 5c2b981696 Add tests to the pgx adapter 2021-08-01 14:42:39 -03:00
Vinícius Garcia ec749af84c Update benchmarks by running the PGx adapter benchmarks 2021-08-01 11:57:03 -03:00
Vinícius Garcia 87f57f665f Add code for benchmarking the PGX adapter 2021-08-01 11:52:04 -03:00
Vinícius Garcia 5d6f1d7d37 Improve NewWithPGX() constructor 2021-08-01 11:51:40 -03:00
Vinícius Garcia 657ed7414b Add first version of the pgx adapter 2021-08-01 10:23:10 -03:00
Vinícius Garcia c1a44c8e56 Update benchmark on README 2021-07-31 19:09:05 -03:00
Vinícius Garcia e73db4a216 Abstract the DBAdapter so that we can support other sql adapters
This was done for a few different reasons:

1. This allows us to work on top of the pgx client in the future
2. This would allow our users to implement their own DBAdapters
   to use with our tool.
3. This gives the users the option of using advanced configs
   of any sql client they want to use and just feed us with it
   after the configuration is done, which means we will not have
   to worry about supporting a growing number of configurations
   as we try to add support to more drivers or if we get issues
   asking for more advanced config options.
2021-07-31 18:55:08 -03:00
Vinícius Garcia f420553e0b Remove risk of panic on Insert()
This panic used to happen if the user configured a table to use
a specific ID column then tried to insert to the database
with a struct that did not have that column.
2021-07-15 23:22:34 -03:00
Vinícius Garcia b6e6667a3f Improve the names of some public types *breaking change* 2021-06-28 17:35:46 -03:00
Vinícius Garcia 682f99b495 Improve postgres container in docker-compose.yml
Now the postgres container will create the ksql database
automatically.
2021-06-24 21:43:23 -03:00