Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import com.facebook.presto.server.SessionPropertyDefaults;
import com.facebook.presto.server.security.PasswordAuthenticatorManager;
import com.facebook.presto.spark.classloader_interface.SparkProcessType;
import com.facebook.presto.sql.parser.SqlParserOptions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.inject.Injector;
Expand All @@ -47,6 +48,7 @@ public class PrestoSparkInjectorFactory
private final Map<String, String> configProperties;
private final Map<String, Map<String, String>> catalogProperties;
private final Optional<Map<String, String>> eventListenerProperties;
private final SqlParserOptions sqlParserOptions;
private final List<Module> additionalModules;
private final Optional<Module> accessControlModuleOverride;

Expand All @@ -55,16 +57,25 @@ public PrestoSparkInjectorFactory(
Map<String, String> configProperties,
Map<String, Map<String, String>> catalogProperties,
Optional<Map<String, String>> eventListenerProperties,
SqlParserOptions sqlParserOptions,
List<Module> additionalModules)
{
this(sparkProcessType, configProperties, catalogProperties, eventListenerProperties, additionalModules, Optional.empty());
this(
sparkProcessType,
configProperties,
catalogProperties,
eventListenerProperties,
sqlParserOptions,
additionalModules,
Optional.empty());
}

public PrestoSparkInjectorFactory(
SparkProcessType sparkProcessType,
Map<String, String> configProperties,
Map<String, Map<String, String>> catalogProperties,
Optional<Map<String, String>> eventListenerProperties,
SqlParserOptions sqlParserOptions,
List<Module> additionalModules,
Optional<Module> accessControlModuleOverride)
{
Expand All @@ -73,6 +84,7 @@ public PrestoSparkInjectorFactory(
this.catalogProperties = requireNonNull(catalogProperties, "catalogProperties is null").entrySet().stream()
.collect(toImmutableMap(Entry::getKey, entry -> ImmutableMap.copyOf(entry.getValue())));
this.eventListenerProperties = requireNonNull(eventListenerProperties, "eventListenerProperties is null").map(ImmutableMap::copyOf);
this.sqlParserOptions = requireNonNull(sqlParserOptions, "sqlParserOptions is null");
this.additionalModules = ImmutableList.copyOf(requireNonNull(additionalModules, "additionalModules is null"));
this.accessControlModuleOverride = requireNonNull(accessControlModuleOverride, "accessControlModuleOverride is null");
}
Expand All @@ -87,7 +99,7 @@ public Injector create()
modules.add(
new JsonModule(),
new EventListenerModule(),
new PrestoSparkModule(sparkProcessType));
new PrestoSparkModule(sparkProcessType, sqlParserOptions));

boolean initializeAccessControl = false;
if (accessControlModuleOverride.isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,10 +178,12 @@ public class PrestoSparkModule
extends AbstractConfigurationAwareModule
{
private final SparkProcessType sparkProcessType;
private final SqlParserOptions sqlParserOptions;

public PrestoSparkModule(SparkProcessType sparkProcessType)
public PrestoSparkModule(SparkProcessType sparkProcessType, SqlParserOptions sqlParserOptions)
{
this.sparkProcessType = requireNonNull(sparkProcessType, "sparkProcessType is null");
this.sqlParserOptions = requireNonNull(sqlParserOptions, "sqlParserOptions is null");
}

@Override
Expand Down Expand Up @@ -316,7 +318,7 @@ protected void setup(Binder binder)

// parser
binder.bind(SqlParser.class).in(Scopes.SINGLETON);
binder.bind(SqlParserOptions.class).toInstance(new SqlParserOptions());
binder.bind(SqlParserOptions.class).toInstance(sqlParserOptions);

// planner
binder.bind(PlanFragmenter.class).in(Scopes.SINGLETON);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import com.facebook.presto.spark.classloader_interface.IPrestoSparkServiceFactory;
import com.facebook.presto.spark.classloader_interface.PrestoSparkConfiguration;
import com.facebook.presto.spark.classloader_interface.SparkProcessType;
import com.facebook.presto.sql.parser.SqlParserOptions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.inject.Injector;
Expand All @@ -42,6 +43,7 @@ public IPrestoSparkService createService(SparkProcessType sparkProcessType, Pres
properties.build(),
configuration.getCatalogProperties(),
configuration.getEventListenerProperties(),
getSqlParserOptions(),
getAdditionalModules());

Injector injector = prestoSparkInjectorFactory.create();
Expand All @@ -54,4 +56,9 @@ protected List<Module> getAdditionalModules()
{
return ImmutableList.of();
}

protected SqlParserOptions getSqlParserOptions()
{
return new SqlParserOptions();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
import com.facebook.presto.spi.security.PrincipalType;
import com.facebook.presto.split.PageSourceManager;
import com.facebook.presto.split.SplitManager;
import com.facebook.presto.sql.parser.SqlParserOptions;
import com.facebook.presto.sql.planner.ConnectorPlanOptimizerManager;
import com.facebook.presto.sql.planner.NodePartitioningManager;
import com.facebook.presto.testing.MaterializedResult;
Expand Down Expand Up @@ -206,6 +207,7 @@ public PrestoSparkQueryRunner(String defaultCatalog)
"prefer-distributed-union", "false"),
ImmutableMap.of(),
Optional.empty(),
new SqlParserOptions(),
ImmutableList.of(),
Optional.of(new TestingAccessControlModule()));

Expand Down