Skip to content

Commit

Permalink
Remove deprecated row field access mechanism
Browse files Browse the repository at this point in the history
The feature has been deprecated and disabled for almost a year.
  • Loading branch information
martint committed Mar 11, 2019
1 parent ec2fb2f commit dcf916c
Show file tree
Hide file tree
Showing 8 changed files with 1 addition and 153 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,6 @@ public final class SystemSessionProperties
public static final String SPILL_WINDOW_OPERATOR = "spill_window_operator";
public static final String AGGREGATION_OPERATOR_UNSPILL_MEMORY_LIMIT = "aggregation_operator_unspill_memory_limit";
public static final String OPTIMIZE_DISTINCT_AGGREGATIONS = "optimize_mixed_distinct_aggregations";
public static final String LEGACY_ROW_FIELD_ORDINAL_ACCESS = "legacy_row_field_ordinal_access";
public static final String ITERATIVE_OPTIMIZER = "iterative_optimizer_enabled";
public static final String ITERATIVE_OPTIMIZER_TIMEOUT = "iterative_optimizer_timeout";
public static final String ENABLE_FORCED_EXCHANGE_BELOW_GROUP_ID = "enable_forced_exchange_below_group_id";
Expand Down Expand Up @@ -429,11 +428,6 @@ public SystemSessionProperties(
"Optimize mixed non-distinct and distinct aggregations",
featuresConfig.isOptimizeMixedDistinctAggregations(),
false),
booleanProperty(
LEGACY_ROW_FIELD_ORDINAL_ACCESS,
"Allow accessing anonymous row field with .field0, .field1, ...",
featuresConfig.isLegacyRowFieldOrdinalAccess(),
false),
booleanProperty(
ITERATIVE_OPTIMIZER,
"Experimental: enable iterative optimizer",
Expand Down Expand Up @@ -795,11 +789,6 @@ public static boolean isOptimizeDistinctAggregationEnabled(Session session)
return session.getSystemProperty(OPTIMIZE_DISTINCT_AGGREGATIONS, Boolean.class);
}

public static boolean isLegacyRowFieldOrdinalAccessEnabled(Session session)
{
return session.getSystemProperty(LEGACY_ROW_FIELD_ORDINAL_ACCESS, Boolean.class);
}

public static boolean isNewOptimizerEnabled(Session session)
{
return session.getSystemProperty(ITERATIVE_OPTIMIZER, Boolean.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,15 +111,13 @@
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.OptionalInt;
import java.util.Set;
import java.util.function.Function;

import static com.google.common.base.Preconditions.checkState;
import static com.google.common.base.Verify.verify;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.common.collect.Iterables.getOnlyElement;
import static io.prestosql.SystemSessionProperties.isLegacyRowFieldOrdinalAccessEnabled;
import static io.prestosql.spi.function.OperatorType.SUBSCRIPT;
import static io.prestosql.spi.type.BigintType.BIGINT;
import static io.prestosql.spi.type.BooleanType.BOOLEAN;
Expand Down Expand Up @@ -157,7 +155,6 @@
import static io.prestosql.util.DateTimeUtils.parseTimestampLiteral;
import static io.prestosql.util.DateTimeUtils.timeHasTimeZone;
import static io.prestosql.util.DateTimeUtils.timestampHasTimeZone;
import static io.prestosql.util.LegacyRowFieldOrdinalAccessUtil.parseAnonymousRowFieldOrdinalAccess;
import static java.lang.String.format;
import static java.util.Collections.unmodifiableMap;
import static java.util.Collections.unmodifiableSet;
Expand All @@ -173,7 +170,6 @@ public class ExpressionAnalyzer
private final Function<Node, StatementAnalyzer> statementAnalyzerFactory;
private final TypeProvider symbolTypes;
private final boolean isDescribe;
private final boolean legacyRowFieldOrdinalAccess;

private final Map<NodeRef<FunctionCall>, Signature> resolvedFunctions = new LinkedHashMap<>();
private final Set<NodeRef<SubqueryExpression>> scalarSubqueries = new LinkedHashSet<>();
Expand Down Expand Up @@ -210,7 +206,6 @@ public ExpressionAnalyzer(
this.symbolTypes = requireNonNull(symbolTypes, "symbolTypes is null");
this.parameters = requireNonNull(parameters, "parameters is null");
this.isDescribe = isDescribe;
this.legacyRowFieldOrdinalAccess = isLegacyRowFieldOrdinalAccessEnabled(session);
this.warningCollector = requireNonNull(warningCollector, "warningCollector is null");
}

Expand Down Expand Up @@ -451,13 +446,6 @@ protected Type visitDereferenceExpression(DereferenceExpression node, StackableA
}
}

if (legacyRowFieldOrdinalAccess && rowFieldType == null) {
OptionalInt rowIndex = parseAnonymousRowFieldOrdinalAccess(fieldName, rowType.getFields());
if (rowIndex.isPresent()) {
rowFieldType = rowType.getFields().get(rowIndex.getAsInt()).getType();
}
}

if (rowFieldType == null) {
throw missingAttributeException(node);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
import static java.util.concurrent.TimeUnit.MINUTES;

@DefunctConfig({
"deprecated.legacy-row-field-ordinal-access",
"deprecated.legacy-unnest-array-rows",
"resource-group-manager",
"experimental.resource-groups-enabled",
Expand Down Expand Up @@ -85,7 +86,6 @@ public class FeaturesConfig
private boolean groupByUsesEqualTo;
private boolean legacyTimestamp = true;
private boolean legacyMapSubscript;
private boolean legacyRowFieldOrdinalAccess;
private boolean legacyCharToVarcharCoercion;
private boolean optimizeMixedDistinctAggregations;
private boolean forceSingleNodeOutput = true;
Expand Down Expand Up @@ -198,18 +198,6 @@ public FeaturesConfig setDistributedIndexJoinsEnabled(boolean distributedIndexJo
return this;
}

@Config("deprecated.legacy-row-field-ordinal-access")
public FeaturesConfig setLegacyRowFieldOrdinalAccess(boolean value)
{
this.legacyRowFieldOrdinalAccess = value;
return this;
}

public boolean isLegacyRowFieldOrdinalAccess()
{
return legacyRowFieldOrdinalAccess;
}

@Config("deprecated.legacy-char-to-varchar-coercion")
public FeaturesConfig setLegacyCharToVarcharCoercion(boolean value)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.OptionalInt;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
Expand All @@ -119,7 +118,6 @@
import static com.google.common.base.Verify.verify;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.common.collect.Iterables.getOnlyElement;
import static io.prestosql.SystemSessionProperties.isLegacyRowFieldOrdinalAccessEnabled;
import static io.prestosql.operator.scalar.ScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL;
import static io.prestosql.spi.StandardErrorCode.NOT_SUPPORTED;
import static io.prestosql.spi.type.TypeSignature.parseTypeSignature;
Expand All @@ -133,7 +131,6 @@
import static io.prestosql.sql.planner.iterative.rule.CanonicalizeExpressionRewriter.canonicalizeExpression;
import static io.prestosql.type.LikeFunctions.isLikePattern;
import static io.prestosql.type.LikeFunctions.unescapeLiteralLikePattern;
import static io.prestosql.util.LegacyRowFieldOrdinalAccessUtil.parseAnonymousRowFieldOrdinalAccess;
import static java.lang.String.format;
import static java.util.Objects.requireNonNull;

Expand All @@ -146,7 +143,6 @@ public class ExpressionInterpreter
private final boolean optimize;
private final Map<NodeRef<Expression>, Type> expressionTypes;
private final InterpretedFunctionInvoker functionInvoker;
private final boolean legacyRowFieldOrdinalAccess;

private final Visitor visitor;

Expand Down Expand Up @@ -235,7 +231,6 @@ private ExpressionInterpreter(Expression expression, Metadata metadata, Session
verify((expressionTypes.containsKey(NodeRef.of(expression))));
this.optimize = optimize;
this.functionInvoker = new InterpretedFunctionInvoker(metadata.getFunctionRegistry());
this.legacyRowFieldOrdinalAccess = isLegacyRowFieldOrdinalAccessEnabled(session);

this.visitor = new Visitor();
}
Expand Down Expand Up @@ -306,13 +301,6 @@ protected Object visitDereferenceExpression(DereferenceExpression node, Object c
}
}

if (legacyRowFieldOrdinalAccess && index < 0) {
OptionalInt rowIndex = parseAnonymousRowFieldOrdinalAccess(fieldName, fields);
if (rowIndex.isPresent()) {
index = rowIndex.getAsInt();
}
}

checkState(index >= 0, "could not find field name: %s", node.getField());
if (row.isNull(index)) {
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,12 @@

import java.util.List;
import java.util.Map;
import java.util.OptionalInt;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static io.airlift.slice.SliceUtf8.countCodePoints;
import static io.airlift.slice.Slices.utf8Slice;
import static io.prestosql.SystemSessionProperties.isLegacyRowFieldOrdinalAccessEnabled;
import static io.prestosql.metadata.FunctionKind.SCALAR;
import static io.prestosql.spi.type.BigintType.BIGINT;
import static io.prestosql.spi.type.BooleanType.BOOLEAN;
Expand Down Expand Up @@ -131,7 +129,6 @@
import static io.prestosql.util.DateTimeUtils.parseTimeWithoutTimeZone;
import static io.prestosql.util.DateTimeUtils.parseTimestampLiteral;
import static io.prestosql.util.DateTimeUtils.parseYearMonthInterval;
import static io.prestosql.util.LegacyRowFieldOrdinalAccessUtil.parseAnonymousRowFieldOrdinalAccess;
import static java.util.Objects.requireNonNull;

public final class SqlToRowExpressionTranslator
Expand All @@ -154,7 +151,6 @@ public static RowExpression translate(
typeManager,
layout,
session.getTimeZoneKey(),
isLegacyRowFieldOrdinalAccessEnabled(session),
SystemSessionProperties.isLegacyTimestamp(session));
RowExpression result = visitor.process(expression, null);

Expand All @@ -176,7 +172,6 @@ private static class Visitor
private final TypeManager typeManager;
private final Map<Symbol, Integer> layout;
private final TimeZoneKey timeZoneKey;
private final boolean legacyRowFieldOrdinalAccess;
@Deprecated
private final boolean isLegacyTimestamp;

Expand All @@ -186,15 +181,13 @@ private Visitor(
TypeManager typeManager,
Map<Symbol, Integer> layout,
TimeZoneKey timeZoneKey,
boolean legacyRowFieldOrdinalAccess,
boolean isLegacyTimestamp)
{
this.functionKind = functionKind;
this.types = ImmutableMap.copyOf(requireNonNull(types, "types is null"));
this.typeManager = typeManager;
this.layout = layout;
this.timeZoneKey = timeZoneKey;
this.legacyRowFieldOrdinalAccess = legacyRowFieldOrdinalAccess;
this.isLegacyTimestamp = isLegacyTimestamp;
}

Expand Down Expand Up @@ -604,13 +597,6 @@ protected RowExpression visitDereferenceExpression(DereferenceExpression node, V
}
}

if (legacyRowFieldOrdinalAccess && index < 0) {
OptionalInt rowIndex = parseAnonymousRowFieldOrdinalAccess(fieldName, fields);
if (rowIndex.isPresent()) {
index = rowIndex.getAsInt();
}
}

checkState(index >= 0, "could not find field name: %s", node.getField());
Type returnType = getType(node);
return call(dereferenceSignature(returnType, rowType), returnType, process(node.getBase(), context), constant(index, INTEGER));
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ public void testDefaults()
.setEnableForcedExchangeBelowGroupId(true)
.setExchangeCompressionEnabled(false)
.setLegacyTimestamp(true)
.setLegacyRowFieldOrdinalAccess(false)
.setLegacyCharToVarcharCoercion(false)
.setEnableIntermediateAggregations(false)
.setPushAggregationThroughJoin(true)
Expand Down Expand Up @@ -125,7 +124,6 @@ public void testExplicitPropertyMappings()
.put("enable-forced-exchange-below-group-id", "false")
.put("deprecated.group-by-uses-equal", "true")
.put("deprecated.legacy-map-subscript", "true")
.put("deprecated.legacy-row-field-ordinal-access", "true")
.put("deprecated.legacy-char-to-varchar-coercion", "true")
.put("distributed-index-joins-enabled", "true")
.put("join-distribution-type", "BROADCAST")
Expand Down Expand Up @@ -222,7 +220,6 @@ public void testExplicitPropertyMappings()
.setMemoryRevokingTarget(0.8)
.setExchangeCompressionEnabled(true)
.setLegacyTimestamp(false)
.setLegacyRowFieldOrdinalAccess(true)
.setLegacyCharToVarcharCoercion(true)
.setEnableIntermediateAggregations(true)
.setParseDecimalLiteralsAsDouble(true)
Expand Down
Loading

0 comments on commit dcf916c

Please sign in to comment.