Index: =
client-src/net/sourceforge/squirrel_sql/client/preferences/I18NStrings.p=
roperties
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: =
D:/Personal2/Data_Files/CVSRepository/default/Squirrel-sql/client-src/ne=
t/sourceforge/squirrel_sql/client/preferences/I18NStrings.properties,v
retrieving revision 1.2
diff -u -r1.2 I18NStrings.properties
--- =
client-src/net/sourceforge/squirrel_sql/client/preferences/I18NStrings.p=
roperties 20 Mar 2004 18:12:43 -0000 1.2
+++ =
client-src/net/sourceforge/squirrel_sql/client/preferences/I18NStrings.p=
roperties 22 Mar 2004 16:42:11 -0000
@@ -49,4 +49,4 @@
SQLPreferencesPanel.jdbcdebugfile=3DJDBC Debug File
SQLPreferencesPanel.zerounlimited=3DZero means unlimited
SQLPreferencesPanel.keepQueryResults=3DKeep the query result windows
-SQLPreferencesPanel.prettyPrintMetadata=3DPretty print the column =
metadata
+SQLPreferencesPanel.prettyPrintMetadata=3DPretty print the metadata
Index: =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/ColumnsTab.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: =
D:/Personal2/Data_Files/CVSRepository/default/Squirrel-sql/client-src/ne=
t/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/tabl=
e/ColumnsTab.java,v
retrieving revision 1.2
diff -u -r1.2 ColumnsTab.java
--- =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/ColumnsTab.java 20 Mar 2004 18:13:14 -0000 1.2
+++ =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/ColumnsTab.java 22 Mar 2004 16:42:11 -0000
@@ -100,17 +100,15 @@
=20
private static final class NiceViewDataSet extends TransformerDataSet =
{
=20
- private static final ColumnDisplayDefinition[] colDefs =3D new =
ColumnDisplayDefinition[2];
- private static final DataSetDefinition _dataSetDefinition =3D new =
DataSetDefinition(colDefs);
- static {
- colDefs[0] =3D new ColumnDisplayDefinition(20, "Name");
- colDefs[1] =3D new ColumnDisplayDefinition(60, "Description");
- }
+ private static final ColumnDisplayDefinition[] colDefs =3D {
+ new ColumnDisplayDefinition(20, "Name"),
+ new ColumnDisplayDefinition(60, "Description")
+ };
=09
public NiceViewDataSet(IDataSet innerDataSet)=20
throws DataSetException=20
{=09
- super(innerDataSet, _dataSetDefinition);
+ super(innerDataSet, colDefs);
}
=20
public synchronized Object get(int columnIndex) throws =
DataSetException
Index: =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/ExportedKeysTab.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: =
D:/Personal2/Data_Files/CVSRepository/default/Squirrel-sql/client-src/ne=
t/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/tabl=
e/ExportedKeysTab.java,v
retrieving revision 1.1
diff -u -r1.1 ExportedKeysTab.java
--- =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/ExportedKeysTab.java 20 Mar 2004 18:00:01 -0000 1.1
+++ =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/ExportedKeysTab.java 22 Mar 2004 16:42:11 -0000
@@ -17,14 +17,22 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA =
02111-1307 USA
*/
+import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
=20
+import =
net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition;
+import =
net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetDefinition;
import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetException;
import net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSet;
+import =
net.sourceforge.squirrel_sql.fw.datasetviewer.ObjectArrayDataSet;
import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet;
import net.sourceforge.squirrel_sql.fw.sql.ITableInfo;
import net.sourceforge.squirrel_sql.fw.sql.SQLConnection;
+
/**
* This tab shows the columns in the currently selected table.
*
@@ -75,8 +83,14 @@
try
{
final ResultSetDataSet rsds =3D new ResultSetDataSet();
- rsds.setResultSet(rs, =
getSession().getProperties().getLargeResultSetObjectInfo(), new int[] { =
1,2,3,4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, true);
- return rsds;
+ if =
(getSession().getApplication().getSquirrelPreferences().getPrettyPrintMe=
tadata()) {
+ rsds.setResultSet(rs, =
getSession().getProperties().getLargeResultSetObjectInfo());=20
+ final IDataSet dataSet =3D buildNiceView(rsds);
+ return dataSet;
+ } else {
+ rsds.setResultSet(rs, =
getSession().getProperties().getLargeResultSetObjectInfo(), new int[] { =
1,2,3,4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, true);
+ return rsds;
+ }
}
finally
{
@@ -88,4 +102,147 @@
throw new DataSetException(ex);
}
}
+
+ /*
+ 0 PKTABLE_CAT String =3D> primary key table catalog (may be null)=20
+ 1 PKTABLE_SCHEM String =3D> primary key table schema (may be null)=20
+ 2 PKTABLE_NAME String =3D> primary key table name=20
+ 3 PKCOLUMN_NAME String =3D> primary key column name=20
+ 4 FKTABLE_CAT String =3D> foreign key table catalog (may be null) =
being exported (may be null)=20
+ 5 FKTABLE_SCHEM String =3D> foreign key table schema (may be null) =
being exported (may be null)=20
+ 6 FKTABLE_NAME String =3D> foreign key table name being exported=20
+ 7 FKCOLUMN_NAME String =3D> foreign key column name being exported=20
+ 8 KEY_SEQ short =3D> sequence number within foreign key=20
+ 9 UPDATE_RULE short =3D> What happens to foreign key when primary =
is updated:=20
+ importedNoAction - do not allow update of primary key if it has =
been imported=20
+ importedKeyCascade - change imported key to agree with primary key =
update=20
+ importedKeySetNull - change imported key to NULL if its primary key =
has been updated=20
+ importedKeySetDefault - change imported key to default values if =
its primary key has been updated=20
+ importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x =
compatibility)=20
+ 10 DELETE_RULE short =3D> What happens to the foreign key when =
primary is deleted.=20
+ importedKeyNoAction - do not allow delete of primary key if it has =
been imported=20
+ importedKeyCascade - delete rows that import a deleted key=20
+ importedKeySetNull - change imported key to NULL if its primary key =
has been deleted=20
+ importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x =
compatibility)=20
+ importedKeySetDefault - change imported key to default if its =
primary key has been deleted=20
+ 11 FK_NAME String =3D> foreign key name (may be null)=20
+ 12 PK_NAME String =3D> primary key name (may be null)=20
+ 13 DEFERRABILITY short =3D> can the evaluation of foreign key =
constraints be deferred until commit=20
+ importedKeyInitiallyDeferred - see SQL92 for definition=20
+ importedKeyInitiallyImmediate - see SQL92 for definition=20
+ importedKeyNotDeferrable - see SQL92 for definition=20
+ */
+ private static final ColumnDisplayDefinition[] colDefs =3D {
+ new ColumnDisplayDefinition(20, "Foreign Key Table"),
+ new ColumnDisplayDefinition(20, "Foreign Key Name"),
+ new ColumnDisplayDefinition(20, "Foreign Key Columns"),
+ new ColumnDisplayDefinition(20, "Primary Key Name"),
+ new ColumnDisplayDefinition(20, "Primary Key Columns"),
+ new ColumnDisplayDefinition(20, "Modifiers"),
+ };
+
+ public static IDataSet buildNiceView(IDataSet dataSet) throws =
DataSetException {
+
+ final StringBuffer fkTableColumns =3D new StringBuffer();
+ final StringBuffer pkTableColumns =3D new StringBuffer();
+ final List list =3D new ArrayList();
+ =09
+ int lastKeySeq =3D -1;
+ while (true) {
+ final boolean isNext =3D dataSet.next(null);
+ if (!isNext && lastKeySeq=3D=3D-1) {
+ break; // no rows
+ }
+ final int thisKeySeq =3D =
Integer.parseInt(dataSet.get(8).toString());
+ if (!isNext || thisKeySeq<lastKeySeq) {
+ final String [] cols =3D new String[6];
+
+ cols[0] =3D=20
+ (dataSet.get(4)=3D=3Dnull ? "" : dataSet.get(4) + ".") // catalog
+ + (dataSet.get(5)=3D=3Dnull ? "" : dataSet.get(5) + ".") // =
schema
+ + dataSet.get(6); // fktable_name
+
+ cols[1] =3D dataSet.get(11).toString(); // fk_name
+ =09
+ cols[2] =3D fkTableColumns.toString();
+
+ cols[3] =3D (dataSet.get(0)=3D=3Dnull ? "" : dataSet.get(0) + ".") =
// catalog
+ + (dataSet.get(1)=3D=3Dnull ? "" : dataSet.get(1) + ".") // =
schema
+ + dataSet.get(2); // pktable_name
+
+ cols[4] =3D pkTableColumns.toString();
+
+ StringBuffer buf =3D new StringBuffer();
+ =09
+ final short updateRule =3D =
Short.parseShort(dataSet.get(9).toString());
+ updateDeleteRule(buf, "update", updateRule);
+
+ final short deleteRule =3D =
Short.parseShort(dataSet.get(10).toString());
+ updateDeleteRule(buf, "delete", deleteRule);
+
+ // FIXME not sure about the syntax for deferrability
+ final short deferrability =3D =
Short.parseShort(dataSet.get(13).toString());
+ if =
(deferrability=3D=3DDatabaseMetaData.importedKeyInitiallyImmediate) {
+ } else {
+ buf.append("defer ");
+ if =
(deferrability=3D=3DDatabaseMetaData.importedKeyInitiallyDeferred) {
+ buf.append("initial ");
+ } else if =
(deferrability=3D=3DDatabaseMetaData.importedKeyNotDeferrable) {
+ buf.append("not ");
+ }
+ }
+
+ cols[5] =3D buf.toString();
+
+ list.add(cols);
+
+ // clear buffers
+ buf.setLength(0);
+ fkTableColumns.setLength(0);
+ pkTableColumns.setLength(0); =09
+ =09
+ lastKeySeq =3D -1;
+ } else {
+ lastKeySeq =3D thisKeySeq;
+ }
+ if (!isNext) {
+ break;
+ }
+
+ if (fkTableColumns.length()>0) {
+ fkTableColumns.append(", ");
+ }
+ fkTableColumns.append(dataSet.get(7));
+ if (pkTableColumns.length()>0) {
+ pkTableColumns.append(", ");
+ }
+ pkTableColumns.append(dataSet.get(3)); =09
+ }
+
+ final Object [][] objA =3D new Object[list.size()][0];
+ int i =3D 0;
+ for (Iterator iter=3Dlist.iterator(); iter.hasNext(); ) {
+ String[] item =3D (String[]) iter.next();
+ objA[i++] =3D item;
+ }
+ return new ObjectArrayDataSet(objA, new DataSetDefinition(colDefs));
+ }
+
+ private static void updateDeleteRule(final StringBuffer buf, String =
action, final short rule) {
+ if (rule=3D=3DDatabaseMetaData.importedKeyNoAction) {
+ } else if (rule=3D=3DDatabaseMetaData.importedKeyRestrict) {
+ } else {
+ buf.append("on ");
+ buf.append(action);
+ buf.append(" ");
+ if (rule=3D=3DDatabaseMetaData.importedKeyCascade) {
+ buf.append("cascade ");
+ } else if (rule=3D=3DDatabaseMetaData.importedKeySetNull) {
+ buf.append("set null ");
+ } else if (rule=3D=3DDatabaseMetaData.importedKeySetDefault) {
+ buf.append("set default ");
+ }
+ }
+ }
+
}
Index: =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/ImportedKeysTab.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: =
D:/Personal2/Data_Files/CVSRepository/default/Squirrel-sql/client-src/ne=
t/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/tabl=
e/ImportedKeysTab.java,v
retrieving revision 1.1
diff -u -r1.1 ImportedKeysTab.java
--- =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/ImportedKeysTab.java 20 Mar 2004 18:00:01 -0000 1.1
+++ =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/ImportedKeysTab.java 22 Mar 2004 16:42:11 -0000
@@ -77,8 +77,14 @@
try
{
final ResultSetDataSet rsds =3D new ResultSetDataSet();
- rsds.setResultSet(rs, =
getSession().getProperties().getLargeResultSetObjectInfo(), new int[] { =
1,2,3,4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, true);
- return rsds;
+ if =
(getSession().getApplication().getSquirrelPreferences().getPrettyPrintMe=
tadata()) {
+ rsds.setResultSet(rs, =
getSession().getProperties().getLargeResultSetObjectInfo());=20
+ final IDataSet dataSet =3D ExportedKeysTab.buildNiceView(rsds);
+ return dataSet;
+ } else {
+ rsds.setResultSet(rs, =
getSession().getProperties().getLargeResultSetObjectInfo(), new int[] { =
1,2,3,4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, true);
+ return rsds;
+ }
}
finally
{
Index: =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/PrimaryKeyTab.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: =
D:/Personal2/Data_Files/CVSRepository/default/Squirrel-sql/client-src/ne=
t/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/tabl=
e/PrimaryKeyTab.java,v
retrieving revision 1.1
diff -u -r1.1 PrimaryKeyTab.java
--- =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/PrimaryKeyTab.java 20 Mar 2004 18:00:01 -0000 1.1
+++ =
client-src/net/sourceforge/squirrel_sql/client/session/mainpanel/objectt=
ree/tabs/table/PrimaryKeyTab.java 22 Mar 2004 16:42:11 -0000
@@ -17,12 +17,17 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA =
02111-1307 USA
*/
+import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.sql.Types;
=20
+import =
net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition;
+import =
net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetDefinition;
import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetException;
import net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSet;
import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet;
+import =
net.sourceforge.squirrel_sql.fw.datasetviewer.TransformerDataSet;
import net.sourceforge.squirrel_sql.fw.sql.SQLConnection;
/**
* This tab shows the primary key info for the currently selected =
table.
@@ -73,8 +78,13 @@
try
{
final ResultSetDataSet rsds =3D new ResultSetDataSet();
- rsds.setResultSet(rs, =
getSession().getProperties().getLargeResultSetObjectInfo(), new int[] { =
6, 5, 4 }, true);
- return rsds;
+ if =
(getSession().getApplication().getSquirrelPreferences().getPrettyPrintMe=
tadata()) {
+ rsds.setResultSet(rs, =
getSession().getProperties().getLargeResultSetObjectInfo());=20
+ return new NiceViewDataSet(rsds);
+ } else {
+ rsds.setResultSet(rs, =
getSession().getProperties().getLargeResultSetObjectInfo(), new int[] { =
6, 5, 4 }, true);
+ return rsds;
+ }
}
finally
{
@@ -86,4 +96,35 @@
throw new DataSetException(ex);
}
}
+
+ private static final class NiceViewDataSet extends TransformerDataSet =
{
+
+ private static final ColumnDisplayDefinition[] colDefs =3D {
+ new ColumnDisplayDefinition(20, "Primary Key Name"),
+ new ColumnDisplayDefinition(10, "Sequence"),
+ new ColumnDisplayDefinition(20, "Column Name")
+ };
+ =09
+ public NiceViewDataSet(IDataSet innerDataSet)=20
+ throws DataSetException=20
+ {=09
+ super(innerDataSet, colDefs);
+ }
+
+ public synchronized Object get(int columnIndex) throws =
DataSetException
+ {
+ if (columnIndex=3D=3D0) {
+ return this._innerDataSet.get(5);
+ } else if (columnIndex=3D=3D1) {
+ return this._innerDataSet.get(4);
+ } else if (columnIndex=3D=3D2) {
+ return this._innerDataSet.get(3);
+ } else {
+ throw new IllegalStateException(""+columnIndex);
+ }
+ }
+
+ }
+
+
}
Index: =
fw-src/net/sourceforge/squirrel_sql/fw/datasetviewer/TransformerDataSet.=
java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: =
D:/Personal2/Data_Files/CVSRepository/default/Squirrel-sql/fw-src/net/so=
urceforge/squirrel_sql/fw/datasetviewer/TransformerDataSet.java,v
retrieving revision 1.1
diff -u -r1.1 TransformerDataSet.java
--- =
fw-src/net/sourceforge/squirrel_sql/fw/datasetviewer/TransformerDataSet.=
java 20 Mar 2004 18:11:21 -0000 1.1
+++ =
fw-src/net/sourceforge/squirrel_sql/fw/datasetviewer/TransformerDataSet.=
java 22 Mar 2004 16:42:11 -0000
@@ -24,6 +24,14 @@
protected IDataSet _innerDataSet;
private DataSetDefinition _innerDataSetDef;
=20
+ /**
+ * convenience constructor
+ */
+ public TransformerDataSet(IDataSet innerDataSet, =
ColumnDisplayDefinition[] colDefs) throws DataSetException
+ {
+ this(innerDataSet, new DataSetDefinition(colDefs));
+ }
+=09
public TransformerDataSet(IDataSet innerDataSet, DataSetDefinition =
innerDataSetDef) throws DataSetException
{
super();
|