Solved! Go to Solution.
There's "descriptive" and then there's "tediously long". Unfortunately, that naming scheme drifts into the latter category.
ArcSDE was ported to SQL-Server from Oracle, and needs to maintain a least common denominator on naming lengths across all RDBMS products.
The current constants used throughout ArcSDE code are:
#define SE_MAX_COLUMN_LEN 32 /* MAXIMUM COLUMN NAME LENGTH */ #define SE_MAX_TABLE_LEN 160 /* MAXIMUM TABLE NAME LENGTH */ #define SE_MAX_SCHEMA_TABLE_LEN 30 /* MAXIMUN TABLE 'ONLY' NAME LENGTH */ #define SE_MAX_ALIAS_LEN 32 /* MAXIMUM TABLE ALIAS LENGTH */ #define SE_MAX_ENTITY_LEN 256 /* MAXIMUM ENTITY TYPE LENGTH */ #define SE_MAX_HINT_LEN 1024/* MAXIMUM DBMS HINT LENGTH */ #define SE_MAX_SCHEMA_LEN 32 /* MAXIMUN SCHEMA NAME LENGTH */ #define SE_MAX_OWNER_LEN 32 /* MAXIMUM TABLE OWNER NAME LENGTH */ #define SE_MAX_INDEX_LEN 160 /* MAXIMUM INDEX NAME LENGTH */ #define SE_MAX_GROUP_LEN 128 /* MAXIMUM GROUP NAME LENGTH */ #define SE_MAX_COLUMNS 500 /* MAXIMUM NUMBER OF COLUMNS */ #define SE_MAX_ANNO_TEXT_LEN 255 /* MAXIMUM ANNOTATION TEXT LENGTH */ #define SE_MAX_VERSION_LEN 64 /* MAXIMUM VERSION NAME LENGTH */ #define SE_MAX_OSNAME_LEN 64 /* MAXIMUM OPERATING SYSTEM NAME LENGTH */ #define SE_MAX_OSVERSION_LEN 128 /* MAXIMUM OPERATING SYSTEM VERSION LENGTH */ #define SE_MAX_DBMSVERSION_LEN 128 /* MAXIMUM DATABASE VERSION LENGTH */ #define SE_MAX_VERSION_INPUT_LEN 62 /* MAXIMUM USER-SUPPLIED VERSION NAME LENGTH */ #define SE_MAX_OBJECT_NAME_LEN 160 /* MAXIMUM OBJECT NAME LENGTH */
In practice the limits are generally one space *less* than the _LEN value (to allow for a NUL
terminator) -- although this does not apply to SE_MAX_SCHEMA_TABLE_LEN.
- V
[Edited to format include file contents legibly]
There's "descriptive" and then there's "tediously long". Unfortunately, that naming scheme drifts into the latter category.
ArcSDE was ported to SQL-Server from Oracle, and needs to maintain a least common denominator on naming lengths across all RDBMS products.
The current constants used throughout ArcSDE code are:
#define SE_MAX_COLUMN_LEN 32 /* MAXIMUM COLUMN NAME LENGTH */ #define SE_MAX_TABLE_LEN 160 /* MAXIMUM TABLE NAME LENGTH */ #define SE_MAX_SCHEMA_TABLE_LEN 30 /* MAXIMUN TABLE 'ONLY' NAME LENGTH */ #define SE_MAX_ALIAS_LEN 32 /* MAXIMUM TABLE ALIAS LENGTH */ #define SE_MAX_ENTITY_LEN 256 /* MAXIMUM ENTITY TYPE LENGTH */ #define SE_MAX_HINT_LEN 1024/* MAXIMUM DBMS HINT LENGTH */ #define SE_MAX_SCHEMA_LEN 32 /* MAXIMUN SCHEMA NAME LENGTH */ #define SE_MAX_OWNER_LEN 32 /* MAXIMUM TABLE OWNER NAME LENGTH */ #define SE_MAX_INDEX_LEN 160 /* MAXIMUM INDEX NAME LENGTH */ #define SE_MAX_GROUP_LEN 128 /* MAXIMUM GROUP NAME LENGTH */ #define SE_MAX_COLUMNS 500 /* MAXIMUM NUMBER OF COLUMNS */ #define SE_MAX_ANNO_TEXT_LEN 255 /* MAXIMUM ANNOTATION TEXT LENGTH */ #define SE_MAX_VERSION_LEN 64 /* MAXIMUM VERSION NAME LENGTH */ #define SE_MAX_OSNAME_LEN 64 /* MAXIMUM OPERATING SYSTEM NAME LENGTH */ #define SE_MAX_OSVERSION_LEN 128 /* MAXIMUM OPERATING SYSTEM VERSION LENGTH */ #define SE_MAX_DBMSVERSION_LEN 128 /* MAXIMUM DATABASE VERSION LENGTH */ #define SE_MAX_VERSION_INPUT_LEN 62 /* MAXIMUM USER-SUPPLIED VERSION NAME LENGTH */ #define SE_MAX_OBJECT_NAME_LEN 160 /* MAXIMUM OBJECT NAME LENGTH */
In practice the limits are generally one space *less* than the _LEN value (to allow for a NUL
terminator) -- although this does not apply to SE_MAX_SCHEMA_TABLE_LEN.
- V
[Edited to format include file contents legibly]
Would it be possible for a developer to modify the SE_MAX_COLUMN_LEN to a greater amount?
No, that's an m4 macro constant in an include file (.h) within the source tree. Even if Esri still shipped the 'C' API, changing it in your install would have no effect on the Esri binaries (except where doing so corrupted structures, in which case it would have an effect -- bizarre segmentation violations and pointer alignment exceptions in your code).
- V