2828import java .sql .Statement ;
2929import java .util .List ;
3030import java .util .Map ;
31+ import java .util .UUID ;
3132
3233import static org .testng .Assert .fail ;
3334
@@ -36,15 +37,28 @@ public final class ClpMetadataDbSetUp
3637 private static final Logger log = Logger .get (ClpMetadataDbSetUp .class );
3738
3839 public static final String metadataDbUrlTemplate =
39- "jdbc:h2:file:/tmp/ %s;MODE=MySQL;DATABASE_TO_UPPER=FALSE" ;
40+ "jdbc:h2:file:%s;MODE=MySQL;DATABASE_TO_UPPER=FALSE" ;
4041 public static final String metadataDbTablePrefix = "clp_" ;
4142 public static final String metadataDbUser = "sa" ;
4243 public static final String metadataDbPassword = "" ;
43- private final String datasetsTableName = metadataDbTablePrefix + "datasets" ;
44+ private static final String datasetsTableName = metadataDbTablePrefix + "datasets" ;
4445
45- public ClpMetadata setupMetadata (String dbName , Map <String , List <Pair <String , ClpNodeType >>> clpFields )
46+ public static final class DbHandle {
47+ DbHandle (String dbPath )
48+ {
49+ this .dbPath = dbPath ;
50+ }
51+ public String dbPath ;
52+ }
53+
54+ public static DbHandle getDbHandle (String dbName )
55+ {
56+ return new DbHandle (String .format ("/tmp/presto-clp-test/%s-%s" , dbName , UUID .randomUUID ()));
57+ }
58+
59+ public static ClpMetadata setupMetadata (DbHandle dbHandle , Map <String , List <Pair <String , ClpNodeType >>> clpFields )
4660 {
47- final String metadataDbUrl = String .format (metadataDbUrlTemplate , dbName );
61+ final String metadataDbUrl = String .format (metadataDbUrlTemplate , dbHandle . dbPath );
4862 final String columnMetadataTableSuffix = "_column_metadata" ;
4963
5064 try (Connection conn = DriverManager .getConnection (metadataDbUrl , metadataDbUser , metadataDbPassword );
@@ -88,9 +102,9 @@ public ClpMetadata setupMetadata(String dbName, Map<String, List<Pair<String, Cl
88102 return new ClpMetadata (config , metadataProvider );
89103 }
90104
91- public ClpMySqlSplitProvider setupSplit (String dbName , Map <String , List <String >> splits )
105+ public static ClpMySqlSplitProvider setupSplit (DbHandle dbHandle , Map <String , List <String >> splits )
92106 {
93- final String metadataDbUrl = String .format (metadataDbUrlTemplate , dbName );
107+ final String metadataDbUrl = String .format (metadataDbUrlTemplate , dbHandle . dbPath );
94108 final String archiveTableSuffix = "_archives" ;
95109 final String archiveTableFormat = metadataDbTablePrefix + "%s" + archiveTableSuffix ;
96110
@@ -135,10 +149,10 @@ public ClpMySqlSplitProvider setupSplit(String dbName, Map<String, List<String>>
135149 .setMetadataTablePrefix (metadataDbTablePrefix ));
136150 }
137151
138- public void tearDown (String dbName )
152+ public static void tearDown (DbHandle dbHandle )
139153 {
140- File dbFile = new File (String . format ( "/tmp/%s .mv.db", dbName ) );
141- File lockFile = new File (String . format ( "/tmp/%s .trace.db", dbName ) ); // Optional, H2 sometimes creates this
154+ File dbFile = new File (dbHandle . dbPath + " .mv.db" );
155+ File lockFile = new File (dbHandle . dbPath + " .trace.db" ); // Optional, H2 sometimes creates this
142156 if (dbFile .exists ()) {
143157 dbFile .delete ();
144158 log .info ("Deleted database file: " + dbFile .getAbsolutePath ());
@@ -148,7 +162,7 @@ public void tearDown(String dbName)
148162 }
149163 }
150164
151- private void createDatasetsTable (Statement stmt ) throws SQLException
165+ private static void createDatasetsTable (Statement stmt ) throws SQLException
152166 {
153167 final String createDatasetTableSQL = String .format (
154168 "CREATE TABLE IF NOT EXISTS %s (" +
@@ -158,7 +172,7 @@ private void createDatasetsTable(Statement stmt) throws SQLException
158172 stmt .execute (createDatasetTableSQL );
159173 }
160174
161- private void updateDatasetsTable (Connection conn , String tableName ) throws SQLException
175+ private static void updateDatasetsTable (Connection conn , String tableName ) throws SQLException
162176 {
163177 final String insertDatasetTableSQL = String .format (
164178 "INSERT INTO %s (name, archive_storage_type, archive_storage_directory) VALUES (?, ?, ?)" , datasetsTableName );
0 commit comments