commit | dd1b946c03a9b872284236c2c02d840008f07ff1 | [log] [tgz] |
---|---|---|
author | Martijn van den Broek <martijn@basesoft.com> | Fri Jun 06 12:55:24 2014 +0200 |
committer | Julian Hyde <jhyde@apache.org> | Wed Jul 02 10:39:08 2014 -0700 |
tree | 5f74d13c07bc7431f388b86e181f6ef016fc1651 | |
parent | 0b7a008964595fa5da95f17546af26df1473efea [diff] |
Added support for date types (date, time, timestamp). With this change, .getMetadata() reports the correct java.sql.Date type for columns marked as date. The .getDate() on a row also returns a java.sql.Date object. Since jdbc expects dates to be in the GMT timezone, the dates are converted first.
Optiq adapter that reads CSV files.
Optiq-csv is a nice simple example of how to connect Optiq to your own data source and quickly get a full SQL/JDBC interface.
You need Java (1.6 or higher; 1.7 preferred), git and maven (3.0.4 or later).
$ git clone git://github.com/julianhyde/optiq-csv.git $ cd optiq-csv $ mvn compile
Let‘s take a quick look at optiq-csv’s (and optiq‘s) features. We’ll use sqlline, a SQL shell that connects to any JDBC data source and is included with optiq-csv.
Connect to Optiq and try out some queries:
$ ./sqlline sqlline> !connect jdbc:optiq:model=target/test-classes/model.json admin admin sqlline> !tables sqlline> !describe emps sqlline> SELECT * FROM emps; sqlline> EXPLAIN PLAN FOR SELECT * FROM emps; sqlline> !connect jdbc:optiq:model=target/test-classes/smart.json admin admin sqlline> EXPLAIN PLAN FOR SELECT * FROM emps; sqlline> SELECT depts.name, count(*) . . . .> FROM emps JOIN depts USING (deptno) . . . .> GROUP BY depts.name; sqlline> VALUES char_length('hello, ' || 'world!'); sqlline> !quit
(On Windows, the command is sqlline.bat
.)
As you can see, Optiq has a full SQL implementation that can efficiently query any data source.
For a more leisurely walk through what Optiq can do and how it does it, try the Tutorial.