Mercurial > hg > monetdb-java
view tests/Bug_Connect_as_voc_getMetaData_Failure_Bug_6388.java @ 391:f523727db392
Moved Java classes from packages starting with nl.cwi.monetdb.* to package org.monetdb.*
This naming complies to the Java Package Naming convention as MonetDB's main website is www.monetdb.org.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Thu, 12 Nov 2020 22:02:01 +0100 (2020-11-12) |
parents | 54137aeb1f92 |
children | bf9f6b6ecf40 |
line wrap: on
line source
/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * Copyright 1997 - July 2008 CWI, August 2008 - 2020 MonetDB B.V. */ import java.sql.*; public class Bug_Connect_as_voc_getMetaData_Failure_Bug_6388 { public static void main(String[] args) throws SQLException { Connection con1 = null; Statement stmt1 = null; con1 = DriverManager.getConnection(args[0]); stmt1 = con1.createStatement(); // test the creation of a table with concurrent clients try { System.out.println("1. CREATE USER voc"); stmt1.executeUpdate("CREATE USER \"voc\" WITH PASSWORD 'voc' NAME 'VOC Explorer' SCHEMA \"sys\""); System.out.println("2. CREATE SCHEMA voc"); stmt1.executeUpdate("CREATE SCHEMA \"voc\" AUTHORIZATION \"voc\""); System.out.println("3. ALTER USER voc"); stmt1.executeUpdate("ALTER USER \"voc\" SET SCHEMA \"voc\""); System.out.println("creation succeeded :)"); System.out.println(); login_as_voc_and_get_MetaData(args[0].replace("=monetdb", "=voc")); System.out.println(); System.out.println("Cleanup created objects"); System.out.println("5. ALTER USER voc"); stmt1.executeUpdate("ALTER USER \"voc\" SET SCHEMA \"sys\""); System.out.println("6. DROP SCHEMA voc"); stmt1.executeUpdate("DROP SCHEMA \"voc\""); System.out.println("7. DROP USER voc"); stmt1.executeUpdate("DROP USER \"voc\""); System.out.println("cleanup succeeded :)"); } catch (SQLException e) { System.out.println("FAILED creating user and schema voc. " + e.getMessage()); } finally { stmt1.close(); con1.close(); } } private static void login_as_voc_and_get_MetaData(String connectString) { Connection con2 = null; try { System.out.println("4.1. connect as user: voc"); con2 = DriverManager.getConnection(connectString); System.out.println("connected :)"); } catch (SQLException e) { System.out.println("FAILED to connect as user voc. " + e.getMessage()); return; } try { DatabaseMetaData dbmd = con2.getMetaData(); System.out.println("4.2. getUserName()"); System.out.println("UserName = " + dbmd.getUserName()); System.out.println("4.3. getMaxConnections()"); System.out.println("MaxConnections = " + dbmd.getMaxConnections()); System.out.println("4.4. getDatabaseProductVersion()"); String dbmsVersion = dbmd.getDatabaseProductVersion(); // should be 11.27.1 or higher boolean postJul2017 = ("11.27.1".compareTo(dbmsVersion) <= 0); System.out.println("DatabaseProductVersion = " + (postJul2017 ? "11.27.+" : dbmsVersion)); System.out.println("4.5. getDatabaseMajorVersion()"); System.out.println("DatabaseMajorVersion = " + dbmd.getDatabaseMajorVersion()); // should be 11 System.out.println("4.6. getDatabaseMinorVersion()"); int dbmsMinorVersion = dbmd.getDatabaseMinorVersion(); // should be 27 or higher System.out.println("DatabaseMinorVersion = " + (dbmsMinorVersion >= 27 ? "27+" : dbmsMinorVersion)); System.out.println("4.7. getTables(null, 'tmp', null, null)"); ResultSet rs1 = dbmd.getTables(null, "tmp", null, null); if (rs1 != null) { System.out.println("List Tables in schema tmp:"); while (rs1.next()) { System.out.println(rs1.getString(3)); } rs1.close(); } System.out.println("completed listing Tables in schema tmp"); System.out.println("4.8. getTableTypes()"); rs1 = dbmd.getTableTypes(); if (rs1 != null) { System.out.println("List TableTypes:"); while (rs1.next()) { System.out.println(rs1.getString(1)); } rs1.close(); } System.out.println("completed listing TableTypes"); System.out.println("voc meta data Test completed successfully"); } catch (SQLException e) { System.out.println("FAILED fetching MonetDatabaseMetaData. " + e.getMessage()); } finally { try { con2.close(); } catch (SQLException e) { System.out.println("FAILED to close voc connection. " + e.getMessage()); } } } }