@AutoService(value=java.sql.Driver.class)
public class JdbcDriver
extends org.apache.beam.vendor.calcite.v1_26_0.org.apache.calcite.jdbc.Driver
Connection URLs have this form:
jdbc:beam:param1=value1;param2=value2;param3=value3
 
The querystring-style parameters are parsed as PipelineOptions.
| Modifier and Type | Field and Description | 
|---|---|
| static java.lang.String | CONNECT_STRING_PREFIX | 
| static JdbcDriver | INSTANCE | 
| static ObjectMapper | OBJECT_MAPPER | 
| Constructor and Description | 
|---|
| JdbcDriver() | 
| Modifier and Type | Method and Description | 
|---|---|
| java.sql.Connection | connect(java.lang.String url,
       java.util.Properties info)Configures Beam-specific options and opens a JDBC connection to Calcite. | 
| static JdbcConnection | connect(TableProvider tableProvider,
       PipelineOptions options)Connects to the driver using standard  connect(String, Properties)call, but overrides
 the initial schema factory. | 
| protected org.apache.beam.vendor.calcite.v1_26_0.org.apache.calcite.avatica.AvaticaFactory | createFactory() | 
| protected java.lang.String | getConnectStringPrefix() | 
createDriverVersion, createHandler, createMeta, createPrepareFactory, getConnectionProperties, getFactoryClassNamepublic static final JdbcDriver INSTANCE
public static final java.lang.String CONNECT_STRING_PREFIX
public static final ObjectMapper OBJECT_MAPPER
protected org.apache.beam.vendor.calcite.v1_26_0.org.apache.calcite.avatica.AvaticaFactory createFactory()
createFactory in class org.apache.beam.vendor.calcite.v1_26_0.org.apache.calcite.avatica.UnregisteredDriverprotected java.lang.String getConnectStringPrefix()
getConnectStringPrefix in class org.apache.beam.vendor.calcite.v1_26_0.org.apache.calcite.jdbc.Driverpublic java.sql.Connection connect(java.lang.String url,
                                   java.util.Properties info)
                            throws java.sql.SQLException
If originalConnectionProperties doesn't have the Beam-specific properties, populates
 them with defaults (e.g. sets the default schema name to "beam").
 
Returns null if url doesn't begin with CONNECT_STRING_PREFIX. This seems to
 be how JDBC decides whether a driver can handle a request. It tries to connect to it, and if
 the result is null it picks another driver.
 
Returns an instance of JdbcConnection which is a Beam wrapper around CalciteConnection.
connect in interface java.sql.Driverconnect in class org.apache.beam.vendor.calcite.v1_26_0.org.apache.calcite.avatica.UnregisteredDriverjava.sql.SQLExceptionpublic static JdbcConnection connect(TableProvider tableProvider, PipelineOptions options)
connect(String, Properties) call, but overrides
 the initial schema factory. Default factory would load up all table providers. The one
 specified here doesn't load any providers. We then override the top-level schema with the
 tableProvider.
 This is called in tests and BeamSqlEnv, core part of SqlTransform. CLI uses
 standard JDBC driver registry, and goes through connect(String, Properties) instead,
 not this path. The CLI ends up using the schema factory that populates the default schema with
 all table providers it can find. See BeamCalciteSchemaFactory.