提交 2adb0216 编写于 作者: S serge-rider

#3473 Columns completion: add functions/procedures

上级 6dad4d19
......@@ -22,6 +22,7 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.impl.DBObjectNameCaseTransformer;
import org.jkiss.dbeaver.model.impl.struct.RelationalObjectType;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
......@@ -137,6 +138,22 @@ class SQLCompletionAnalyzer
makeDataSourceProposals();
}
}
if (!request.simpleMode && request.queryType == SQLCompletionProcessor.QueryType.COLUMN && dataSource instanceof DBSObjectContainer) {
// Add procedures/functions for column proposals
DBSStructureAssistant structureAssistant = DBUtils.getAdapter(DBSStructureAssistant.class, dataSource);
DBSObjectContainer sc = (DBSObjectContainer) dataSource;
DBSObject selectedObject = DBUtils.getActiveInstanceObject(dataSource);
if (selectedObject instanceof DBSObjectContainer) {
sc = (DBSObjectContainer)selectedObject;
}
if (structureAssistant != null) {
makeProposalsFromAssistant(dataSource, structureAssistant,
sc,
new DBSObjectType[] {RelationalObjectType.TYPE_PROCEDURE },
request.wordPart);
}
}
} else {
// Get list of sub-objects (filtered by wordPart)
makeDataSourceProposals();
......@@ -328,7 +345,7 @@ class SQLCompletionAnalyzer
}
}
if (structureAssistant != null) {
makeProposalsFromAssistant(dataSource, structureAssistant, sc, lastToken);
makeProposalsFromAssistant(dataSource, structureAssistant, sc, null, lastToken);
}
}
}
......@@ -591,13 +608,14 @@ class SQLCompletionAnalyzer
DBPDataSource dataSource,
DBSStructureAssistant assistant,
@Nullable DBSObjectContainer rootSC,
DBSObjectType[] objectTypes,
String objectName)
{
try {
Collection<DBSObjectReference> references = assistant.findObjectsByMask(
monitor,
rootSC,
assistant.getAutoCompleteObjectTypes(),
objectTypes == null ? assistant.getAutoCompleteObjectTypes() : objectTypes,
makeObjectNameMask(dataSource, request.wordDetector.removeQuotes(objectName)),
request.wordDetector.isQuoted(objectName),
dataSource.getContainer().getPreferenceStore().getBoolean(SQLPreferenceConstants.USE_GLOBAL_ASSISTANT),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册