Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
d7d9ea3
Update javadoc to match rule
sopel39 Mar 29, 2021
2ac1cec
Remove redundant suppression
findepi Mar 30, 2021
093abcf
Use existing connection in assertMetadataCalls
findepi Mar 30, 2021
28233c8
Count getTableHandle calls in metadata calls tests
findepi Mar 30, 2021
266e001
Add compatibility with misbehaving client applications
findepi Mar 26, 2021
670cf1d
Add description for max-recursion-depth config
findepi Mar 25, 2021
4ff5421
Support LATERAL VIEW json_tuple AS ... in Hive VIEW
findepi Mar 25, 2021
ec68911
Make mock connector create/insert/update friendly
Praveen2112 Mar 17, 2021
5a038f8
Record output column details to EventListener
Praveen2112 Mar 17, 2021
1f12a7e
Record output for CREATE TABLE
Praveen2112 Mar 25, 2021
7d3fb06
Use TEXTFILE for a table in test
findepi Mar 31, 2021
b56e4fb
Retry testExplainAnalyzeReportSpilledDataSize
findepi Mar 31, 2021
08fe286
Remove redundant metastore calls while getting materialized view
phd3 Mar 31, 2021
9a337a2
Prevent join pushdown happening too early
hashhar Mar 25, 2021
b7c52b5
Add HiveMaterializedViewMetadata
raunaqmorarka Apr 1, 2021
81df1f6
Remove redundant isPresent check
raunaqmorarka Apr 1, 2021
197a655
Avoid extra getMaterializedView calls in StatementAnalyzer
raunaqmorarka Apr 1, 2021
fe425a2
Rename JDBC JOIN pushdown config properties
wendigo Apr 1, 2021
04ac77d
Remove TransactionCachingJdbcClient
wendigo Mar 31, 2021
a2908c9
Make the synthetic table name more apparent
findepi Mar 29, 2021
579fa3b
Create Duration explicitly
wendigo Apr 1, 2021
46dded3
Minor cleanup
Praveen2112 Apr 2, 2021
b04fa9c
Allow MockConnector to create/rename/drop schema
Praveen2112 Apr 2, 2021
6143a9e
Add some ORC and Parquet properties
mosabua Mar 26, 2021
af5eed1
Fix typo in documentation SQL
xinbinhuang Mar 19, 2021
d07e786
List all possible values for hive.s3.upload-acl-type property
gtangthousandeyes Apr 2, 2021
838ad16
Reconcile WebUI with new HTTPS page
Ordinant Mar 1, 2021
eeed38b
Remove unnecessary SocketChannelSocketFactory
PennyAndWang Nov 18, 2020
b33de82
Fix inconsistent behavior for to_unixtime with timestamp
martint Mar 30, 2021
e192db3
Return timestamp with time zone from from_unixtime
martint Mar 30, 2021
0c58b3d
Fix reference to outdated package
phd3 Apr 1, 2021
bbdccc5
Add missing assertions for table name
Praveen2112 Apr 2, 2021
5807476
Rename class to TestMockConnector
Praveen2112 Apr 2, 2021
2c67238
Allow MockConnector to select/drop materialized view
Praveen2112 Apr 2, 2021
172e076
Check tables referenced in materialized views
Praveen2112 Apr 2, 2021
3d0b75b
Fix HttpRemoteTask node split count and queue space update order
pettyjamesm Apr 5, 2021
93e5485
Rewrite HTTPS and related documentation
Ordinant Feb 26, 2021
ac8cccf
Move IonSqlQueryBuilder to s3select package
electrum Apr 3, 2021
d592d7e
Move HiveHdfsModule binding to module list
electrum Apr 3, 2021
3901f54
Throw unchecked exception in place of IOException
Mar 19, 2021
91b7c90
Bind PasswordAuthenticatorManager if required
Mar 19, 2021
ebd4bec
Support multiple password authentication plugins
Mar 4, 2021
7d7daa3
Extract constant
Apr 6, 2021
f5e8724
Make SQL keywords uppercase
Apr 6, 2021
10bae4c
Product tests for multiple password authenticators
Apr 1, 2021
8338f7b
Extract token authentication to a seperate method
lukasz-walkiewicz Mar 12, 2021
6f55b69
Use class reference for AvroSerDe name
electrum Mar 23, 2021
5715fae
Simplify code in OAuth2CallbackResource
electrum Apr 6, 2021
d9e618c
Add missing brace in RunLengthEncodedBlock.toString
jirassimok Apr 7, 2021
a44c360
Create test table without CTAS
wendigo Apr 7, 2021
db03206
Print usePartitionedBucketing only when it's set to true
sopel39 Apr 7, 2021
7f4eccf
Make table wider
findepi Mar 30, 2021
2a029a2
Document JDBC parameter disableCompression
findepi Mar 30, 2021
ef630ac
Document JDBC parameter assumeLiteralNamesInMetadataCallsForNonConfor…
findepi Mar 30, 2021
f074b26
Remove checker framework annotation
electrum Apr 7, 2021
b8b3f9a
Update to Jetty 9.4.39.v20210325
electrum Apr 6, 2021
3d85f80
Fix Hive's file_modified_time value rendering
wendigo Apr 7, 2021
88918f2
Cleanup in StatementAnalyzer
kokosing Apr 7, 2021
bf85bfb
Introduce ConnectorTableSchema
kokosing Apr 7, 2021
13a73dc
Use ConnectorTableSchema in engine
kokosing Apr 7, 2021
1586e60
Extract JdbcMetadata#getSchemaTableName method
kokosing Apr 7, 2021
e36a7ae
Avoid reading JDBC connector table properties
kokosing Apr 7, 2021
5954fcf
Improve message when _orc_acid_version not found or old
findepi Apr 7, 2021
ff2afeb
Fix LIMIT pushdown for the Phoenix connector
lhofhansl Apr 6, 2021
a7d0f54
Allow topN pushdown for the Phoenix connector
lhofhansl Apr 7, 2021
da03da8
Remove obsolete comment from PhoenixClient.isLimitGuaranteed
findepi Apr 8, 2021
f19bf74
Enable TopN pushdown for char/varchar/text types in PostgreSQL
hashhar Apr 4, 2021
217e473
Reorder methods
sopel39 Apr 2, 2021
ec5daf8
Unify materialized view and view scope creation
sopel39 Apr 2, 2021
63199e3
Minor cleanup in Analysis
Praveen2112 Mar 31, 2021
31f5a89
Capture column level dependency information
Praveen2112 Mar 24, 2021
978de7b
Rename OrcPageSource to RaptorPageSource
electrum Mar 23, 2021
a6972ac
Rename OrcStorageManager to RaptorStorageManager
electrum Mar 23, 2021
b0638b5
Mark assertExpression and assertStatement as deprecated
martint Apr 7, 2021
76b2d0d
Add multiple authenticator information
mosabua Apr 7, 2021
a307334
Add Security overview
Ordinant Apr 6, 2021
9aad232
Add 355 release notes
martint Apr 5, 2021
3e15a25
[maven-release-plugin] prepare release 355
martint Apr 8, 2021
42e0261
[maven-release-plugin] prepare for next development iteration
martint Apr 8, 2021
ca97f61
Add that dynamic filtering is default
rosewms Apr 8, 2021
fe5335b
Extract class MockRedirectHandler
s2lomon Mar 16, 2021
ceb2d1b
Add cached token option to jdbc externalAuthentication
s2lomon Mar 16, 2021
ed98f24
Add missing functions by name
mosabua Apr 8, 2021
b39168f
Add method to list all objects matching a given prefix
hashhar Apr 1, 2021
5f3381f
Replace use of isPresent with map and orElseGet in ParquetPageSource
jirassimok Apr 5, 2021
1f3955a
Add a doc comment and error message in ParquetPageSource
jirassimok Apr 6, 2021
92ee334
Add support for optional Kafka SSL
MStrobl Sep 14, 2020
e8d7d17
Remove unused exception
sopel39 Apr 1, 2021
27ffdb9
Disable join spill for grouped execution
sopel39 Apr 9, 2021
85f4cef
Fix join spill race condition
sopel39 Mar 30, 2021
987b1dc
Require that materialized view has owner
sopel39 Apr 2, 2021
8bac015
Do case insensitive comparison between dereferenced fields and intern…
willmostly Mar 19, 2021
b357388
Add Trino client protocol documentation
Mar 6, 2021
9cf7da2
Make materialized view check first
sopel39 Apr 2, 2021
38960f5
Make SHOW CREATE checks consistent with how user sees objects
sopel39 Apr 2, 2021
6f5553f
Test analyzer name resolution order
sopel39 Apr 7, 2021
a842287
Fix logical merge conflict
findepi Apr 9, 2021
b2888b4
Add debug listing to troubleshoot flaky build
findepi Apr 10, 2021
4f8221e
Fix SNAPSHOT ISOLATION detection in SQL Server
findepi Apr 11, 2021
6e9d28b
Allow to configure eventListener in DistributedQueryRunner
kokosing Apr 10, 2021
5619084
Merge loops in ParquetPageSourceFactory
jirassimok Apr 2, 2021
bd66e4a
Remove unnecessary parenthesis
findepi Apr 12, 2021
0dbb2b5
Extend Parquet reader system to add an optional row-index column
jirassimok Apr 6, 2021
692d0fd
Add kill switch for SQL Server transaction isolation
findepi Apr 12, 2021
41a36d4
Remove bogus option for unsupported-type-handling from docs
findepi Apr 12, 2021
cc4db41
Add OrcWriterOptions builder
findepi Apr 9, 2021
4407c99
Reorder OrcWriterOptions with* methods
findepi Apr 9, 2021
7098233
Move useLegacyVersion to OrcWriterOptions
findepi Apr 9, 2021
05a21c5
Use default writer version in a test
findepi Apr 9, 2021
e033a95
Use Trino writer identification when writing ORC
findepi Apr 9, 2021
7cea728
Refer to table-scan-node-partitioning-min-bucket-to-task-ratio in doc
sopel39 Apr 12, 2021
3ab3ca9
Format JdbcSortItem in EXPLAIN output
hashhar Apr 11, 2021
ee001f8
Collect build side before local dynamic filters are consumed
sopel39 Jan 27, 2021
fe608f2
Make JdbcMetadata::getSchemaTableName public
kokosing Apr 13, 2021
b940268
Ignore not existing logs when collecting log files
kokosing Apr 13, 2021
01cf2e8
Rename test methods
losipiuk Apr 12, 2021
98fbb58
Push PARTIAL TopN into table scan
losipiuk Apr 12, 2021
5c8ae0a
Use .trino as hidden files prefix in file hive metastore
losipiuk Apr 12, 2021
5435fc9
Extract security config from Kafka config
lukasz-walkiewicz Apr 13, 2021
c0dbffe
Remove redundant module binding
lukasz-walkiewicz Apr 13, 2021
c9b64f0
Use security protocol enum from Kafka library
lukasz-walkiewicz Apr 13, 2021
6968386
Add a flag for HttpRemoteTask to avoid eager but unnecessary sendUpdate
guhanjie Mar 19, 2021
184284c
Small cleanup in CachingJdbcClient
kokosing Apr 14, 2021
e27fdf2
Use same user key when no impersonation is used
kokosing Apr 14, 2021
c7c4550
Extract OrderingScheme#toLocalProperties
raunaqmorarka Apr 13, 2021
d28bc9f
Upgrade Coral to 1.0.42
findepi Apr 11, 2021
bfe9d98
Adjust pattern for matching sortItems in explain plan
hashhar Apr 14, 2021
920be76
Add clarifying comment
losipiuk Apr 13, 2021
7cc154c
Validate ORC ACID version base on data file metadata as a fallback
losipiuk Apr 13, 2021
ca64719
Add large IN predicate test in planner benchmark
lzeiming Apr 1, 2021
21ec7d4
Add operator cache and coercion cache in metadata manager
lzeiming Apr 12, 2021
fea0e2a
Disable Phoenix tests due to GHA setup issue
findepi Apr 16, 2021
ed91910
Update SPI docs
amitds1997 Apr 16, 2021
270ef1c
Change test query to operate on BIGINT values
losipiuk Apr 16, 2021
bc89dee
Mark TestHiveViews.testRichSqlSyntax as @Flaky
findepi Apr 16, 2021
c40fc7c
Rename (dummy) TestSqlServerTypeMapping
hovaesco Mar 26, 2021
f78b318
Rename and refactor SQL server type mapping tests
hovaesco Mar 26, 2021
31b4ab0
Add SQL server type mapping tests
hovaesco Mar 26, 2021
5288998
Make varbinaryWriteFunction public
hovaesco Apr 1, 2021
f304906
Disable UPDATE for Hive insert-only tables
losipiuk Apr 15, 2021
f8825cc
Test row DELETE vs non-transaction/insert-only Hive tables
losipiuk Apr 16, 2021
cdf5261
Allow to customize JdbcIdentityCacheMapping for CredentialProvider
kokosing Apr 16, 2021
c35b46c
Add tests for Phoenix plugins
kokosing Apr 9, 2021
af9feda
Cancel PostgreSQL remote query on thread interruption
kokosing Apr 14, 2021
4cf9a95
Supports TIMESTAMP(9) in trino-base-jdbc
Apr 16, 2021
714e70e
Fractional number double test case
hovaesco Apr 16, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
- name: Test Server RPM
run: |
export MAVEN_OPTS="${MAVEN_INSTALL_OPTS}"
$RETRY ./mvnw verify -B -P ci -pl :trino-server-rpm
$RETRY bash -c './mvnw verify -B -P ci -pl :trino-server-rpm || find core/trino-server-rpm/ -exec ls -ald {} +'
- name: Clean Maven Output
run: ./mvnw clean -pl '!:trino-server,!:trino-cli'
- name: Test Docker Image
Expand Down Expand Up @@ -245,7 +245,7 @@ jobs:
- ":trino-oracle"
- ":trino-kudu"
- ":trino-iceberg,:trino-druid"
- ":trino-phoenix,:trino-phoenix5"
# TODO (https://github.com/trinodb/trino/issues/7534) - ":trino-phoenix,:trino-phoenix5"
timeout-minutes: 60
steps:
- uses: actions/checkout@v2
Expand Down
2 changes: 1 addition & 1 deletion client/trino-cli/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>io.trino</groupId>
<artifactId>trino-root</artifactId>
<version>355-SNAPSHOT</version>
<version>356-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
4 changes: 2 additions & 2 deletions client/trino-cli/src/main/java/io/trino/cli/QueryRunner.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import io.trino.client.StatementClient;
import io.trino.client.auth.external.ExternalAuthenticator;
import io.trino.client.auth.external.HttpTokenPoller;
import io.trino.client.auth.external.KnownToken;
import io.trino.client.auth.external.RedirectHandler;
import io.trino.client.auth.external.TokenPoller;
import okhttp3.OkHttpClient;
Expand All @@ -34,7 +35,6 @@
import static com.google.common.base.Preconditions.checkArgument;
import static io.trino.client.ClientSession.stripTransactionId;
import static io.trino.client.OkHttpUtil.basicAuth;
import static io.trino.client.OkHttpUtil.setupChannelSocket;
import static io.trino.client.OkHttpUtil.setupCookieJar;
import static io.trino.client.OkHttpUtil.setupHttpProxy;
import static io.trino.client.OkHttpUtil.setupKerberos;
Expand Down Expand Up @@ -93,7 +93,6 @@ public QueryRunner(

OkHttpClient.Builder builder = new OkHttpClient.Builder();

setupChannelSocket(builder);
setupTimeouts(builder, 30, SECONDS);
setupCookieJar(builder);
setupSocksProxy(builder, socksProxy);
Expand Down Expand Up @@ -195,6 +194,7 @@ private static void setupExternalAuth(
ExternalAuthenticator authenticator = new ExternalAuthenticator(
redirectHandler,
poller,
KnownToken.local(),
Duration.ofMinutes(10));

builder.authenticator(authenticator);
Expand Down
8 changes: 7 additions & 1 deletion client/trino-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>io.trino</groupId>
<artifactId>trino-root</artifactId>
<version>355-SNAPSHOT</version>
<version>356-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down Expand Up @@ -81,6 +81,12 @@
<scope>test</scope>
</dependency>

<dependency>
<groupId>io.airlift</groupId>
<artifactId>concurrent</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>mockwebserver</artifactId>
Expand Down
24 changes: 0 additions & 24 deletions client/trino-client/src/main/java/io/trino/client/OkHttpUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,12 @@
package io.trino.client;

import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;
import com.google.common.base.StandardSystemProperty;
import com.google.common.collect.ImmutableList;
import com.google.common.net.HostAndPort;
import io.airlift.security.pem.PemReader;
import okhttp3.Credentials;
import okhttp3.Interceptor;
import okhttp3.JavaNetCookieJar;
import okhttp3.OkHttpClient;
import okhttp3.Protocol;
import okhttp3.Request;
import okhttp3.internal.tls.LegacyHostnameVerifier;

Expand Down Expand Up @@ -246,26 +242,6 @@ public static void setupSsl(
}
}

public static void setupChannelSocket(OkHttpClient.Builder clientBuilder)
{
// Enable socket factory only for pre JDK 11
if (!isAtLeastJava11()) {
clientBuilder.socketFactory(new SocketChannelSocketFactory());
clientBuilder.protocols(ImmutableList.of(Protocol.HTTP_1_1));
}
}

private static boolean isAtLeastJava11()
{
String feature = Splitter.on(".").split(StandardSystemProperty.JAVA_VERSION.value()).iterator().next();
try {
return Integer.parseInt(feature) >= 11;
}
catch (NumberFormatException e) {
return false;
}
}

private static void validateCertificates(KeyStore keyStore)
throws GeneralSecurityException
{
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -44,41 +44,41 @@ public class ExternalAuthenticator
private final TokenPoller tokenPoller;
private final RedirectHandler redirectHandler;
private final Duration timeout;
private Token knownToken;
private final KnownToken knownToken;

public ExternalAuthenticator(RedirectHandler redirect, TokenPoller tokenPoller, Duration timeout)
public ExternalAuthenticator(RedirectHandler redirect, TokenPoller tokenPoller, KnownToken knownToken, Duration timeout)
{
this.tokenPoller = requireNonNull(tokenPoller, "tokenPoller is null");
this.redirectHandler = requireNonNull(redirect, "redirect is null");
this.knownToken = requireNonNull(knownToken, "knownToken is null");
this.timeout = requireNonNull(timeout, "timeout is null");
}

@Nullable
@Override
public Request authenticate(Route route, Response response)
{
knownToken = null;

Optional<ExternalAuthentication> authentication = toAuthentication(response);
if (!authentication.isPresent()) {
return null;
}
knownToken.setupToken(() -> {
Optional<ExternalAuthentication> authentication = toAuthentication(response);
if (!authentication.isPresent()) {
return Optional.empty();
}

Optional<Token> token = authentication.get().obtainToken(timeout, redirectHandler, tokenPoller);
if (!token.isPresent()) {
return null;
}
return authentication.get().obtainToken(timeout, redirectHandler, tokenPoller);
});

knownToken = token.get();
return withBearerToken(response.request(), knownToken);
return knownToken.getToken()
.map(token -> withBearerToken(response.request(), token))
.orElse(null);
}

@Override
public Response intercept(Chain chain)
throws IOException
{
if (knownToken != null) {
return chain.proceed(withBearerToken(chain.request(), knownToken));
Optional<Token> token = knownToken.getToken();
if (token.isPresent()) {
return chain.proceed(withBearerToken(chain.request(), token.get()));
}

return chain.proceed(chain.request());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.trino.client.auth.external;

import java.util.Optional;
import java.util.function.Supplier;

public interface KnownToken
{
Optional<Token> getToken();

void setupToken(Supplier<Optional<Token>> tokenSource);

static KnownToken local()
{
return new LocalKnownToken();
}

static KnownToken memoryCached()
{
return MemoryCachedKnownToken.INSTANCE;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.trino.client.auth.external;

import javax.annotation.concurrent.NotThreadSafe;

import java.util.Optional;
import java.util.function.Supplier;

import static java.util.Objects.requireNonNull;

/**
* LocalKnownToken class keeps the token on its field
* and it's designed to use it in fully serialized manner.
*/
@NotThreadSafe
class LocalKnownToken
implements KnownToken
{
private Optional<Token> knownToken = Optional.empty();

@Override
public Optional<Token> getToken()
{
return knownToken;
}

@Override
public void setupToken(Supplier<Optional<Token>> tokenSource)
{
requireNonNull(tokenSource, "tokenSource is null");

knownToken = tokenSource.get();
}
}
Loading