Thread: [Squirrel-sql-commits] sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecom
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Rob M. <man...@us...> - 2005-11-27 02:58:31
|
Update of /cvsroot/squirrel-sql/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24621/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions Modified Files: AbstractJoin.java Log Message: 1276957: use new methods in SQLDMD that encapsulate access to ResultSets instead of returning them. Index: AbstractJoin.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/AbstractJoin.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** AbstractJoin.java 19 Oct 2005 19:30:12 -0000 1.8 --- AbstractJoin.java 27 Nov 2005 02:58:24 -0000 1.9 *************** *** 1,14 **** package net.sourceforge.squirrel_sql.plugins.codecompletion.completionfunctions; import net.sourceforge.squirrel_sql.client.session.ISession; ! import net.sourceforge.squirrel_sql.plugins.codecompletion.CodeCompletionInfo; ! import net.sourceforge.squirrel_sql.fw.completion.CompletionInfo; import net.sourceforge.squirrel_sql.fw.util.StringManager; import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; ! ! import java.util.*; ! import java.sql.SQLException; ! import java.sql.ResultSet; ! import java.sql.DatabaseMetaData; --- 1,20 ---- package net.sourceforge.squirrel_sql.plugins.codecompletion.completionfunctions; + import java.sql.SQLException; + import java.util.Arrays; + import java.util.Enumeration; + import java.util.HashMap; + import java.util.Hashtable; + import java.util.Iterator; + import java.util.StringTokenizer; + import java.util.Vector; + import net.sourceforge.squirrel_sql.client.session.ISession; ! import net.sourceforge.squirrel_sql.fw.sql.ForeignKeyInfo; ! import net.sourceforge.squirrel_sql.fw.sql.ITableInfo; ! import net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData; import net.sourceforge.squirrel_sql.fw.util.StringManager; import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; ! import net.sourceforge.squirrel_sql.plugins.codecompletion.CodeCompletionInfo; *************** *** 55,59 **** String catalog = _session.getSQLConnection().getCatalog(); ! DatabaseMetaData jdbcMetaData = _session.getSQLConnection().getSQLMetaData().getJDBCMetaData(); Vector tables = new Vector(); HashMap schemas = new HashMap(); --- 61,66 ---- String catalog = _session.getSQLConnection().getCatalog(); ! SQLDatabaseMetaData md = _session.getSQLConnection().getSQLMetaData(); ! SQLDatabaseMetaData jdbcMetaData = _session.getSQLConnection().getSQLMetaData(); Vector tables = new Vector(); HashMap schemas = new HashMap(); *************** *** 84,94 **** catalog = _session.getSQLConnection().getCatalog(); } ! ResultSet resSchema = jdbcMetaData.getTables(catalog, null, (String) tables.get(0), new String[]{"TABLE"}); ! while(resSchema.next()) ! { ! String schemBuf = resSchema.getString("TABLE_SCHEM"); ! schemas.put(schemBuf, schemBuf); ! } ! resSchema.close(); } } --- 91,100 ---- catalog = _session.getSQLConnection().getCatalog(); } ! ITableInfo[] infos = ! md.getTables(catalog, null, (String) tables.get(0), new String[]{"TABLE"}); ! for (int i = 0; i < infos.length; i++) { ! String schemBuf = infos[i].getSchemaName(); ! schemas.put(schemBuf, schemBuf); ! } } } *************** *** 110,114 **** } ! private CodeCompletionInfo[] getResultsForSchema(Vector tables, DatabaseMetaData jdbcMetaData, String catalog, String schema) throws SQLException { --- 116,120 ---- } ! private CodeCompletionInfo[] getResultsForSchema(Vector tables, SQLDatabaseMetaData jdbcMetaData, String catalog, String schema) throws SQLException { *************** *** 120,132 **** Hashtable conditionByFkName = new Hashtable(); Hashtable colBuffersByFkName = new Hashtable(); ! ResultSet res; ! res = jdbcMetaData.getImportedKeys(catalog, schema, (String) tables.get(i-1)); ! fillConditionByFkName(res, (String)tables.get(i-1), (String)tables.get(i), conditionByFkName, colBuffersByFkName); ! res.close(); ! ! res = jdbcMetaData.getExportedKeys(catalog, schema, (String) tables.get(i-1)); ! fillConditionByFkName(res, (String)tables.get(i-1), (String)tables.get(i), conditionByFkName, colBuffersByFkName); ! res.close(); Vector twoTableCompletions = new Vector(); --- 126,134 ---- Hashtable conditionByFkName = new Hashtable(); Hashtable colBuffersByFkName = new Hashtable(); ! ForeignKeyInfo[] infos = jdbcMetaData.getImportedKeysInfo(catalog, schema, (String) tables.get(i-1)); ! fillConditionByFkName(infos, (String)tables.get(i-1), (String)tables.get(i), conditionByFkName, colBuffersByFkName); + infos = jdbcMetaData.getExportedKeysInfo(catalog, schema, (String) tables.get(i-1)); + fillConditionByFkName(infos, (String)tables.get(i-1), (String)tables.get(i), conditionByFkName, colBuffersByFkName); Vector twoTableCompletions = new Vector(); *************** *** 193,208 **** protected abstract String getJoinClause(String fkName, String table1, String table2, Hashtable colBuffersByFkName); ! private void fillConditionByFkName(ResultSet res, String table1, String table2, Hashtable conditionByFkName, Hashtable colBuffersByFkName) throws SQLException { ! while(res.next()) { if ( ! (res.getString("PKTABLE_NAME").equalsIgnoreCase((String) table2) && res.getString("FKTABLE_NAME").equalsIgnoreCase((String) table1)) ! || (res.getString("FKTABLE_NAME").equalsIgnoreCase((String) table2) && res.getString("PKTABLE_NAME").equalsIgnoreCase((String) table1)) ) { - String fkName = "" + res.getString("FK_NAME"); Vector conditions = (Vector) conditionByFkName.get(fkName); --- 195,214 ---- protected abstract String getJoinClause(String fkName, String table1, String table2, Hashtable colBuffersByFkName); ! private void fillConditionByFkName(ForeignKeyInfo[] infos, String table1, String table2, Hashtable conditionByFkName, Hashtable colBuffersByFkName) throws SQLException { ! for (int i = 0; i < infos.length; i++) { + String pkTableName = infos[i].getPrimaryKeyTableName(); + String pkColumnName = infos[i].getPrimaryKeyColumnName(); + String fkTableName = infos[i].getForeignKeyTableName(); + String fkColumnName = infos[i].getForeignKeyColumnName(); + String fkName = infos[i].getForeignKeyName(); if ( ! (pkTableName.equalsIgnoreCase(table2) && fkTableName.equalsIgnoreCase(table1)) ! || (fkTableName.equalsIgnoreCase(table2) && pkTableName.equalsIgnoreCase(table1)) ) { Vector conditions = (Vector) conditionByFkName.get(fkName); *************** *** 213,218 **** } ! conditions.add(res.getString("PKTABLE_NAME") + "." + res.getString("PKCOLUMN_NAME") + " = " + ! res.getString("FKTABLE_NAME") + "." + res.getString("FKCOLUMN_NAME")); --- 219,224 ---- } ! conditions.add(pkTableName + "." + pkColumnName + " = " + ! fkTableName + "." + fkColumnName); *************** *** 223,227 **** colBuffersByFkName.put(fkName, cols); } ! cols.add(new ColBuffer(res.getString("FKTABLE_NAME"), res.getString("FKCOLUMN_NAME"))); } } --- 229,233 ---- colBuffersByFkName.put(fkName, cols); } ! cols.add(new ColBuffer(fkTableName, fkColumnName)); } } |