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

#3473 Columns completion: add functions/procedures

上级 6dad4d19
...@@ -22,6 +22,7 @@ import org.jkiss.dbeaver.DBException; ...@@ -22,6 +22,7 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.*; import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.impl.DBObjectNameCaseTransformer; 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.navigator.DBNNode;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore; import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
...@@ -137,6 +138,22 @@ class SQLCompletionAnalyzer ...@@ -137,6 +138,22 @@ class SQLCompletionAnalyzer
makeDataSourceProposals(); 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 { } else {
// Get list of sub-objects (filtered by wordPart) // Get list of sub-objects (filtered by wordPart)
makeDataSourceProposals(); makeDataSourceProposals();
...@@ -328,7 +345,7 @@ class SQLCompletionAnalyzer ...@@ -328,7 +345,7 @@ class SQLCompletionAnalyzer
} }
} }
if (structureAssistant != null) { if (structureAssistant != null) {
makeProposalsFromAssistant(dataSource, structureAssistant, sc, lastToken); makeProposalsFromAssistant(dataSource, structureAssistant, sc, null, lastToken);
} }
} }
} }
...@@ -591,13 +608,14 @@ class SQLCompletionAnalyzer ...@@ -591,13 +608,14 @@ class SQLCompletionAnalyzer
DBPDataSource dataSource, DBPDataSource dataSource,
DBSStructureAssistant assistant, DBSStructureAssistant assistant,
@Nullable DBSObjectContainer rootSC, @Nullable DBSObjectContainer rootSC,
DBSObjectType[] objectTypes,
String objectName) String objectName)
{ {
try { try {
Collection<DBSObjectReference> references = assistant.findObjectsByMask( Collection<DBSObjectReference> references = assistant.findObjectsByMask(
monitor, monitor,
rootSC, rootSC,
assistant.getAutoCompleteObjectTypes(), objectTypes == null ? assistant.getAutoCompleteObjectTypes() : objectTypes,
makeObjectNameMask(dataSource, request.wordDetector.removeQuotes(objectName)), makeObjectNameMask(dataSource, request.wordDetector.removeQuotes(objectName)),
request.wordDetector.isQuoted(objectName), request.wordDetector.isQuoted(objectName),
dataSource.getContainer().getPreferenceStore().getBoolean(SQLPreferenceConstants.USE_GLOBAL_ASSISTANT), 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.
先完成此消息的编辑!
想要评论请 注册