Revision: 6691
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6691&view=rev
Author: gerdwagner
Date: 2012-10-20 02:48:19 +0000 (Sat, 20 Oct 2012)
Log Message:
-----------
On DB2 for AS400 column completion didn't work in some cases. (Thanks to Stefan Hohenstein for the patch.)
Modified Paths:
--------------
trunk/sql12/doc/src/main/resources/changes.txt
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableAliasInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableInfo.java
Modified: trunk/sql12/doc/src/main/resources/changes.txt
===================================================================
--- trunk/sql12/doc/src/main/resources/changes.txt 2012-10-20 02:05:18 UTC (rev 6690)
+++ trunk/sql12/doc/src/main/resources/changes.txt 2012-10-20 02:48:19 UTC (rev 6691)
@@ -36,6 +36,8 @@
Bug fixes:
+On DB2 for AS400 column completion didn't work in some cases. (Thanks to Stefan Hohenstein for the patch.)
+
3575054: SQL results text mode is not working
Fixed repaint problem in Hibernate Plugin.
Modified: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java 2012-10-20 02:05:18 UTC (rev 6690)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java 2012-10-20 02:48:19 UTC (rev 6691)
@@ -67,7 +67,7 @@
{
public void schemaInfoUpdated()
{
- _completionInfosByCataLogAndSchema =
+ _completionInfosByCataLogAndSchema =
new Hashtable<String, Vector<CodeCompletionInfo>>();
}
});
@@ -103,12 +103,14 @@
CodeCompletionTableInfo dupl = (CodeCompletionTableInfo) completionInfoByUcTableName.get(ucTableName);
+ //SH add the session object as last parameter
CodeCompletionTableInfo tableInfo = new CodeCompletionTableInfo(tables[i].getSimpleName(),
- tables[i].getType(),
- tables[i].getCatalogName(),
- tables[i].getSchemaName(),
- _useCompletionPrefs,
- _prefs);
+ tables[i].getType(),
+ tables[i].getCatalogName(),
+ tables[i].getSchemaName(),
+ _useCompletionPrefs,
+ _prefs,
+ _session);
if(null != dupl)
{
Modified: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableAliasInfo.java
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableAliasInfo.java 2012-10-20 02:05:18 UTC (rev 6690)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableAliasInfo.java 2012-10-20 02:48:19 UTC (rev 6691)
@@ -27,9 +27,10 @@
private String _toString;
public CodeCompletionTableAliasInfo(TableAliasInfo aliasInfo, boolean useCompletionPrefs, CodeCompletionPreferences prefs)
- {
- super(aliasInfo.tableName, "TABLE", null, null, useCompletionPrefs, prefs);
- _aliasInfo = aliasInfo;
+ {
+ //SH add last parameter ISession. Used in the super class
+ super(aliasInfo.tableName, "TABLE", null, null, useCompletionPrefs, prefs, null);
+ _aliasInfo = aliasInfo;
_toString = _aliasInfo.aliasName + " (Alias for " + _aliasInfo.tableName + ")";
}
Modified: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableInfo.java
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableInfo.java 2012-10-20 02:05:18 UTC (rev 6690)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableInfo.java 2012-10-20 02:48:19 UTC (rev 6691)
@@ -22,6 +22,9 @@
import java.util.HashSet;
import net.sourceforge.squirrel_sql.client.session.ExtendedColumnInfo;
+import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData;
+import net.sourceforge.squirrel_sql.fw.sql.TableColumnInfo;
import net.sourceforge.squirrel_sql.plugins.codecompletion.prefs.CodeCompletionPreferences;
public class CodeCompletionTableInfo extends CodeCompletionInfo
@@ -34,9 +37,12 @@
private String _schema;
private boolean _useCompletionPrefs;
private CodeCompletionPreferences _prefs;
+ ////SH add the session object
+ private ISession _session;
- public CodeCompletionTableInfo(String tableName, String tableType, String catalog, String schema, boolean useCompletionPrefs, CodeCompletionPreferences prefs)
+ //SH add the session object as last parameter
+ public CodeCompletionTableInfo(String tableName, String tableType, String catalog, String schema, boolean useCompletionPrefs, CodeCompletionPreferences prefs, ISession session)
{
_tableName = tableName;
_tableType = tableType;
@@ -44,8 +50,9 @@
_schema = schema;
_useCompletionPrefs = useCompletionPrefs;
_prefs = prefs;
+ //SH
+ _session = session;
-
if(null != _tableType && !"TABLE".equals(_tableType))
{
_toString = _tableName + " (" + _tableType + ")";
@@ -81,7 +88,9 @@
public ArrayList<CodeCompletionInfo> getColumns(net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo schemaInfo, String colNamePattern)
throws SQLException
{
- if(null == _colInfos)
+ //System.out.println("getColumns colInfos:" + _colInfos + " schemaInfo :" + schemaInfo + " colNamePattern :" + colNamePattern);
+ //SH
+ if(null == _colInfos || _colInfos.size() == 0)
{
ExtendedColumnInfo[] schemColInfos = schemaInfo.getExtendedColumnInfos(_catalog, _schema, _tableName);
@@ -112,6 +121,28 @@
}
}
+
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // According to Stefan Hohenstein this block makes column completion work on db2/400 work in special cases where it didn't work before.
+ // The code is executed only in the peculiar case when no columns could be found for a table.
+ if(colInfosBuf.size() == 0 && _session != null)
+ {
+ SQLDatabaseMetaData sdmd = _session.getSQLConnection().getSQLMetaData();
+ TableColumnInfo[] ti = sdmd.getColumnInfo(_catalog, _schema, _tableName);
+ for(int x = 0; x < ti.length; x++)
+ {
+ CodeCompletionColumnInfo buf = new CodeCompletionColumnInfo(ti[x].getColumnName(), ti[x].getRemarks(), ti[x].getTypeName(), ti[x].getColumnSize(), ti[x].getDecimalDigits(), (ti[x].isNullable().equals("NO")) ? false : true, _useCompletionPrefs, _prefs.isShowRemarksInColumnCompletion());
+ String bufStr = buf.toString();
+ if (!uniqCols.contains(bufStr))
+ {
+ uniqCols.add(bufStr);
+ colInfosBuf.add(buf);
+ }
+ }
+ }
+ //
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
_colInfos = colInfosBuf;
}
@@ -130,7 +161,7 @@
{
ret.add(colInfo);
}
-
+
}
return ret;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|