I'm not sure what exactly you are going to patch in SQL engine. We could
and some SQL function like enum('MY_ENUM_NAME') but probably it will not
work if we will not pass enum type there as well, so it have look like
enum('com.mycompany.MyEnum', 'MY_ENUM_NAME') which is ugly.Sergi On 23 июля 2016 г., 0:43, Valentin Kulichenko <[email protected] > wrote: > Folks, > > I noticed that we currently have a very weird limitation for enum fields > when running SQL queries. Basically, you can't use enum value names as many > users would expect. > > Technically this happens because binary format stores only ordinal and the > only way to run such query is to do something like this: > > SqlFieldsQuery qry = new SqlFieldsQuery("select * from Table where > enumField = ?"); > qry.setArgs(MyEnum.ENUM_VALUE); > cache.query(qry); > > This means that this query can be executed only if: > - IgniteCache API is used. So it doesn't work in JDBC driver, Zeppelin, > etc. > - The client that executes the query has the enum class on classpath. > > My first thought about fixing this is to somehow store value names in > binary metadata and patch the SQL engine so that it understands how to use > this information. > > Thoughts? > > -Val >
