Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 333351

Summary: Open "incorrect" file with SQL Query Builder - get org.eclipse.datatools.sqltools.parsers.sql.SQLParserException: Unable to parse the input: "SELECT *;".
Product: [Tools] Data Tools Reporter: Vitali Yemialyanchyk <vyemialyanchyk>
Component: SQL Query BuilderAssignee: dtp.sqldevtools-inbox <dtp.sqldevtools-inbox>
Status: RESOLVED INVALID QA Contact:
Severity: normal    
Priority: P3 CC: bpayton, vyemialyanchyk
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Vitali Yemialyanchyk CLA 2010-12-30 14:22:12 EST
Build Identifier: I20100608-0911

org.eclipse.datatools.sqltools.parsers.sql.SQLParserException: Unable to parse the input: "SELECT *;".
	at org.eclipse.datatools.sqltools.parsers.sql.AbstractSQLParser.parser(AbstractSQLParser.java:414)
	at org.eclipse.datatools.sqltools.parsers.sql.SQLParserManager.makeAST(SQLParserManager.java:437)
	at org.eclipse.datatools.sqltools.parsers.sql.SQLParserManager.parse(SQLParserManager.java:805)
	at org.eclipse.datatools.sqltools.parsers.sql.query.SQLQueryParserManager.parseQuery(SQLQueryParserManager.java:339)
	at org.eclipse.datatools.sqltools.sqlbuilder.model.SQLDomainModel.parse(SQLDomainModel.java:1015)
	at org.eclipse.datatools.sqltools.sqlbuilder.model.SQLDomainModel.initializeFromString(SQLDomainModel.java:423)
	at org.eclipse.datatools.sqltools.sqlbuilder.model.SQLDomainModel.openFileResource(SQLDomainModel.java:369)
	at org.eclipse.datatools.sqltools.sqlbuilder.SQLBuilder.loadInput(SQLBuilder.java:448)
	at org.eclipse.datatools.sqltools.sqlbuilder.SQLBuilder.setInput(SQLBuilder.java:416)
	at org.eclipse.datatools.sqltools.sqlbuilder.SQLBuilderEditor.init(SQLBuilderEditor.java:119)
	at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:798)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:647)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
	at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2863)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2768)
	at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2760)
	at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2711)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2707)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2691)
	at org.eclipse.ui.actions.OpenWithMenu.openEditor(OpenWithMenu.java:331)
	at org.eclipse.ui.actions.OpenWithMenu$2.handleEvent(OpenWithMenu.java:179)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Caused by: lpg.lpgjavaruntime.BadParseException
	at lpg.lpgjavaruntime.BacktrackingParser.parse(BacktrackingParser.java:142)
	at lpg.lpgjavaruntime.BacktrackingParser.parse(BacktrackingParser.java:100)
	at org.eclipse.datatools.sqltools.parsers.sql.AbstractSQLParser.parser(AbstractSQLParser.java:384)
	... 48 more


Reproducible: Always

Steps to Reproduce:
take a look here https://bugs.eclipse.org/bugs/show_bug.cgi?id=333350
1. http://min.us/mveKUIE - file on screenshot open with SQL Query Builder - get message box and exception
Comment 1 Brian Payton CLA 2011-01-05 17:17:13 EST
It's giving you correct output, since "SELECT *" is not valid SQL.  If you provide a complete SQL statement, the Builder should open on it.

By the way, the SQL Builder does support the incomplete statement "SELECT * FROM".
Comment 2 Brian Payton CLA 2011-01-05 17:26:38 EST
I should note that the SQL Builder allows the SQL fragment SELECT * FROM because that is one of the initial statement templates that it uses when starting a statement from scratch (along with INSERT INTO and other templates for the DML statements the SQL Builder supports).
Comment 3 Brian Payton CLA 2011-01-11 12:50:53 EST
Resolving as works as designed.