| Constructor and Description |
|---|
Option() |
| Modifier and Type | Method and Description |
|---|---|
void |
addExcludedProcedureName(String name) |
void |
addExcludedProcedureNames(String... names) |
void |
addExcludedProcedurePattern(String pattern)
Adds a wildcard pattern to exclude procedures from analysis.
|
void |
addExcludedProcedurePatterns(String... patterns)
Adds multiple wildcard patterns to exclude procedures from analysis.
|
Object |
clone() |
boolean |
containsResultSetType(ResultSetType type) |
void |
filterRelationTypes(String... types) |
AnalyzeMode |
getAnalyzeMode() |
int |
getCommentBindingMaxCommentsPerSourceUnit() |
int |
getCommentBindingMaxRawLength() |
int |
getCommentBindingMaxTotalRawLength() |
String |
getDefaultDatabase() |
String |
getDefaultSchema() |
String |
getDefaultServer() |
DynamicSqlTrustMode |
getDynamicSqlTrustMode()
Observation policy for incompletely materialized dynamic SQL.
|
long |
getEstimatedMemoryPerTaskMB() |
Set<String> |
getExcludedProcedureNames() |
Set<String> |
getExcludedProcedurePatterns() |
String |
getFilePathDatabase() |
String |
getFilePathSchema() |
Set<String> |
getFilterRelationTypes() |
DataFlowHandleListener |
getHandleListener() |
IdentifierProfile |
getIdentifierProfile()
The identifier configuration this analysis compares, normalizes and keys names under.
|
int |
getLargeFileSplitSizeMB() |
int |
getLargeQueryCountThreshold() |
int |
getLargeShardCountThreshold() |
int |
getLargeSqlInfoCountThreshold() |
long |
getLargeSqlThresholdBytes() |
double |
getLargeSqlThresholdMultiplier() |
long |
getLargeSqlTotalSizeThreshold() |
int |
getMaxPipelinedExpansionDepth() |
int |
getMaxStitchedSourcesPerColumn() |
int |
getParallel() |
EDbVendor |
getPowerQueryInnerVendor()
Explicit SQL dialect for the inner SQL embedded in Power Query
Value.NativeQuery() calls and for navigation-chain synthetic
SELECTs. |
Set<String> |
getSimpleShowRelationTypes() |
long |
getStartId() |
EDbVendor |
getVendor() |
boolean |
isAnalyzeDynamicSql()
Controls inner analysis of dynamic SQL text.
|
boolean |
isAssumeExternalScriptPassthrough() |
boolean |
isAutoDetectLargeFile() |
boolean |
isCollectAuthoritativeLineageEvidence() |
boolean |
isCollectCommentBindings()
Collect source comment occurrences without changing legacy comments or lineage.
|
boolean |
isDynamicSqlCaseSensitiveCompare() |
boolean |
isEnablePipelinedStitching() |
boolean |
isIdentityFirstVariablePools() |
boolean |
isIgnoreCoordinate() |
boolean |
isIgnoreInsertIntoValues() |
boolean |
isIgnoreRecordSet() |
boolean |
isIgnoreTemporaryTable() |
boolean |
isIgnoreTopSelect() |
boolean |
isIgnoreUnusedSynonym() |
boolean |
isLargeSql(String sql) |
boolean |
isLinkOrphanColumnToFirstTable() |
boolean |
isMssqlColonBindVariablesEnabled() |
boolean |
isNormalizeOutput() |
boolean |
isOutput() |
boolean |
isRecoverRoutineBodyErrors()
Recover T-SQL routines whose body holds statements the grammar rejects (see
TGSqlParser.setRecoverRoutineBodyErrors): the statements holding syntax errors are skipped and the
routine is analyzed with the rest of its body, instead of yielding no lineage at all. |
boolean |
isReportDynamicSqlSitesAsErrors() |
boolean |
isShowCallRelation() |
boolean |
isShowCandidateTable() |
boolean |
isShowCaseWhenAsDirect() |
boolean |
isShowComment()
Whether the comment a script author wrote against an object is carried into the output:
the leading comment of a procedure and of a package, and the comment on the statement
behind a call relationship.
|
boolean |
isShowConstantTable() |
boolean |
isShowCountTableColumn() |
boolean |
isShowERDiagram() |
boolean |
isShowImplicitSchema() |
boolean |
isShowJoin() |
boolean |
isSimpleOutput() |
boolean |
isSimpleRetainIntermediate() |
boolean |
isSimpleShowCursor() |
boolean |
isSimpleShowFunction() |
boolean |
isSimpleShowSynonym() |
boolean |
isSimpleShowTopSelectResultSet() |
boolean |
isSimpleShowUdfFunctionOnly() |
boolean |
isSimpleShowVariable() |
boolean |
isSqlflowIgnoreFunction() |
boolean |
isTextFormat() |
boolean |
isTraceProcedure() |
boolean |
isTraceSQL() |
boolean |
isTraceTablePosition() |
boolean |
isTransform() |
boolean |
isTransformCoordinate() |
void |
setAnalyzeDynamicSql(boolean analyzeDynamicSql) |
void |
setAnalyzeMode(AnalyzeMode analyzeMode) |
void |
setAssumeExternalScriptPassthrough(boolean assumeExternalScriptPassthrough) |
void |
setAutoDetectLargeFile(boolean autoDetectLargeFile) |
void |
setCollectAuthoritativeLineageEvidence(boolean collectAuthoritativeLineageEvidence) |
void |
setCollectCommentBindings(boolean value) |
void |
setCommentBindingMaxCommentsPerSourceUnit(int value) |
void |
setCommentBindingMaxRawLength(int value) |
void |
setCommentBindingMaxTotalRawLength(int value) |
void |
setDefaultDatabase(String defaultDatabase) |
void |
setDefaultSchema(String defaultSchema) |
void |
setDefaultServer(String defaultServer) |
void |
setDynamicSqlCaseSensitiveCompare(boolean dynamicSqlCaseSensitiveCompare) |
void |
setDynamicSqlTrustMode(DynamicSqlTrustMode dynamicSqlTrustMode) |
void |
setEnableMssqlColonBindVariables(boolean enabled) |
void |
setEnablePipelinedStitching(boolean enablePipelinedStitching) |
void |
setEstimatedMemoryPerTaskMB(long estimatedMemoryPerTaskMB) |
void |
setExcludedProcedureNames(Set<String> excludedProcedureNames) |
void |
setExcludedProcedurePatterns(Set<String> excludedProcedurePatterns) |
void |
setFilePathDatabase(String filePathDatabase) |
void |
setFilePathSchema(String filePathSchema) |
void |
setHandleListener(DataFlowHandleListener handleListener) |
void |
setIdentifierProfile(IdentifierProfile identifierProfile)
Configure how identifiers are compared for this analysis, per object category — for
example BigQuery table names compared case-insensitively while catalog, schema and column
keep their documented rules:
|
void |
setIdentityFirstVariablePools(boolean identityFirstVariablePools) |
void |
setIgnoreCoordinate(boolean ignoreCoordinate) |
void |
setIgnoreInsertIntoValues(boolean ignoreInsertIntoValues) |
void |
setIgnoreRecordSet(boolean ignoreRecordSet) |
void |
setIgnoreTemporaryTable(boolean ignoreTemporaryTable) |
void |
setIgnoreTopSelect(boolean ignoreTopSelect) |
void |
setIgnoreUnusedSynonym(boolean ignoreUnusedSynonym) |
void |
setLargeFileSplitSizeMB(int largeFileSplitSizeMB) |
void |
setLargeQueryCountThreshold(int largeQueryCountThreshold) |
void |
setLargeShardCountThreshold(int largeShardCountThreshold) |
void |
setLargeSqlInfoCountThreshold(int largeSqlInfoCountThreshold) |
void |
setLargeSqlThresholdMultiplier(double largeSqlThresholdMultiplier) |
void |
setLargeSqlTotalSizeThreshold(long largeSqlTotalSizeThreshold) |
void |
setLinkOrphanColumnToFirstTable(boolean linkOrphanColumnToFirstTable) |
void |
setMaxPipelinedExpansionDepth(int maxPipelinedExpansionDepth) |
void |
setMaxStitchedSourcesPerColumn(int maxStitchedSourcesPerColumn) |
void |
setNormalizeOutput(boolean normalizeOutput) |
void |
setOutput(boolean output) |
void |
setParallel(int parallel) |
void |
setPowerQueryInnerVendor(EDbVendor powerQueryInnerVendor) |
void |
setRecoverRoutineBodyErrors(boolean recoverRoutineBodyErrors) |
void |
setReportDynamicSqlSitesAsErrors(boolean reportDynamicSqlSitesAsErrors) |
void |
setShowCallRelation(boolean showCallRelation) |
void |
setShowCandidateTable(boolean showCandidateTable) |
void |
setShowCaseWhenAsDirect(boolean showCaseWhenAsDirect) |
void |
setShowComment(boolean showComment) |
void |
setShowConstantTable(boolean showConstantTable) |
void |
setShowCountTableColumn(boolean showCountTableColumn) |
void |
setShowERDiagram(boolean showERDiagram) |
void |
setShowImplicitSchema(boolean showImplicitSchema) |
void |
setShowJoin(boolean showJoin) |
void |
setSimpleOutput(boolean simpleOutput) |
void |
setSimpleRetainIntermediate(boolean simpleRetainIntermediate) |
void |
setSimpleShowCursor(boolean simpleShowCursor) |
void |
setSimpleShowFunction(boolean simpleShowFunction) |
void |
setSimpleShowRelationTypes(RelationshipType... types) |
void |
setSimpleShowRelationTypes(String... types) |
void |
setSimpleShowSynonym(boolean simpleShowSynonym) |
void |
setSimpleShowTopSelectResultSet(boolean simpleShowTopSelectResultSet) |
void |
setSimpleShowUdfFunctionOnly(boolean simpleShowUdfFunctionOnly) |
void |
setSimpleShowVariable(boolean simpleShowVariable) |
void |
setSqlflowIgnoreFunction(boolean sqlflowIgnoreFunction) |
void |
setStartId(long startId) |
void |
setTextFormat(boolean textFormat) |
void |
setTraceProcedure(boolean traceProcedure) |
void |
setTraceSQL(boolean traceSQL) |
void |
setTraceTablePosition(boolean traceTablePosition) |
void |
setTransform(boolean transform) |
void |
setTransformCoordinate(boolean transformCoordinate) |
void |
setVendor(EDbVendor vendor) |
void |
showResultSetTypes(ResultSetType... types) |
void |
showResultSetTypes(String... types) |
public Option()
public boolean isCollectCommentBindings()
public void setCollectCommentBindings(boolean value)
public int getCommentBindingMaxRawLength()
public void setCommentBindingMaxRawLength(int value)
public int getCommentBindingMaxCommentsPerSourceUnit()
public void setCommentBindingMaxCommentsPerSourceUnit(int value)
public int getCommentBindingMaxTotalRawLength()
public void setCommentBindingMaxTotalRawLength(int value)
public IdentifierProfile getIdentifierProfile()
public void setIdentifierProfile(IdentifierProfile identifierProfile)
Option option = new Option();
option.setVendor(EDbVendor.dbvbigquery);
option.setIdentifierProfile(IdentifierProfile.builder(EDbVendor.dbvbigquery)
.withObjectRules(ESQLDataObjectType.dotTable,
new IdentifierRules(CaseFold.NONE, CaseCompare.INSENSITIVE,
CaseFold.NONE, CaseCompare.INSENSITIVE))
.build());
new DataFlowAnalyzer(sql, option).generateDataFlow();
Set it BEFORE generateDataFlow(). The analyzer takes a snapshot at entry and the
whole run — catalog registration and lookup, the parser and resolver, lineage model keys and
output merging — uses that snapshot, so mutating this option mid-run changes nothing.
Two analyzers may run concurrently under opposite configurations.
This is the analysis assumption the CALLER states. GSP does not read it from a live
server, and CREATE SCHEMA ... OPTIONS(is_case_insensitive=...) in the script is
parsed but NOT interpreted as a configuration change.
identifierProfile - the configuration, or null for the vendor defaultpublic EDbVendor getPowerQueryInnerVendor()
Value.NativeQuery() calls and for navigation-chain synthetic
SELECTs. When set, this takes precedence over the connector-based
inference performed by TPowerQueryAnalyzer; when null
(default), inference is used.public void setPowerQueryInnerVendor(EDbVendor powerQueryInnerVendor)
public DataFlowHandleListener getHandleListener()
public void setHandleListener(DataFlowHandleListener handleListener)
public boolean isSimpleOutput()
public void setSimpleOutput(boolean simpleOutput)
public boolean isTextFormat()
public void setTextFormat(boolean textFormat)
public boolean isShowJoin()
public void setShowJoin(boolean showJoin)
public boolean isReportDynamicSqlSitesAsErrors()
public void setReportDynamicSqlSitesAsErrors(boolean reportDynamicSqlSitesAsErrors)
public DynamicSqlTrustMode getDynamicSqlTrustMode()
DynamicSqlTrustMode.LEGACY retains historical output. SHADOW keeps
the exact same model and adds incompleteness diagnostics.public void setDynamicSqlTrustMode(DynamicSqlTrustMode dynamicSqlTrustMode)
public boolean isAnalyzeDynamicSql()
public void setAnalyzeDynamicSql(boolean analyzeDynamicSql)
public boolean isDynamicSqlCaseSensitiveCompare()
public void setDynamicSqlCaseSensitiveCompare(boolean dynamicSqlCaseSensitiveCompare)
public boolean isRecoverRoutineBodyErrors()
TGSqlParser.setRecoverRoutineBodyErrors): the statements holding syntax errors are skipped and the
routine is analyzed with the rest of its body, instead of yielding no lineage at all. The skipped statements
are still reported as syntax errors. It applies to the analyzed SQL itself; SQL parsed on the way (dynamic SQL,
routines found elsewhere) is parsed as written. Off by default.public void setRecoverRoutineBodyErrors(boolean recoverRoutineBodyErrors)
public boolean isIgnoreRecordSet()
public void setIgnoreRecordSet(boolean ignoreRecordSet)
public boolean isLinkOrphanColumnToFirstTable()
public void setLinkOrphanColumnToFirstTable(boolean linkOrphanColumnToFirstTable)
public boolean isAssumeExternalScriptPassthrough()
public void setAssumeExternalScriptPassthrough(boolean assumeExternalScriptPassthrough)
public boolean isIgnoreCoordinate()
public void setIgnoreCoordinate(boolean ignoreCoordinate)
public boolean isTransform()
public void setTransform(boolean transform)
public boolean isTransformCoordinate()
public void setTransformCoordinate(boolean transformCoordinate)
public boolean isMssqlColonBindVariablesEnabled()
public void setEnableMssqlColonBindVariables(boolean enabled)
public boolean isCollectAuthoritativeLineageEvidence()
public void setCollectAuthoritativeLineageEvidence(boolean collectAuthoritativeLineageEvidence)
public boolean isSimpleShowFunction()
public void setSimpleShowFunction(boolean simpleShowFunction)
public boolean isSimpleShowSynonym()
public void setSimpleShowSynonym(boolean simpleShowSynonym)
public boolean isSimpleShowTopSelectResultSet()
public void setSimpleShowTopSelectResultSet(boolean simpleShowTopSelectResultSet)
public boolean isShowImplicitSchema()
public void setShowImplicitSchema(boolean showImplicitSchema)
public boolean isShowCountTableColumn()
public void setShowCountTableColumn(boolean showCountTableColumn)
public boolean isShowConstantTable()
public void setShowConstantTable(boolean showConstantTable)
public long getStartId()
public void setStartId(long startId)
public boolean isOutput()
public void setOutput(boolean output)
public int getParallel()
public void setParallel(int parallel)
public boolean isTraceSQL()
public boolean isShowComment()
Off by default, so output that consumers already parse does not grow a field. It is
separate from isTraceSQL() because a caller can want the author's label without
the SQL text and hash that tracing attaches. When tracing is on, relationship comments keep
the exact text they have always had; this option adds the blank-line-bounded comment
instead, which is the one that belongs to the statement rather than to the section above it.
public void setShowComment(boolean showComment)
public void setTraceSQL(boolean traceSQL)
public boolean isIgnoreTopSelect()
public void setIgnoreTopSelect(boolean ignoreTopSelect)
public void setShowCallRelation(boolean showCallRelation)
public boolean isShowCallRelation()
public String getFilePathDatabase()
public void setFilePathDatabase(String filePathDatabase)
public String getFilePathSchema()
public void setFilePathSchema(String filePathSchema)
public String getDefaultServer()
public void setDefaultServer(String defaultServer)
public String getDefaultDatabase()
public void setDefaultDatabase(String defaultDatabase)
public String getDefaultSchema()
public void setDefaultSchema(String defaultSchema)
public boolean isShowERDiagram()
public void setShowERDiagram(boolean showERDiagram)
public boolean isIgnoreTemporaryTable()
public void setIgnoreTemporaryTable(boolean ignoreTemporaryTable)
public void showResultSetTypes(ResultSetType... types)
public void showResultSetTypes(String... types)
public boolean containsResultSetType(ResultSetType type)
public Object clone() throws CloneNotSupportedException
clone in class ObjectCloneNotSupportedExceptionpublic void filterRelationTypes(String... types)
public Set<String> getFilterRelationTypes()
public boolean isSimpleShowCursor()
public void setSimpleShowCursor(boolean simpleShowCursor)
public boolean isSimpleShowVariable()
public void setSimpleShowVariable(boolean simpleShowVariable)
public boolean isSimpleRetainIntermediate()
public void setSimpleRetainIntermediate(boolean simpleRetainIntermediate)
public boolean isSimpleShowUdfFunctionOnly()
public void setSimpleShowUdfFunctionOnly(boolean simpleShowUdfFunctionOnly)
public boolean isTraceProcedure()
public void setTraceProcedure(boolean traceProcedure)
public boolean isSqlflowIgnoreFunction()
public void setSqlflowIgnoreFunction(boolean sqlflowIgnoreFunction)
public boolean isShowCaseWhenAsDirect()
public void setShowCaseWhenAsDirect(boolean showCaseWhenAsDirect)
public boolean isIgnoreUnusedSynonym()
public void setIgnoreUnusedSynonym(boolean ignoreUnusedSynonym)
public boolean isShowCandidateTable()
public void setShowCandidateTable(boolean showCandidateTable)
public Set<String> getSimpleShowRelationTypes()
public void setSimpleShowRelationTypes(String... types)
public void setSimpleShowRelationTypes(RelationshipType... types)
public AnalyzeMode getAnalyzeMode()
public void setAnalyzeMode(AnalyzeMode analyzeMode)
public boolean isIgnoreInsertIntoValues()
public void setIgnoreInsertIntoValues(boolean ignoreInsertIntoValues)
public boolean isNormalizeOutput()
public void setNormalizeOutput(boolean normalizeOutput)
public boolean isTraceTablePosition()
public void setTraceTablePosition(boolean traceTablePosition)
public boolean isEnablePipelinedStitching()
public boolean isIdentityFirstVariablePools()
public void setIdentityFirstVariablePools(boolean identityFirstVariablePools)
public void setEnablePipelinedStitching(boolean enablePipelinedStitching)
public int getMaxPipelinedExpansionDepth()
public void setMaxPipelinedExpansionDepth(int maxPipelinedExpansionDepth)
public int getMaxStitchedSourcesPerColumn()
public void setMaxStitchedSourcesPerColumn(int maxStitchedSourcesPerColumn)
public Set<String> getExcludedProcedureNames()
public void setExcludedProcedureNames(Set<String> excludedProcedureNames)
public void addExcludedProcedureName(String name)
public void addExcludedProcedureNames(String... names)
public Set<String> getExcludedProcedurePatterns()
excludedProcedurePatternspublic void setExcludedProcedurePatterns(Set<String> excludedProcedurePatterns)
excludedProcedurePatternspublic void addExcludedProcedurePattern(String pattern)
pattern - A wildcard pattern (e.g., "SCHEMA1.*", "*.SP_*", "*_TEST")excludedProcedurePatternspublic void addExcludedProcedurePatterns(String... patterns)
patterns - Variable number of wildcard patternsexcludedProcedurePatternspublic boolean isAutoDetectLargeFile()
public void setAutoDetectLargeFile(boolean autoDetectLargeFile)
public int getLargeSqlInfoCountThreshold()
public void setLargeSqlInfoCountThreshold(int largeSqlInfoCountThreshold)
public long getLargeSqlTotalSizeThreshold()
public void setLargeSqlTotalSizeThreshold(long largeSqlTotalSizeThreshold)
public int getLargeQueryCountThreshold()
public void setLargeQueryCountThreshold(int largeQueryCountThreshold)
public int getLargeShardCountThreshold()
public void setLargeShardCountThreshold(int largeShardCountThreshold)
public int getLargeFileSplitSizeMB()
public void setLargeFileSplitSizeMB(int largeFileSplitSizeMB)
public double getLargeSqlThresholdMultiplier()
public void setLargeSqlThresholdMultiplier(double largeSqlThresholdMultiplier)
public boolean isLargeSql(String sql)
public long getLargeSqlThresholdBytes()
public long getEstimatedMemoryPerTaskMB()
public void setEstimatedMemoryPerTaskMB(long estimatedMemoryPerTaskMB)