1.1 --- a/mdr/extras/jdbcstorage/src/org/netbeans/mdr/persistence/jdbcimpl/JdbcMultivaluedOrderedIndex.java Sun Feb 08 03:12:20 2004 +0000
1.2 +++ b/mdr/extras/jdbcstorage/src/org/netbeans/mdr/persistence/jdbcimpl/JdbcMultivaluedOrderedIndex.java Sun Feb 08 03:25:58 2004 +0000
1.3 @@ -63,9 +63,23 @@
1.4
1.5 // NOTE: keyColName is redundant in ORDER BY, but maybe it improves
1.6 // the chances that even a stupid optimizer will realize it can use the
1.7 - // primary key index for ordering
1.8 + // primary key index for ordering. And if DBMS doesn't support
1.9 + // ORDER BY non-selected column (which is non-standard), we
1.10 + // extend the select list but ignore the extra columns during fetch.
1.11 + String selectOrdered = "select " + valColName;
1.12 + boolean orderByUnrelated = false;
1.13 + try {
1.14 + orderByUnrelated =
1.15 + storage.getDatabaseMetaData().supportsOrderByUnrelated();
1.16 + } catch (SQLException ex) {
1.17 + // assume exception means it doesn't
1.18 + }
1.19 + if (!orderByUnrelated) {
1.20 + selectOrdered = selectOrdered
1.21 + + ", " + keyColName + ", " + storage.ORDINAL_COL_NAME;
1.22 + }
1.23 sqlFindOrdered = new LazyPreparedStatement(
1.24 - "select " + valColName + " from " + tableName
1.25 + selectOrdered + " from " + tableName
1.26 + " where " + keyColName + " = ? order by "
1.27 + keyColName + ", " + storage.ORDINAL_COL_NAME);
1.28 }
2.1 --- a/mdr/extras/jdbcstorage/src/org/netbeans/mdr/persistence/jdbcimpl/JdbcStorage.java Sun Feb 08 03:12:20 2004 +0000
2.2 +++ b/mdr/extras/jdbcstorage/src/org/netbeans/mdr/persistence/jdbcimpl/JdbcStorage.java Sun Feb 08 03:25:58 2004 +0000
2.3 @@ -204,6 +204,11 @@
2.4 }
2.5 }
2.6
2.7 + DatabaseMetaData getDatabaseMetaData()
2.8 + {
2.9 + return dbMetaData;
2.10 + }
2.11 +
2.12 private String getQualifiedTableName(String tableName)
2.13 {
2.14 if (realSchema) {