Skip to content

Commit 5d98742

Browse files
committed
Remove deprecated.omit-datetime-type-precision config property
This property was added 5 years ago to support old clients. It's not going to stay for ever.
1 parent 5122653 commit 5d98742

File tree

10 files changed

+21
-176
lines changed

10 files changed

+21
-176
lines changed

core/trino-main/src/main/java/io/trino/FeaturesConfig.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
"deprecated.legacy-timestamp",
5555
"deprecated.legacy-unnest-array-rows",
5656
"deprecated.legacy-update-delete-implementation",
57+
"deprecated.omit-datetime-type-precision",
5758
"experimental-syntax-enabled",
5859
"experimental.aggregation-operator-unspill-memory-limit",
5960
"experimental.filter-and-project-min-output-page-row-count",
@@ -104,7 +105,6 @@ public enum DataIntegrityVerification
104105
private CompressionCodec exchangeCompressionCodec = NONE;
105106
private boolean exchangeVectorizedSerdeEnabled = true;
106107
private boolean pagesIndexEagerCompactionEnabled;
107-
private boolean omitDateTimeTypePrecision;
108108
private int maxRecursionDepth = 10;
109109

110110
private int re2JDfaStatesLimit = Integer.MAX_VALUE;
@@ -134,19 +134,6 @@ public enum DataIntegrityVerification
134134

135135
private boolean legacyArithmeticDecimalOperators;
136136

137-
public boolean isOmitDateTimeTypePrecision()
138-
{
139-
return omitDateTimeTypePrecision;
140-
}
141-
142-
@Config("deprecated.omit-datetime-type-precision")
143-
@ConfigDescription("Enable compatibility mode for legacy clients when rendering datetime type names with default precision")
144-
public FeaturesConfig setOmitDateTimeTypePrecision(boolean value)
145-
{
146-
this.omitDateTimeTypePrecision = value;
147-
return this;
148-
}
149-
150137
public boolean isRedistributeWrites()
151138
{
152139
return redistributeWrites;

core/trino-main/src/main/java/io/trino/SystemSessionProperties.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ public final class SystemSessionProperties
151151
public static final String REQUIRED_WORKERS_COUNT = "required_workers_count";
152152
public static final String REQUIRED_WORKERS_MAX_WAIT_TIME = "required_workers_max_wait_time";
153153
public static final String COST_ESTIMATION_WORKER_COUNT = "cost_estimation_worker_count";
154-
public static final String OMIT_DATETIME_TYPE_PRECISION = "omit_datetime_type_precision";
155154
public static final String USE_LEGACY_WINDOW_FILTER_PUSHDOWN = "use_legacy_window_filter_pushdown";
156155
public static final String MAX_UNACKNOWLEDGED_SPLITS_PER_TASK = "max_unacknowledged_splits_per_task";
157156
public static final String MERGE_PROJECT_WITH_VALUES = "merge_project_with_values";
@@ -744,11 +743,6 @@ public SystemSessionProperties(
744743
null,
745744
value -> validateIntegerValue(value, COST_ESTIMATION_WORKER_COUNT, 1, true),
746745
true),
747-
booleanProperty(
748-
OMIT_DATETIME_TYPE_PRECISION,
749-
"Omit precision when rendering datetime type names with default precision",
750-
featuresConfig.isOmitDateTimeTypePrecision(),
751-
false),
752746
booleanProperty(
753747
USE_LEGACY_WINDOW_FILTER_PUSHDOWN,
754748
"Use legacy window filter pushdown optimizer",
@@ -1704,11 +1698,6 @@ public static Integer getCostEstimationWorkerCount(Session session)
17041698
return session.getSystemProperty(COST_ESTIMATION_WORKER_COUNT, Integer.class);
17051699
}
17061700

1707-
public static boolean isOmitDateTimeTypePrecision(Session session)
1708-
{
1709-
return session.getSystemProperty(OMIT_DATETIME_TYPE_PRECISION, Boolean.class);
1710-
}
1711-
17121701
public static boolean useLegacyWindowFilterPushdown(Session session)
17131702
{
17141703
return session.getSystemProperty(USE_LEGACY_WINDOW_FILTER_PUSHDOWN, Boolean.class);

core/trino-main/src/main/java/io/trino/connector/informationschema/InformationSchemaPageSource.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
import static com.google.common.collect.ImmutableList.toImmutableList;
5252
import static com.google.common.collect.ImmutableMap.toImmutableMap;
5353
import static com.google.common.collect.ImmutableSet.toImmutableSet;
54-
import static io.trino.SystemSessionProperties.isOmitDateTimeTypePrecision;
5554
import static io.trino.connector.informationschema.InformationSchemaMetadata.defaultPrefixes;
5655
import static io.trino.connector.informationschema.InformationSchemaMetadata.isTablesEnumeratingTable;
5756
import static io.trino.metadata.MetadataListing.getRelationTypes;
@@ -62,7 +61,6 @@
6261
import static io.trino.metadata.MetadataListing.listTables;
6362
import static io.trino.spi.security.PrincipalType.USER;
6463
import static io.trino.spi.type.TypeUtils.writeNativeValue;
65-
import static io.trino.type.TypeUtils.getDisplayLabel;
6664
import static java.util.Objects.requireNonNull;
6765

6866
public class InformationSchemaPageSource
@@ -257,7 +255,7 @@ private void addColumnsRecords(QualifiedTablePrefix prefix)
257255
ordinalPosition,
258256
column.getDefaultValue().orElse(null),
259257
column.isNullable() ? "YES" : "NO",
260-
getDisplayLabel(column.getType(), isOmitDateTimeTypePrecision(session)),
258+
column.getType().getDisplayName(),
261259
column.getComment(),
262260
column.getExtraInfo(),
263261
column.getComment());

core/trino-main/src/main/java/io/trino/connector/system/jdbc/ColumnJdbcTable.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@
6464
import static com.google.common.collect.ImmutableList.toImmutableList;
6565
import static com.google.common.collect.ImmutableSet.toImmutableSet;
6666
import static io.airlift.slice.Slices.utf8Slice;
67-
import static io.trino.SystemSessionProperties.isOmitDateTimeTypePrecision;
6867
import static io.trino.connector.system.jdbc.FilterUtil.isImpossibleObjectName;
6968
import static io.trino.connector.system.jdbc.FilterUtil.tablePrefix;
7069
import static io.trino.connector.system.jdbc.FilterUtil.tryGetSingleVarcharValue;
@@ -83,7 +82,6 @@
8382
import static io.trino.spi.type.TinyintType.TINYINT;
8483
import static io.trino.spi.type.VarbinaryType.VARBINARY;
8584
import static io.trino.spi.type.VarcharType.VARCHAR;
86-
import static io.trino.type.TypeUtils.getDisplayLabel;
8785
import static java.lang.Math.min;
8886
import static java.util.Objects.requireNonNull;
8987

@@ -245,7 +243,6 @@ public RecordCursor cursor(ConnectorTransactionHandle transactionHandle, Connect
245243
}
246244

247245
Session session = ((FullConnectorSession) connectorSession).getSession();
248-
boolean omitDateTimeTypePrecision = isOmitDateTimeTypePrecision(session);
249246

250247
Domain catalogDomain = constraint.getDomain(0, VARCHAR);
251248
Domain schemaDomain = constraint.getDomain(1, VARCHAR);
@@ -266,7 +263,7 @@ public RecordCursor cursor(ConnectorTransactionHandle transactionHandle, Connect
266263
if ((schemaDomain.isAll() && tableDomain.isAll()) || schemaFilter.isPresent()) {
267264
QualifiedTablePrefix tablePrefix = tablePrefix(catalog, schemaFilter, tableFilter);
268265
Map<SchemaTableName, List<ColumnMetadata>> tableColumns = listTableColumns(session, metadata, accessControl, tablePrefix);
269-
addColumnsRow(table, catalog, tableColumns, omitDateTimeTypePrecision);
266+
addColumnsRow(table, catalog, tableColumns);
270267
}
271268
else {
272269
Collection<String> schemas = listSchemas(session, metadata, accessControl, catalog, schemaFilter);
@@ -286,22 +283,22 @@ public RecordCursor cursor(ConnectorTransactionHandle transactionHandle, Connect
286283
}
287284

288285
Map<SchemaTableName, List<ColumnMetadata>> tableColumns = listTableColumns(session, metadata, accessControl, new QualifiedTablePrefix(catalog, schema, tableName));
289-
addColumnsRow(table, catalog, tableColumns, omitDateTimeTypePrecision);
286+
addColumnsRow(table, catalog, tableColumns);
290287
}
291288
}
292289
}
293290
}
294291
return table.build().cursor();
295292
}
296293

297-
private static void addColumnsRow(Builder builder, String catalog, Map<SchemaTableName, List<ColumnMetadata>> columns, boolean isOmitTimestampPrecision)
294+
private static void addColumnsRow(Builder builder, String catalog, Map<SchemaTableName, List<ColumnMetadata>> columns)
298295
{
299296
for (Entry<SchemaTableName, List<ColumnMetadata>> entry : columns.entrySet()) {
300-
addColumnRows(builder, catalog, entry.getKey(), entry.getValue(), isOmitTimestampPrecision);
297+
addColumnRows(builder, catalog, entry.getKey(), entry.getValue());
301298
}
302299
}
303300

304-
private static void addColumnRows(Builder builder, String catalog, SchemaTableName tableName, List<ColumnMetadata> columns, boolean isOmitTimestampPrecision)
301+
private static void addColumnRows(Builder builder, String catalog, SchemaTableName tableName, List<ColumnMetadata> columns)
305302
{
306303
int ordinalPosition = 1;
307304
for (ColumnMetadata column : columns) {
@@ -320,7 +317,7 @@ private static void addColumnRows(Builder builder, String catalog, SchemaTableNa
320317
// data_type
321318
jdbcDataType(column.getType()),
322319
// type_name
323-
getDisplayLabel(column.getType(), isOmitTimestampPrecision),
320+
column.getType().getDisplayName(),
324321
// column_size
325322
columnSize(column.getType()),
326323
// buffer_length

core/trino-main/src/main/java/io/trino/sql/rewrite/DescribeInputRewrite.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
import java.util.Map;
4343
import java.util.Optional;
4444

45-
import static io.trino.SystemSessionProperties.isOmitDateTimeTypePrecision;
4645
import static io.trino.execution.ParameterExtractor.extractParameters;
4746
import static io.trino.spi.type.BigintType.BIGINT;
4847
import static io.trino.spi.type.VarcharType.VARCHAR;
@@ -56,7 +55,6 @@
5655
import static io.trino.sql.QueryUtil.values;
5756
import static io.trino.sql.analyzer.QueryType.DESCRIBE;
5857
import static io.trino.sql.analyzer.TypeSignatureTranslator.toSqlType;
59-
import static io.trino.type.TypeUtils.getDisplayLabel;
6058
import static io.trino.type.UnknownType.UNKNOWN;
6159
import static java.util.Objects.requireNonNull;
6260

@@ -134,7 +132,7 @@ protected Node visitDescribeInput(DescribeInput node, Void context)
134132

135133
ImmutableList.Builder<Row> builder = ImmutableList.builder();
136134
for (int i = 0; i < parameters.size(); i++) {
137-
builder.add(createDescribeInputRow(session, i, parameters.get(i), analysis));
135+
builder.add(createDescribeInputRow(i, parameters.get(i), analysis));
138136
}
139137

140138
// return the positions and types of all parameters
@@ -163,7 +161,7 @@ private static Query createDescribeInputQuery(Row[] rows, Optional<Node> limit)
163161
limit);
164162
}
165163

166-
private static Row createDescribeInputRow(Session session, int position, Parameter parameter, Analysis queryAnalysis)
164+
private static Row createDescribeInputRow(int position, Parameter parameter, Analysis queryAnalysis)
167165
{
168166
Type type = queryAnalysis.getCoercion(parameter);
169167
if (type == null) {
@@ -172,7 +170,7 @@ private static Row createDescribeInputRow(Session session, int position, Paramet
172170

173171
return row(
174172
new LongLiteral(Integer.toString(position)),
175-
new StringLiteral(getDisplayLabel(type, isOmitDateTimeTypePrecision(session))));
173+
new StringLiteral(type.getDisplayName()));
176174
}
177175

178176
@Override

core/trino-main/src/main/java/io/trino/sql/rewrite/DescribeOutputRewrite.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
import java.util.Map;
4646
import java.util.Optional;
4747

48-
import static io.trino.SystemSessionProperties.isOmitDateTimeTypePrecision;
4948
import static io.trino.spi.type.BigintType.BIGINT;
5049
import static io.trino.spi.type.BooleanType.BOOLEAN;
5150
import static io.trino.spi.type.VarcharType.VARCHAR;
@@ -57,7 +56,6 @@
5756
import static io.trino.sql.QueryUtil.values;
5857
import static io.trino.sql.analyzer.QueryType.DESCRIBE;
5958
import static io.trino.sql.analyzer.TypeSignatureTranslator.toSqlType;
60-
import static io.trino.type.TypeUtils.getDisplayLabel;
6159
import static java.util.Objects.requireNonNull;
6260

6361
public final class DescribeOutputRewrite
@@ -187,7 +185,7 @@ private Row createDescribeOutputRow(Field field, Analysis analysis)
187185
new StringLiteral(originTable.map(QualifiedObjectName::catalogName).orElse("")),
188186
new StringLiteral(originTable.map(QualifiedObjectName::schemaName).orElse("")),
189187
new StringLiteral(originTable.map(QualifiedObjectName::objectName).orElse("")),
190-
new StringLiteral(getDisplayLabel(field.getType(), isOmitDateTimeTypePrecision(session))),
188+
new StringLiteral(field.getType().getDisplayName()),
191189
typeSize,
192190
new BooleanLiteral(String.valueOf(field.isAliased())));
193191
}

core/trino-main/src/main/java/io/trino/type/TypeUtils.java

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -13,72 +13,9 @@
1313
*/
1414
package io.trino.type;
1515

16-
import io.trino.spi.type.ArrayType;
17-
import io.trino.spi.type.MapType;
18-
import io.trino.spi.type.RowType;
19-
import io.trino.spi.type.StandardTypes;
20-
import io.trino.spi.type.TimeType;
21-
import io.trino.spi.type.TimeWithTimeZoneType;
22-
import io.trino.spi.type.TimestampType;
23-
import io.trino.spi.type.TimestampWithTimeZoneType;
24-
import io.trino.spi.type.Type;
25-
26-
import static io.trino.spi.type.StandardTypes.ARRAY;
27-
import static io.trino.spi.type.StandardTypes.MAP;
28-
import static io.trino.spi.type.StandardTypes.ROW;
29-
import static java.util.stream.Collectors.joining;
30-
3116
public final class TypeUtils
3217
{
3318
public static final int NULL_HASH_CODE = 0;
3419

3520
private TypeUtils() {}
36-
37-
public static String getDisplayLabel(Type type, boolean legacy)
38-
{
39-
if (legacy) {
40-
return getDisplayLabelForLegacyClients(type);
41-
}
42-
return type.getDisplayName();
43-
}
44-
45-
private static String getDisplayLabelForLegacyClients(Type type)
46-
{
47-
if (type instanceof TimestampType timestampType && timestampType.getPrecision() == TimestampType.DEFAULT_PRECISION) {
48-
return StandardTypes.TIMESTAMP;
49-
}
50-
if (type instanceof TimestampWithTimeZoneType timestampWithTimeZoneType && timestampWithTimeZoneType.getPrecision() == TimestampWithTimeZoneType.DEFAULT_PRECISION) {
51-
return StandardTypes.TIMESTAMP_WITH_TIME_ZONE;
52-
}
53-
if (type instanceof TimeType timeType && timeType.getPrecision() == TimeType.DEFAULT_PRECISION) {
54-
return StandardTypes.TIME;
55-
}
56-
if (type instanceof TimeWithTimeZoneType timeWithTimeZoneType && timeWithTimeZoneType.getPrecision() == TimeWithTimeZoneType.DEFAULT_PRECISION) {
57-
return StandardTypes.TIME_WITH_TIME_ZONE;
58-
}
59-
if (type instanceof ArrayType arrayType) {
60-
return ARRAY + "(" + getDisplayLabelForLegacyClients(arrayType.getElementType()) + ")";
61-
}
62-
if (type instanceof MapType mapType) {
63-
return MAP + "(" + getDisplayLabelForLegacyClients(mapType.getKeyType()) + ", " + getDisplayLabelForLegacyClients(mapType.getValueType()) + ")";
64-
}
65-
if (type instanceof RowType rowType) {
66-
return getRowDisplayLabelForLegacyClients(rowType);
67-
}
68-
69-
return type.getDisplayName();
70-
}
71-
72-
private static String getRowDisplayLabelForLegacyClients(RowType type)
73-
{
74-
return type.getFields().stream()
75-
.map(field -> {
76-
String typeDisplayName = getDisplayLabelForLegacyClients(field.getType());
77-
if (field.getName().isPresent()) {
78-
return field.getName().get() + ' ' + typeDisplayName;
79-
}
80-
return typeDisplayName;
81-
})
82-
.collect(joining(", ", ROW + "(", ")"));
83-
}
8421
}

core/trino-main/src/test/java/io/trino/sql/analyzer/TestFeaturesConfig.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ public void testDefaults()
6161
.setFilterAndProjectMinOutputPageRowCount(256)
6262
.setMaxRecursionDepth(10)
6363
.setMaxGroupingSets(2048)
64-
.setOmitDateTimeTypePrecision(false)
6564
.setLegacyCatalogRoles(false)
6665
.setIncrementalHashArrayLoadFactorEnabled(true)
6766
.setHideInaccessibleColumns(false)
@@ -97,7 +96,6 @@ public void testExplicitPropertyMappings()
9796
.put("filter-and-project-min-output-page-row-count", "2048")
9897
.put("max-recursion-depth", "8")
9998
.put("analyzer.max-grouping-sets", "2047")
100-
.put("deprecated.omit-datetime-type-precision", "true")
10199
.put("deprecated.legacy-catalog-roles", "true")
102100
.put("incremental-hash-array-load-factor.enabled", "false")
103101
.put("hide-inaccessible-columns", "true")
@@ -130,7 +128,6 @@ public void testExplicitPropertyMappings()
130128
.setFilterAndProjectMinOutputPageRowCount(2048)
131129
.setMaxRecursionDepth(8)
132130
.setMaxGroupingSets(2047)
133-
.setOmitDateTimeTypePrecision(true)
134131
.setLegacyCatalogRoles(true)
135132
.setIncrementalHashArrayLoadFactorEnabled(false)
136133
.setHideInaccessibleColumns(true)

0 commit comments

Comments
 (0)