public class org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse extends org.apache.drill.test.ClusterTest
{
private static final java.lang.String DOCKER_IMAGE_CLICKHOUSE_X86;
private static final java.lang.String DOCKER_IMAGE_CLICKHOUSE_ARM;
private static org.testcontainers.containers.JdbcDatabaseContainer jdbcContainer;
public void <init>()
{
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
specialinvoke v.<org.apache.drill.test.ClusterTest: void <init>()>();
return;
}
public static void initClickhouse() throws java.lang.Exception
{
org.apache.drill.test.BaseDirTestWatcher v;
org.testcontainers.utility.DockerImageName v, v;
java.util.HashMap v;
org.testcontainers.containers.JdbcDatabaseContainer v, v, v, v, v;
java.lang.Boolean v;
java.lang.String v, v, v, v, v, v, v, v;
org.apache.drill.exec.store.jdbc.JdbcStorageConfig v;
boolean v, v;
org.apache.drill.common.logical.security.PlainCredentialsProvider v;
org.apache.drill.test.ClusterFixture v;
org.apache.drill.common.logical.StoragePluginConfig$AuthMode v;
org.testcontainers.containers.ClickHouseContainer v;
org.apache.drill.test.ClusterFixtureBuilder v;
v = <org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.BaseDirTestWatcher dirTestWatcher>;
v = staticinvoke <org.apache.drill.test.ClusterFixture: org.apache.drill.test.ClusterFixtureBuilder builder(org.apache.drill.test.BaseDirTestWatcher)>(v);
staticinvoke <org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: void startCluster(org.apache.drill.test.ClusterFixtureBuilder)>(v);
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("os.name");
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("linux");
if v == 0 goto label;
v = "aarch64";
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("os.arch");
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = staticinvoke <org.testcontainers.utility.DockerImageName: org.testcontainers.utility.DockerImageName parse(java.lang.String)>("lunalabsltd/clickhouse-server:21.7.2.7-arm");
v = virtualinvoke v.<org.testcontainers.utility.DockerImageName: org.testcontainers.utility.DockerImageName asCompatibleSubstituteFor(java.lang.String)>("yandex/clickhouse-server");
goto label;
label:
v = staticinvoke <org.testcontainers.utility.DockerImageName: org.testcontainers.utility.DockerImageName parse(java.lang.String)>("yandex/clickhouse-server:21.8.4.51");
label:
v = new org.testcontainers.containers.ClickHouseContainer;
specialinvoke v.<org.testcontainers.containers.ClickHouseContainer: void <init>(org.testcontainers.utility.DockerImageName)>(v);
v = virtualinvoke v.<org.testcontainers.containers.ClickHouseContainer: org.testcontainers.containers.JdbcDatabaseContainer withInitScript(java.lang.String)>("clickhouse-test-data.sql");
<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.testcontainers.containers.JdbcDatabaseContainer jdbcContainer> = v;
v = <org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.testcontainers.containers.JdbcDatabaseContainer jdbcContainer>;
virtualinvoke v.<org.testcontainers.containers.JdbcDatabaseContainer: void start()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = <org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.testcontainers.containers.JdbcDatabaseContainer jdbcContainer>;
v = virtualinvoke v.<org.testcontainers.containers.JdbcDatabaseContainer: java.lang.String getUsername()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("username", v);
v = <org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.testcontainers.containers.JdbcDatabaseContainer jdbcContainer>;
v = virtualinvoke v.<org.testcontainers.containers.JdbcDatabaseContainer: java.lang.String getPassword()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("password", v);
v = new org.apache.drill.common.logical.security.PlainCredentialsProvider;
specialinvoke v.<org.apache.drill.common.logical.security.PlainCredentialsProvider: void <init>(java.util.Map)>(v);
v = new org.apache.drill.exec.store.jdbc.JdbcStorageConfig;
v = <org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.testcontainers.containers.JdbcDatabaseContainer jdbcContainer>;
v = virtualinvoke v.<org.testcontainers.containers.JdbcDatabaseContainer: java.lang.String getJdbcUrl()>();
v = <org.apache.drill.common.logical.StoragePluginConfig$AuthMode: org.apache.drill.common.logical.StoragePluginConfig$AuthMode SHARED_USER>;
v = virtualinvoke v.<org.apache.drill.common.logical.StoragePluginConfig$AuthMode: java.lang.String name()>();
specialinvoke v.<org.apache.drill.exec.store.jdbc.JdbcStorageConfig: void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,boolean,boolean,java.util.Map,org.apache.drill.common.logical.security.CredentialsProvider,java.lang.String,int)>("ru.yandex.clickhouse.ClickHouseDriver", v, null, null, 1, 0, null, v, v, 0);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(1);
virtualinvoke v.<org.apache.drill.exec.store.jdbc.JdbcStorageConfig: void setEnabled(java.lang.Boolean)>(v);
v = <org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.ClusterFixture cluster>;
virtualinvoke v.<org.apache.drill.test.ClusterFixture: void defineStoragePlugin(java.lang.String,org.apache.drill.common.logical.StoragePluginConfig)>("clickhouse", v);
return;
}
public static void stopClickhouse()
{
org.testcontainers.containers.JdbcDatabaseContainer v, v;
v = <org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.testcontainers.containers.JdbcDatabaseContainer jdbcContainer>;
if v == null goto label;
v = <org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.testcontainers.containers.JdbcDatabaseContainer jdbcContainer>;
virtualinvoke v.<org.testcontainers.containers.JdbcDatabaseContainer: void stop()>();
label:
return;
}
public void validateResult() throws java.lang.Exception
{
java.lang.Integer v, v, v, v, v, v, v, v, v, v, v, v, v;
java.math.BigDecimal v;
org.apache.drill.test.TestBuilder v, v, v, v, v, v, v, v;
java.lang.Long v, v, v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
java.time.LocalDate v, v, v;
java.lang.Object[] v, v, v, v;
java.lang.Double v, v, v, v, v, v;
java.time.LocalDateTime v, v, v;
java.lang.String[] v;
int v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.TestBuilder testBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder sqlQuery(java.lang.String)>("select person_id, first_name, last_name, address, city, state, zip, json, bigint_field, smallint_field, decimal_field, boolean_field, double_field, float_field, date_field, datetime_field, enum_field from clickhouse.`default`.person order by person_id");
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder ordered()>();
v = newarray (java.lang.String)[17];
v[0] = "person_id";
v[1] = "first_name";
v[2] = "last_name";
v[3] = "address";
v[4] = "city";
v[5] = "state";
v[6] = "zip";
v[7] = "json";
v[8] = "bigint_field";
v[9] = "smallint_field";
v[10] = "decimal_field";
v[11] = "boolean_field";
v[12] = "double_field";
v[13] = "float_field";
v[14] = "date_field";
v[15] = "datetime_field";
v[16] = "enum_field";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineColumns(java.lang.String[])>(v);
v = newarray (java.lang.Object)[17];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
v[0] = v;
v[1] = "first_name_1";
v[2] = "last_name_1";
v[3] = "1401 John F Kennedy Blvd";
v[4] = "Philadelphia";
v[5] = "PA";
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(19107);
v[6] = v;
v[7] = "{ a : 5, b : 6 }";
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(123456789L);
v[8] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
v[9] = v;
v = new java.math.BigDecimal;
specialinvoke v.<java.math.BigDecimal: void <init>(java.lang.String)>("123.32");
v[10] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
v[11] = v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(1.0);
v[12] = v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(1.1);
v[13] = v;
v = staticinvoke <org.apache.drill.exec.expr.fn.impl.DateUtility: java.time.LocalDate parseLocalDate(java.lang.String)>("2012-02-29");
v[14] = v;
v = staticinvoke <org.apache.drill.exec.expr.fn.impl.DateUtility: java.time.LocalDateTime parseLocalDateTime(java.lang.String)>("2012-02-29 13:00:01.0");
v[15] = v;
v[16] = "XXX";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
v = newarray (java.lang.Object)[17];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(2);
v[0] = v;
v[1] = "first_name_2";
v[2] = "last_name_2";
v[3] = "One Ferry Building";
v[4] = "San Francisco";
v[5] = "CA";
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(94111);
v[6] = v;
v[7] = "{ z : [ 1, 2, 3 ] }";
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(45456767L);
v[8] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(3);
v[9] = v;
v[10] = null;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
v[11] = v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(3.0);
v[12] = v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(3.1);
v[13] = v;
v = staticinvoke <org.apache.drill.exec.expr.fn.impl.DateUtility: java.time.LocalDate parseLocalDate(java.lang.String)>("2011-10-30");
v[14] = v;
v = staticinvoke <org.apache.drill.exec.expr.fn.impl.DateUtility: java.time.LocalDateTime parseLocalDateTime(java.lang.String)>("2011-10-30 11:34:21.0");
v[15] = v;
v[16] = "YYY";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
v = newarray (java.lang.Object)[17];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(3);
v[0] = v;
v[1] = "first_name_3";
v[2] = "last_name_3";
v[3] = "176 Bowery";
v[4] = "New York";
v[5] = "NY";
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(10012);
v[6] = v;
v[7] = "{ [ a, b, c ] }";
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(123090L);
v[8] = v;
v = (int) -3;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[9] = v;
v[10] = null;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
v[11] = v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(5.0);
v[12] = v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(5.1);
v[13] = v;
v = staticinvoke <org.apache.drill.exec.expr.fn.impl.DateUtility: java.time.LocalDate parseLocalDate(java.lang.String)>("2015-06-01");
v[14] = v;
v = staticinvoke <org.apache.drill.exec.expr.fn.impl.DateUtility: java.time.LocalDateTime parseLocalDateTime(java.lang.String)>("2015-09-22 15:46:10.0");
v[15] = v;
v[16] = "ZZZ";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
v = newarray (java.lang.Object)[17];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(4);
v[0] = v;
v[1] = null;
v[2] = null;
v[3] = null;
v[4] = null;
v[5] = null;
v[6] = null;
v[7] = null;
v[8] = null;
v[9] = null;
v[10] = null;
v[11] = null;
v[12] = null;
v[13] = null;
v[14] = null;
v[15] = null;
v[16] = "XXX";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
virtualinvoke v.<org.apache.drill.test.TestBuilder: void go()>();
return;
}
public void pushDownJoin() throws java.lang.Exception
{
org.apache.drill.test.QueryBuilder v, v;
org.apache.drill.test.QueryBuilder$PlanMatcher v, v;
java.lang.String[] v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.QueryBuilder queryBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder sql(java.lang.String)>("select x.person_id from (select person_id from clickhouse.`default`.person) x join (select person_id from clickhouse.`default`.person) y on x.person_id = y.person_id");
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder$PlanMatcher planMatcher()>();
v = newarray (java.lang.String)[1];
v[0] = "Join";
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: org.apache.drill.test.QueryBuilder$PlanMatcher exclude(java.lang.String[])>(v);
virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: void match()>();
return;
}
public void pushDownJoinAndFilterPushDown() throws java.lang.Exception
{
org.apache.drill.test.QueryBuilder v, v;
org.apache.drill.test.QueryBuilder$PlanMatcher v, v;
java.lang.String[] v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.QueryBuilder queryBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder sql(java.lang.String)>("select * from clickhouse.`default`.person e INNER JOIN clickhouse.`default`.person s ON e.first_name = s.first_name WHERE e.last_name > \'hello\'");
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder$PlanMatcher planMatcher()>();
v = newarray (java.lang.String)[2];
v[0] = "Join";
v[1] = "Filter";
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: org.apache.drill.test.QueryBuilder$PlanMatcher exclude(java.lang.String[])>(v);
virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: void match()>();
return;
}
public void pushDownAggWithDecimal() throws java.lang.Exception
{
org.apache.drill.test.QueryBuilder v, v;
java.lang.Object[] v;
org.apache.drill.exec.physical.rowSet.RowSet$SingleRowSet v;
java.lang.Double v;
org.apache.drill.exec.record.metadata.SchemaBuilder v, v;
org.apache.drill.exec.physical.rowSet.RowSetBuilder v, v;
org.apache.drill.exec.record.metadata.TupleMetadata v;
org.apache.drill.common.types.TypeProtos$MinorType v;
org.apache.drill.exec.physical.rowSet.DirectRowSet v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
org.apache.drill.test.ClientFixture v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.QueryBuilder queryBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder sql(java.lang.String)>("SELECT sum(decimal_field * smallint_field) AS `order_total`\nFROM clickhouse.`default`.person e");
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.exec.physical.rowSet.DirectRowSet rowSet()>();
v = new org.apache.drill.exec.record.metadata.SchemaBuilder;
specialinvoke v.<org.apache.drill.exec.record.metadata.SchemaBuilder: void <init>()>();
v = <org.apache.drill.common.types.TypeProtos$MinorType: org.apache.drill.common.types.TypeProtos$MinorType VARDECIMAL>;
v = virtualinvoke v.<org.apache.drill.exec.record.metadata.SchemaBuilder: org.apache.drill.exec.record.metadata.SchemaBuilder addNullable(java.lang.String,org.apache.drill.common.types.TypeProtos$MinorType,int,int)>("order_total", v, 38, 2);
v = virtualinvoke v.<org.apache.drill.exec.record.metadata.SchemaBuilder: org.apache.drill.exec.record.metadata.TupleMetadata buildSchema()>();
v = <org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.ClientFixture client>;
v = virtualinvoke v.<org.apache.drill.test.ClientFixture: org.apache.drill.exec.physical.rowSet.RowSetBuilder rowSetBuilder(org.apache.drill.exec.record.metadata.TupleMetadata)>(v);
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(123.32);
v[0] = v;
v = virtualinvoke v.<org.apache.drill.exec.physical.rowSet.RowSetBuilder: org.apache.drill.exec.physical.rowSet.RowSetBuilder addRow(java.lang.Object[])>(v);
v = virtualinvoke v.<org.apache.drill.exec.physical.rowSet.RowSetBuilder: org.apache.drill.exec.physical.rowSet.RowSet$SingleRowSet build()>();
staticinvoke <org.apache.drill.test.rowSet.RowSetUtilities: void verify(org.apache.drill.exec.physical.rowSet.RowSet,org.apache.drill.exec.physical.rowSet.RowSet)>(v, v);
return;
}
public void testPhysicalPlanSubmission() throws java.lang.Exception
{
org.apache.drill.test.QueryBuilder v, v, v, v;
long v;
org.apache.drill.test.QueryBuilder$QuerySummary v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
java.lang.String v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.QueryBuilder queryBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder sql(java.lang.String)>("select * from clickhouse.`default`.person");
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: java.lang.String explainJson()>();
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.QueryBuilder queryBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder physical(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder$QuerySummary run()>();
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder$QuerySummary: long recordCount()>();
staticinvoke <org.junit.Assert: void assertEquals(long,long)>(4L, v);
return;
}
public void emptyOutput()
{
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
org.apache.drill.test.TestBuilder v, v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.TestBuilder testBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder sqlQuery(java.lang.String)>("select * from clickhouse.`default`.person e limit 0");
virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder expectsEmptyResultSet()>();
return;
}
public void testExpressionsWithoutAlias() throws java.lang.Exception
{
java.lang.Object[] v;
java.lang.Double v;
java.lang.String[] v;
java.lang.Integer v;
org.apache.drill.test.TestBuilder v, v, v, v, v;
java.lang.Long v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.TestBuilder testBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder sqlQuery(java.lang.String)>("select count(*), 1+1+2+3+5+8+13+21+34, (1+sqrt(5))/2\nfrom clickhouse.`default`.person");
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder unOrdered()>();
v = newarray (java.lang.String)[3];
v[0] = "EXPR$0";
v[1] = "EXPR$1";
v[2] = "EXPR$2";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineColumns(java.lang.String[])>(v);
v = newarray (java.lang.Object)[3];
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(4L);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(88);
v[1] = v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(1.618033988749895);
v[2] = v;
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
virtualinvoke v.<org.apache.drill.test.TestBuilder: void go()>();
return;
}
public void testExpressionsWithoutAliasesPermutations() throws java.lang.Exception
{
java.lang.Object[] v;
java.lang.Double v;
java.lang.String[] v;
java.lang.Integer v;
org.apache.drill.test.TestBuilder v, v, v, v, v;
java.lang.Long v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.TestBuilder testBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder sqlQuery(java.lang.String)>("select EXPR$1, EXPR$0, EXPR$2\nfrom (select 1+1+2+3+5+8+13+21+34, (1+sqrt(5))/2, count(*) from clickhouse.`default`.person)");
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder unOrdered()>();
v = newarray (java.lang.String)[3];
v[0] = "EXPR$1";
v[1] = "EXPR$0";
v[2] = "EXPR$2";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineColumns(java.lang.String[])>(v);
v = newarray (java.lang.Object)[3];
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(1.618033988749895);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(88);
v[1] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(4L);
v[2] = v;
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
virtualinvoke v.<org.apache.drill.test.TestBuilder: void go()>();
return;
}
public void testExpressionsWithAliases() throws java.lang.Exception
{
java.lang.Object[] v, v;
java.lang.Double v, v;
java.lang.String[] v;
java.lang.Integer v, v, v, v;
org.apache.drill.test.TestBuilder v, v, v, v, v, v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.TestBuilder testBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder sqlQuery(java.lang.String)>("select person_id as ID, 1+1+2+3+5+8+13+21+34 as FIBONACCI_SUM, (1+sqrt(5))/2 as golden_ratio\nfrom clickhouse.`default`.person limit 2");
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder unOrdered()>();
v = newarray (java.lang.String)[3];
v[0] = "ID";
v[1] = "FIBONACCI_SUM";
v[2] = "golden_ratio";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineColumns(java.lang.String[])>(v);
v = newarray (java.lang.Object)[3];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(88);
v[1] = v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(1.618033988749895);
v[2] = v;
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
v = newarray (java.lang.Object)[3];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(2);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(88);
v[1] = v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(1.618033988749895);
v[2] = v;
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
virtualinvoke v.<org.apache.drill.test.TestBuilder: void go()>();
return;
}
public void testJoinStar() throws java.lang.Exception
{
java.lang.Object[] v, v, v, v;
java.lang.String[] v;
java.lang.Integer v, v, v, v, v, v, v, v;
org.apache.drill.test.TestBuilder v, v, v, v, v, v, v, v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.TestBuilder testBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder sqlQuery(java.lang.String)>("select * from (select person_id from clickhouse.`default`.person) t join (select person_id from clickhouse.`default`.person) t on t.person_id = t.person_id");
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder unOrdered()>();
v = newarray (java.lang.String)[2];
v[0] = "person_id";
v[1] = "person_id0";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineColumns(java.lang.String[])>(v);
v = newarray (java.lang.Object)[2];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
v[1] = v;
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
v = newarray (java.lang.Object)[2];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(2);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(2);
v[1] = v;
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
v = newarray (java.lang.Object)[2];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(3);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(3);
v[1] = v;
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
v = newarray (java.lang.Object)[2];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(4);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(4);
v[1] = v;
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValues(java.lang.Object[])>(v);
virtualinvoke v.<org.apache.drill.test.TestBuilder: void go()>();
return;
}
public void testSemiJoin() throws java.lang.Exception
{
java.lang.Object[] v;
java.lang.String[] v;
java.lang.Integer v, v, v, v;
org.apache.drill.test.TestBuilder v, v, v, v, v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.TestBuilder testBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder sqlQuery(java.lang.String)>("select person_id from clickhouse.`default`.person t1\nwhere exists (select person_id from clickhouse.`default`.person\nwhere t.person_id = person_id)");
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder unOrdered()>();
v = newarray (java.lang.String)[1];
v[0] = "person_id";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineColumns(java.lang.String[])>(v);
v = newarray (java.lang.Object)[4];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(2);
v[1] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(3);
v[2] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(4);
v[3] = v;
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValuesForSingleColumn(java.lang.Object[])>(v);
virtualinvoke v.<org.apache.drill.test.TestBuilder: void go()>();
return;
}
public void testInformationSchemaViews() throws java.lang.Exception
{
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
java.lang.Object[] v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = newarray (java.lang.Object)[0];
staticinvoke <org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: void run(java.lang.String,java.lang.Object[])>("select * from information_schema.`views`", v);
return;
}
public void testJdbcTableTypes() throws java.lang.Exception
{
java.lang.Object[] v;
java.lang.String[] v;
org.apache.drill.test.TestBuilder v, v, v, v, v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.TestBuilder testBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder sqlQuery(java.lang.String)>("select distinct table_type from information_schema.`tables` where table_schema like \'clickhouse%\'");
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder unOrdered()>();
v = newarray (java.lang.String)[1];
v[0] = "table_type";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineColumns(java.lang.String[])>(v);
v = newarray (java.lang.Object)[2];
v[0] = "TABLE";
v[1] = "VIEW";
v = virtualinvoke v.<org.apache.drill.test.TestBuilder: org.apache.drill.test.TestBuilder baselineValuesForSingleColumn(java.lang.Object[])>(v);
virtualinvoke v.<org.apache.drill.test.TestBuilder: void go()>();
return;
}
public void testLimitPushDown() throws java.lang.Exception
{
org.apache.drill.test.QueryBuilder v, v;
org.apache.drill.test.QueryBuilder$PlanMatcher v, v, v;
java.lang.String[] v, v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.QueryBuilder queryBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder sql(java.lang.String)>("select person_id, first_name, last_name from clickhouse.`default`.person limit 100");
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder$PlanMatcher planMatcher()>();
v = newarray (java.lang.String)[1];
v[0] = "Jdbc\\(.*LIMIT 100";
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: org.apache.drill.test.QueryBuilder$PlanMatcher include(java.lang.String[])>(v);
v = newarray (java.lang.String)[1];
v[0] = "Limit\\(";
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: org.apache.drill.test.QueryBuilder$PlanMatcher exclude(java.lang.String[])>(v);
virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: void match()>();
return;
}
public void testLimitPushDownWithOrderBy() throws java.lang.Exception
{
org.apache.drill.test.QueryBuilder v, v;
org.apache.drill.test.QueryBuilder$PlanMatcher v, v, v;
java.lang.String[] v, v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.QueryBuilder queryBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder sql(java.lang.String)>("select person_id from clickhouse.`default`.person order by first_name limit 100");
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder$PlanMatcher planMatcher()>();
v = newarray (java.lang.String)[1];
v[0] = "Jdbc\\(.*ORDER BY `first_name`.*LIMIT 100";
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: org.apache.drill.test.QueryBuilder$PlanMatcher include(java.lang.String[])>(v);
v = newarray (java.lang.String)[1];
v[0] = "Limit\\(";
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: org.apache.drill.test.QueryBuilder$PlanMatcher exclude(java.lang.String[])>(v);
virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: void match()>();
return;
}
public void testLimitPushDownWithOffset() throws java.lang.Exception
{
org.apache.drill.test.QueryBuilder v, v;
org.apache.drill.test.QueryBuilder$PlanMatcher v, v, v;
java.lang.String[] v, v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.QueryBuilder queryBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder sql(java.lang.String)>("select person_id, first_name from clickhouse.`default`.person limit 100 offset 10");
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder$PlanMatcher planMatcher()>();
v = newarray (java.lang.String)[1];
v[0] = "Jdbc\\(.*LIMIT 10, 100";
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: org.apache.drill.test.QueryBuilder$PlanMatcher include(java.lang.String[])>(v);
v = newarray (java.lang.String)[1];
v[0] = "Limit\\(";
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: org.apache.drill.test.QueryBuilder$PlanMatcher exclude(java.lang.String[])>(v);
virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: void match()>();
return;
}
public void testLimitPushDownWithConvertFromJson() throws java.lang.Exception
{
org.apache.drill.test.QueryBuilder v, v;
org.apache.drill.test.QueryBuilder$PlanMatcher v, v, v;
java.lang.String[] v, v;
org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse v;
v := @this: org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse;
v = virtualinvoke v.<org.apache.drill.exec.store.jdbc.TestJdbcPluginWithClickhouse: org.apache.drill.test.QueryBuilder queryBuilder()>();
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder sql(java.lang.String)>("select convert_fromJSON(first_name)[\'ppid\'] from clickhouse.`default`.person LIMIT 100");
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder: org.apache.drill.test.QueryBuilder$PlanMatcher planMatcher()>();
v = newarray (java.lang.String)[1];
v[0] = "Jdbc\\(.*LIMIT 100";
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: org.apache.drill.test.QueryBuilder$PlanMatcher include(java.lang.String[])>(v);
v = newarray (java.lang.String)[1];
v[0] = "Limit\\(";
v = virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: org.apache.drill.test.QueryBuilder$PlanMatcher exclude(java.lang.String[])>(v);
virtualinvoke v.<org.apache.drill.test.QueryBuilder$PlanMatcher: void match()>();
return;
}
}