These properties do not fit nicely into a group, and are presented here.
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.
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:
%%
%
%a
%A
%b
%B
%c
%d
%D
%m/%d/%y
%e
%H
%I
%j
%m
%M
%p
%S
%U
%w
%W
%x
%X
%y
%Y
%Z
%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.
EST5EDT
. Some systems
may allow alternate representations, such as US/Eastern
, and if
your operating system accepts them, so will Texis.
\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).
<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.
@
is added to the end of the filename. Default 0.
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.
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.
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 redNote 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 SELECT
ing 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.
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.
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 SELECT
ing 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.
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.
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.
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.
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
.