Parsing error with select in DataSourceServlet

65 views
Skip to first unread message

Julio Santa Cruz

unread,
Nov 2, 2009, 6:57:09 PM11/2/09
to Google Visualization API
Hi,
I'm implementing a more specific version of SqlDataSourceServlet.
Right now, the only difference is that I've hardcoded the database
parameters into the Servlet (instead of getting them from the request)
and make the servlet load the Mysql JDBC driver at startup.
If I call the Datasource without a select , it returns well. ie:

var query = new google.visualization.Query('http://localhost/mdata/
historic');
queryh.setQuery('where SKU="313');
queryh.send(drawHist);

but if I make a "select" query

queryh.setQuery('select Date , Price where SKU="313"');

the Servlet fails with an ugly error:

Nov 2, 2009 9:36:25 PM
com.google.visualization.datasource.query.parser.QueryBuilder
parseQuery
SEVERE: Parsing error: Encountered " "," ", "" at line 1, column
12.
Was expecting one
of:

<STRING_LITERAL> ...

<STRING_LITERAL> ...

<STRING_LITERAL> ...

<STRING_LITERAL> ...

<STRING_LITERAL> ...
<STRING_LITERAL> ...
and 20 more lines like those.

Evidently, the "," is the problem, because if i only make a query like
this:

queryh.setQuery('select Date where SKU="313"');

it works ok (but I need both columns to make an AnnotatedTimeLine).

Any clues why this is happening?
Below is my servlet class:

<code>
import javax.servlet.http.HttpServletRequest;

import com.google.visualization.datasource.Capabilities;
import com.google.visualization.datasource.DataSourceServlet;
import com.google.visualization.datasource.base.DataSourceException;
import com.google.visualization.datasource.datatable.DataTable;
import com.google.visualization.datasource.query.Query;
import com.google.visualization.datasource.util.SqlDataSourceHelper;
import
com.google.visualization.datasource.util.SqlDatabaseDescription;

public class HistoricServlet extends DataSourceServlet {

private static final long serialVersionUID = 1L;
public HistoricServlet() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}

@Override
public Capabilities getCapabilities() {
return Capabilities.SQL;
}

public DataTable generateDataTable(Query query, HttpServletRequest
request)
throws DataSourceException {

SqlDatabaseDescription dbDescription = new SqlDatabaseDescription(
"jdbc:mysql://localhost:3306/mybase",
"user",
"pass",
"Historic"
);
return SqlDataSourceHelper.executeQuery(query, dbDescription);
}
protected boolean isRestrictedAccessMode() {
return false;
}
}

</code>

Bug Chart

unread,
Nov 3, 2009, 3:24:17 AM11/3/09
to google-visua...@googlegroups.com
Hi,

it looks like it is failing for you because "Date" is a reserved word.

HTH

BugChart

Julio Santa Cruz

unread,
Nov 6, 2009, 2:06:12 PM11/6/09
to Google Visualization API
D'oh!!
Thanks!


On Nov 3, 5:24 am, Bug Chart <bugch...@google.com> wrote:
> Hi,
>
> it looks like it is failing for you because "Date" is a reserved word.
> Take a look here:http://code.google.com/apis/visualization/documentation/querylanguage...
>
> HTH
>
> BugChart
Reply all
Reply to author
Forward
0 new messages