Last modified: March 09, 2015

Applies to: Windows | Windows Server

The JET_TUPLELIMITS structure allows customization of the tuple index characteristics on a per-index basis, rather than a per-instance basis, using JetSetSystemParameter.

Windows Server 2003:  The JET_TUPLELIMITS structure is introduced in Windows Server 2003.

typedef struct tagJET_TUPLELIMITS {
  unsigned long chLengthMin;
  unsigned long chLengthMax;
  unsigned long chToIndexMax;
  unsigned long cchIncrement;
  unsigned long ichStart;



The minimum length of a tuple. The default value is 3.


The maximum length of a tuple. The default value is 10.


The maximum length of a string to index. For example, if a column is 100 characters long, and chToIndexMax is set to 60, then only the first 60 characters of the column will be indexed. The default value is 32767.


This allows the stride to be configured on a per index basis.

Windows Vista:  The cchIncrement member is introduced in Windows Vista. Prior to Windows Vista, the amount to shift the window (the "stride") was always 1, as is shown in the example in the remarks section.


The offset into the value to begin taking retrieving tuples from the value.

Windows Vista:  The ichStart member is introduced in Windows Vista.


A tuple index walks a string and indexes all of its possible substrings of chLengthMax. At the end of the string (or at position chToIndexMax, whichever occurs first), the substrings of at least chLengthMin will be indexed.

A tuple index can be used for searching strings with both leading and trailing wildcards.

Assuming a row with a text field of "RAIN IN SPAIN!", if a tuple index gets created with parameters chLengthMin=2, and chLengthMax=3, the following entries are created in the index:

"IN "
"N I"
" IN"
"IN "
"N S"
" SP"

Note that "IN " occurs twice, and that the last entry ("N!") is shorter than 3 (chLengthMax). Also note that the splitting algorithm is not aware of spaces or words, and treats all characters identically.

Windows XP:  Windows XP supports tuple indexes, but does not have JET_TUPLELIMITS. The database engine will used the default values (chLengthMin=3, chLengthMax=10, chToIndexMax=32767). It is still possible to change these values, but they are set on a per-instance basis using JetSetSystemParameter with JET_paramIndexTuplesLengthMin, JET_paramIndexTuplesLengthMax, and JET_paramIndexTuplesToIndexMax.



Requires Windows Vista.


Requires Windows Server 2008, Windows Server 2003.


Declared in Esent.h.

See Also