Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  To be completed.

Code Block
languagecpp
themeConfluence
EdmiError edmiDefinePersistentAttrHashTableBN(SdaiString  schemaName,
                                              SdaiString  entityName,
                                              SdaiString  attributeName, 
                                              SdaiOptions options,  
                                              SdaiInteger hashTableWidth,   
                                              SdaiInteger attrStringLength);

To increase search speed in the database, it is possible to define persistent hash tables. A hash table is a persistent data structure in the database that speeds up the search for instances of one entity in one schema via the value of one attribute. The hash table is created when a data model of the specified schema is created and it is maintained during the entire lifetime of the model or until it is deleted. If there exist a data model based on the specified schema when the hash table is defined, this model do not get a hash table. In this case the model must be exported to a STEP file, deleted and recreated from the STEP file. Likewise is not an attribute hash table of data model removed if the attribute hash table definition is removed from the underlying schema of the data model.

...

This function defines attribute hash table connected to the specified attribute in the specified schema.

...

The search in hash tables is done explicitly by the following edmi functions: edmiRemoteGetHashedAttrInstance, edmiRemoteGetHashedAttrInstanceBN, edmiRemoteGetHashedAttrInstances, edmiRemoteGetHashedAttrInstancesBN, edmiGetHashedAttrInstance, edmiGetHashedAttrInstanceBN, edmiGetHashedAttrInstances and edmiGetHashedAttrInstancesBN

...

Arguments

...

TypeNameComment
SdaiStringschemaNameSpecifies the name of EXPRESS schema to which the persistent attribute hash table is to be defined. This EXPRESS schema must exist as a dictionary model in the EDMdatabase. Schema names are case insensitive. Schema names are unique in an EDMdatabase.
SdaiString

entityName

Specifies the name of an entity in the schema <schemaName>. in which the persistent attribute hash table is to be defined. Entity names are case insensitive.

SdaiString

attributeName

Name of the attribute to which the persistent attribute hash table is to be defined.

SdaiOptions

options

A The <options> value should be specified as a bitwise OR between the options to enable. All options name are defined in the header file sdai.h .
See detailed descriptions of the available options below.

SdaiInteger

hashTableWidth

OptionalNumber of hash table entries. Future extension: in bytes.

SdaiInteger

attrStringLength

Optional. String length for [ FIXED_STRING_LENGTH].

Option Description

MULTIPLE_ATTRIBUTES

Only for EDM internal usage

MULTIPLE_ENTITIES

Only for EDM internal usage

ALL_ATTR_OCCURENCES

Only for EDM internal usage

Return Value

...

Insert excerpt
US:_r_EDMInterface
US:_r_EDMInterface
nopaneltrue

 

Options

...

  

OptionComment

DELETE_ATTRIBUTE_HASH_TABLE

If this option is used, the The existing hash table of the specified attribute is deleted. No new hash table is defined.

REDEFINE_ATTRIBUTE_HASH_TABLE

If this option is used, the The existing hash table of the specified attribute is deleted and a new hash table is defined.

SUBTYPES

Specifies that in addition to all instances of the type specified by the <entityName> <entityId> argument, all subtype instances of the specified type should be queried as well.

FIXED_STRING_LENGTH

If this option is used, the argument "Attribute The argument <Attribute (fixed) string length" length> is taken as the fixed string length of the attribute.

UNIQUE_ATTRIBUTE_VALUES

If this option is used it is checked EDM checks that the attribute is unique when a new instance is stored or an attribute is modified.

...

 

Example

...

 

Code Block
languagecpp
 <example>

 

See also

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
cqllabel = "model" and parent = "6062220"