metamodel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kasper Sørensen <i.am.kasper.soren...@gmail.com>
Subject Re: Problem executing string-format queries
Date Tue, 02 Sep 2014 15:42:21 GMT
I agree and we have a similar need actually. So it needs to just work.
Surprised if it doesn't. Can you try to print the toSql method of the query?
Den 02/09/2014 17.36 skrev "Alberto Rodriguez" <ardlema@gmail.com>:

> Yes they both exist. I have created the query using the query builder and
> they work fine.
>
> CSV:
>
> val dataContext = DataContextFactory.createCsvDataContext(csvFile)
> val dataSet =
>
> dataContext.query().from(fileName).selectAll().where("name").eq("rojo").execute()
>
> JSON:
>
> val dataContext = DataContextFactory.createJsonDataContext(jsonFile)
> val dataSet =
> dataContext.query().from(fileName).selectAll().where("id").eq(1).execute()
>
> I am really interested in using the executeQuery method with a string query
> because I am developing a web application and I am getting the query
> directly from the user. It would be awesome if I could call the
> executeQuery method passing the string query.
>
> Best regards,
>
> Alberto
>
>
> 2014-09-02 17:19 GMT+02:00 Kasper Sørensen <i.am.kasper.sorensen@gmail.com
> >:
>
> > Can you verify (using getDefaultSchema, getTable(0), getColumnByName)
> that
> > these columns actually exist. If not a string query would not be parsed
> > properly. You could also be using the typed query builder to make it
> safer.
> > Den 02/09/2014 17.13 skrev "Alberto Rodriguez" <ardlema@gmail.com>:
> >
> > > Hi Hans,
> > >
> > > You are right my code snippet was not complete, here it is:
> > >
> > > val dataContext = DataContextFactory.createCsvDataContext(csvFile)
> > > val dataSet = dataContext.executeQuery("""SELECT * FROM testdata.csv
> > WHERE
> > > name='rojo'""")
> > >
> > > I have just tested the same with a JsonDataContext and getting the same
> > > exception:
> > >
> > > val fileName = "testdata.json"
> > > val jsonFile = new File(s"test/resources/$fileName")
> > > val dataContext = DataContextFactory.createJsonDataContext(jsonFile)
> > > val dataSet = dataContext.executeQuery("""SELECT * FROM testdata.json
> > WHERE
> > > id='1'""")
> > >
> > > I am afraid that you can only include 'WHERE' clauses within a
> > executeQuery
> > > method (with a string format query) using the JdbcDataContext.
> > >
> > > Kind regards,
> > >
> > > Alberto
> > >
> > >
> > > 2014-09-02 16:59 GMT+02:00 Hans Drexler <
> Hans.Drexler@humaninference.com
> > >:
> > >
> > > > Hi Alberto,
> > > >
> > > > I am not the biggest expert, but I think queries should work against
> > all
> > > > types of data contexts. That is one leading principle of MetaModel.
> > From
> > > > your code example, it seems the second code snippet (with the csv
> data
> > > > context) is not complete. There is not a complete query in it. Can
> you
> > > > double check your code and post? Maybe then we can help better.
> > > >
> > > > Kind regards,
> > > >
> > > > Hans Drexler
> > > >
> > > > -----Original Message-----
> > > > From: Alberto Rodriguez [mailto:ardlema@gmail.com]
> > > > Sent: Tuesday, September 02, 2014 4:54 PM
> > > > To: dev@metamodel.incubator.apache.org
> > > > Subject: Problem executing string-format queries
> > > >
> > > > Hi all,
> > > >
> > > > I have just come across your awesome library and am integrating it in
> > my
> > > > project.
> > > >
> > > > I have just written a couple of tests and noticed that I can execute
> a
> > > > string-format query against a JdbcDataContext whereas I am getting an
> > > > IllegarArgumentException ( Expression-based filters cannot be
> manually
> > > > evaluated) when I execute the same query using a CsvDataContext.
> > > >
> > > > This is working fine:
> > > >
> > > > val dataContext =
> DataContextFactory.createJdbcDataContext(connection)
> > > >         val dataSet = dataContext.executeQuery("""SELECT * FROM
> > > > public.data_sources WHERE TYPE='rest'""")
> > > >
> > > > This is returning the exception:
> > > >
> > > >  val dataContext = DataContextFactory.createCsvDataContext(csvFile)
> > > > WHERE name='rojo'""")
> > > >
> > > > Is there any way of executing string queries against all the
> > datacontext
> > > > types?
> > > >
> > > > Thank you!
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message