| Package | Description |
|---|---|
| gudusoft.gsqlparser.dlineage.util | |
| gudusoft.gsqlparser.resolver2.matcher | |
| gudusoft.gsqlparser.sqlenv | |
| gudusoft.gsqlparser.sqlenv.catalog | |
| gudusoft.gsqlparser.util |
| Modifier and Type | Method and Description |
|---|---|
static boolean |
DlineageUtil.compareIdentifier(String source,
String target,
ESQLDataObjectType sqlDataObjectType) |
static String |
DlineageUtil.getIdentifierNormalName(String name,
ESQLDataObjectType sqlDataObjectType) |
| Modifier and Type | Method and Description |
|---|---|
ESQLDataObjectType |
VendorNameMatcher.getDefaultObjectType()
Get the default object type.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
VendorNameMatcher.matches(String name1,
String name2,
ESQLDataObjectType objectType)
Check if two names match according to vendor rules for a specific object type.
|
String |
VendorNameMatcher.normalize(String name,
ESQLDataObjectType objectType)
Normalize a name according to vendor rules for a specific object type.
|
String |
VendorNameMatcher.normalizeQualifiedName(String qualifiedName,
ESQLDataObjectType objectType)
Normalize a qualified name (e.g., schema.table.column).
|
VendorNameMatcher |
VendorNameMatcher.withObjectType(ESQLDataObjectType objectType)
Create a new matcher with a different default object type.
|
| Constructor and Description |
|---|
VendorNameMatcher(EDbVendor vendor,
ESQLDataObjectType defaultObjectType)
Create a vendor name matcher with specified default object type.
|
| Modifier and Type | Field and Description |
|---|---|
protected ESQLDataObjectType |
TSQLObject.dataObjectType |
ESQLDataObjectType |
NameKey.objectType |
ESQLDataObjectType |
QualifiedName.objectType |
| Modifier and Type | Method and Description |
|---|---|
ESQLDataObjectType |
TSQLObject.getDataObjectType()
Type of this database object
|
ESQLDataObjectType |
CatalogStore.QualifiedName.getType() |
static ESQLDataObjectType |
ESQLDataObjectType.valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static ESQLDataObjectType[] |
ESQLDataObjectType.values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
| Modifier and Type | Method and Description |
|---|---|
TSQLRoutine |
TSQLEnv.addSQLRoutine(String qualifiedProcedureName,
boolean fromDDL,
ESQLDataObjectType type) |
boolean |
IdentifierService.areEqual(String ident1,
String ident2,
ESQLDataObjectType objectType)
比较两个标识符是否相等
|
static boolean |
IdentifierService.areEqualStatic(EDbVendor dbVendor,
ESQLDataObjectType objectType,
String ident1,
String ident2)
High-performance static identifier comparison method with caching
|
void |
IdentifierService.assertSingleSegmentOrThrow(String identifier,
ESQLDataObjectType objectType)
断言标识符为单段,否则抛出异常
|
String |
IdentifierService.buildCompositeKey(List<String> segments,
ESQLDataObjectType objectType)
构造复合键(使用长度前缀编码避免冲突)
|
String |
CompositeKeyOptimizer.buildCompositeKey(String qualifiedName,
ESQLDataObjectType objectType)
构建复合键(使用长度前缀编码避免冲突)
|
String |
IdentifierService.buildCompositeKey(String qualifiedName,
ESQLDataObjectType objectType)
构造复合键(从完整限定名)
|
static String |
NameNormalizer.canonicalize(EDbVendor vendor,
ESQLDataObjectType type,
String identifier) |
static boolean |
TSQLEnv.compareIdentifier(EDbVendor dbVendor,
ESQLDataObjectType objectType,
String ident1,
String ident2) |
static boolean |
TSQLEnv.compareIdentifier(EDbVendor dbVendor,
ESQLDataObjectType objectType,
TObjectName source,
TObjectName target) |
boolean |
TSQLEnv.compareIdentifier(ESQLDataObjectType objectType,
String ident1,
String ident2) |
static int |
TSQLObject.compareTo(EDbVendor dbVendor,
ESQLDataObjectType sqlDataObjectType,
String pTargetObjectName,
String objectName)
Deprecated.
since version 2.2.3.2(2021-05-10), replaced by @TSQLEnv.compareIdentifier()
|
static int |
TSQLObject.compareTo(EDbVendor dbVendor,
ESQLDataObjectType sqlDataObjectType,
TSQLObject targetDataObject,
String objectName) |
static int |
TSQLObject.compareTo(TSQLEnv sqlEnv,
ESQLDataObjectType sqlDataObjectType,
TSQLObject targetDataObject,
String objectName)
how to compare the name of database object is various from different databases due to the different implementation.
|
TSQLProcedure |
TSQLSchema.createProcedure(String procedureName,
ESQLDataObjectType type) |
protected TSQLSchemaObject |
TSQLOraclePackage.createSchemaObject(String schemaObjectName,
ESQLDataObjectType dataObjectType) |
TSQLSchemaObject |
TSQLSchema.createSchemaObject(String schemaObjectName,
ESQLDataObjectType dataObjectType) |
protected TSQLSchemaObject |
TSQLOraclePackage.createSchemaObject(String schemaObjectName,
ESQLDataObjectType dataObjectType,
int priority) |
protected TSQLSchemaObject |
TSQLSchema.createSchemaObject(String schemaObjectName,
ESQLDataObjectType dataObjectType,
int priority) |
Set<String> |
NameService.createSet(ESQLDataObjectType type)
Creates a Set that uses vendor/type-aware name matching for equality.
|
List<String> |
NameService.distinctCopy(ESQLDataObjectType type,
Iterable<String> names)
Creates a distinct copy of a collection, removing duplicates using vendor/type-aware matching.
|
TSQLSchemaObject |
TSQLEnv.doAddSchemaObject(String qualifiedObjectName,
ESQLDataObjectType objectType) |
TSQLSchemaObject |
TSQLEnv.doAddSchemaObject(TObjectName qualifiedObjectName,
ESQLDataObjectType objectType) |
protected TSQLSchemaObject |
TSQLEnv.doSearchSchemaObject(String catalog,
String schema,
String table,
ESQLDataObjectType objectType) |
boolean |
NameService.equals(ESQLDataObjectType type,
String name1,
String name2)
Checks if two names are equal according to vendor-specific and type-specific rules.
|
TSQLSchemaObject |
HierarchicalResolver.findSchemaObject(TSQLEnv env,
String qualifiedName,
ESQLDataObjectType objectType)
查找 schema 对象(通用方法)
|
TSQLSchemaObject |
CompositeKeyOptimizer.get(String qualifiedName,
ESQLDataObjectType objectType)
从复合键索引查找对象
|
TSQLSchemaObject |
CatalogStore.get(String catalog,
String schema,
String objectName,
ESQLDataObjectType type)
Finds an object by its fully-qualified name and type.
|
List<TSQLSchemaObject> |
CatalogStore.getByName(String objectName,
ESQLDataObjectType type)
Finds objects by name only, regardless of catalog/schema.
|
Collection<TSQLSchemaObject> |
CatalogStore.getByType(ESQLDataObjectType type)
Finds all objects of a specific type.
|
SqlNameMatcher |
NamePolicyFactory.getMatcherForType(ESQLDataObjectType type)
Gets or creates a SqlNameMatcher for the specified object type.
|
IdentifierRules |
IdentifierProfile.getRules(ESQLDataObjectType objectType)
获取指定对象类型的标识符规则
|
int |
NameService.indexOf(ESQLDataObjectType type,
Iterable<String> names,
String target)
Finds the index of a name in a collection, using vendor/type-aware matching.
|
boolean |
NameService.isCaseSensitive(ESQLDataObjectType type)
Checks if a specific object type is case-sensitive for this vendor.
|
boolean |
NamePolicyFactory.isCaseSensitive(ESQLDataObjectType type)
Convenience method to check if a specific object type is case-sensitive
for this vendor.
|
String |
IdentifierService.keyForMap(String identifier,
ESQLDataObjectType objectType)
为 Map 索引构造键(单个标识符段)
|
static boolean |
TSQLEnv.matchSubObjectNameToWhole(EDbVendor dbVendor,
ESQLDataObjectType sqlDataObjectType,
String sub,
String whole)
比较 一个数据库对象名是否等于或者属于另一个对象
等于 就是完全相等(根据不同数据库的比较规则)
属于 表示如下情况:
1.
|
String |
IdentifierService.normalize(String identifier,
ESQLDataObjectType objectType)
规范化标识符(去引号 + 大小写折叠)
|
static String |
TSQLEnv.normalizeIdentifier(EDbVendor dbVendor,
ESQLDataObjectType sqlDataObjectType,
String identifier)
1.
|
String |
TSQLEnv.normalizeIdentifier(ESQLDataObjectType sqlDataObjectType,
String identifier) |
String |
IdentifierService.normalizeQualifiedName(String qualifiedName,
ESQLDataObjectType objectType)
规范化完整限定名(等价于 SQLUtil.getIdentifierNormalName)
|
String |
IdentifierService.normalizeSegment(String segment,
ESQLDataObjectType objectType)
规范化单个段(去引号 + 大小写折叠)
|
static String |
IdentifierService.normalizeStatic(EDbVendor dbVendor,
ESQLDataObjectType objectType,
String identifier)
High-performance static normalize method with caching
|
void |
CompositeKeyOptimizer.put(String qualifiedName,
ESQLDataObjectType objectType,
TSQLSchemaObject object)
添加对象到复合键索引
|
TSQLSchemaObject |
CompositeKeyOptimizer.remove(String qualifiedName,
ESQLDataObjectType objectType)
移除对象
|
TSQLSchemaObject |
TSQLEnv.searchSchemaObject(String qualifiedName,
ESQLDataObjectType objectType)
Phase 1: 使用 IdentifierService 的新方法处理多段名
|
protected TSQLSchemaObject |
TSQLEnv.searchSchemaObject(TObjectName qualifiedName,
ESQLDataObjectType objectType) |
void |
TSQLObject.setDataObjectType(ESQLDataObjectType dataObjectType) |
| Modifier and Type | Method and Description |
|---|---|
List<String> |
IdentifierService.keysForHierarchy(String qualifiedName,
List<ESQLDataObjectType> partTypes)
生成层级索引所需的段级键列表
|
| Constructor and Description |
|---|
BucketedIndex(CollatorProvider collatorProvider,
String collationName,
ESQLDataObjectType objectType)
构造分桶索引
|
NameKey(ESQLDataObjectType objectType,
String server,
String catalog,
String schema,
String object) |
QualifiedName(EDbVendor vendor,
String server,
String catalog,
String schema,
String object,
String column,
ESQLDataObjectType objectType) |
QualifiedName(String catalog,
String schema,
String objectName,
ESQLDataObjectType type) |
TSQLObject(TSQLEnv sqlEnv,
String objectName,
ESQLDataObjectType dataObjectType)
create a new database object and add to the SQL environment.
|
TSQLProcedure(TSQLOraclePackage oraclePackage,
String procedureName,
ESQLDataObjectType dataObjectType) |
TSQLProcedure(TSQLSchema sqlSchema,
String procedureName,
ESQLDataObjectType dataObjectType) |
TSQLRoutine(TSQLSchema schema,
String objectName,
ESQLDataObjectType dataObjectType) |
TSQLSchemaObject(TSQLSchema schema,
String objectName,
ESQLDataObjectType dataObjectType) |
TSQLSchemaObject(TSQLSchema schema,
String objectName,
ESQLDataObjectType dataObjectType,
int priority) |
| Modifier and Type | Method and Description |
|---|---|
TSQLSchemaObject |
LegacyCatalogProvider.findObject(String catalog,
String schema,
String objectName,
ESQLDataObjectType type) |
TSQLSchemaObject |
CatalogStoreProvider.findObject(String catalog,
String schema,
String objectName,
ESQLDataObjectType type) |
TSQLSchemaObject |
ICatalogProvider.findObject(String catalog,
String schema,
String objectName,
ESQLDataObjectType type)
查找 schema 对象(全限定名查找)
|
void |
DifferenceLogger.logNewSearchError(String catalog,
String schema,
String objectName,
ESQLDataObjectType type,
Throwable e)
记录新实现的 search 错误
|
void |
DifferenceLogger.logSearchDifference(String catalog,
String schema,
String objectName,
ESQLDataObjectType type,
TSQLSchemaObject legacyResult,
TSQLSchemaObject newResult)
记录搜索结果差异
|
void |
DifferenceLogger.logSearchMiss(String catalog,
String schema,
String objectName,
ESQLDataObjectType type)
记录搜索 miss(新实现未找到对象)
|
| Modifier and Type | Method and Description |
|---|---|
ESQLDataObjectType |
Identifier.getSqlDataObjectType() |
| Modifier and Type | Method and Description |
|---|---|
static boolean |
SQLUtil.compareIdentifier(EDbVendor dbVendor,
ESQLDataObjectType sqlDataObjectType,
String identifier1,
String identifier2) |
static String |
SQLUtil.getIdentifierNormalName(EDbVendor dbVendor,
String name,
ESQLDataObjectType sqlDataObjectType)
规范化多段限定名(Multi-Segment Qualified Name)并返回规范化后的完整限定名。
|
static String |
SQLUtil.normalizeIdentifier(EDbVendor dbVendor,
ESQLDataObjectType objectType,
String identifier) |
| Constructor and Description |
|---|
Identifier(EDbVendor vendor,
ESQLDataObjectType sqlDataObjectType,
String identifier) |