[go: up one dir, main page]

Default value for $ZGBLDIR is the empty string

Final Release Note

If $ydb_gbldir and $gtmgbldir are both unset, or set to the empty string (""), YottaDB defaults the value of $ZGBLDIR to the empty string. Previously, it defaulted to "$PWD/$ydb_gbldir.gld" if they were both unset, or "$PWD/*.gld" if set to the empty string, which could result in undesirable side effects if GDE were run inadvertently. DSE FIND REGION '*' prints the complete path to the global directory. Previously, it just printed an empty string. [#999 (closed)]

Description

If $ydb_gbldir and $gtmgbldir are both unset, YottaDB forces a value to $ZGBLDIR that is a legal file name:

$ unset ydb_gbldir gtmgbldir ; yottadb -run %XCMD 'w $zg,!'
/home/ydbuser/$ydb_gbldir.gld
$ 

The potential issue with this is that if GDE is run inadvertently, it will actually create a global directory, and subsequent code might even use it to create a database and set global variables. It would be better to have the global directory default to the empty string, or /dev/null to avoid this. The workaround is ugly:

$ unset ydb_gbldir gtmgbldir ; ydb_gbldir=${ydb_gbldir:-"/dev/null"} yottadb -run %XCMD 'w $zg,!'
/dev/null.gld
$ 

Also, inside M, it would be desirable to allow $ZGBLDIR to be set to the empty string or /dev/null. The empty string is preferred, but if /dev/null` is acceptable.

Draft Release Note

If $ydb_gbldir and $gtmgbldir are both unset, YottaDB defaults the value of $ZGBLDIR to the empty string (""). Previously, it defaulted to $PWD/$ydb_gbldir.gld which could result in undesirable side effects if GDE were run inadvertently. The enhancement also allows $ZGBLDIR to be set inside YottaDB to the empty string. [#999 (closed)]

Edited by K.S. Bhaskar