Commit graph

23 commits

Author SHA1 Message Date
Brian J. Cardiff
4ed7f28fe6 ensure exec and scalar release connection
ensure exec, query can be executed with Enumerable(Any)
update db doc sample
2016-02-25 22:27:42 -03:00
Brian J. Cardiff
d45427dfdd expose database in connection
get/return from pool while result set is been used. still single connection pool
2016-02-25 22:27:42 -03:00
Brian J. Cardiff
fa111fd698 add statement cache in connection.
hide methods from api
2016-02-25 22:27:42 -03:00
Brian J. Cardiff
562d5076bf use URI as connection string 2016-02-25 22:27:42 -03:00
Brian J. Cardiff
b92d08bf74 refactor db disposables 2016-02-25 22:27:42 -03:00
Brian J. Cardiff
782a2ee0e2 hide #prepare from api. 2016-02-25 22:27:42 -03:00
Brian J. Cardiff
6a5b2a8758 assert connection is closed after db is used.
tidy up close methods
2016-02-25 22:27:35 -03:00
Brian J. Cardiff
3598dddb65 split perform_query and perform_exec
add DB::ExecResult to have a concurrency safety exec result
remove connection string from abstract DB::Connection
2016-02-25 22:25:55 -03:00
Brian J. Cardiff
67fe5c9aae leave a single scalar value returns DB::Any 2016-02-25 22:25:55 -03:00
Brian J. Cardiff
d01da912f7 code review notes
close / do_close in result_set
avoid closing statements
remove named arguments
refactor positioned arguments query
2016-02-25 22:25:55 -03:00
Brian J. Cardiff
fd804dd592 switch to 0-pased positional arguments
add docs, many docs
2016-02-25 22:25:55 -03:00
Brian J. Cardiff
a96776e336 use connection_string as database configuration instead of a hash 2016-02-25 22:25:55 -03:00
Brian J. Cardiff
8c0313a306 add Connection#last_inserted_id
extract QueryMethods modules and use it in Database and Connection
"add" finalize methods, but they cause GC warnings
2016-02-25 22:25:55 -03:00
Brian J. Cardiff
1fb0b8a82b add ResultSet#exec to ensure the query is performed. By default generates a move_next. 2016-02-25 22:25:54 -03:00
Brian J. Cardiff
683e6bdfa7 major db refactor for a better api.
`#query`, `#exec`, `#scalar`, `#scalar?` as main query methods from `Database`
blocks overrides that ensure statements are closed.
2016-02-25 22:25:54 -03:00
Brian J. Cardiff
caf2676aad column_count and column_names
close result_set and statements
main entry points for exec_non_query and exec_query closing them when ready
2016-02-25 22:25:54 -03:00
Brian J. Cardiff
e50cc4ec73 add specs for statement arguments
add support for blobs (i.e. Slice(UInt8) )
2016-02-25 22:25:54 -03:00
Brian J. Cardiff
8a8b86e31a arguments support 2016-02-25 22:25:54 -03:00
Brian J. Cardiff
1572062501 introduce database as driver wrapper.
expose list of types to support by the drivers implementors.
deal with nilable types with `#read?(T.class) : T?` methods.
change `#has_next` to `#move_next`
2016-02-25 22:25:54 -03:00
Brian J. Cardiff
c16dc42e96 allow result_set#each 2016-02-25 22:25:54 -03:00
Brian J. Cardiff
4dd0312934 prepare/exec a statement
dummy driver that parses the query
initial type support for result_sets
2016-02-25 22:25:54 -03:00
Brian J. Cardiff
cc1545a58e db driver registration 2016-02-25 22:25:54 -03:00
Brian J. Cardiff
177e12bb60 initial commit 2016-02-25 22:22:54 -03:00