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
