[
https://issues.apache.org/jira/browse/SOLR-10341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15938671#comment-15938671
]
Joel Bernstein commented on SOLR-10341:
---------------------------------------
Here is the list of manual tests that I run in both *facet* and *map_reduce*
mode, which all work. The test cases cover lots of different scenarios as well.
The avg function just slipped through the cracks:
{code}
select id from collection1 limit 10
select id, test_s from collection1 limit 10
select id, test_s, test_t from collection1 limit 10
select id, test_s, test_t, year_i from collection1 limit 10
select id, test_s, test_t, year_i, price_f from collection1 limit 10
select id, test_s, test_t, year_i, price_f, prod_ss from collection1 limit 10
select id, test_s, test_t, year_i, price_f, prod_ss from collection1 where
year_i > 36 limit 10
select id, test_s, test_t, year_i, price_f, prod_ss from collection1 where
year_i > 36 and year_i < 38 limit 10
select id, test_s, test_t, year_i, price_f, prod_ss from collection1 where
(year_i > 36 and year_i < 38) limit 10
select id, test_s, test_t, year_i, price_f, prod_ss from collection1 where
(year_i > 36 and year_i < 37) limit 10
select id, test_s, test_t, year_i, price_f, prod_ss from collection1 where
(year_i > 36 and year_i < 37) or id = '410005' limit 10
select id, test_s, test_t, year_i, price_f, prod_ss from collection1 where
(year_i > 36 and year_i < 38) order by price_f desc limit 10
select id, test_s, test_t, year_i, day_i, price_f, prod_ss from collection1
where (year_i > 36 and year_i < 38) order by day_i desc, price_f desc limit 10
select id, test_s, test_t as textField, year_i, day_i, price_f, prod_ss from
collection1 where (year_i > 36 and year_i < 38) order by day_i desc, price_f
desc limit 10
select id, test_s, test_t as textField, year_i, day_i as testday, price_f,
prod_ss from collection1 where (year_i > 36 and year_i < 38) order by testday
desc, price_f desc limit 10
select id, test_s, test_t as textField, year_i, day_i as `day`, price_f,
prod_ss from collection1 where (year_i > 36 and year_i < 38) order by `day`
desc, price_f desc limit 10
select count(*) from collection1
select count(*) as `count` from collection1
select count(*), min(day_i) from collection1
select count(*), min(day_i), max(day_i) from collection1
select count(*) as `count`, min(day_i) as min_day, max(day_i) as max_day from
collection1
select count(*) as `count`, min(day_i) as min_day, max(day_i) as max_day,
sum(month_i) as sum_month from collection1
select distinct year_i from collection1
select distinct year_i from collection1 where year_i > 10
select distinct year_i from collection1 where year_i > 10 order by year_i desc
select distinct year_i, month_i from collection1 where year_i > 30 order by
year_i asc, month_i asc
select distinct year_i, month_i from collection1 where year_i > 30 order by
year_i asc, month_i desc
select distinct year_i, month_i from collection1 where year_i > 30 order by
year_i desc, month_i desc
select distinct year_i, month_i, day_i from collection1 where year_i > 30 order
by year_i desc, month_i desc, day_i desc
select distinct year_i, month_i, day_i from collection1 where year_i > 30 order
by year_i desc, month_i desc, day_i desc limit 2000
select distinct year_i as `year`, month_i as `month`, day_i as `day` from
collection1 where year_i > 30 order by year_i desc, month_i desc, day_i desc
limit 2000
select id, score from collection1 where test_t='(hello world)' order by score
limit 500
select year_i, count(*) from collection1 group by year_i
select year_i, avg(month_i) from collection1 group by year_i
select year_i, count(*) as `count` from collection1 group by year_i
select year_i, count(*) as `count` from collection1 where year_i > 30 group by
year_i
select year_i, count(*) as `count` from collection1 where year_i > 30 group by
year_i having count(*) = 200183
select year_i, count(*) as `count` from collection1 group by year_i order by
count(*) desc
select year_i, count(*) from collection1 group by year_i order by year_i asc
select year_i, count(*) as `count`, min(day_i) as min_day , max(day_i) as
max_day from collection1 group by year_i
select year_i, month_i, count(*) as `count`, min(day_i) as min_day , max(day_i)
as max_day from collection1 group by year_i, month_i
select year_i, month_i, count(*) as `count`, sum(day_i) as sum_day ,
sum(month_i) as sum_month, max(price_f) as max_price from collection1 where
year_i >30 group by year_i, month_i order by sum(day_i) desc
{code}
> SQL AVG function mis-interprets field type.
> -------------------------------------------
>
> Key: SOLR-10341
> URL: https://issues.apache.org/jira/browse/SOLR-10341
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Components: Parallel SQL
> Affects Versions: 6.5
> Reporter: Timothy Potter
> Attachments: Screen Shot 2017-03-22 at 8.12.33 AM.png
>
>
> Using movielens data (users, movies, ratings), I tried the following SQL:
> {code}
> curl --data-urlencode "stmt=SELECT solr.title as title, avg(rating) as
> avg_rating FROM ratings INNER JOIN (select movie_id,title from movies where
> _query_='plot_txt_en:love') as solr ON ratings.movie_id = solr.movie_id GROUP
> BY title ORDER BY avg_rating DESC LIMIT 10"
> "http://localhost:8983/solr/movies/sql?aggregationMode=facet"
> {code}
> Solr returns this error:
> {code}
> {"result-set":{"docs":[{"EXCEPTION":"Failed to execute sqlQuery 'SELECT
> solr.title as title, avg(rating) as avg_rating FROM ratings INNER JOIN
> (select movie_id,title from movies where _query_='plot_txt_en:love') as solr
> ON ratings.movie_id = solr.movie_id GROUP BY title ORDER BY avg_rating DESC
> LIMIT 10' against JDBC connection 'jdbc:calcitesolr:'.\nError while executing
> SQL \"SELECT solr.title as title, avg(rating) as avg_rating FROM ratings
> INNER JOIN (select movie_id,title from movies where
> _query_='plot_txt_en:love') as solr ON ratings.movie_id = solr.movie_id GROUP
> BY title ORDER BY avg_rating DESC LIMIT 10\": From line 1, column 29 to line
> 1, column 39: Cannot apply 'AVG' to arguments of type 'AVG(<JAVATYPE(CLASS
> JAVA.LANG.STRING)>)'. Supported form(s):
> 'AVG(<NUMERIC>)'","EOF":true,"RESPONSE_TIME":92}]}}
> {code}
> rating is a TrieInt with docValues enabled.
> {code}
> <field name="rating" type="tint" docValues="true" multiValued="false"
> indexed="true" stored="true"/>
> {code}
> see screenshot
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]