Commit graph

900 commits

Author SHA1 Message Date
Tommi Reiman
c7ebec1fa2 Manually destructure options 2019-04-02 22:37:53 +03:00
Sean Corfield
e85f627a00 Address #2 by solidifying row function API
Low-level `execute!` requires row function to be passed. High-level API 
allows row function, else `datafiable-row`. Syntactic sugar still uses 
`:row-fn`.
2019-04-02 00:41:39 -07:00
Sean Corfield
c2c9bcbba4 Address #1 by solidifying syntactic sugar functions
Cleans up how options are handled. Adds `query` alias for `execute!`, 
clarifiies the syntactic sugar nature of the additional functions.
2019-04-01 23:57:12 -07:00
Sean Corfield
a76189d9c8 Fix #4 by adding transact
`with-transaction` now delegates to `transact` which in turn delegates 
to `p/-transact`.
2019-04-01 23:43:10 -07:00
Sean Corfield
be9e4a6a55 Rename protocols
For internal consistency and also to avoid confusion with 
`clojure.java.jdbc` protocols.
2019-04-01 23:32:24 -07:00
Sean Corfield
6d1a42a0a0 Fix #6 by adding IReadColumn and ISQLParameter protocols
The latter can be extended via metadata but the former cannot (since 
only the latter is coming from Clojure).
2019-04-01 23:25:10 -07:00
Sean Corfield
4b81a42b4d Allow Sourceable to be overridden via metadata 2019-04-01 23:22:59 -07:00
Sean Corfield
f217e86038 Address #2 by adding rs/as-arrays 2019-04-01 22:19:02 -07:00
Sean Corfield
81be787316 Improve docstrings throughout 2019-04-01 21:31:38 -07:00
Sean Corfield
28f735bafd Add benchmarks against clojure.java.jdbc 2019-04-01 20:37:14 -07:00
Sean Corfield
6e08557d92 Add docstrings to everything 2019-03-31 23:17:12 -07:00
Sean Corfield
8646472e79 Flesh out more SQL generators
Add high-level insert!, insert-multi!, update!, delete!

Add more examples to tests.
2019-03-31 19:30:01 -07:00
Sean Corfield
561ccfc621 Add simple SQL generators 2019-03-31 18:22:04 -07:00
Sean Corfield
31cbecf411 Improve function naming in prepare ns 2019-03-31 17:30:10 -07:00
Sean Corfield
38017d720d Move examples to tests for now 2019-03-31 17:29:40 -07:00
Sean Corfield
376856600e Add quoted entity functions 2019-03-31 17:29:21 -07:00
Sean Corfield
ac95379bce Reorganize into multiple namespaces 2019-03-31 16:54:34 -07:00
Sean Corfield
4d41faa8cd Restore :identifiers functionality 2019-03-30 23:31:35 -07:00
Sean Corfield
2cb3c20122 Renaming/cleanup 2019-03-30 23:13:01 -07:00
Sean Corfield
451a5fbd3b Handle generated keys 2019-03-30 23:12:37 -07:00
Sean Corfield
4741db1453 Fix column name when table name not known 2019-03-30 23:12:04 -07:00
Sean Corfield
69324ccbe6 in-transaction -> with-transaction 2019-03-30 23:11:37 -07:00
Sean Corfield
a44f59a468 Clean up Preparable; add Transactable 2019-03-30 20:36:53 -07:00
Sean Corfield
93eb286bd0 Optimize by removing destructuring 2019-01-26 02:05:25 -08:00
Sean Corfield
19ae37b3fe Add options back to get-connection
So we can do read-only, non-auto-commit connections
2019-01-26 01:59:37 -08:00
Sean Corfield
8d9289bd14 Optimizations
Strip options from datasource.
Implement full prepared statement.
Lift options handling.
2019-01-26 01:35:31 -08:00
Sean Corfield
a1d9d869d6 Add raw Java benchmark 2019-01-26 00:27:15 -08:00
Sean Corfield
c1e8b351a2 Drop options; add query-one/command! conveniences 2019-01-26 00:21:03 -08:00
Sean Corfield
781a6d19e1 Perform base reduce on update counts 2019-01-10 23:25:29 -08:00
Sean Corfield
eaffa2fd74 Dispatch execute! on a protocol
Improves performance. Handles the connect-with-connection problem.
Clean up formatting.
2019-01-10 19:23:35 -08:00
Sean Corfield
362dd5aac0 Avoid with-open call on Connection
This doesn't improve performance as much as I expected
2019-01-10 18:47:48 -08:00
Sean Corfield
aed569af61 Bug fix for empty params 2019-01-10 18:46:24 -08:00
Sean Corfield
70c22add30 Fix a few calls 2019-01-10 18:33:12 -08:00
Sean Corfield
7d9a53127d Add options to DataSource 2019-01-10 18:30:05 -08:00
Sean Corfield
73a7b2af10 Note: broken transaction machinery
After removing records and relying entirely on protocols, transaction handling is broken because you can't `assoc` into a non-map.
2019-01-10 18:24:55 -08:00
Sean Corfield
a5027066f9 Perf test query wrapper 2019-01-10 13:16:29 -08:00
Sean Corfield
01a13fe4fa Implement and test assoc on a row 2019-01-10 13:16:14 -08:00
Sean Corfield
5cb185f16e Tidy up 2019-01-10 13:15:58 -08:00
Sean Corfield
fc1ca82e4e Add a quick'n'dirty query function
For benchmarking overhead.
2019-01-10 11:44:19 -08:00
Sean Corfield
4ae5b44a52 Allow execute! on a PreparedStatement
Refactors reduce of prepared statement so it can be reused.
Remove options from `mapify-result-set` until option handling is figured out.
2019-01-10 11:35:17 -08:00
Sean Corfield
a99b4542ca Revert to as-is column names
At least until I figure out how options should flow through the whole stack.
2019-01-10 11:33:19 -08:00
Sean Corfield
85d400e28e Factor out set-parameters
This allows for a prepared statement to be reused for queries with different argument values.
2019-01-10 11:32:46 -08:00
Sean Corfield
d25171e434 Refactor spec / string to common code 2019-01-09 23:30:46 -08:00
Sean Corfield
320f40ecca Do more with protocols for performance 2019-01-09 23:05:21 -08:00
Sean Corfield
0950e356ab Fix issues link 2019-01-09 22:09:29 -08:00
Sean Corfield
b321120518 Put CONTRIBUTING in the right place! 2019-01-09 22:07:57 -08:00
Sean Corfield
e7d0065ced Work in progress
Basic machinery is working: spec -> connection -> prepared statement -> execute -> reduce.

Everything is still very much in flux at this point.
2019-01-09 22:06:49 -08:00
Sean Corfield
8a44a8cbca Prepare for public viewing/contribution 2019-01-09 22:05:58 -08:00
Sean Corfield
954a1ed306 First functioning version of execute! 2019-01-07 23:03:20 -08:00
Sean Corfield
a8c1c37cfd Baseline project setup 2019-01-07 20:38:58 -08:00