WL#6385: Define and Implement API for Schema

Affects: Server-8.0   —   Status: Complete

This worklog specifies interfaces of the following object types:
  - Charset
  - Collation
  - Schema

For the framework class definitions see WL#7284.
NOTE: lookup() operations return a valid object pointer if object was
found, or NULL otherwise.

Charset
=======

The interface provides read-only accessors, as the character set /
collation features are defined outside the Data Dictionary and might not be
changed by the Data Dictionary customers.

Attributes
----------

  - read-only default_collation attribute -- a reference to the default
    collation implied by a character set.

  - read-only mb_max_length

  - comment
  
Collation
=========

The interface provides read-only accessors, as the character set /
collation features are defined outside the Data Dictionary and might not be
changed by the Data Dictionary customers.

Attributes
----------

  - read-only character set of that collation

  - read-only flag specifying if the collation is compiled

  - read-only sort_length

Schema
======

Attributes
----------

  - read-write default collation

  - read-write created time stamp

  - read-write last-altered time stamp
  
Operations
----------

  - Create a new object in schema:

    - create a new table

    - create a new view

    - create a new system view
      (system views are used in INFORMATION_SCHEMA and PERFORMANCE_SCHEMA)

    - create a new stored procedure

    - create a new stored function

    - create a new event

  - Lookup objects in schema by name:

    - lookup a regular (base) table by name

    - lookup a view by name

    - lookup a stored procedure

    - lookup a stored function

    - lookup an event

  - Iterator interface for schema components

    - Iterator through all tables and views.

    - Iterator through all tables.

    - Iterator through all views.