Mckoi SQL Database
Home / Documentation / FAQ / Support / Download
Mckoi SQL Database - Current TODO

Mckoi SQL Database Todo

The current TODO list ordered by urgency.

  1. More versatile handling of sequences (auto increment).

    A grammar similar to Postgresql and Oracle would probably be best.

  2. Fuller support for composite table functions on SELECT.

  3. Importing and exporting tables to local files ( eg. ".cvs" ).

    I feel this feature would be best implemented as a JDBC utility. I don't see any advantages in complicating the database engine design with this feature (except possibly for performance).

  4. Optimize trivial queries such as SELECT MAX(price) FROM PART.

  5. Aliased expressions in SELECT can not be used in the WHERE clause. Note that referencing aliased columns in the HAVING clause is permitted.

    eg. SELECT id * 2 my_alias WHERE my_alias = 10; will not work.

  6. Triggers can be made on any table irrespective of user privs.

    Also, triggers can be connected to a trigger source that doesn't exist. The CREATE TRIGGER command does not indicate an error if the source does not exist.

  7. Multi-column sub-queries eg. ( n, r ) IN ( SELECT c1, c2 ... )

  8. No support for updateable result sets in the JDBC driver.

  9. Improve query optimization. Queries such as (id * 2 > 1000) could be optimized to (id > 1000 / 2) which would only require a simple select rather than an exhaustive select in the former case.

  10. Add support for join syntax FULL OUTER JOIN in select's FROM clause.

    Supporting FULL OUTER joins would be good for compatibility with other DBMS's. This TODO has been downgraded to urgency '2' because LEFT and RIGHT joins are now supported.

  11. Optimize so aggregate functions MIN and MAX exploit table indexing.

    Currently they always brute force search. To optimize this we would need to recognise simple uses of MIN and MAX during query optimization and use indexing. We can't perform this optimization inside the Function object (can we?).

  12. Multi-column indexing.

  13. Transaction save points. A roll back takes you to the previous save point in the transaction.

  14. Engine indexing changes.

    We may want to change the indexing at some point so it is more self contained and does not necessarily have such a 1-1 relationship with a column. It would be good if multi-column indexes could be defined, and also secondary indexes on a column. Multi-column indexes would be used for sorting and searching involving multiple columns. Secondary indexes would be useful for defining functional ordering (x - 9) * x for example, and for speeding up case insensitive and non-lexicographic text searches.

  15. The grammer fails with UPDATE TEST SET TEST3=TEST3 -1. This is a unary problem.

    Downgraded to urgency 2. This is not an easy problem to fix because of limitations with JavaCC. Could be done with messy hacks to the grammar.

  16. Encryption filter on the data conglomerate store.

    This filter would be an interface that all input/output to the data files would go through. The filter would encrypt the data so that the information in the data files could not be easily decypherable by looking at the contents of the file.

  17. A server side stored procedure API.

  18. A server side trigger API.

  19. Database object labelling grammar for marking up columns. tables and schema with notes on their purpose.

  20. Should SELECT count(*) * id FROM Part; be valid?

    This is mixing aggregates with columns without GROUP BY.

  21. Intern all BigDecimals in a weak reference cache to allow for faster equality comparisons as well as memory utilization.

  22. ALTER CREATE does not convert between data types.

    For example, a 'varchar' column is not altered to an 'int'. The urgency of this entry was put down to 1.

  23. No cursors (do we really need cursors?).

  24. Provide a JDBC property that activates a general compression algorithm to reduce all JDBC communication traffic in client/server mode.


Last Updated: Mon Nov 18 14:36:44 PST 2002
Mckoi SQL Database Copyright © 2000, 2001, 2002 Diehl and Associates, Inc. All rights reserved.