Amazing work, Jacob. On Tue, May 3, 2016 at 5:15 PM, Jacob Quinn <[email protected]> wrote:
> Hey everyone, > > A new release is imminent for the ODBC.jl > <https://github.com/JuliaDB/ODBC.jl> package (will be released later > today). As a quick history: > > > - ODBC.jl was the first package I ever worked on with Julia (indeed, > the first commit is from January 2013) > - A lot of refinements went into the package to make it basically > functional for the Julia 0.2/0.3 releases > - Since an initial push on 0.3, much has languished as I've worked on > other projects, Julia-related and otherwise > > > Which brings us to today; a quick summary of the new release, which has > been a long time coming: > > > - Major overhaul of key types/methods to align with more common Julia > idioms and more foundationally, the DataStreams.jl > <https://github.com/JuliaDB/DataStreams.jl> framework > - No more "global" ODBC connections that are saved under the hood; you > now explicitly construct an `ODBC.DSN` type and pass that to all other > functions > - Querying is done through constructing an `ODBC.Source` and then > `Data.stream!`ing it to any one of the currently supported `Data.Sink` > types (CSV.Sink, SQLite.Sink, Data.Table) > - Additionally, the `ODBC.query` still exists for now constructing > the ODBC.Source and streaming it to a Sink in one step (a Data.Table by > default) > - Execute a query without returning results via `ODBC.execute(dsn, > querystring)` > - 0.4 and 0.5 compatibility (currently not tested on 0.3, but I could > be persuaded to add compatibility if someone desperately needs) > - Better support across platforms, DBMS types, and DBMS data types > - Currently tested against SQL Server, MySQL, Teradata, and SQLite for > all data types they support > - Tested on Windows, OSX, and Linux (where DBMS drivers are > available) > - Tested on 0.4 and 0.5 > - Will soon be additionally tested against PostgreSQL and Oracle > DBM as well > - Native support for SQL_NUMERIC and SQL_DECIMAL types through the > DecFP.jl <https://github.com/stevengj/DecFP.jl> package on > OSX/Linux, with Windows support coming soon (pending the resolution of > https://github.com/stevengj/DecFP.jl/issues/10) > - Summary of Breaking Changes: > - ODBC.query now requires a valid DSN as a 1st argument > - ODBC.query no longer takes an "output" keyword argument; instead, > a CSV.Sink can be passed as the 3rd argument to stream the results of a > query out to a CSV file > - The ODBC.Connection and ODBC.Metadata types no longer exist > - query is no longer exported; all types/methods are internal to > the module and usage now always includes the `ODBC.` prefix > > > > So what should you do? > > * Dive in! Feel free to report any bugs here > <https://github.com/JuliaDB/ODBC.jl/issues/new> > * Port code over from older versions of ODBC (shouldn't be too bad really; > it should all just work better after the port!) > * Alternatively, if you're currently relying on older versions of ODBC, > you can run `Pkg.pin("ODBC", v"0.3.11")` to keep your code continuing to > run on the latest stable ODBC release > > > Happy DBMS-ing! > > -Jacob >
