[Squirrel-sql-commits] sql12/test/external/net/sourceforge/squirrel_sql/fw/dialects DialectExterna
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Rob M. <man...@us...> - 2009-02-14 19:25:37
|
Update of /cvsroot/squirrel-sql/sql12/test/external/net/sourceforge/squirrel_sql/fw/dialects In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv21712/test/external/net/sourceforge/squirrel_sql/fw/dialects Modified Files: DialectExternalTest.java Log Message: Fixed test for getViewDefinition to not delete the view before querying the data dictionary for it. Index: DialectExternalTest.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/test/external/net/sourceforge/squirrel_sql/fw/dialects/DialectExternalTest.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** DialectExternalTest.java 9 Feb 2009 00:01:02 -0000 1.12 --- DialectExternalTest.java 14 Feb 2009 19:25:30 -0000 1.13 *************** *** 24,27 **** --- 24,28 ---- import static org.easymock.EasyMock.isNull; import static org.junit.Assert.assertFalse; + import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; *************** *** 515,521 **** private void dropTable(ISession session, String tableName) throws Exception { // For some reason, Frontbase doesn't find tables that have been previously created. ! if (DialectFactory.isFrontBase(session.getMetaData())) { try { ! runSQL(session, "drop table "+tableName+" cascade"); } catch (Exception e) { // quiet --- 516,527 ---- private void dropTable(ISession session, String tableName) throws Exception { // For some reason, Frontbase doesn't find tables that have been previously created. ! if (DialectFactory.isFrontBase(session.getMetaData()) ! || DialectFactory.isMSSQLServer(session.getMetaData())) { try { ! String dropSql = "drop table "+tableName; ! if (DialectFactory.isFrontBase(session.getMetaData())) { ! dropSql += " cascade"; ! } ! runSQL(session, dropSql); } catch (Exception e) { // quiet *************** *** 1218,1221 **** --- 1224,1230 ---- } + assertNotNull("Couldn't locate table ("+testTableName+") that was just created with statement ("+ + createSql+"). Dialect="+dialect.getDisplayName(), tableInfo); + CreateScriptPreferences prefs = new CreateScriptPreferences(); List<String> sqls = dialect.getCreateTableSQL(Arrays.asList(tableInfo), *************** *** 1448,1458 **** runSQL(session, createViewSql); String viewDefSql = dialect.getViewDefinitionSQL(viewName, qualifier, prefs); String dropViewSql = dialect.getDropViewSQL(viewName, false, qualifier, prefs); - runSQL(session, new String[] { dropViewSql }, extractor); - runSQL(session, new String[] { viewDefSql }, extractor); } else { --- 1457,1483 ---- runSQL(session, createViewSql); + /* + * viewDefSql is the SQL that can be used to query the data dictionary for the body of a view. + * This should exclude the "CREATE VIEW <viewname> AS" prefix and just return the query. + */ String viewDefSql = dialect.getViewDefinitionSQL(viewName, qualifier, prefs); + ResultSet rs = runQuery(session, viewDefSql); + String viewBody = ""; + if (rs.next()) { + viewBody = rs.getString(1); + } else { + fail("viewDefSql () returned no view body for dialect: "+dialect.getDisplayName()); + } + assertNotNull(viewBody); + assertTrue("Expected view body to have larger than zero length", viewBody.length() > 0); + /* + * Now that we have run the view definition query, and retrieved the SQL that is the body of the view + * (that is, it's query part minus the "CREATE VIEW AS" prefix), we can drop the view. + */ String dropViewSql = dialect.getDropViewSQL(viewName, false, qualifier, prefs); runSQL(session, new String[] { dropViewSql }, extractor); + } else { |