Having some fun with data definition format and apart from the awkward use of ON/OF it does look like the formatting it's pretty important, line breaks especially seem to break things and the definition file can't be imported.
Is there any place where the 'syntax' used in data definition file is documented?
For instance although data dictionary only let one to define the index as abbreviated if the last field is of character data type the "_field" system table has an abbreviated index on _file-recid+_field-name but also one on _field-name+_file-recid and for several abbreviated indexes in '_file' table the abbreviated keyword appears on one of the fields in the middle not the last one.
ADD INDEX "_File/Field" ON "_Field" AREA "Schema Area" UNIQUE PRIMARY INDEX-FIELD "_File-recid" ASCENDING INDEX-FIELD "_Field-Name" ASCENDING ABBREVIATED ADD INDEX "_Field-Name" ON "_Field" AREA "Schema Area" UNIQUE INDEX-FIELD "_Field-Name" ASCENDING ABBREVIATED INDEX-FIELD "_File-recid" ASCENDING ADD INDEX "_Db/File" ON "_File" AREA "Schema Area" UNIQUE INDEX-FIELD "_Db-recid" ASCENDING INDEX-FIELD "_File-Name" ASCENDING ABBREVIATED INDEX-FIELD "_Owner" ASCENDING ADD INDEX "_Dump-Name" ON "_File" AREA "Schema Area" UNIQUE INDEX-FIELD "_Db-recid" ASCENDING INDEX-FIELD "_Dump-name" ASCENDING ABBREVIATED INDEX-FIELD "_Owner" ASCENDING
As with all good code, the "documentation" is in the source code - see prodict/dump/_lodsddl.p
Thanks Stefan, that’s an easy to read documentation ;)
Link to a similar discussion sometime back: community.progress.com/.../18733
note that an abbreviated index is stored /exactly/ the same an index that is not abbreviated. the only difference is that the abbreviated flag in the index definition is set.
further, this is an obsolete feature that should not be used.
> further, this is an obsolete feature that should not be used.
Can you please elaborate Gus?
I guess there is not much to elaborate on, there isn’t actually any difference between a ‘regular’ and an ‘abbreviated’ index… it’s just some syntactic sugar added by the compiler and that just for a special case which I doubt its even used nowadays - USING phase in FIND statement, for an abbreviated fields the BEGIN operator is used instead of equality match - knowledgebase.progress.com/.../When-should-abbreviated-Indexes-be-used.
marian, you are correct. all those misc fields are used for various dataservers in the schema holder database definitions for them..