diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index 1c8a906c5..0a1346075 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -15,6 +15,16 @@

Changes made on the 3.15 branch since 3.15.4

+

dbStatic Library Cleanup

+ +

Loading of database files has been optimized to avoid overproportionally +long loading times for large databases. As a part of this, the alphabetical +ordering of records instances (within a record type) has been dropped. In the +unexpected case that applications were relying on the alphabetic order, setting +dbRecordsAbcSorted = 1 before loading the databases will retain the +old behavior.

+ +

Changes from the 3.14 branch since 3.15.4

diff --git a/src/ioc/dbStatic/dbLexRoutines.c b/src/ioc/dbStatic/dbLexRoutines.c index b9a1923d4..05edab618 100644 --- a/src/ioc/dbStatic/dbLexRoutines.c +++ b/src/ioc/dbStatic/dbLexRoutines.c @@ -50,6 +50,9 @@ epicsExportAddress(int,dbBptNotMonotonic); epicsShareDef int dbQuietMacroWarnings=0; epicsExportAddress(int,dbQuietMacroWarnings); +epicsShareDef int dbRecordsAbcSorted=0; +epicsExportAddress(int,dbRecordsAbcSorted); + /*private routines */ static void yyerrorAbort(char *str); static void allocTemp(void *pvoid); @@ -298,7 +301,7 @@ static long dbReadCOM(DBBASE **ppdbbase,const char *filename, FILE *fp, dbFinishEntry(pdbEntry); } cleanup: - { + if(dbRecordsAbcSorted) { ELLNODE *cur; for(cur = ellFirst(&pdbbase->recordTypeList); cur; cur=ellNext(cur)) {