WL#6382: Define and Implement API for Table objects
Affects: Server-8.0
—
Status: Complete
This worklog specifies interfaces of the following object types: - Abstract_table - Table - Column - Column_type_element - Index - Index_column - Foreign_key - Foreign_key_column For the framework class definitions see WL#7284.
NF1: No user visible changes.
NOTE: lookup() operations return a valid object pointer if object was found, or NULL otherwise. NOTE: handling of attributes of properties and collection types is described in WL#6380, section "Common API attribute guidelines". NOTE: Dictionary_object, Entity_object, Weak_object are specified in WL#7284. NOTE: Properties is specified in WL#7284. Abstract_table ============== The Abstract_table interface is a base interface for Table and View. This interface contains common operations and properties for views and tables. Base interfaces: - Dictionary_object - Entity_object - Weak_object Members: * Common attributes: - Created time stamp - Last-altered time stamp - Version - Options (properties) * References: - Weak-reference to the schema containing the table * Collections: - Ordered collection of table columns (Column) Table ===== The Table interface represents one table. To some extent it corresponds to the TABLE_SHARE instance. Base interfaces: - Abstract_table - Dictionary_object - Entity_object - Weak_object Members: * Common attributes: - SE id (SE name) - Comment - Flag specifying if this table is hidden * References: - Weak-reference to the table collation - Weak-reference to the table tablespace * SE private attributes: - SE private table id - SE private data (properties) * Partitioning related attributes: - Partition type - Default partitioning method - Partition expression - Sub-partition type - Sub-partition default partitioning method - Sub-partition expression * Collections: - Unordered collection of table indexes (Index) - Unordered collection of table foreign keys (Foreign_key) - Unordered collection of table partitions (Partition) Column ====== The Column interface represents one column (field) of a table. Base interfaces: - Dictionary_object - Entity_object - Weak_object Members: * Common attributes: - Data type code - Flag specifying if the column is nullable or not - Flag specifying if the column is zero-filled or not - Flag specifying if the column is unsigned or not - Flag specifying if the column is auto-incremented or not - Char length - Numeric precision - Numeric scale - Datetime precision - Default value (binary data) - Default option - Update option - Comment - Flag specifying if this column is hidden - Options (properties) * References: - Weak-reference to the column collation * SE private attributes: - SE private data (properties) * Collections: - Unordered collection of ENUM-type values (Column_type_element) - Unordered collection of SET-type values (Column_type_element) * Member of the column collection in Abstract_table: - C++ reference to the table containing this column - The ordinal position of the column in the table - Operation to drop the column Column_type_element =================== The Column_type_element interface represents one item from the ENUM / SET type enumeration. Base interfaces: - Weak_object Members: * Common attributes - Item name - Item index * Member of the collections in Column: - C++ reference to the parent column - Operation to drop the element Index ===== The Index interface represents one index of a table. Base interfaces: - Dictionary_object - Entity_object - Weak_object Members: * Common attributes - Flag specifying if this index is generated - Comment - Index type - Index algorithm - Options (properties) * References: - Weak reference to the tablespace of this index. * SE private attributes: - SE private data (properties) - SE private index id * Collections: - Ordered collection of index elements (Index_element). * Member of the index collection in Table: - C++ reference to the table containing this index - The ordinal position of the index in the table - Operation to drop the index from the parent table. Index_element ============= A table index constitutes from one or more elements. The Index_element interface represents one such element. Base interfaces: - Weak_object Members: * Common attributes: - Length - Sorting order * References: - C++ reference to the column described by this element * Member of the index-element collection in Index: - C++ reference to the index containing this element - The ordinal position of the element in the index - Operation to drop the index element Foreign_key =========== The Foreign_key interface represents one foreign-key of a table. Base interfaces: - Dictionary_object - Entity_object - Weak_object Members: * Common attributes: - Match option - Update rule - Delete rule - Schema name of the referenced table - Name of the referenced table * References: - C++ reference to the index corresponding to (built for) this foreign-key * Collections: - Ordered collection of foreign key elements (Foreign_key_element). * Member of the foreign-key collection in Table: - C++ reference to the table containing this foreign-key - Operation to drop the foreign key Foreign_key_element =================== A table foreign key constitutes from one or more elements. The Foreign_key_element interface represents one such element. Base interfaces: - Weak_object Members: * Common attributes: - The column name referenced by this element * References: - C++ reference to the column of this element * Member of the foreign-key-element collection in Foreign_key: - C++ reference to the foreign key containing this element - The ordinal position of the element in the foreign key - Operation to drop the foreign key element
Copyright (c) 2000, 2024, Oracle Corporation and/or its affiliates. All rights reserved.