Skip to content

Commit 9752513

Browse files
authored
Merge branch 'trinodb:master' into list-offsets
2 parents eba0245 + 2ae8d98 commit 9752513

File tree

176 files changed

+2201
-375
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

176 files changed

+2201
-375
lines changed

.mvn/jvm.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
-XX:+IgnoreUnrecognizedVMOptions
12
-Xmx8192m
23
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
34
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED

.mvn/maven.config

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@
1111
smart
1212
-Dair.main.basedir=${session.rootDirectory}
1313
-Dnode.tmpdir=${session.rootDirectory}/.node/
14+
-s
15+
${session.rootDirectory}/.mvn/settings.xml

.mvn/settings.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<settings>
2+
<pluginGroups>
3+
<pluginGroup>eu.maveniverse.maven.plugins</pluginGroup>
4+
</pluginGroups>
5+
<servers>
6+
<server>
7+
<id>sonatype-central-portal</id>
8+
<username>${env.MAVENCENTRAL_USERNAME}</username>
9+
<password>${env.MAVENCENTRAL_PASSWORD}</password>
10+
<configuration>
11+
<njord.publisher>sonatype-cp</njord.publisher>
12+
<njord.releaseUrl>njord:template:release-sca</njord.releaseUrl>
13+
</configuration>
14+
</server>
15+
</servers>
16+
</settings>

client/trino-cli/pom.xml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
</parent>
1111

1212
<artifactId>trino-cli</artifactId>
13+
<name>${project.artifactId}</name>
1314
<description>Trino - CLI</description>
1415

1516
<properties>
@@ -49,7 +50,7 @@
4950

5051
<dependency>
5152
<groupId>com.squareup.okhttp3</groupId>
52-
<artifactId>okhttp</artifactId>
53+
<artifactId>okhttp-jvm</artifactId>
5354
</dependency>
5455

5556
<dependency>
@@ -135,7 +136,13 @@
135136

136137
<dependency>
137138
<groupId>com.squareup.okhttp3</groupId>
138-
<artifactId>mockwebserver</artifactId>
139+
<artifactId>mockwebserver3</artifactId>
140+
<scope>test</scope>
141+
</dependency>
142+
143+
<dependency>
144+
<groupId>com.squareup.okhttp3</groupId>
145+
<artifactId>mockwebserver3-junit5</artifactId>
139146
<scope>test</scope>
140147
</dependency>
141148

client/trino-cli/src/main/java/io/trino/cli/Completion.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,25 @@ private Completion() {}
2929

3030
public static Completer commandCompleter()
3131
{
32+
// This is not an exhaustive list of commands, but it covers the most common ones.
3233
return new AggregateCompleter(buildArgumentCompleter("ALTER", asList("SCHEMA", "TABLE")),
33-
buildArgumentCompleter("CREATE", asList("SCHEMA", "TABLE")),
34-
buildArgumentCompleter("DESCRIBE"),
35-
buildArgumentCompleter("DROP", asList("SCHEMA", "TABLE")),
34+
buildArgumentCompleter("CREATE", asList("CATALOG", "SCHEMA", "TABLE", "VIEW", "MATERIALIZED VIEW", "FUNCTION", "BRANCH", "ROLE")),
35+
buildArgumentCompleter("DESCRIBE", asList("INPUT", "OUTPUT")),
36+
buildArgumentCompleter("DROP", asList("CATALOG", "SCHEMA", "TABLE", "VIEW", "MATERIALIZED VIEW", "FUNCTION", "BRANCH", "ROLE")),
3637
buildArgumentCompleter("EXPLAIN"),
3738
buildArgumentCompleter("HELP"),
3839
buildArgumentCompleter("QUIT"),
3940
buildArgumentCompleter("SELECT"),
40-
buildArgumentCompleter("SHOW", asList("CATALOGS", "COLUMNS", "FUNCTIONS", "SCHEMAS", "SESSION", "TABLES")),
41+
buildArgumentCompleter("MERGE"),
42+
buildArgumentCompleter("TRUNCATE TABLE"),
43+
buildArgumentCompleter("SET SESSION"),
44+
buildArgumentCompleter("RESET SESSION"),
45+
buildArgumentCompleter("RESET SESSION"),
46+
buildArgumentCompleter("GRANT"),
47+
buildArgumentCompleter("REVOKE"),
48+
buildArgumentCompleter("DENY"),
49+
buildArgumentCompleter("COMMENT ON", asList("TABLE", "VIEW", "COLUMN")),
50+
buildArgumentCompleter("SHOW", asList("CATALOGS", "COLUMNS", "FUNCTIONS", "SCHEMAS", "SESSION", "TABLES", "STATS", "GRANT")),
4151
buildArgumentCompleter("USE"));
4252
}
4353

client/trino-cli/src/main/java/io/trino/cli/InputReader.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,13 @@
1414
package io.trino.cli;
1515

1616
import com.google.common.io.Closer;
17+
import org.jline.keymap.KeyMap;
18+
import org.jline.reader.Binding;
1719
import org.jline.reader.Completer;
1820
import org.jline.reader.History;
1921
import org.jline.reader.LineReader;
2022
import org.jline.reader.LineReaderBuilder;
23+
import org.jline.reader.Reference;
2124
import org.jline.reader.impl.completer.AggregateCompleter;
2225
import org.jline.terminal.Terminal;
2326
import org.jline.utils.AttributedString;
@@ -58,7 +61,7 @@ public InputReader(ClientOptions.EditingMode editingMode, Optional<Path> history
5861
historyFile.ifPresent(path -> builder.variable(HISTORY_FILE, path));
5962
reader = builder.build();
6063

61-
reader.getKeyMaps().put(MAIN, reader.getKeyMaps().get(editingMode.getKeyMap()));
64+
reader.getKeyMaps().put(MAIN, configureKeyMap(reader, editingMode));
6265
reader.unsetOpt(HISTORY_TIMESTAMPED);
6366
if (!disableAutoSuggestion) {
6467
AutosuggestionWidgets autosuggestionWidgets = new AutosuggestionWidgets(reader);
@@ -95,4 +98,12 @@ private static String colored(String value)
9598
{
9699
return new AttributedString(value, DEFAULT.foreground(BRIGHT)).toAnsi();
97100
}
101+
102+
private static KeyMap<Binding> configureKeyMap(LineReader reader, ClientOptions.EditingMode editingMode)
103+
{
104+
KeyMap<Binding> bindingKeyMap = reader.getKeyMaps().get(editingMode.getKeyMap());
105+
bindingKeyMap.bind(new Reference(LineReader.UP_HISTORY), "\u001b[1;3A"); // alt + up
106+
bindingKeyMap.bind(new Reference(LineReader.DOWN_HISTORY), "\u001b[1;3B"); // alt + down
107+
return bindingKeyMap;
108+
}
98109
}

client/trino-cli/src/main/java/io/trino/cli/StatusPrinter.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import java.io.PrintStream;
2828
import java.util.List;
2929
import java.util.OptionalInt;
30-
import java.util.concurrent.atomic.AtomicInteger;
3130

3231
import static com.google.common.base.Verify.verify;
3332
import static io.airlift.units.Duration.nanosSince;
@@ -374,7 +373,7 @@ private void printQueryInfo(QueryStatusInfo results, WarningsPrinter warningsPri
374373
"DONE");
375374
reprintLine(stagesHeader);
376375

377-
printStageTree(stats.getRootStage(), "", new AtomicInteger());
376+
printStageTree(stats.getRootStage(), "");
378377
}
379378
else {
380379
// Query 31 [S] i[2.7M 67.3MB 62.7MBps] o[35 6.1KB 1KBps] splits[252/16/380]
@@ -398,7 +397,7 @@ private void printQueryInfo(QueryStatusInfo results, WarningsPrinter warningsPri
398397
warningsPrinter.print(results.getWarnings(), true, false);
399398
}
400399

401-
private void printStageTree(StageStats stage, String indent, AtomicInteger stageNumberCounter)
400+
private void printStageTree(StageStats stage, String indent)
402401
{
403402
Duration elapsedTime = nanosSince(start);
404403

@@ -409,7 +408,7 @@ private void printStageTree(StageStats stage, String indent, AtomicInteger stage
409408
// 4....R 26M 627M 673T 627M 627M 627M 627M
410409
// 5..F 29T 627M 673M 627M 627M 627M 627M
411410

412-
String id = String.valueOf(stageNumberCounter.getAndIncrement());
411+
String id = stage.getStageId();
413412
String name = indent + id;
414413
name += ".".repeat(max(0, 10 - name.length()));
415414

@@ -440,7 +439,7 @@ private void printStageTree(StageStats stage, String indent, AtomicInteger stage
440439
reprintLine(stageSummary);
441440

442441
for (StageStats subStage : stage.getSubStages()) {
443-
printStageTree(subStage, indent + " ", stageNumberCounter);
442+
printStageTree(subStage, indent + " ");
444443
}
445444
}
446445

client/trino-cli/src/test/java/io/trino/cli/TestInsecureQueryRunner.java

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

16-
import okhttp3.mockwebserver.MockResponse;
17-
import okhttp3.mockwebserver.MockWebServer;
18-
import org.junit.jupiter.api.AfterEach;
16+
import mockwebserver3.MockResponse;
17+
import mockwebserver3.MockWebServer;
18+
import mockwebserver3.junit5.StartStop;
1919
import org.junit.jupiter.api.BeforeEach;
2020
import org.junit.jupiter.api.Test;
2121
import org.junit.jupiter.api.TestInstance;
@@ -44,44 +44,37 @@
4444
@TestInstance(PER_METHOD)
4545
public class TestInsecureQueryRunner
4646
{
47-
private MockWebServer server;
47+
@StartStop
48+
private final MockWebServer server = new MockWebServer();
4849

4950
@BeforeEach
5051
public void setup()
5152
throws Exception
5253
{
53-
server = new MockWebServer();
5454
SSLContext sslContext = buildTestSslContext();
55-
server.useHttps(sslContext.getSocketFactory(), false);
56-
server.start();
57-
}
58-
59-
@AfterEach
60-
public void teardown()
61-
throws Exception
62-
{
63-
server.close();
64-
server = null;
55+
server.useHttps(sslContext.getSocketFactory());
6556
}
6657

6758
@Test
6859
public void testInsecureConnection()
6960
throws Exception
7061
{
71-
server.enqueue(new MockResponse()
62+
server.enqueue(new MockResponse.Builder()
7263
.addHeader(CONTENT_TYPE, "application/json")
73-
.setBody(createResults(server)));
74-
server.enqueue(new MockResponse()
64+
.body(createResults(server))
65+
.build());
66+
server.enqueue(new MockResponse.Builder()
7567
.addHeader(CONTENT_TYPE, "application/json")
76-
.setBody(createResults(server)));
68+
.body(createResults(server))
69+
.build());
7770

7871
QueryRunner queryRunner = createQueryRunner(createTrinoUri(server, true), createClientSession(server));
7972

8073
try (Query query = queryRunner.startQuery("query with insecure mode")) {
8174
query.renderOutput(getTerminal(), nullPrintStream(), nullPrintStream(), CSV, Optional.of(""), false, false);
8275
}
8376

84-
assertThat(server.takeRequest().getPath()).isEqualTo("/v1/statement");
77+
assertThat(server.takeRequest().getUrl().encodedPath()).isEqualTo("/v1/statement");
8578
}
8679

8780
private SSLContext buildTestSslContext()

client/trino-cli/src/test/java/io/trino/cli/TestQueryRunner.java

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,12 @@
2424
import io.trino.client.TypedQueryData;
2525
import io.trino.client.uri.PropertyName;
2626
import io.trino.client.uri.TrinoUri;
27-
import okhttp3.mockwebserver.MockResponse;
28-
import okhttp3.mockwebserver.MockWebServer;
29-
import org.junit.jupiter.api.AfterEach;
30-
import org.junit.jupiter.api.BeforeEach;
27+
import mockwebserver3.MockResponse;
28+
import mockwebserver3.MockWebServer;
29+
import mockwebserver3.junit5.StartStop;
3130
import org.junit.jupiter.api.Test;
3231
import org.junit.jupiter.api.TestInstance;
3332

34-
import java.io.IOException;
3533
import java.io.PrintStream;
3634
import java.time.ZoneId;
3735
import java.util.Locale;
@@ -57,38 +55,27 @@
5755
public class TestQueryRunner
5856
{
5957
private static final TrinoJsonCodec<QueryResults> QUERY_RESULTS_CODEC = jsonCodec(QueryResults.class);
60-
private MockWebServer server;
6158

62-
@BeforeEach
63-
public void setup()
64-
throws IOException
65-
{
66-
server = new MockWebServer();
67-
server.start();
68-
}
69-
70-
@AfterEach
71-
public void teardown()
72-
throws IOException
73-
{
74-
server.close();
75-
server = null;
76-
}
59+
@StartStop
60+
private final MockWebServer server = new MockWebServer();
7761

7862
@Test
7963
public void testCookie()
8064
throws Exception
8165
{
82-
server.enqueue(new MockResponse()
83-
.setResponseCode(307)
66+
server.enqueue(new MockResponse.Builder()
67+
.code(307)
8468
.addHeader(LOCATION, server.url("/v1/statement"))
85-
.addHeader(SET_COOKIE, "a=apple"));
86-
server.enqueue(new MockResponse()
69+
.addHeader(SET_COOKIE, "a=apple")
70+
.build());
71+
server.enqueue(new MockResponse.Builder()
8772
.addHeader(CONTENT_TYPE, "application/json")
88-
.setBody(createResults(server)));
89-
server.enqueue(new MockResponse()
73+
.body(createResults(server))
74+
.build());
75+
server.enqueue(new MockResponse.Builder()
9076
.addHeader(CONTENT_TYPE, "application/json")
91-
.setBody(createResults(server)));
77+
.body(createResults(server))
78+
.build());
9279

9380
QueryRunner queryRunner = createQueryRunner(createTrinoUri(server, false), createClientSession(server));
9481

@@ -99,9 +86,9 @@ public void testCookie()
9986
query.renderOutput(getTerminal(), nullPrintStream(), nullPrintStream(), CSV, Optional.of(""), false, false);
10087
}
10188

102-
assertThat(server.takeRequest().getHeader("Cookie")).isNull();
103-
assertThat(server.takeRequest().getHeader("Cookie")).isEqualTo("a=apple");
104-
assertThat(server.takeRequest().getHeader("Cookie")).isEqualTo("a=apple");
89+
assertThat(server.takeRequest().getHeaders().get("Cookie")).isNull();
90+
assertThat(server.takeRequest().getHeaders().get("Cookie")).isEqualTo("a=apple");
91+
assertThat(server.takeRequest().getHeaders().get("Cookie")).isEqualTo("a=apple");
10592
}
10693

10794
static TrinoUri createTrinoUri(MockWebServer server, boolean insecureSsl)

client/trino-client/pom.xml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
</parent>
1111

1212
<artifactId>trino-client</artifactId>
13+
<name>${project.artifactId}</name>
1314
<description>Trino - Client</description>
1415

1516
<properties>
@@ -55,7 +56,7 @@
5556

5657
<dependency>
5758
<groupId>com.squareup.okhttp3</groupId>
58-
<artifactId>okhttp</artifactId>
59+
<artifactId>okhttp-jvm</artifactId>
5960
</dependency>
6061

6162
<dependency>
@@ -100,12 +101,19 @@
100101
<dependency>
101102
<groupId>com.google.inject</groupId>
102103
<artifactId>guice</artifactId>
104+
<classifier>classes</classifier>
103105
<scope>test</scope>
104106
</dependency>
105107

106108
<dependency>
107109
<groupId>com.squareup.okhttp3</groupId>
108-
<artifactId>mockwebserver</artifactId>
110+
<artifactId>mockwebserver3</artifactId>
111+
<scope>test</scope>
112+
</dependency>
113+
114+
<dependency>
115+
<groupId>com.squareup.okhttp3</groupId>
116+
<artifactId>mockwebserver3-junit5</artifactId>
109117
<scope>test</scope>
110118
</dependency>
111119

0 commit comments

Comments
 (0)