when profile is disconnected, only close editors when connection is required, such as routine editor; filter out result/return parameters in results view
diff --git a/plugins/org.eclipse.datatools.sqltools.editor.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.sqltools.editor.core/META-INF/MANIFEST.MF
index 62b0510..1422ee4 100644
--- a/plugins/org.eclipse.datatools.sqltools.editor.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.datatools.sqltools.editor.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Eclipse Data Tools Platform SQL Editor Core Plug-in
 Bundle-SymbolicName: org.eclipse.datatools.sqltools.editor.core;singleton:=true
-Bundle-Version: 1.0.0.200612141
+Bundle-Version: 1.0.0.200704051
 Bundle-Activator: org.eclipse.datatools.sqltools.core.EditorCorePlugin
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
@@ -41,6 +41,7 @@
  org.eclipse.datatools.sqltools.internal.core;x-internal:=true,
  org.eclipse.datatools.sqltools.launching,
  org.eclipse.datatools.sqltools.sql.identifier,
+ org.eclipse.datatools.sqltools.sql.updater,
  org.eclipse.datatools.sqltools.sql.util
 Bundle-Vendor: Eclipse.org
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/plugins/org.eclipse.datatools.sqltools.editor.core/build.properties b/plugins/org.eclipse.datatools.sqltools.editor.core/build.properties
index 00ac483..d093fa6 100644
--- a/plugins/org.eclipse.datatools.sqltools.editor.core/build.properties
+++ b/plugins/org.eclipse.datatools.sqltools.editor.core/build.properties
@@ -9,7 +9,7 @@
                about.html
 
 src.dir =		src/
-plugin.version =	1.0.0.200612141
+plugin.version =	1.0.0.200704051
 javadoc.dir =		doc/api/
 download.dir =		./download/
 javac.source =		1.4
diff --git a/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/DatabaseVendorDefinitionId.java b/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/DatabaseVendorDefinitionId.java
index 2e34ef5..0d2b1f8 100644
--- a/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/DatabaseVendorDefinitionId.java
+++ b/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/DatabaseVendorDefinitionId.java
@@ -13,7 +13,7 @@
 
 import java.util.Comparator;
 
-import org.eclipse.jface.util.Assert;
+import org.eclipse.core.runtime.Assert;
 
 /**
  * A class to uniquely identify a database definition, represented by product name and version.
@@ -154,7 +154,11 @@
      */
     public String toString()
     {
-        return _vendorName + "_" + _version;
+        if (_version != null && !_version.equals(""))
+        {
+            return _vendorName + "_" + _version;
+        }
+        return _vendorName;
     }
 
     /**
diff --git a/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/SQLDevToolsConfiguration.java b/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/SQLDevToolsConfiguration.java
index 9ab4383..21839ed 100644
--- a/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/SQLDevToolsConfiguration.java
+++ b/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/SQLDevToolsConfiguration.java
@@ -49,7 +49,7 @@
 	private static SQLDevToolsConfiguration _instance = new SQLDevToolsConfiguration();
 
 	protected SQLDevToolsConfiguration() {
-		_dbdefinitionId = new DatabaseVendorDefinitionId(Messages.DefaultDBFactory_vendor, Messages.DefaultDBFactory_version);
+		_dbdefinitionId = new DatabaseVendorDefinitionId(Messages.DefaultDBFactory_vendor, "");
 	}
 
 	public static SQLDevToolsConfiguration getDefaultInstance() {
diff --git a/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/SQLToolsFacade.java b/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/SQLToolsFacade.java
index 4caeda5..40db9aa 100644
--- a/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/SQLToolsFacade.java
+++ b/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/SQLToolsFacade.java
@@ -213,12 +213,25 @@
     	}
 		return defaultConfiguration;
     }
-    
+
+    /**
+     * Returns the DatabaseVendorDefinitionId which contributes to the sql dev tools framework as a default configuration.
+     * @return
+     */
     public static DatabaseVendorDefinitionId getDefaultDatabaseVendorDefinitionId()
     {
         return getDefaultConfiguration().getDatabaseVendorDefinitionId();
     }
     
+    /**
+     * Returns the DatabaseVendorDefinitionId which is not bind to any database
+     * @return
+     */
+    public static DatabaseVendorDefinitionId getNonSpecificDatabaseVendorDefinitionId()
+    {
+        return SQLDevToolsConfiguration.getDefaultInstance().getDatabaseVendorDefinitionId();
+    }
+    
     public static DatabaseVendorDefinitionId recognize(String product, String version)
     {
     	DatabaseVendorDefinitionId defaultId = getDefaultConfiguration().getDatabaseVendorDefinitionId();
diff --git a/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/services/SQLService.java b/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/services/SQLService.java
index 4692c0c..3034171 100644
--- a/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/services/SQLService.java
+++ b/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/services/SQLService.java
@@ -14,6 +14,8 @@
 
 import java.util.ArrayList;
 
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
 import org.eclipse.datatools.sqltools.core.EditorCorePlugin;
 import org.eclipse.datatools.sqltools.editor.template.GenericSQLContextType;
 import org.eclipse.datatools.sqltools.internal.core.Messages;
@@ -27,6 +29,7 @@
 import org.eclipse.datatools.sqltools.sql.parser.ast.IASTSQLStatementElement;
 import org.eclipse.datatools.sqltools.sql.parser.ast.IASTStart;
 import org.eclipse.datatools.sqltools.sql.parser.ast.Node;
+import org.eclipse.datatools.sqltools.sql.updater.ProceduralObjectSourceUpdater;
 import org.eclipse.jface.text.Document;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.osgi.util.NLS;
@@ -153,4 +156,13 @@
     {
     	return null;
     }
+    
+    /**
+     * Returns the ProceduralObjectSourceUpdater object used to update the source of the given sql object 
+     * @return
+     */
+    public ProceduralObjectSourceUpdater getProceduralObjectSourceUpdater(SQLObject object, DatabaseDefinition dbDefinition)
+    {
+        return null;
+    }
 }
diff --git a/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/sql/updater/ProceduralObjectSourceUpdater.java b/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/sql/updater/ProceduralObjectSourceUpdater.java
new file mode 100644
index 0000000..6d4f8ed
--- /dev/null
+++ b/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/sql/updater/ProceduralObjectSourceUpdater.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.sqltools.sql.updater;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.sqltools.core.DatabaseVendorDefinitionId;
+import org.eclipse.datatools.sqltools.core.SQLDevToolsConfiguration;
+import org.eclipse.datatools.sqltools.core.SQLToolsFacade;
+import org.eclipse.datatools.sqltools.sql.parser.ParserParameters;
+import org.eclipse.datatools.sqltools.sql.parser.ParsingResult;
+import org.eclipse.datatools.sqltools.sql.parser.SQLParser;
+import org.eclipse.datatools.sqltools.sql.parser.Token;
+import org.eclipse.datatools.sqltools.sql.parser.ast.IASTDeployable;
+import org.eclipse.datatools.sqltools.sql.parser.ast.IASTStart;
+import org.eclipse.datatools.sqltools.sql.parser.ast.Node;
+
+/**
+ * 
+ * @author Hui Cao
+ * 
+ */
+public abstract class ProceduralObjectSourceUpdater
+{
+    protected DatabaseDefinition _dbDefinition;
+    protected DatabaseVendorDefinitionId _dbDefinitionId;
+    protected SQLParser _parser;
+    protected SQLObject _routine = null;
+    protected ParserParameters _parserParameters;
+    
+    public ProceduralObjectSourceUpdater(SQLObject _object, DatabaseDefinition dbDefinition)
+    {
+        this._routine = _object;
+        _dbDefinition = dbDefinition;
+        _dbDefinitionId = new DatabaseVendorDefinitionId(_dbDefinition.getProduct(), _dbDefinition.getVersion());
+        SQLDevToolsConfiguration f = SQLToolsFacade.getConfigurationByVendorIdentifier(_dbDefinitionId);
+        _parser = f.getSQLService().getSQLParser();
+        _parserParameters = new ParserParameters(false);
+        _parserParameters.setProperty(ParserParameters.PARAM_HEADER_MODE, Boolean.TRUE);
+    }
+
+    /**
+     * Updates the source by giving it a new name
+     * @param newName should be quoted when necessary
+     * @return
+     */
+    public boolean updateName(String newName)
+    {
+        String body = getBody();
+        ParsingResult result = _parser.parse(body, _parserParameters);
+        IASTStart root = result.getRootNode();
+        for (int i = 0; i < root.jjtGetNumChildren(); i++)
+        {
+            Node node = root.jjtGetChild(i);
+            if (node instanceof IASTDeployable)
+            {
+                Node nameNode = ((IASTDeployable) node).getNameNode();
+                Token nameToken = nameNode.getLastToken();
+                int[] range = _parser.getRange(nameToken);
+                body = body.substring(0, range[0]) + newName + body.substring(range[1]);
+                setBody(body);
+                return true;
+            }
+        }
+    
+        return false;
+    }
+
+    public abstract String getBody();
+//    {
+//        if (_routine instanceof Routine)
+//        {
+//            return ((Routine)_routine).getSource().getBody();
+//        }
+//        else if (_routine instanceof Trigger)
+//        {
+//            SybaseDdlBuilderWrapper.getInstance().getTriggerBody((Trigger)_routine);
+//        }
+//        else if (_routine instanceof Event)
+//        {
+//            
+//        }
+//        return "";
+//    }
+    
+    public abstract void setBody(String body);
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.sqltools.routineeditor/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.sqltools.routineeditor/META-INF/MANIFEST.MF
index 791f94f..c383e5f 100644
--- a/plugins/org.eclipse.datatools.sqltools.routineeditor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.datatools.sqltools.routineeditor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Eclipse Data Tools Platform SQL Tools Routine Editor Plug-in
 Bundle-SymbolicName: org.eclipse.datatools.sqltools.routineeditor;singleton:=true
-Bundle-Version: 1.0.0.200612141
+Bundle-Version: 1.0.0.200704051
 Bundle-Activator: org.eclipse.datatools.sqltools.routineeditor.internal.RoutineEditorActivator
 Bundle-Vendor: Eclipse.org
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.datatools.sqltools.routineeditor/build.properties b/plugins/org.eclipse.datatools.sqltools.routineeditor/build.properties
index 5fdab74..967a317 100644
--- a/plugins/org.eclipse.datatools.sqltools.routineeditor/build.properties
+++ b/plugins/org.eclipse.datatools.sqltools.routineeditor/build.properties
@@ -8,7 +8,7 @@
                schema/,\
                icons/
 src.dir =		src/
-plugin.version =	1.0.0.200612141
+plugin.version =	1.0.0.200704051
 javadoc.dir =		doc/api/
 download.dir =		./download/
 javac.source =		1.4
diff --git a/plugins/org.eclipse.datatools.sqltools.routineeditor/src/org/eclipse/datatools/sqltools/routineeditor/result/CallableSQLResultRunnable.java b/plugins/org.eclipse.datatools.sqltools.routineeditor/src/org/eclipse/datatools/sqltools/routineeditor/result/CallableSQLResultRunnable.java
index ea38020..cc53db2 100644
--- a/plugins/org.eclipse.datatools.sqltools.routineeditor/src/org/eclipse/datatools/sqltools/routineeditor/result/CallableSQLResultRunnable.java
+++ b/plugins/org.eclipse.datatools.sqltools.routineeditor/src/org/eclipse/datatools/sqltools/routineeditor/result/CallableSQLResultRunnable.java
@@ -397,6 +397,11 @@
     	ArrayList params = new ArrayList();
     	for (int i = 0; i < pws.length; i++) {
     		ParameterDescriptor pd = pws[i].getParameterDescriptor();
+            //filter out result and return parameters
+            if (pd.getParmType() == DatabaseMetaData.procedureColumnResult || pd.getParmType() == DatabaseMetaData.procedureColumnReturn)
+            {
+                continue;
+            }
 			Parameter param = new Parameter(pd.getName(), pd.getParamTypeAsString(), pws[i].getInValue(), pd.getTypeName(), pws[i].getOutValue());
 			params.add(param);
 		}
diff --git a/plugins/org.eclipse.datatools.sqltools.sqleditor/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.sqltools.sqleditor/META-INF/MANIFEST.MF
index 52177e1..ee51267 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqleditor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.datatools.sqltools.sqleditor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Eclipse Data Tools Platform SQL Editor
 Bundle-SymbolicName: org.eclipse.datatools.sqltools.sqleditor; singleton:=true
-Bundle-Version: 1.0.0.200612141
+Bundle-Version: 1.0.0.200704051
 Bundle-Activator: org.eclipse.datatools.sqltools.sqleditor.internal.SQLEditorPlugin
 Bundle-Vendor: Eclipse.org
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.datatools.sqltools.sqleditor/build.properties b/plugins/org.eclipse.datatools.sqltools.sqleditor/build.properties
index 289e61d..77f21e2 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqleditor/build.properties
+++ b/plugins/org.eclipse.datatools.sqltools.sqleditor/build.properties
@@ -11,7 +11,7 @@
                META-INF/
                
 src.dir =		src/
-plugin.version =	1.0.0.200612141
+plugin.version =	1.0.0.200704051
 javadoc.dir =		doc/api/
 download.dir =		./download/
 javac.source =		1.4
diff --git a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/ISQLEditorInput.java b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/ISQLEditorInput.java
index c4bbc00..a88364d 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/ISQLEditorInput.java
+++ b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/ISQLEditorInput.java
@@ -23,4 +23,6 @@
     
     public ISQLEditorConnectionInfo getConnectionInfo();
     
+    public boolean isConnectionRequired();
+    
 }
diff --git a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/SQLEditorConnectionInfo.java b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/SQLEditorConnectionInfo.java
index bfc5bf7..84fe797 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/SQLEditorConnectionInfo.java
+++ b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/SQLEditorConnectionInfo.java
@@ -28,7 +28,7 @@
  */
 public class SQLEditorConnectionInfo implements ISQLEditorConnectionInfo {
 
-	public static ISQLEditorConnectionInfo DEFAULT_SQLEDITOR_CONNECTION_INFO = new SQLEditorConnectionInfo(SQLToolsFacade.getDefaultDatabaseVendorDefinitionId()); 
+	public static ISQLEditorConnectionInfo DEFAULT_SQLEDITOR_CONNECTION_INFO = new SQLEditorConnectionInfo(SQLToolsFacade.getNonSpecificDatabaseVendorDefinitionId()); 
 	private DatabaseVendorDefinitionId _dbVendorId = null;
 	private DatabaseVendorDefinition _dbVendor = null;
 	private String _profileName = null;
diff --git a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/SQLEditorStorageEditorInput.java b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/SQLEditorStorageEditorInput.java
index 8fe4d08..46125e9 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/SQLEditorStorageEditorInput.java
+++ b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/SQLEditorStorageEditorInput.java
@@ -190,4 +190,9 @@
         fStorage = storage;
     }
 
+    public boolean isConnectionRequired()
+    {
+        return false;
+    }
+
 } // end class
diff --git a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/internal/editor/SQLUpdater.java b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/internal/editor/SQLUpdater.java
index d94fbfd..8dbf307 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/internal/editor/SQLUpdater.java
+++ b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/internal/editor/SQLUpdater.java
@@ -16,6 +16,7 @@
 import java.util.Iterator;
 import java.util.Map;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceRuleFactory;
@@ -75,7 +76,8 @@
     private IResource          _resource;
     private String             _portableTarget         = "";
     private ArrayList          _staleAnnotations       = new ArrayList();
-	private ParsingResult _result;
+    private boolean            _remembered             = false;
+    private ParsingResult _result;
 	private boolean            _needToParse            = true;
 	
     /**
@@ -303,6 +305,7 @@
         //since we will always refresh the task markers each time we parse the sql text, there's no
         //need to persist them.
         marker.setAttribute(IMarker.TRANSIENT, true);
+        marker.setAttribute(IMarker.SOURCE_ID, getMarkerSourceId());
         Token errorToken = ex.currentToken.next;
         int start = 0;
         int end = 0;
@@ -362,10 +365,6 @@
         _input = input;
         _resource = input instanceof IFileEditorInput ? (IResource) ((IFileEditorInput) input).getFile()
             : (IResource) ResourcesPlugin.getWorkspace().getRoot();
-        if (_annotationModel != null)
-        {
-            removeMarkers();
-        }
         // the annotationModel is created in Editor.doSetInput(input) by the platform
         _annotationModel = _editor.getDocumentProvider().getAnnotationModel(input);
     }
@@ -402,6 +401,7 @@
                     }
                 }
             }
+            _remembered = true;
         }
     }
 
@@ -424,6 +424,11 @@
      */
     public void removeMarkers(boolean group)
     {
+        //if the document is not changed but the editor already contains syntax errors
+        if (!_remembered)
+        {
+            rememberAnnotations();
+        }
         if (group)
         {
             try
@@ -476,7 +481,41 @@
                 //after annotation is removed, it disappeared from the side bar
                 _annotationModel.removeAnnotation(anno);
             }
+            _remembered = false;
         }
+        try
+        {
+            if (_resource instanceof IFile)
+            {
+                _resource.deleteMarkers(EditorConstants.SYNTAX_MARKER_TYPE, false, IResource.DEPTH_ZERO);
+                _resource.deleteMarkers(EditorConstants.PORTABILITY_MARKER_TYPE, false, IResource.DEPTH_ZERO);
+            }
+            else
+            {
+                IMarker[] markers = _resource.findMarkers(EditorConstants.SYNTAX_MARKER_TYPE, false, IResource.DEPTH_ZERO);
+                String markerSourceId = getMarkerSourceId();
+                for (int i = 0; i < markers.length; i++)
+                {
+                    if (markerSourceId.equals(markers[i].getAttribute(IMarker.SOURCE_ID)))
+                    {
+                        markers[i].delete();
+                    }
+                }
+                markers = _resource.findMarkers(EditorConstants.PORTABILITY_MARKER_TYPE, false, IResource.DEPTH_ZERO);
+                for (int i = 0; i < markers.length; i++)
+                {
+                    if (markerSourceId.equals(markers[i].getAttribute(IMarker.SOURCE_ID)))
+                    {
+                        markers[i].delete();
+                    }
+                }
+            }
+        }
+        catch (CoreException e)
+        {
+            SQLEditorPlugin.getDefault().log(SQLEditorResources.SQLUpdater_error_removemarker, e); 
+        }
+        
     }
 
     /**
@@ -587,4 +626,9 @@
     {
         _needToParse = needToParse;
     }
+    
+    private String getMarkerSourceId()
+    {
+        return "SQLEditor:" + _editor.hashCode() + ":" + this.hashCode();
+    }
 }
diff --git a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/internal/utils/EditorUtil.java b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/internal/utils/EditorUtil.java
index 8a72734..f494bee 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/internal/utils/EditorUtil.java
+++ b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/internal/utils/EditorUtil.java
@@ -98,7 +98,7 @@
 				SQLEditorPlugin.getDefault().log(e);
 			}
 			//(external)file editors can be saved in disconnected mode
-            if (input instanceof ISQLEditorInput && !(input instanceof FileEditorInput || input instanceof ILocationProvider))
+            if (input instanceof ISQLEditorInput && ((ISQLEditorInput)input).isConnectionRequired())
             {
                 ISQLEditorInput sqlEditorInput = (ISQLEditorInput) input;
                 ISQLEditorConnectionInfo info = sqlEditorInput.getConnectionInfo();
diff --git a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/perspectives/EditorPerspective.java b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/perspectives/EditorPerspective.java
index 9f79adc..824893f 100644
--- a/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/perspectives/EditorPerspective.java
+++ b/plugins/org.eclipse.datatools.sqltools.sqleditor/src/org/eclipse/datatools/sqltools/sqleditor/perspectives/EditorPerspective.java
@@ -33,7 +33,7 @@
         //Left
         IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, 0.25f, editorArea);
         left.addView(EditorConstants.DATA_SOURCE_EXPLORER);
-        left.addView(IPageLayout.ID_RES_NAV);
+        //left.addView(IPageLayout.ID_RES_NAV);
 
         // Bottom 
         IFolderLayout bottom = layout.createFolder("bottom", IPageLayout.BOTTOM, 0.75f, editorArea);