我刚刚在SQL Server 2005中的表中添加一个索引,它让我思考。创建1个索引和定义多个列,每个列中有1个索引需要索引的区别是什么?
是否有某些理由为什么应该使用另一个?
例如
Create NonClustered Index IX_IndexName On TableName
(Column1 Asc, Column2 Asc, Column3 Asc)
与
Create NonClustered Index IX_IndexName1 On TableName
(Column1 Asc)
Create NonClustered Index IX_IndexName2 On TableName
(Column2 Asc)
Create NonClustered Index IX_IndexName3 On TableName
(Column3 Asc)
不幸的是clang_Cursor_isAnonymous
中的clang源代码中可以看到,只适用于结构和联合。工具/libclang/CXType.cpp
unsigned clang_Cursor_isAnonymous(CXCursor C){
if (!clang_isDeclaration(C.kind))
return 0;
const Decl *D = cxcursor::getCursorDecl(C);
if (const RecordDecl *FD = dyn_cast_or_null<RecordDecl>(D))
return FD->isAnonymousStructOrUnion();
return 0;
}
所以撤退到conf.lib.clang_Cursor_isAnonymous
在clang.cindex.Cursor.is_anonymous不做任何新的操作,因为游标类型已经在字段中被选中。[医]Decl(只适用于结构和联合)
def is_anonymous(self):
"""
Check if the record is anonymous.
"""
if self.kind == CursorKind.FIELD_DECL:
return self.type.get_declaration().is_anonymous()
return conf.lib.clang_Cursor_isAnonymous(self)
您可以尝试提取当前元素的标识符(n)并检查它是否存在或为空。