Dima,

H2's grammar for CREATE INDEX currently does not allow expressing all
that Ignite has in this field - say, I can't specify FULLTEXT index
types. (But, for clarity, I should also note that I don't see anything
else missing right away).

On the other hand, if we want to enhance indexes someday, H2 may not
be there to support our custom syntax.

All in all, I believe that the moment for messing the custom syntax
will no doubt come, sooner or later, and we can't avoid it forever. So
all our attempts to avoid messing with it now just delay the moment
when we will simply have no choice and will have to come up with
something quick and dirty in a rush and hurry.

Yes, Ignite mode for H2 probably could be a solution for parsing, but
we have to keep in mind that compatibility mode in H2 is more than
syntax. And H2 folks will not likely be happy with just bunch of
random syntax changes that are otherwise irrelevant to RDBMS and will
not be used by or implemented in H2 itself anyway.

- Alex

2017-01-30 4:18 GMT+03:00 Dmitriy Setrakyan <[email protected]>:
> On Fri, Jan 27, 2017 at 8:51 PM, Alexander Paschenko <
> [email protected]> wrote:
>
>> Guys,
>>
>> And what would you say if I suggested that we implement custom grammar
>> support with ANTLR? It allows you to describe pretty much any grammar
>> in a declarative way, generates lexer and parser and then allows to
>> easily process parsed commands by implementing few (generated)
>> interfaces. Yesterday I gave it a try and it's really simple.
>> Downsides are use of generated code itself (I'm pretty sure someone is
>> strongly against it) and relative wordiness of resulting code written
>> manually. But this approach will no doubt save time and allow any
>> extensions or changes in syntax in the future w/o worrying about H2 or
>> anyone 3rd party. Thoughts?
>>
>>
> Alex,
>
> My preference would be to keep it simple, without introducing any custom
> grammar, at least for the "CREATE INDEX" command. I understand the need for
> decoupling cache from schema, but it will take much longer to implement,
> and I would leave it for phase 2. In phase 1 we can focus on delivering
> this much needed feature to the community as soon as possible.
>
> Do you agree?
>
>
>> - Alex
>>
>> 2017-01-27 21:56 GMT+03:00 Vladimir Ozerov <[email protected]>:
>> > My point was that we can avoid dependency on 3rd party developers for
>> this
>> > relatively simple logic.
>> >
>> > On Fri, Jan 27, 2017 at 8:07 PM, Dmitriy Setrakyan <
>> [email protected]>
>> > wrote:
>> >
>> >> On Fri, Jan 27, 2017 at 5:45 AM, Sergi Vladykin <
>> [email protected]>
>> >> wrote:
>> >>
>> >> > H2 to some extent supports syntax (and quirks) from other databases.
>> For
>> >> > example you can start it with MODE=MySQL and it will allow some MySQL
>> >> > specific syntax to be handled.
>> >> >
>> >> > Having said that, IMO the most correct way to handle non-standard
>> syntax
>> >> is
>> >> > to introduce H2 MODE=ApacheIgnite and put the needed switches there.
>> >> >
>> >> > Though this needs to be negotiated with H2 folks.
>> >> >
>> >>
>> >> Sergi, can you ask the H2 folks about this? I agree, this sounds like
>> the
>> >> most correct way.
>> >>
>>

Reply via email to