GetOrigCollectionByProperty - Teradata Meta Data Services

Teradata Meta Data Services Programmer Guide

Teradata Meta Data Services
Release Number
English (United States)
Last Update
Product Category
Teradata Tools and Utilities



GetOrigCollectionByProperty returns the collection (list of CMetaObjects) of the origin class associated with this CMetaObject for the specified relationship, which match the selection criteria.


The function allows the programmer to specify the property id, property value and comparison operator on which to perform the search. The search is performed on the list of objects in the collection. If multiple properties are specified for the search, the logical operator between the property searches must be specified. The name of the property upon which to sort the returned list can also be specified.

When the origin class supports versioning, GetOrigCollectionByProperty will return object versions in the origin class that have a rigid relationship to the current version of this CMetaObject. The returned objects are not guaranteed to be the current version of their respective objects, i.e CMetaPersist::IsPublished() may be true or false for each returned object.

If the origin class of the relationship is a superclass, this function will only return objects in the origin class. To return objects in the subclasses, use the “GetOrigCollection3” function.

For more information on creating the propFilter for the search, see Chapter 8: “CMetaFilterInfo Class”.

For more information on building the strObjName parameter for a search, see “Name Search” on page 131.

For more information on building the sortList parameter, see “Sort List” on page 130.


  • The internal object id must be set in the object and it must be for a version of the origin object.
  • The propFilter list may contain zero or more CMetaFilterInfo objects.
  • The PropertyID (SetPropertyID()) or PropertyName (SetName()) of the value attribute in each CMetaFilterInfo object must contain a valid Relative Property ID or name of a property description in the class.
  • The value attribute in each CMetaFilterInfo object must also be set to the value on which the search will be made. This value must be of the same type as the property description. For example, if the search is to be made on Relative Property ID = 1 and Relative Property ID 1 is defined as an integer, Value must be set to an integer (SetInt()). If relative Property ID 1 is a string, Value must be set to a string (SetString()).
  • The default ComparisonOperator in each CMetaFilterInfo object is EQUAL and the default LogicalOperator is META_AND.
  • If the propFilter list contains zero objects, the function will perform a search by strObjName only. If strObjName is also NULL, the API will return all the objects in the collection.
  • If the propFilter list contains objects and strObjName is set, the logical operator between the properties and the name will the “AND”. To perform a search of a name “OR” a property, set strObjName to NULL and add a CMetaFilterInfo object to the propFilter list for a name search.
  • Syntax

    HRESULT GetOrigCollectionByProperty(
    MetaObjectVector &objectList,
    const MetaFilterInfoVector &propFilter,
    const MetaObjectKeyVector &sortList,
    const GUID &gRelID,
    const OBJECTID_t lRelID = NULLLOID,
    LPCTSTR strObjName = NULL,
    const bool WithLock = false)






    Reference to the list of CMetaObjects that will hold the collection returned. The list is cleared before adding the return collection.



    List of FilterInfo objects containing the property id and value to use to perform the search



    List of property identifiers (relative property id or name) to sort the collection by. The return list will be returned in ascending order and the sort will not be case specific.



    Relationship GUID.



    Relationship internal ID.



    Search string for names of objects in the class to be returned.



    WithLock=true keeps the class table locked for WRITE. Use within an explicit transaction. Set WithLock to true when one of the class objects will subsequently be updated within the transaction. This prevents deadlocks caused by Teradata promotional locks.