Monks,

I have a query below which is working fine in SQLite with DBD-SQLite-1.14 but when I am upgrading to DBD-SQLite-1.37 it is giving following error:

DBD::SQLite::db selectall_arrayref failed: aggregate functions are not + allowed in the GROUP BY clause
I have been searching for last two days why upgrading the DBD-SQLite is causing this query to fail.

The query is as below:

SELECT stat_day, obs_day, stat_week, obs_week, NULL AS stat_cputotal, +stat_memfree, stat_md5, stat_month, obs_month, stat_type, stat_memuse +d, stat_10min, obs_10min, NULL AS stat_cpusystem, stat_epoch, obs_epo +ch, stat_30day, obs_30day, stat_idx, obs_idx, NULL AS stat_cpuidle, s +tat_memtotal, stat_qtr, obs_qtr, NULL AS stat_cpuuser, stat_hour, obs +_hour, obs_10min, stat_10min, obs_30day, stat_30day, obs_day, stat_da +y, obs_epoch, stat_epoch, obs_hour, stat_hour, obs_idx, stat_idx, obs +_month, stat_month, obs_qtr, stat_qtr, obs_week, stat_week, serial_nu +m, NULL AS dputil_cpuid, NULL AS wms_pk FROM ((SELECT stat_qtr, obs_q +tr, stat_qtr AS cus_qtr, stat_qtr AS crash_qtr, stat_qtr AS evt_qtr, +stat_30day, obs_30day, stat_30day AS cus_30day, stat_30day AS crash_3 +0day, stat_30day AS evt_30day, stat_month, obs_month, stat_month AS c +us_month, stat_month AS crash_month, stat_month AS evt_month, stat_we +ek, obs_week, stat_week AS cus_week, stat_week AS crash_week, stat_we +ek AS evt_week, stat_day, obs_day, stat_day AS cus_day, stat_day AS c +rash_day, stat_day AS evt_day, stat_hour, obs_hour, stat_hour AS cus_ +hour, stat_hour AS crash_hour, stat_hour AS evt_hour, stat_10min, obs +_10min, stat_10min AS cus_10min, stat_10min AS crash_10min, stat_10mi +n AS evt_10min, stat_epoch, obs_epoch, stat_epoch AS cus_epoch, stat_ +epoch AS crash_epoch, stat_epoch AS evt_epoch, stat_idx, obs_idx, sta +t_idx AS cus_idx, stat_idx AS crash_idx, stat_idx AS evt_idx, obs_10m +in, obs_30day, obs_day, obs_epoch, obs_hour, obs_idx, obs_month, obs_ +qtr, obs_week, serial_num, stat_md5, MIN(stat_memfree) AS stat_memfre +e, MIN(stat_md5) AS stat_md5, MIN(stat_type) AS stat_type, MIN(stat_m +emused) AS stat_memused, MIN(stat_memtotal) AS stat_memtotal FROM (se +lect * from ( mem_stat NATURAL LEFT OUTER JOIN host )) GROUP BY stat_ +qtr, stat_30day, stat_month, stat_week, stat_day, stat_hour, stat_10m +in, stat_epoch, stat_idx, obs_10min, obs_30day, obs_day, obs_epoch, o +bs_hour, obs_idx, obs_month, obs_qtr, obs_week, serial_num, stat_md5) +)
I am using DBI-1.609 and SQLite v3.7.11.

Updating the question with new findings:

After installing SQLite v3.7.11, I tried reinstalling DBD-SQLite-1.14 from source. While running "perl Makefile.PL", it gave following message:
Checking installed SQLite version... SQLite version must be at least 3.3.9. No header file at that version or higher was found. Using the local version instead. Checking if your kit is complete... Looks good Multiple copies of Driver.xst found in: /usr/lib64/perl5/site_perl/5.8 +.8/x86_64-linux-thread-multi/auto/DBI/ /usr/lib64/perl5/vendor_perl/5 +.8.8/x86_64-linux-thread-multi/auto/DBI/ at Makefile.PL line 140 Using DBI 1.609 (for perl 5.008008 on x86_64-linux-thread-multi) insta +lled in /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/au +to/DBI/ Writing Makefile for DBD::SQLite
I went on and installed the DBD-SQLite-1.14. Then I ran the following code to check which sqlite version is being used by DBD-SQLite.
$dbh = DBI->connect("dbi:SQLite:dbname=myDB", "", ""); print $dbh->{sqlite_version};
And it showed version as 3.4.2

Why is it unable to detect the current sqlite version?

When I tried installing the DBD-SQLite-1.37, it detected the SQLite version successfully.

In reply to Error in query with DBD-SQLite-1.37 - Aggregate functions are not allowed in the GROUP BY clause. by saumitra121

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.