indexspace
is set to a non-default
value when a Metamorph index is being updated, the new index will be
stored in the new location.
'none'
, which suppresses the meter.
A value of 1 or 'simple'
prints a simple hash-mark meter
(with no tty control codes; suitable for redirection to a file and
reading by other processes). A value of 2 or 'percent'
or
'pct'
prints a hash-mark meter with a more detailed percentage
value (suitable for large indexes). Added in
version 4.00.998688241 Aug 24 2001.
A semicolon-separated list of processes to print a progress meter for. Syntax:
{process[=type]}|type [; ...]
A process is one of index
, compact
, or the catch-all
alias all
. A type is a progress meter type, one of
none
, simple
, percent
, on
(same as
simple
) or off
(same as none
). The default
type if not given is on
. E.g. to show a progress meter for
all meterable processes, simply set meter
to on
.
Added in version 6.00.1290500000 20101123.
\alnum{2,99}
. Note: Only the expressions set when the
index is initially created (i.e. the first CREATE METAMORPH
... statement - later statements are index updates) are saved.
Expressions set during an update (issuance of "create
metamorph [inverted] index" on an existent index) will not
be added.
addindextmp
dirs are specified, the default
list is the index's destination dir (e.g. database or indexspace
),
and the environment variables TMP
and TMPDIR
.
listindextmp
.
strlst
-type fields
are split, i.e. a separate (item,recid) tuple is stored for
each (varchar
) item in the strlst
, rather than just
one for the whole (strlst,recid) tuple. This allows the index to be
used for some set-like operators that look at individual items in a
strlst
, such as most IN
, SUBSET
(here) and INTERSECT
(here) queries.
If indexvalues
is set to all - or the index is not on
a strlst
field, or is on multiple fields - such splitting
does not occur, and the index can generally not be used for set-like
queries (with some exceptions; see here for
details).
Note that if index values are split (i.e. splitstrlst set and
index is one field which is strlst
), table rows with an empty
(zero-items) strlst
value will not be stored in the index.
This means that queries that require searching for or listing
empty-strlst
table values cannot use such an index. For
example, a subset query with a non-empty parameter on the right side
and a strlst
table column on the left side will not be able
to return empty-strlst
rows when using an index, even though
they match. Also, subset queries with an empty-strlst
or
empty-varchar
parameter (left or right side) must use an
indexvalues=all
index instead. Thus if empty-strlst
subset query parameters are a possibility, both types of index
splitstrlst and all) should be created.
As with stringcomparemode
, only the creation-time
indexvalues
value is ever used by an index, not the current
value, and the optimizer will attempt to choose the best index at
search time. The indexvalues
setting was added in Texis
version 7; previous versions effectively had indexvalues
set
to splitstrlst. Caveat: A version 6 Texis will issue
an error when encountering an indexvalues=all index (as it is
unimplemented in version 6), and will refuse to modify the index or
the table it is on. A version 5 or earlier Texis, however, may
silently corrupt an indexvalues=all index during table
modifications.
[Prefixingon=
|off=
][/dir/
]file
[.btr
]
on=
or off=
turns logging on or off,
respectively; the default (if no prefix) is on. Logging applies to
the named B-tree file; if a relative path is given, logging applies to
the named B-tree in any database accessed.
The logging status is also saved in the B-tree file itself, if the
index is opened for writing (e.g. at create or update). This means
that once logging is enabled and saved, every process that
accesses the B-tree will log operations, not just ones that have
btreelog
explicitly set. This is critical for debugging, as
every operation must be logged. Thus, btreelog
can just be set
once (e.g. at index create), without having to modify (and track down)
every script that might use the B-tree. Logging can be disabled
later, by setting "off=file
" and accessing the index for an
update.
Operations are logged to a text file with the same name as the
B-tree, but ending in ".log
" instead of ".btr
".
The columns in the log file are as follows; most are for tech
support analysis, and note that they may change in a future Texis release:
DBTBL
handleDBTBL.nireadl
)DBTBL.niwrite
)BTREE
handleopen
B-tree open: Recid is root page offsetcreate
B-tree createclose
B-tree closeRDroot
Read root pagedump
B-tree dumpWRhdr
Write B-tree header: Recid is root page offsetWRdd
Write data dictionary: Recid is DD
offset.
(Read DD
at open is not logged.)delete
Delete key: Recid is for the keyappend
Append keyinsert
Insert keysearch
Search for keyRDpage
Read page: Recid is for the pageWRpage
Write pageCRpage
Create pageFRpage
Free pageFRdbf
Free DBF block
ok
Successfail
Failuredup
Duplicate (e.g. duplicate insert into unique B-tree)hit
Search found the keymiss
Search did not find the key
B
Find beforeF
FindA
Find after
DBTBL.indguar
flag (1
if no
post-process needed)N
DBIDX_NATIVE
(bubble-up)M
DBIDX_MEMORY
(RAM B-tree)C
DBIDX_CACHE
(RAM cache)
D
OF_DESCENDING
I
OF_IGN_CASE
X
OF_DONT_CARE
E
OF_PREFER_END
S
OF_PREFER_START
Unavailable or not-applicable fields are logged with a dash. Note
that enabling logging can produce a large log file quickly; free disk
space should be monitored. The btreelog
setting was added in
version 5.01.1134028000 20051208.
Bits 0-15 define what to dump. Files are created that are named after the B-tree, with a different extension:
putmsg
about where dump file(s) are
.btree
file: Copy of in-mem BTREE
struct
.btrcopy
file: Copy of .btr
file
.cache
file: Page cache from BCACHE
, BPAGE
.his
file: History from BTRL
.core
file: fork()
and dump core
Bits 16+ define when to dump:
The files are for tech support analysis. Formats and bits subject to
change in future Texis releases. The btreedump
setting was added
in version 5.01.1131587000 20051109.
maxlinearrows
then the program will try to find more
indices to use. Once the result set is smaller than maxlinearrows
,
or all possible indices are exhausted, the records will be processed. The
default is 1000.
liker
. When searching for multiple terms with liker
and likep
one does not always want documents only containing a
very frequent term to be displayed. This sets the limit of what is
considered frequent. The default is 1000.
Word
column`), count of rows containing each word
(RowCount
), and - for Metamorph inverted indexes - count of
all hits in all rows (OccurrenceCount
) for each word will be
returned.
indexchunk
setting is deprecated and unused. In prior releases,
when creating a Metamorph index temporary files are
used which in the worst case can grow to twice the size of the data
being indexed. This process can be broken into stages, such that
after indexing a certain amount of data the temporary files are
processed, to generate a partial index, and then the process repeats
for the rest of the data. By default the amount of free disk space is
checked on startup, and used to calculate when it will need to perform
the processing step. If the system does not report free disk space
accurately, or to free more disk space, this value can be changed.
The default is 0, which automatically calculates a value. Otherwise
it is set to the number of bytes of data to index before processing
the temporary files. Lower values conserve disk space, at the expense
of more time to process intermediate files.
0x01
: Report successful removal of temporary/deleted
indexes/tables.0x02
: Report failed removal of such indexes/tables.0x04
: Report on in-use checks of temporary indexes/tables.
The default is 0 (i.e. no messages). Note that these cleanup actions may also be handled by the Database Monitor; see also the [Monitor] DB Cleanup Verbose setting in conf/texis.ini. Added in version 6.00.1339712000 20120614.
putmsg
s. Greater values
produce more messages. Note that the meaning of values, as well as
the messages printed, are subject to change without notice.
Aka traceindex
, traceidx
. Added
in version 3.00.942186316 19991109.
read()
. The value is a bitwise OR
of the following flags:
.dat
file
.tok
and .dat
files. The
default is 64KB; suffixes like "KB
" are respected. During
search, actual read block size could be less (if predicted) or more
(if blocks merged). Also used during index create/update. Decreasing
this size when creating large indexes can save memory (due to the
large number of intermediate files), at the potential expense of time.
Aka indexreadbufsize
. Added in version 4.00.1006398833
20011121.
KB
" are
respected. Aka indexwritebufsize
. Added in version
4.00.1007509154 20011204.
.dat
file, if it is
memory-mapped (see indexmmap
); it is ignored for the
.tok
file since the latter is heavily used and thus fully
mapped (if indexmmap
permits it). During index update,
indexmmapbufsz
is used for the .dat
file, if it is
memory-mapped; the .tok
file will be entirely memory-mapped if
it is smaller than this size, else it is read. Aka
indexmmapbufsize
. The default is 0, which uses 25% of RAM.
Added in version 3.01.959984092 20000602. In version 4.00.1007509154
20011204 and later, "KB
" etc. suffixes are allowed.
.dat
blocks into multiple calls, thus needing less buffer space. The
default is 1 (enabled); set to 0 to disable. Added in version
4.00.1015532186 20020307.
lseek
behavior. The default is
1 (enabled); set to 0 to disable. Added in version 5.01.1177548533
20070425.
indexslurp
is not possible. The
default is 1 (enabled); set to 0 to disable. Added in version
4.00.1011143988 20020115.
.btr
B-tree file (without needing a
.dat
entry). Single-recid-occurence words usually have their
data stored solely in the B-tree to save a .dat
access at
search time. However, if the word occurs many times in that single
recid, the data (for a Metamorph inverted index) may be large enough
to bloat the B-tree and thus negate the savings, so if the
single-recid word occurs more than indexmaxsingle
times, it is
stored in the .dat
. The default is 8.
KB
" etc.
are supported. Set to 0 to disable read buffering. Added in version
5.01.1177700467 20070427. Aka tablereadbufsize
.