Uploaded image for project: 'Teiid'
  1. Teiid
  2. TEIID-4534

Querying 1-to-many relationship in JDG data source may return the wrong results

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Critical Critical
    • None
    • 8.12.x, 9.2
    • JDG Connector
    • None

      When there is a 1-to-many relationship defined in a JDG schema, the results from querying the "many" relationship may return the wrong results.

      Example:

      Person --> Phone Numbers
      INSERT INTO Person(id,name,email) VALUES (1,'name1','email1')
      INSERT INTO PhoneNumber(id, number) VALUES (1, '001234567');
      INSERT INTO PhoneNumber(id, number) VALUES (1, '001234568');

      SELECT p.name, p.id, pn.number FROM Person p, PhoneNumber pn WHERE p.id=pn.id AND p.id=1 and number = '001234568'
      or
      Select * from PhoneNumber where number = '001234568'

      return 2 rows, 1 for each phonenumber.

      Why? Because JDG returns the Person object that meets those conditions. It doesn't filter the internal data to the Person object. Therefore, all phonenumbers are returned for the same person, generating a row for each.

      This doesn't happen with 1-to-1 relationships because there's only ever 1 child object.

            van.halbert Van Halbert (Inactive)
            van.halbert Van Halbert (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: