[
https://issues.apache.org/jira/browse/SOLR-7986?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joel Bernstein updated SOLR-7986:
---------------------------------
Attachment: SOLR-7986.patch
New patch that includes Uwe's patch (which worked perfectly). Also the
connect() method now returns null if the url is not accepted.
The call to DriverManager.registerDriver has been moved to a static
initializer. I tried removing this call altogether but the driver won't load
without it.
> JDBC Driver for SQL Interface
> -----------------------------
>
> Key: SOLR-7986
> URL: https://issues.apache.org/jira/browse/SOLR-7986
> Project: Solr
> Issue Type: New Feature
> Components: clients - java
> Affects Versions: Trunk
> Reporter: Joel Bernstein
> Attachments: SOLR-7986-SPI.patch, SOLR-7986.patch, SOLR-7986.patch,
> SOLR-7986.patch, SOLR-7986.patch, SOLR-7986.patch, SOLR-7986.patch,
> SOLR-7986.patch, SOLR-7986.patch
>
>
> This ticket is to create a JDBC Driver (thin client) for the new SQL
> interface (SOLR-7560). As part of this ticket a driver will be added to the
> Solrj libary under the package: *org.apache.solr.client.solrj.io.sql*
> Initial implementation will include basic *Driver*, *Connection*, *Statement*
> and *ResultSet* implementations.
> Future releases can build on this implementation to support a wide range of
> JDBC clients and tools.
> *Syntax using parallel Map/Reduce for aggregations*:
> {code}
> Properties props = new Properties();
> props.put("aggregationMode", "map_reduce");
> props.put("numWorkers", "10");
> Class.forName("org.apache.solr.client.solrj.io.sql.DriverImpl").newInstance();
> Connection con =
> DriverManager.getConnection("jdbc:solr://<zkhost:port>?collection=<collection>",
> props);
> Statement stmt = con.createStatement();
> ResultSet rs = stmt.executeQuery("select a, sum(b) from tablex group by a
> having sum(b) > 100");
> while(rs.next()) {
> String a = rs.getString("a");
> double sumB = rs.getDouble("sum(b)");
> }
> {code}
> *Syntax using JSON facet API for aggregations*:
> {code}
> Properties props = new Properties();
> props.put("aggregationMode", "facet");
> Class.forName("org.apache.solr.client.solrj.io.sql.DriverImpl").newInstance();
> Connection con =
> DriverManager.getConnection("jdbc:solr://<zkhost:port>?collection=<collection>",
> props);
> Statement stmt = con.createStatement();
> ResultSet rs = stmt.executeQuery("select a, sum(b) from tablex group by a
> having sum(b) > 100");
> while(rs.next()) {
> String a = rs.getString("a");
> double sumB = rs.getDouble("sum(b)");
> }
> {code}
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]