Done.

Sergi

2017-05-23 13:48 GMT+03:00 Andrey Mashenkov <andrey.mashen...@gmail.com>:

> IGNITE-5252 [1] is ready for review.
> Sergi, would you please take a look at it?
>
> [1] https://issues.apache.org/jira/browse/IGNITE-5252
>
> On Sat, May 20, 2017 at 7:07 PM, Andrey Mashenkov <
> andrey.mashen...@gmail.com> wrote:
>
> > Dmitry,
> >
> > Here is a link ot ticket [1]
> >
> > [1] https://issues.apache.org/jira/browse/IGNITE-5252
> >
> > On Sat, May 20, 2017 at 1:00 AM, Dmitriy Setrakyan <
> dsetrak...@apache.org>
> > wrote:
> >
> >> I cannot find a ticket for it. Has it been filed?
> >>
> >> On Fri, May 19, 2017 at 12:38 AM, Vladimir Ozerov <voze...@gridgain.com
> >
> >> wrote:
> >>
> >> > Ah, got it. Then I am ok with the change as well.
> >> >
> >> > On Fri, May 19, 2017 at 9:24 AM, Sergi Vladykin <
> >> sergi.vlady...@gmail.com>
> >> > wrote:
> >> >
> >> > > Nope, the proposal was to have a FieldsQueryCursor interface with
> >> > > getFieldName(int column) method, may be + some other methods we will
> >> add
> >> > > later. This does not require any complex code modifications or
> >> exposing
> >> > > internal APIs.
> >> > >
> >> > > I'm not against new SQL API, it is a good idea, but it should not
> >> prevent
> >> > > us from making easy fixes in existing API when we need it.
> >> > >
> >> > > Sergi
> >> > >
> >> > > 2017-05-18 23:20 GMT+03:00 Vladimir Ozerov <voze...@gridgain.com>:
> >> > >
> >> > > > Proposal is about returning GridQueryFieldMetadata from
> QueryCursor,
> >> > > which
> >> > > > is internal interface. This interface is counterintuitive and is
> not
> >> > > ready
> >> > > > to be exposed to users. For example, it has method "typeName"
> which
> >> > > > actually returns table name. And has method "fieldTypeName" which
> >> > returns
> >> > > > something like "java.lang.Object". Add "type name" concept from
> our
> >> > > > BinaryConfiguration/QueryEntity, which have different semantics,
> >> and
> >> > you
> >> > > > end up with totally confused users on what "type name" means in
> >> Ignite.
> >> > > >
> >> > > > Let's do not expose strange things to users, and accurately create
> >> new
> >> > > > clean SQL API instead. There is no strong demand for this feature.
> >> > > >
> >> > > > On Thu, May 18, 2017 at 7:39 PM, Sergi Vladykin <
> >> > > sergi.vlady...@gmail.com>
> >> > > > wrote:
> >> > > >
> >> > > > > It should not require any internals movement, it must be an easy
> >> fix.
> >> > > > >
> >> > > > > Sergi
> >> > > > >
> >> > > > > 2017-05-18 15:36 GMT+03:00 Vladimir Ozerov <
> voze...@gridgain.com
> >> >:
> >> > > > >
> >> > > > > > With all the changes to internals we made, new API can be
> >> created
> >> > > very
> >> > > > > > quickly somewhere around AI 2.2 or AI 2.3. Currently the whole
> >> API
> >> > is
> >> > > > > > located in the wrong place, as it is bounded to cache. So the
> >> more
> >> > we
> >> > > > add
> >> > > > > > now, the more we will deprecate in several months. Remember,
> >> that
> >> > > this
> >> > > > > > feature will require not only new interface, but moving
> existing
> >> > > > > *internal*
> >> > > > > > metadata classes to public space. These classes were never
> >> designed
> >> > > to
> >> > > > be
> >> > > > > > exposed to users in the first place.
> >> > > > > >
> >> > > > > > This is why I am strongly against this change at the moment.
> No
> >> > need
> >> > > to
> >> > > > > > make already outdated and complex API even more complex
> without
> >> > > strong
> >> > > > > > demand from users.
> >> > > > > >
> >> > > > > > On Thu, May 18, 2017 at 3:29 PM, Pavel Tupitsyn <
> >> > > ptupit...@apache.org>
> >> > > > > > wrote:
> >> > > > > >
> >> > > > > > > I agree that this change makes sense.
> >> > > > > > > With complex queries it may be non-trivial to get the right
> >> > column
> >> > > by
> >> > > > > > index
> >> > > > > > > from results.
> >> > > > > > > With metadata user no longer needs to care about result
> column
> >> > > order,
> >> > > > > and
> >> > > > > > > refactorings are easier.
> >> > > > > > >
> >> > > > > > > Pavel
> >> > > > > > >
> >> > > > > > > On Thu, May 18, 2017 at 2:36 PM, Sergi Vladykin <
> >> > > > > > sergi.vlady...@gmail.com>
> >> > > > > > > wrote:
> >> > > > > > >
> >> > > > > > > > I believe we will not see this new SQL API soon. It is not
> >> even
> >> > > in
> >> > > > > > design
> >> > > > > > > > stage.
> >> > > > > > > >
> >> > > > > > > > The change proposed by Andrey is very simple and our users
> >> will
> >> > > > > benefit
> >> > > > > > > > from it right away.
> >> > > > > > > >
> >> > > > > > > > I see no reasons to disallow this change.
> >> > > > > > > >
> >> > > > > > > > Sergi
> >> > > > > > > >
> >> > > > > > > > 2017-05-18 12:35 GMT+03:00 Vladimir Ozerov <
> >> > voze...@gridgain.com
> >> > > >:
> >> > > > > > > >
> >> > > > > > > > > Result set metadata is exposed to JDBC and ODBC drivers
> >> > because
> >> > > > it
> >> > > > > is
> >> > > > > > > > > required by JDBC specification and lot's external
> >> > applications
> >> > > > use
> >> > > > > > it.
> >> > > > > > > I
> >> > > > > > > > do
> >> > > > > > > > > not see big demand for this feature in native SQL, where
> >> user
> >> > > > > > normally
> >> > > > > > > > > knows the model. Another point is that with changes
> >> > introduced
> >> > > in
> >> > > > > > > recent
> >> > > > > > > > > versions (DML, DDL, shared schemas), we need brand new
> >> native
> >> > > SQL
> >> > > > > > API,
> >> > > > > > > as
> >> > > > > > > > > current IgniteCache.query() cannot conveniently reflect
> >> > current
> >> > > > and
> >> > > > > > > > planned
> >> > > > > > > > > Ignite capabilities.
> >> > > > > > > > >
> >> > > > > > > > > For this reason I do not think we should do proposed
> >> change.
> >> > > > > Instead,
> >> > > > > > > we
> >> > > > > > > > > should add metadata retrieval to new SQL API.
> >> > > > > > > > >
> >> > > > > > > > > Vladimir.
> >> > > > > > > > >
> >> > > > > > > > > On Thu, May 18, 2017 at 12:19 PM, Andrey Mashenkov <
> >> > > > > > > > > andrey.mashen...@gmail.com> wrote:
> >> > > > > > > > >
> >> > > > > > > > > > Hi Igniters,
> >> > > > > > > > > >
> >> > > > > > > > > > When user run Sql query via JDBC, he can get fields
> >> > metadata
> >> > > > > (field
> >> > > > > > > > > names,
> >> > > > > > > > > > its types and etc.) from ResultSet.
> >> > > > > > > > > > With IgniteCache.query method he gets some QueryCursor
> >> > > > > > > implementation,
> >> > > > > > > > > but
> >> > > > > > > > > > QueryCursor interface doesn't have any methods for
> this.
> >> > > > > > > > > >
> >> > > > > > > > > > For now, the only way to get metadata is try to cast
> >> result
> >> > > to
> >> > > > > > > internal
> >> > > > > > > > > > QueryCursorImpl class.
> >> > > > > > > > > >
> >> > > > > > > > > > I think it should break nothing if we overload
> >> > > > > > > > > > IgniteCache.query(SqlFieldsQuery q) return type to a
> >> new
> >> > > > > > > > > FieldsQueryCursor
> >> > > > > > > > > > interface.
> >> > > > > > > > > > FieldsQueryCursor will be inherits from QueryCursor
> and
> >> > > provide
> >> > > > > > > > > additional
> >> > > > > > > > > > methods,
> >> > > > > > > > > >
> >> > > > > > > > > > Thoughts?
> >> > > > > > > > > >
> >> > > > > > > > > > --
> >> > > > > > > > > > Best regards,
> >> > > > > > > > > > Andrey V. Mashenkov
> >> > > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > >
> >> > > > > > >
> >> > > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> >
> >
> >
> > --
> > Best regards,
> > Andrey V. Mashenkov
> >
>
>
>
> --
> Best regards,
> Andrey V. Mashenkov
>

Reply via email to