Skip to content

Commit

Permalink
add a getTableNames() and getTableMetadata() example
Browse files Browse the repository at this point in the history
  • Loading branch information
t-horikawa committed Dec 12, 2024
1 parent 1f8df21 commit 4b29e09
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 0 deletions.
12 changes: 12 additions & 0 deletions modules/clients/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -157,3 +157,15 @@ tasks.register('runKeepAlive', JavaExec) {
systemProperty 'org.slf4j.simpleLogger.showShortLogName', 'true'
systemProperty 'org.slf4j.simpleLogger.levelInBrackets', 'true'
}

tasks.register('runTables', JavaExec) {
classpath = sourceSets.main.runtimeClasspath
mainClass = 'com.tsurugidb.tsubakuro.examples.tables.Main'

systemProperty 'tsurugi.dbname', findProperty('tsurugi.dbname') ?: 'ipc:tsurugi'

systemProperty 'org.slf4j.simpleLogger.defaultLogLevel', findProperty('loglevel') ?: 'info'
systemProperty 'org.slf4j.simpleLogger.showThreadName', 'false'
systemProperty 'org.slf4j.simpleLogger.showShortLogName', 'true'
systemProperty 'org.slf4j.simpleLogger.levelInBrackets', 'true'
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.tsurugidb.tsubakuro.examples.tables;

import java.io.IOException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

import com.tsurugidb.tsubakuro.exception.ServerException;
import com.tsurugidb.tsubakuro.channel.common.connection.UsernamePasswordCredential;
import com.tsurugidb.tsubakuro.common.Session;
import com.tsurugidb.tsubakuro.common.SessionBuilder;
import com.tsurugidb.tsubakuro.sql.SqlClient;

public final class Main {
private Main(String[] args) {
}

// set dbname as follows
// -Ptsurugi.dbname=ipc:tsurugi or
// -Ptsurugi.dbname=tcp://localhost:12345
// when run this example by `./gradlew run` command
private static String url = System.getProperty("tsurugi.dbname");

public static void main(String[] args) {
try (
Session session = SessionBuilder.connect(url)
.withCredential(new UsernamePasswordCredential("user", "pass"))
.create(10, TimeUnit.SECONDS);
SqlClient sqlClient = SqlClient.attach(session)) {

var tableList = sqlClient.listTables().get();
for (var t : tableList.getTableNames()) {
var metadata = sqlClient.getTableMetadata(t).get();
System.out.println("---- table name = " + t + " ----");
for (var c : metadata.getColumns()) {
System.out.println("column = " + c);
System.out.println();
}
}

} catch (Exception e) {
System.err.println(e);
}
}
}

0 comments on commit 4b29e09

Please sign in to comment.