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

Assignment override query failing on oracle

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide
      1. Run the following mod_assign Behat test on MySQL, PostgreSQL, MSSQL, and Oracle:

        php admin/tool/behat/cli/run.php --feature="/path/to/moodle/mod/assign/tests/behat/steps_blind_marking.feature"
        

        • Confirm that you don't encounter any SQL-related errors.
      Bonus:
      1. Run also using the other feature files on the databases listed above:
        • mod/assign/tests/behat/assign_course_reset.feature
        • mod/assign/tests/behat/assign_group_override.feature
        • mod/assign/tests/behat/assign_user_override.feature
      2. Confirm that everything passes
      Show
      Run the following mod_assign Behat test on MySQL, PostgreSQL, MSSQL, and Oracle: php admin/tool/behat/cli/run.php --feature="/path/to/moodle/mod/assign/tests/behat/steps_blind_marking.feature" Confirm that you don't encounter any SQL-related errors. Bonus: Run also using the other feature files on the databases listed above: mod/assign/tests/behat/assign_course_reset.feature mod/assign/tests/behat/assign_group_override.feature mod/assign/tests/behat/assign_user_override.feature Confirm that everything passes
    • Affected Branches:
      MOODLE_33_STABLE
    • Fixed Branches:
      MOODLE_32_STABLE
    • Pull Master Branch:
      MDL-58780-master

      Description

      002 Scenario: Submissions table visible with overrides and blind marking      # /var/www/html/mod/assign/tests/behat/steps_blind_marking.feature:117
            And I navigate to "View all submissions" in current page administration # /var/www/html/mod/assign/tests/behat/steps_blind_marking.feature:132
              Moodle exception: Error reading from database More information about this error
              
                  
              ×
                  
              Debug info:
               ORA-00907: missing right parenthesis
              SELECT COUNT(1) FROM b_user u
                                       LEFT JOIN b_assign_submission s
                                              ON u.id = s.userid
                                             AND s.assignment = :o_assignmentid1
                                             AND s.latest = 1
                                       LEFT JOIN b_assign_grades g
                                              ON u.id = g.userid
                                             AND g.assignment = :o_assignmentid2 AND g.attemptnumber = s.attemptnumber LEFT JOIN b_assign_user_flags uf
                                       ON u.id = uf.userid
                                      AND uf.assignment = :o_assignmentid3  LEFT JOIN (
                             SELECT merged.userid, min(merged.priority) priority FROM (
                                ( SELECT u.id as userid, 9999999 AS priority
                                    FROM b_user u
                                )
                                UNION
                                ( SELECT uo.userid, 0 AS priority
                                    FROM b_assign_overrides uo
                                   WHERE uo.assignid = :o_assignmentid5
                                )
                                UNION
                                ( SELECT gm.userid, go.sortorder AS priority
                                    FROM b_assign_overrides go
                                    JOIN b_groups g ON g.id = go.groupid
                                    JOIN b_groups_members gm ON gm.groupid = g.id
                                   WHERE go.assignid = :o_assignmentid6
                                )
                              ) AS merged
                              GROUP BY merged.userid
                            ) priority ON priority.userid = u.id
                          JOIN (
                            (SELECT 9999999 AS priority,
                                    u.id AS userid,
                                    a.allowsubmissionsfromdate,
                                    a.duedate,
                                    a.cutoffdate
                               FROM b_user u
                               JOIN b_assign a ON a.id = :o_assignmentid7
                            )
                            UNION
                            (SELECT 0 AS priority,
                                    uo.userid,
                                    uo.allowsubmissionsfromdate,
                                    uo.duedate,
                                    uo.cutoffdate
                               FROM b_assign_overrides uo
                              WHERE uo.assignid = :o_assignmentid8
                            )
                            UNION
                            (SELECT go.sortorder AS priority,
                                    gm.userid,
                                    go.allowsubmissionsfromdate,
                                    go.duedate,
                                    go.cutoffdate
                               FROM b_assign_overrides go
                               JOIN b_groups g ON g.id = go.groupid
                               JOIN b_groups_members gm ON gm.groupid = g.id
                              WHERE go.assignid = :o_assignmentid9
                            )
                          ) AS effective ON effective.priority = priority.priority AND effective.userid = priority.userid LEFT JOIN b_assign_user_mapping um
                                           ON u.id = um.userid
                                          AND um.assignment = :o_assignmentidblind  WHERE u.id = :o_user19
              [array (
                'o_assignmentid1' => 1,
                'o_assignmentid2' => 1,
                'o_assignmentid3' => 1,
                'o_assignmentid5' => 1,
                'o_assignmentid6' => 1,
                'o_assignmentid7' => 1,
                'o_assignmentid8' => 1,
                'o_assignmentid9' => 1,
                'o_assignmentidblind' => 1,
                'o_user19' => 4,
              )]
              Error code: dmlreadexception
              
              
                  
              ×
                  
              Stack trace:
               
              line 486 of /lib/dml/moodle_database.php: dml_read_exception thrown
              line 277 of /lib/dml/oci_native_moodle_database.php: call to moodle_database->query_end()
              line 1179 of /lib/dml/oci_native_moodle_database.php: call to oci_native_moodle_database->query_end()
              line 1558 of /lib/dml/moodle_database.php: call to oci_native_moodle_database->get_records_sql()
              line 1109 of /lib/dml/oci_native_moodle_database.php: call to moodle_database->get_record_sql()
              line 1631 of /lib/dml/moodle_database.php: call to oci_native_moodle_database->get_record_sql()
              line 1841 of /lib/dml/moodle_database.php: call to moodle_database->get_field_sql()
              line 1570 of /lib/tablelib.php: call to moodle_database->count_records_sql()
              line 1624 of /lib/tablelib.php: call to table_sql->query_db()
              line 1446 of /mod/assign/renderer.php: call to table_sql->out()
              line 1242 of /mod/assign/renderer.php: call to mod_assign_renderer->flexible_table()
              line 401 of /lib/outputrenderers.php: call to mod_assign_renderer->render_assign_grading_table()
              line 4150 of /mod/assign/locallib.php: call to plugin_renderer_base->render()
              line 4226 of /mod/assign/locallib.php: call to assign->view_grading_table()
              line 582 of /mod/assign/locallib.php: call to assign->view_grading_page()
              line 55 of /mod/assign/view.php: call to assign->view()
               (Exception)
      

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  8/May/17