## Miscellaneous Properties

These properties do not fit nicely into a group, and are presented here.

tablespace
Similar to indexspace above. Sets a directory into which tables created will be placed. This property does not stay set across invocations. Default is empty string, which means the database directory.

datefmt
This is a strftime format used to format dates for conversion to character format. This will affect tsql, as well as attempts to retrieve dates in ASCII format. Although the features supported by different operating systems will vary, some of the more common format codes are:

%%
Output %
%a
abbreviated weekday name
%A
full weekday name
%b
abbreviated month name
%B
full month name
%c
local date and time representation
%d
day of month (01 - 31)
%D
date as %m/%d/%y
%e
day of month ( 1 - 31)
%H
Hour (00 - 23)
%I
Hour (01 - 12)
%j
day of year (001 - 366)
%m
month (01 - 12)
%M
Minute (00 - 59)
%p
AM/PM
%S
Seconds (00 - 59)
%U
Week number (beginning Sunday) (00-53)
%w
Week day (0-6) (0 is Sunday)
%W
Week number (beginning Monday) (00-53)
%x
local date representation
%X
local time representation
%y
two digit year (00 - 99)
%Y
Year with century
%Z
Time zone name

Default %Y-%m-%d %H:%M:%S, which can be restored by setting datefmt to an empty string. Note that in version 6.00.1300386000 20110317 and later, the stringformat() SQL function can be used to format dates (and other values) without needing to set a global property.

timezone
Change the default timezone that Texis will use. This should be formatted as for the TZ environment variable. For example for US Eastern time you should set timezone to EST5EDT. Some systems may allow alternate representations, such as US/Eastern, and if your operating system accepts them, so will Texis.

locale
Can be used to change the locale that Texis uses. This will impact the display of dates if using names, as well as the meaning of the character classes in REX expressions, so \alpha will be correct. Also with the correct locale set (and OS support), Metamorph will work case insensitively correctly (with mono-byte character sets and Texis version 5 or earlier; see textsearchmode for UTF-8/Unicode and version 6 or later support).

floatingpointfmt
A <strfmt>-style (including optional backslash escapes) format string for printing a single floating-point number (float or double), when converting to varchar/string.

The default of %g prints numbers with up to 6 digits of precision, and switches to exponential notation if the exponent is less than -4 or greater than or equal to 6. This is a compromise for the unknown range of numbers to be printed: it shows some precision, while minimizing length for very large, very small, or base10-rounded numbers.

However, this default format can lead to loss of precision, unwanted exponential notation, or both. In situations where the string conversion can be controlled by the programmer, a function that takes a format can be explicitly used, e.g. stringformat() in SQL or <strfmt> in Vortex. However, where the conversion is implicit or uncontrolled (e.g. SQL convert to varchar/strlst, Vortex user-function argument conversion to string), in most cases the floatingpointfmt format is automatically used by SQL/Vortex. Thus the format can be changed to a more useful value when a given situation warrants. The value should be appropriate for accepting a single numeric argument; invalid values may cause an error and be rejected. The value default will set the default value (%g).

Added in version 8.01.1653090141 20220520. Default is %g, which is also the (only) value in previous versions.

indirectcompat
Setting this to 1 sets compatibility with early versions of Texis as far as display of indirects go. If set to 1 a trailing @ is added to the end of the filename. Default 0.

indirectspace
Controls where indirects are created. The default location is a directory called indirects in the database directory. Texis will automatically create a directory structure under that directory to allow for efficient indirect access. At the top level there will be 16 directories, 0 through 9 and a through f. When you create the directory for indirects you can precreate these directories, or use them as mount points. You should make sure that the Texis user has permissions to the directories. Added in version 03.00.940520000

triggermode
This setting changes the way that the command is treated when creating a trigger. The default behavior is that the command will be executed with an extra arg, which is the filename of the table containing the records. If triggermode is set to 1 then the strings $db and $table are replaced by the database and table in that database containing the records. This allows any program which can access the database to retrieve the values in the table without custom coding.

paramchk
Enables or disables the checking of parameters in the SQL statement. By default it is enabled, which will cause any unset parameters to cause an error. If paramchk is set to 0 then unset parameters will not cause an error, and will be ignored. This lets a single complex query be given, yet parameter values need only be supplied for those clauses that should take effect on the query.

message,nomessage
Enable or disable messages from the SQL engine. The argument should be a comma separated list of messages that you want to enable or disable. The known messages are:
duplicate
Message Trying to insert duplicate value () in index when an attempt is made to insert a record which has a duplicate value and a unique index exists. The default is enabled.

varchartostrlstsep
The separator character or mode to use when converting a varchar string into a strlst list of strings in Texis. The default is set by the conf/texis.ini setting [Texis] Varchar To Strlst Sep (here); if that is not set, the "factory" built-in default is create in version 7 (or compatibilityversion 7) and later, or lastchar in version 6 (or compatibilityversion 6) and earlier.

A value of create indicates that the separator is to be created: the entire string is taken intact as the sole item for the resulting strlst, and a separator is created that is not present in the string (to aid re-conversion to varchar). This can be used in conjunction with Vortex's <sqlcp arrayconvert> setting to ensure that single-value as well as multi-value Vortex variables are converted consistently when inserted into a strlst column: single-value vars by varchartostrlstsep, multi-value by arrayconvert.

The value lastchar indicates that the last character in the source string should be the separator; e.g. "a,b,c," would be split on the comma and result in a strlst of 3 values: "a", "b" and "c".

varchartostrlstsep may also be a single byte character, in which case that character is used as the separator. This is useful for converting CSV-type strings e.g. "a,b,c" without having to modify the string and append the separator character first (i.e. for lastchar mode).

varchartostrlstsep may also be set to default to restore the default (conf/texis.ini) setting. It may also be set to builtindefault to restore the "factory" built-in default (which changes under compatibilityversion, see above); these values were added in version 5.01.1231553000 20090109. If no conf/texis.ini value is set, default is the same as builtindefault.

varchartostrlstsep was added in version 5.01.1226978000 20081117. See also the metamorphstrlstmode setting (here), which affects conversion of strlst values into Metamorph queries; and the convert SQL function (here), which in Texis version 7 and later can take a varchartostrlstsep mode argument. The compatibilityversion property (here), when set, affects varchartostrlstsep as well.

multivaluetomultirow
Whether to split multi-value fields (e.g. strlst) into multiple rows (e.g. of varchar) when appropriate, i.e. during GROUP BY or DISTINCT on such a field. If nonzero/true, a GROUP BY or DISTINCT on a strlst field will split the field into its varchar members for processing. For example, consider the following table:
create table test(Colors strlst);
insert into test(Colors)
values(convert('red,green,blue,', 'strlst', 'lastchar'));
insert into test(Colors)
values(convert('blue,orange,green,', 'strlst', 'lastchar'));
With multivaluetomultirow set true, the statement:
select count(Colors) Count, Colors from test group by Colors;
generates the following output:
Count       Colors
------------+------------+
2 blue
2 green
1 orange
1 red
Note that the strlst values have been split, allowing the two blue and green values to be counted individually. This also results in the returned Colors type being varchar instead of its declared strlst, and the sum of Count values being greater than the number of rows in the table. Note also that merely SELECTing a strlst will not cause it to be split: it must be specified in the GROUP BY or DISTINCT clause.

The multivaluetomultirow was added in version 5.01.1243980000 20090602. It currently only applies to strlst values and only to single-column GROUP BY or DISTINCT clauses. A system-wide default for this SQL setting can be set in conf/texis.ini with the [Texis] Multi Value To Multi Row setting. If unset, it defaults to true through version 6 (or compatibilityversion 6), and false in version 7 and later (because in general GROUP BY/DISTINCT are expected to return true table rows for results). The compatibilityversion property (here), when set, affects this property as well.

inmode
How the IN operator should behave. If set to subset, IN behaves like the SUBSET operator (here). If set to intersect, IN behaves like the INTERSECT operator (here). Added in version 7, where the default is subset. Note that in version 6 (or compatibilityversion 6) and earlier, IN always behaved in an INTERSECT-like manner. The compatibilityversion property (here), when set, affects this property as well.

hexifybytes

Whether conversion of byte to char (or vice-versa) should encode to (or decode from) hexadecimal. In Texis version 6 (or compatibilityversion 6) and earlier, this always occurred. In Texis version 7 (or compatibilityversion 7) and later, it is controllable with the hexifybytes SQL property: 0 for off/as-is, 1 for hexadecimal conversion. This property is on by default in tsql (i.e. hex conversion ala version 6 and earlier), so that SELECTing from certain system tables that contain byte columns will still be readable from the command line. However, the property is off by default in version 7 and later non-tsql programs (such as Vortex), to avoid the hassle of hex conversion when raw binary data is needed (e.g. images), and because Vortex etc. have more tools for dealing with binary data, obviating the need for hex conversion. (The hextobin() and bintohex() SQL functions may also be useful, here.) The hexifybytes property was added in version 7. It is also settable in the conf/texis.ini config file (here). The compatibilityversion property (here), when set, affects this property as well.

unalignedbufferwarning

Whether to issue "Unaligned buffer" warning messages when unaligned buffers are encountered in certain situations. Messages are issued if this setting is true/nonzero (the default). Added in version 7.00.1366400000 20130419.

unneededrexescapewarning

Whether to issue "REX: Unneeded escape sequence ..." warnings when a REX expression uses certain unneeded escapes. An unneeded escape is when a character is escaped that has no special meaning in the current context in REX, either alone or escaped. Such escapes are interpreted as just the literal character alone (respect-case); e.g "\w" has no special meaning in REX, and is taken as "w".

While such escapes have no meaning currently, some may take on a specific new meaning in a future Texis release, if REX syntax is expanded. Thus using them in an expression now may unexpectedly (and silently) result in their behavior changing after a Texis update; hence the warning message. Expressions using such escapes should thus have them changed to the unescaped literal character.

If updating the code is not feasible, the warning may be silenced by setting unneededrexescapewarning to 0 - at the risk of silent behavior change at an upgrade. Added in version 7.06.1465574000 20160610. Overrides [Texis] Unneeded REX Escape Warning setting (here) in conf/texis.ini.

nulloutputstring

The string value to output for SQL NULL values. The default is "NULL". Note that this is different than the output string for zero-integer date values, which are also shown as "NULL". Added in version 7.02.1405382000 20140714.

validatebtrees

Bit flags for additional consistency checks on B-trees. Added in version 7.04.1449078000 20151202. Overrides [Texis] Validate Btrees setting (here) in conf/texis.ini.