Uploaded image for project: 'OODT (Retired)'
  1. OODT (Retired)
  2. OODT-546

XMLPS inner-joins default table with itself

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.5
    • 0.6
    • xmlps
    • None

    Description

      When the default table is set to an existing table name, XMLPS tries to inner join the default table with itself, resulting in a failed query.

      Example

      With the following ps.xml file

      <oodt:xmlps xmlns:oodt="http://incubator.apache.org/oodt/0.1-incubating"
      	name="CERC Query Handler" id="EDRN.CERC.CancerData">
      	<!--<tables default="Table1">-->
        <tables default="Cancer_Data">
          <table name="Cancer_Data" join="STUDY_PARTICIPANT_ID_SITE_TEXT" tofld="STUDY_PARTICIPANT_ID_SITE_TEXT"/>
        </tables>
      
        <field type="dynamic" name="STUDY_PARTICIPANT_ID" dbname="STUDY_PARTICIPANT_ID_SITE_TEXT" />
          
        <field type="constant" name="BASELINE_CANCER-CONFIRMATION_CODE" value="1"/>
      </oodt:xmlps>
      

      A query to

      http://localhost:8080/web-grid/prod?q=RETURN%3DSTUDY_PARTICIPANT_ID
      

      Results in the following:

      WARNING: Error executing sql: [SELECT Cancer_Data.STUDY_PARTICIPANT_ID_SITE_TEXT as STUDY_PARTICIPANT_ID FROM Cancer_Data INNER JOIN Cancer_Data ON Cancer_Data.STUDY_PARTICIPANT_ID_SITE_TEXT = Cancer_Data.STUDY_PARTICIPANT_ID_SITE_TEXT ]: Message: Not unique table/alias: 'Cancer_Data'
      

      If the default table is changed to "Participant_Data" then the query functions fine.

      Attachments

        1. dump.sql
          997 kB
          Michael Joyce
        2. ps.xml
          1 kB
          Michael Joyce

        Activity

          People

            chrismattmann Chris A. Mattmann
            mjoyce Michael Joyce
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: