Manual Instant JChem schema admin functions

    Most relevant administration functions are directly accessible from the IJC user interface. This document describes some things that are not currently possible through the IJC UI and must be performed manually.

    Removing bad items from the IJC meta data tables

    The symptoms

    On rare occasions the meta data that describes the database contents to Instant JChem may become corrupted. When this happens there may be items that are not understood and cause error messages to be displayed on startup. The only current way to avoid this is to manually remove these bad items from the IJC meta data tables. The error message will report the ID of the offending item (a 32 character hexadecimal string). This ID will correspond to an item in the IJC_SCHEMA table.

    The solution

    Before performing this operation you are advised to back up the IJC_SCHEMA table in case the wrong item(s) are deleted.

    Connect to the database using a SQL editor (e.g. the database explorer provided with IJC). Examine the contents of the IJC_SCHEMA table to confirm that there is a row which has a ITEM_ID with the corresponding value. Delete this row using SQL such as this:


    where uuid is replaced with the actual 32 character ID.

    Handling of missing underlying data structures

    Database Columns and Tables

    It is clearly possible for a user with administration access to drop a table or remove a column. The previously reported warnings are now replaced with a link which the user will see at logging in time in the output window. On clicking the link, the user can optionally chose to amend the schema by removing either the field or entity which references the missing column or table respectively. Any link not processed will subsequently re-appear if the user disconnect/connect again.

    Missing Edge

    In the case of forms and edges which reference entities that no longer exist, IJC will remove the edge item and any bound form widget will be shown as invalid.

    Positioning of null values when sorting

    his article [1] summarizes the default ORDER BY behaviour for many RDBMs. In short the default behaviour is as follows:

    Derby NULLs last NULLs first
    Oracle NULLs last NULLs first
    SQL Server NULLs last NULLs first
    MySQL NULLs first NULLs last