Catalog of DML Nodes
Note
Indexing Service is no longer supported as of Windows XP and is unavailable for use as of Windows 8. Instead, use Windows Search for client side search and Microsoft Search Server Express for server side search.
This section summarizes all data manipulation language (DML) command nodes. For each node, the section describes the information stored within the node, its required and optional input types, and the types of the output produced by the node. This information represents a first step in defining the correct way to build OLE DB command trees.
The supported output types and minor types are listed in the form
output-type:minor-type
The minor type is not listed if it is not required by the operator. The following table lists the output-types and minor-types.
Output Type | output-type | minor-type | Description |
---|---|---|---|
Table¹ |
T |
O U OU H |
Ordered Unique Ordered unique Hierarchical |
Row |
R |
— |
— |
Scalar |
S |
AF BMK COL CON DEF EXP NUL PAR SF |
Aggregate function Bookmark Column Constant Default Expression NULL Parameter Scalar function |
Boolean |
B |
— |
— |
List anchor |
LA_CD LA_COL LA_CMD LA_FRM LA_IDX LA_PRJ LA_PRP LA_ROW LA_SC LA_SET LA_SRT |
— |
Column definition list anchor Column list anchor Command list anchor From list anchor Index list anchor Project list anchor Property list anchor Row list anchor Scalar list anchor Set list anchor Sort list anchor |
List element |
LE_CD LE_COL LE_CMD LE_FRM LE_IDX LE_PRJ LE_PRP LE_ROW LE_SC LE_SET LE_SRT |
— |
Column definition list element Column list element Command list element From list element Index list element Project list element Property list element Row list element Scalar list element Set list element Sort list element |
Catalog name |
CN |
— |
— |
Schema name |
SN |
— |
— |
Outall name |
ON |
— |
— |
Update operator |
U |
U D I |
Update operator Delete operator Insert operator |
Any legal output type |
Any |
— |
— |
1 UT, OT, and OUT imply T, but T does not imply UT, OT, and OUT. UT, OT, and OUT are specializations of T. UT and OT do not imply each other. OUT implies UT and OT. |
The following table contains a list of all supported DML nodes and their characteristics.
Node | DBVALUEKIND | R | O | Input Types | Output Types |
---|---|---|---|---|---|
alias |
pwszValue |
1 |
1 |
1st: T 2nd: LA_COL |
T |
allbits |
see anybits |
||||
allbits_all |
see anybits |
||||
allbits_any |
see anybits |
||||
and, or, xor, equivalent |
Node weight is stored as DBVALUEKIND_I4. |
2 |
N |
1st: B 2nd: B |
B |
anybits, allbits, anybits_any, allbits_any, anybits_all, allbits_all |
Node weight is store as DBVALUEKIND_I4. |
2 |
0 |
1st: S:COL 2nd: S |
B |
anybits_all |
see anybits |
||||
anybits_any |
see anybits |
||||
catalog_name |
Catalog name as: DBID, pwszValue, pMoniker |
0 |
0 |
CN |
|
column_list_anchor |
DBVALUEKIND_EMPTY |
0 |
N |
1st-nth: LE_COL |
LA_COL |
column_list_element |
pwszValue |
0 |
0 |
LE_COL |
|
column_name |
DBID, pwszValue, pMoniker, ulValue |
0 |
0 |
S:COL |
|
content, content_freetext |
DBCONTENT |
1 |
0 |
1st: S:COL |
B |
content_freetext |
see content |
||||
content_proximity |
DBCONTENTPROXIMITY |
2 |
n |
1st: content or content_freetext 2nd: content or content_freetext nth: Boolean expression formed from and, or, not, content_proximity, and content. |
B |
content_vector |
DBCONTENTVECTOR |
2 |
n |
1st: content or content_freetext 2nd: content or content_freetext nth: Boolean expression formed from and, or, not, content_proximity, content, and content_freetext |
B |
DEFAULT, NULL |
DBVALUEKIND_EMPTY |
0 |
0 |
S:DEF, S:NUL |
|
defined_by_GUID |
DBBYGUID |
* |
* |
* defined by implementation |
* |
equal, not_equal, less, less_equal, greater, greater_equal |
Node weight is stored as DBVALUEKIND_I4. |
2 |
0 |
B |
|
equal_all, not_equal_all, less_all, less_equal_all, greater_all, greater_equal_all, equal_any, not_equal_any, less_any, less_equal_any, greater_any, greater_equal_any |
Node weight is stored as DBVALUEKIND_I4. |
2 |
0 |
1st: S or R 2nd: T |
B |
equal_any |
see equal_all |
||||
greater |
see equal |
||||
greater_all |
see equal_all |
||||
greater_any |
see equal_all |
||||
greater_equal |
see equal |
||||
greater_equal_all |
see equal_all |
||||
greater_equal_any |
see equal_all |
||||
is_FALSE |
see is_INVALID |
||||
is_INVALID, is_TRUE, is_FALSE |
DBVALUEKIND_EMPTY |
1 |
0 |
1st: S |
B |
is_NOT_NULL |
see is_NULL |
||||
is_NULL, is_NOT_NULL |
DBVALUEKIND_EMPTY |
0 |
0 |
B |
|
is_TRUE |
see is_INVALID |
||||
less |
see equal |
||||
less_all |
see equal_all |
||||
less_any |
see equal_all |
||||
less_equal |
see equal |
||||
less_equal_all |
see equal_all |
||||
less_equal_any |
see equal_all |
||||
like |
DBLIKE |
2 |
0 |
1st: S 2nd: S |
B |
like_all |
see like_any |
||||
like_any, like_all |
DBVALUEKIND_EMPTY |
2 |
0 |
1st: S 2nd: T |
B |
nested_table_name |
Table name as: DBID, pwszValue, pMoniker |
0 |
1 |
1st: nested_table_name or table_name |
T:H |
not |
Node weight is stored as DBVALUEKIND_I4. |
1 |
0 |
1st: B |
B |
not_equal |
see equal |
||||
not_equal_all |
see equal_all |
||||
not_equal_any |
see equal_all |
||||
NULL |
see DEFAULT |
||||
or |
see and |
||||
outall_name |
DBVALUEKIND_EMPTY |
0 |
0 |
ON |
|
pass_through |
DBVALUEKIND_EMPTY |
1 |
0 |
1st: any tree input |
Any |
prior_command_tree |
DBVALUEKIND_EMPTY |
0 |
0 |
S or T |
|
project |
DBVALUEKIND_EMPTY |
2 |
0 |
1st: T 2nd: LA_PRJ |
T |
project_list_anchor |
DBVALUEKIND_EMPTY |
0 |
N |
1st-nth: LE_PRJ |
LA_PRJ |
project_list_element |
pwszValue |
1 |
0 |
1st: S, qualifier_name, or ON |
LE_PRJ |
project_order_preserving |
DBVALUEKIND_EMPTY |
2 |
0 |
1st: T or T:O 2nd: LA_PRJ |
T or T:O |
scalar_constant |
any value |
0 |
0 |
S:CON |
|
select |
DBVALUEKIND_EMPTY |
2 |
0 |
1st: T 2nd: B |
T |
sort |
DBVALUEKIND_EMPTY |
2 |
0 |
1st: T. 2nd: LA_SRT |
T:O |
sort_list_anchor |
DBVALUEKIND_EMPTY |
0 |
N |
1st-nth: LE_SRT |
LA_SRT |
table |
DBVALUEKIND_EMPTY |
1 |
0 |
1st: LAaROW |
T |
table_name |
Table name as: DBID, pwszValue, pMoniker |
0 |
1 |
1st: SN |
T |
top |
ulValue member contains the count of rows |
1 |
0 |
1st: T:O |
T:O |