Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-35270

Column ambiguously defined when adding users to cohort

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.3.1, 2.4
    • Fix Version/s: 2.3.3
    • Component/s: Cohorts
    • Labels:
      None

      Description

      When adding more than one user to a cohort (via CSV or directly from the form), the following error is displayed:

      Debug info: ORA-00918: column ambiguously defined
      SELECT e.*, r.id as roleexists
      FROM m2enrol e
      LEFT JOIN m2role r ON (r.id = e.roleid)
      WHERE customint1 = :o_cohortid AND enrol = 'cohort'
      ORDER BY id ASC
      [array (
      'o_cohortid' => '21',
      )]
      Error code: dmlreadexception
      Stack trace:
      line 407 of /lib/dml/moodle_database.php: dml_read_exception thrown
      line 274 of /lib/dml/oci_native_moodle_database.php: call to moodle_database->query_end()
      line 1101 of /lib/dml/oci_native_moodle_database.php: call to oci_native_moodle_database->query_end()
      line 56 of /enrol/cohort/locallib.php: call to oci_native_moodle_database->get_records_sql()
      line ? of unknownfile: call to enrol_cohort_handler::member_added()
      line 299 of /lib/eventslib.php: call to call_user_func()
      line 519 of /lib/eventslib.php: call to events_dispatch()
      line 142 of /cohort/lib.php: call to events_trigger()
      line 786 of /admin/tool/uploaduser/index.php: call to cohort_add_member()

      Database: Oracle

        Gliffy Diagrams

          Activity

          Hide
          sarjona Sara Arjona added a comment -

          To fix the problem it's necessary to edit the function member_added($ca) in the file enrol/cohort/locallib.php and modify the following SQL to specify the "ORDER BY" column (line 51):

          $sql = "SELECT e.*, r.id as roleexists
          FROM

          {enrol}

          e
          LEFT JOIN

          {role}

          r ON (r.id = e.roleid)
          WHERE customint1 = :cohortid AND enrol = 'cohort'
          ORDER BY e.id ASC";

          Show
          sarjona Sara Arjona added a comment - To fix the problem it's necessary to edit the function member_added($ca) in the file enrol/cohort/locallib.php and modify the following SQL to specify the "ORDER BY" column (line 51): $sql = "SELECT e.*, r.id as roleexists FROM {enrol} e LEFT JOIN {role} r ON (r.id = e.roleid) WHERE customint1 = :cohortid AND enrol = 'cohort' ORDER BY e.id ASC";
          Hide
          skodak Petr Skoda added a comment -

          Thanks for the report and patch.

          Show
          skodak Petr Skoda added a comment - Thanks for the report and patch.
          Hide
          stronk7 Eloy Lafuente (stronk7) added a comment -

          Integrated (23 and master), thanks!

          Show
          stronk7 Eloy Lafuente (stronk7) added a comment - Integrated (23 and master), thanks!
          Hide
          dmonllao David Monllaó added a comment -

          It passes, tested in master with Oracle 10g (10.2.0.1.0 express edition)

          Show
          dmonllao David Monllaó added a comment - It passes, tested in master with Oracle 10g (10.2.0.1.0 express edition)
          Hide
          stronk7 Eloy Lafuente (stronk7) added a comment -

          Gutta cavat lapidem, non vi sed saepe cadendo - Ovidio

          This issue has been integrated upstream and is now available both via git and cvs (and in some hours, via mirrors and downloads).

          Thanks!

          Show
          stronk7 Eloy Lafuente (stronk7) added a comment - Gutta cavat lapidem, non vi sed saepe cadendo - Ovidio This issue has been integrated upstream and is now available both via git and cvs (and in some hours, via mirrors and downloads). Thanks!

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Fix Release Date:
                12/Nov/12