XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 9.0, 8.12.5
    • 8.12.5
    • OData
    • None

    Description

      This is the root JIRA for all bugs in Oingo V4 we have found during testing. We will add separate JIRAs for every issue as a subtask.

      All sub-JIRAs have in common:

      DDL for H2 database:

      -- simple table for basic tests
      DROP TABLE IF EXISTS SimpleTable;
      CREATE TABLE SimpleTable(
          intkey int PRIMARY KEY,
          intnum int,
          stringkey varchar(20),
          stringval varchar(20),
          booleanval boolean,
          decimalval decimal(20, 10),
          timeval time,
          dateval date,
          timestampval timestamp,
          clobval clob);
      INSERT INTO SimpleTable (intkey, intnum, stringkey, stringval, booleanval, decimalval, timeval, dateval, timestampval, clobval) VALUES
          (1,  null, '1',   'value_1',  'true',  20.1,  '00:00:01', '2000-01-01', '2001-01-01 00:00:01.01', 'clob_value_00001'),
          (2,  2,    null,  'value_2',  'false', -20.2, '00:00:02', '2000-02-02', '2002-01-01 00:00:02.02', 'clob_value_00002'),
          (3,  3,    '3',   null,       'true',  20.3,  '00:00:03', '2000-03-03', '2003-01-01 00:00:03.03', 'clob_value_00003'),
          (4,  4,    '4',   'value_4',  null,    -20.4, '00:00:04', '2000-04-04', '2004-01-01 00:00:04.04', 'clob_value_00004'),
          (5,  5,    '5',   'value_5',  'true',  null,  '00:00:05', '2000-05-05', '2005-01-01 00:00:05.05', 'clob_value_00005'),
          (6,  6,    '6',   'value_6',  'false', -20.6, null,       '2000-06-06', '2006-01-01 00:00:06.06', 'clob_value_00006'),
          (7,  7,    '7',   'value_7',  'true',  20.7,  '00:00:07', null,         '2007-01-01 00:00:07.07', 'clob_value_00007'),
          (8,  8,    '8',   'value_8',  'false', -20.8, '00:00:08', '2000-08-08', null,                     'clob_value_00008'),
          (9,  9,    '9',   'value_9',  'true',  20.9,  '00:00:09', '2000-07-09', '2009-01-01 00:00:09.09', null),
          (10, null, null,  null,       null,    null,  null,       null,          null,                    null),
          (11, 11,   '11',  'value_0',  'true',  21.1,  '00:00:11', '2000-11-11', '2011-11-11 00:00:11.11', 'clob_value_00011');
      -- end simple table
      -- simple data table for filter functions tests
      DROP TABLE IF EXISTS SimpleDataTable;
      CREATE TABLE SimpleDataTable(
          intkey int PRIMARY KEY,
          doubleval double,
          realval real,
          decimalval decimal(20, 10),
          stringval varchar(20),
          timeval time,
          dateval date,
          timestampval timestamp);
      INSERT INTO SimpleDataTable (intkey, doubleval, realval, decimalval, stringval, timeval, dateval, timestampval) VALUES
          (1,  42.22,  42.22,  42.22,  'value_contains',     '01:01:01', '2001-01-01', '2001-01-01 01:01:01.01'),
          (2,  -42.22, -42.22, -42.22, 'value_endswith',     '02:02:02', '2002-02-02', '2002-02-02 02:02:02.02'),
          (3,  42.32,  42.32,  42.32,  'value_startswith',   '03:03:03', '2003-03-03', '2003-03-03 03:03:03.03'),
          (4,  -42.32, -42.32, -42.32, 'value_length',       '04:04:04', '2004-04-04', '2004-04-04 04:04:04.04'),
          (5,  42.42,  42.42,  42.42,  'VALUE_LOWER',        '05:05:05', '2015-05-05', '2015-05-05 05:05:05.05'),
          (6,  -42.42, -42.42, -42.42, '    value_trim    ', '06:06:06', '2016-06-06', '2016-06-06 06:06:06.06'),
          (7,  42.52,  42.52,  42.52,  '    value_trim_l',   '17:17:17', '2017-07-07', '2017-07-07 17:17:17.07'),
          (8,  -42.52, -42.52, -42.52, 'value_trim_r     ',  '18:18:18', '2018-08-08', '2017-08-08 18:18:18.08'),
          (9,  42.62,  42.62,  42.62,  'value_abcd',          '19:19:19', '2019-09-09', '2018-09-09 19:19:19.09'),
          (10, -42.62, -42.62, -42.62, 'value_asdf',          '20:20:20', '2020-10-20', '2019-10-20 20:20:20.10'),
          (11, 42.72,  42.72,  42.72,  'value_dabc',          '21:21:21', '2021-11-25', '2021-11-25 21:21:21.11'),
          (12, -42.72, -42.72, -42.72, 'value_end',           '23:23:23', '2042-12-30', '2042-12-30 23:23:23.12');
      -- end simple data table
      -- CUD tables
      -- delete
      DROP TABLE IF EXISTS DeleteTable;
      CREATE TABLE DeleteTable(id int PRIMARY KEY, name varchar(10));
      INSERT INTO DeleteTable (id, name) VALUES
          (1, 'name1'),
          (2, 'name2'),
          (3, 'name3');
      DROP TABLE IF EXISTS DeletePropTable;
      CREATE TABLE DeletePropTable(id int PRIMARY KEY, name varchar(10));
      INSERT INTO DeletePropTable (id, name) VALUES
          (1, 'name1');
      -- put
      DROP TABLE IF EXISTS PutTable;
      CREATE TABLE PutTable(
          intkey int PRIMARY KEY, intnum int, stringkey varchar(20), stringval varchar(20), booleanval boolean,
          decimalval decimal(20, 10), timeval time, dateval date, timestampval timestamp, clobval clob);
      INSERT INTO PutTable (intkey, intnum, stringkey, stringval, booleanval, decimalval, timeval, dateval, timestampval, clobval) VALUES
          (1,  null, '1',   'value_1',  'true',  20.1,  '00:00:01', '2000-01-01', '2001-01-01 00:00:01.01', 'clob_value_00001'),
          (2,  2,    '2',  'value_2',  'false', -20.2, '00:00:02', '2000-02-02', '2002-01-01 00:00:02.02', 'clob_value_00002'),
          (3, null, null,  null,       null,    null,  null,       null,          null,                    null);
      DROP TABLE IF EXISTS PutPropTable;
      CREATE TABLE PutPropTable(id int PRIMARY KEY, name varchar(10));
      INSERT INTO PutPropTable (id, name) VALUES
          (1, 'name1');
      -- patch
      DROP TABLE IF EXISTS PatchTable;
      CREATE TABLE PatchTable(
          intkey int PRIMARY KEY, intnum int, stringkey varchar(20), stringval varchar(20), booleanval boolean,
          decimalval decimal(20, 10), timeval time, dateval date, timestampval timestamp, clobval clob);
      INSERT INTO PatchTable (intkey, intnum, stringkey, stringval, booleanval, decimalval, timeval, dateval, timestampval, clobval) VALUES
          (1,  null, '1',   'value_1',  'true',  20.1,  '00:00:01', '2000-01-01', '2001-01-01 00:00:01.01', 'clob_value_00001'),
          (2,  2,    '2',  'value_2',  'false', -20.2, '00:00:02', '2000-02-02', '2002-01-01 00:00:02.02', 'clob_value_00002'),
          (3, null, null,  null,       null,    null,  null,       null,          null,                    null);
      -- post
      DROP TABLE IF EXISTS PostTable;
      CREATE TABLE PostTable(
          intkey int PRIMARY KEY, intnum int, stringkey varchar(20), stringval varchar(20), booleanval boolean,
          decimalval decimal(20, 10), timeval time, dateval date, timestampval timestamp, clobval clob);
      INSERT INTO PostTable (intkey, intnum, stringkey, stringval, booleanval, decimalval, timeval, dateval, timestampval, clobval) VALUES
          (1,  null, '1',   'value_1',  'true',  20.1,  '00:00:01', '2000-01-01', '2001-01-01 00:00:01.01', 'clob_value_00001'),
          (2,  2,    '2',  'value_2',  'false', -20.2, '00:00:02', '2000-02-02', '2002-01-01 00:00:02.02', 'clob_value_00002'),
          (3, null, null,  null,       null,    null,  null,       null,          null,                    null);
      -- end CUD tables
      -- not updatable
      DROP TABLE IF EXISTS DeleteTableUnmod;
      CREATE TABLE DeleteTableUnmod(id int PRIMARY KEY, name varchar(10));
      INSERT INTO DeleteTableUnmod (id, name) VALUES
          (1, 'name1');
      DROP TABLE IF EXISTS PutTableUnmod;
      CREATE TABLE PutTableUnmod(id int PRIMARY KEY, name varchar(10));
      INSERT INTO PutTableUnmod (id, name) VALUES
          (1, 'name1');
      DROP TABLE IF EXISTS PostTableUnmod;
      CREATE TABLE PostTableUnmod(id int PRIMARY KEY, name varchar(10));
      INSERT INTO PostTableUnmod (id, name) VALUES
          (1, 'name1');
      DROP TABLE IF EXISTS PatchTableUnmod;
      CREATE TABLE PatchTableUnmod(id int PRIMARY KEY, name varchar(10));
      INSERT INTO PatchTableUnmod (id, name) VALUES
          (1, 'name1');
      -- table Customers and table Orders
      DROP TABLE IF EXISTS Customers;
      DROP TABLE IF EXISTS Orders;
      CREATE TABLE Customers(id int PRIMARY KEY, name varchar(10));
      CREATE TABLE Orders(id int PRIMARY KEY, customerid int, place varchar(10), FOREIGN KEY (customerid) REFERENCES Customers(id));
      INSERT INTO Customers (id, name) VALUES
          (1, 'customer1'),
          (2, 'customer2'),
          (3, 'customer3'),
          (4, 'customer4');
      INSERT INTO Orders (id, customerid, place) VALUES
          (1, 1, 'town'),
          (2, 1, 'state'),
          (3, 1, 'country'),
          (4, 1, 'abroad'),
          (5, 2, 'state'),
          (6, 2, 'country'),
          (7, 3, 'town'),
          (8, 3, 'town');
      -- end table Customers and table Orders
      

      VDB:

      <vdb name="olingo_basic" version="1">
          <model name="Source" type="PHYSICAL">
              <source name="local_h2_db" connection-jndi-name="java:/localH2DB" translator-name="h2"/>
              <metadata type="DDL">
                  CREATE FOREIGN TABLE SimpleTable(
                      intkey integer PRIMARY KEY,
                      intnum integer,
                      stringkey varchar(20),
                      stringval varchar(20),
                      booleanval boolean,
                      decimalval decimal(20, 10),
                      timeval time,
                      dateval date,
                      timestampval timestamp,
                      clobval clob) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.SIMPLETABLE');
                      
                  CREATE FOREIGN TABLE SimpleDataTable(
                      intkey integer PRIMARY KEY,
                      doubleval double,
                      realval real,
                      decimalval decimal(20, 10),
                      stringval varchar(20),
                      timeval time,
                      dateval date,
                      timestampval timestamp) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.SIMPLEDATATABLE');
      
                  CREATE FOREIGN TABLE PutTable(
                      intkey integer PRIMARY KEY,
                      intnum integer,
                      stringkey varchar(20),
                      stringval varchar(20),
                      booleanval boolean,
                      decimalval decimal(20, 10),
                      timeval time,
                      dateval date,
                      timestampval timestamp,
                      clobval object) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.PUTTABLE', UPDATABLE 'TRUE');
                  CREATE FOREIGN TABLE PostTable(
                      intkey integer PRIMARY KEY,
                      intnum integer,
                      stringkey varchar(20),
                      stringval varchar(20),
                      booleanval boolean,
                      decimalval decimal(20, 10),
                      timeval time,
                      dateval date,
                      timestampval timestamp,
                      clobval object) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.POSTTABLE', UPDATABLE 'TRUE');
                  CREATE FOREIGN TABLE PatchTable(
                      intkey integer PRIMARY KEY,
                      intnum integer,
                      stringkey varchar(20),
                      stringval varchar(20),
                      booleanval boolean,
                      decimalval decimal(20, 10),
                      timeval time,
                      dateval date,
                      timestampval timestamp,
                      clobval object) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.PATCHTABLE', UPDATABLE 'TRUE');
                  CREATE FOREIGN TABLE DeleteTable (
                      id integer PRIMARY KEY,
                      name varchar(10)) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.DELETETABLE', UPDATABLE 'TRUE');
                      
                      
                  CREATE FOREIGN TABLE DeletePropTable (
                      id integer PRIMARY KEY,
                      name varchar(10)) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.DELETEPROPTABLE', UPDATABLE 'TRUE');
                  CREATE FOREIGN TABLE PutPropTable (
                      id integer PRIMARY KEY,
                      name varchar(10)) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.PUTPROPTABLE', UPDATABLE 'TRUE');
                      
                      
                  CREATE FOREIGN TABLE DeleteTableUnmod (
                      id integer PRIMARY KEY,
                      name varchar(10)) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.DELETETABLEUNMOD', UPDATABLE 'FALSE');
                  CREATE FOREIGN TABLE PutTableUnmod (
                      id integer PRIMARY KEY,
                      name varchar(10)) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.PUTTABLEUNMOD', UPDATABLE 'FALSE');
                  CREATE FOREIGN TABLE PostTableUnmod (
                      id integer PRIMARY KEY,
                      name varchar(10)) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.POSTTABLEUNMOD', UPDATABLE 'FALSE');
                  CREATE FOREIGN TABLE PatchTableUnmod (
                      id integer PRIMARY KEY,
                      name varchar(10)) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.PATCHTABLEUNMOD', UPDATABLE 'FALSE');
                      
                      
                  CREATE FOREIGN TABLE Customers (
                      idcust integer PRIMARY KEY OPTIONS (NAMEINSOURCE 'id'),
                      name varchar(10)) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.CUSTOMERS');
                  CREATE FOREIGN TABLE Orders (
                      idords integer PRIMARY KEY OPTIONS (NAMEINSOURCE 'id'),
                      customerid integer,
                      place varchar(10),
                      FOREIGN KEY (customerid) REFERENCES Customers(idcust)) OPTIONS (NAMEINSOURCE 'DB.PUBLIC.ORDERS');
      
      
                  CREATE VIEW SimpleTableView(
                          intkey integer PRIMARY KEY,
                          intnum integer,
                          stringkey string,
                          stringval string,
                          booleanval boolean,
                          decimalval bigdecimal,
                          timeval time,
                          dateval date,
                          timestampval timestamp,
                          clobval object)
                      AS 
                          SELECT
                              intkey, intnum, stringkey, stringval, booleanval, decimalval, timeval, dateval, timestampval, convert(clobval, object)
                          FROM
                              SimpleTable;
              </metadata>
          </model>
      </vdb>
      

      Attachments

        1.
        Parameter alias without value returns http status code 500 Sub-task Closed Major Ramesh Reddy
        2.
        Bad metadata of returned entity Sub-task Closed Major Ramesh Reddy
        3.
        OData returns bad number of entities with $count and $expand Sub-task Closed Major Ramesh Reddy
        4.
        Resolving of entityid with additional system options fail Sub-task Closed Major Ramesh Reddy
        5.
        Representation of OData error does not contain error code. Sub-task Closed Major Ramesh Reddy
        6.
        OData response does not contain header "allow" Sub-task Closed Major Ramesh Reddy
        7.
        OData returns status code 200 instead of 204 if there are no expanded entities Sub-task Closed Major Ramesh Reddy
        8.
        If some functionality is not supported then OData should return status code 501 instead of 500 Sub-task Closed Major Ramesh Reddy
        9.
        OData ignores entities with empty list of related entities if $filter is applied to expanded entities Sub-task Closed Major Ramesh Reddy
        10.
        OData throws unknown error if $select is applied to expanded entity Sub-task Closed Major Ramesh Reddy
        11.
        OData - $skip is beeing ignored Sub-task Closed Major Steven Hawkins
        12.
        OData - $top with negative value return status code 500 Sub-task Closed Major Ramesh Reddy
        13.
        OData - update of clob value using HTTP method PATCH does not set correct value of the column Sub-task Closed Major Ramesh Reddy
        14.
        OData - creation of entity (POST) returns exception (status code 500) Sub-task Closed Major Ramesh Reddy
        15.
        OData - updating of raw value fails (PUT method to URL with path $value) Sub-task Closed Major Ramesh Reddy
        16.
        OData - PUT cannot parse entity Sub-task Closed Major Steven Hawkins
        17.
        OData - if PUT fails, next update request fails because table in DB is still locked Sub-task Closed Major Steven Hawkins
        18.
        OData - Request entity which does not exist return 204 instead of 404 Sub-task Closed Major Steven Hawkins
        19.
        OData - $ref after $expand does not work Sub-task Closed Major Ramesh Reddy
        20.
        OData - $count after $expand does not work Sub-task Closed Major Ramesh Reddy
        21.
        OData - request is not traslated to valid SQL Sub-task Closed Major Ramesh Reddy
        22.
        OData - $crossjoin fails due to missing class Sub-task Closed Major Ramesh Reddy
        23.
        OData - $all returns 500 without message (generic error page of EAP) Sub-task Closed Major Ramesh Reddy
        24.
        OData - missing non-nullable property Sub-task Closed Major Ramesh Reddy
        25.
        OData V4: Support system options over the operation based collections Sub-task Closed Major Ramesh Reddy
        26.
        OData - service returns generic EAP page in case of 404 Sub-task Closed Major Ramesh Reddy
        27.
        OData - null literal is not supported Sub-task Closed Major Ramesh Reddy
        28.
        OData doesn't support mulitiple usage of arithmetic operators Sub-task Closed Major Ramesh Reddy
        29.
        OData - Math functions floor and ceiling doesn't accept number as parameter Sub-task Closed Major Ramesh Reddy
        30.
        OData - Math function round doesn't accept decimal number as parameter Sub-task Closed Major Ramesh Reddy
        31.
        OData - wrong string indexing in string functions indexof and substring Sub-task Closed Major Ramesh Reddy
        32.
        Odata - date functions does't accept date string as a parameter Sub-task Closed Major Ramesh Reddy
        33.
        Odata - incorrect count with query option $count=true Sub-task Closed Major Ramesh Reddy
        34.
        Wrong Content-Type in error response from odata Sub-task Closed Blocker Ramesh Reddy
        35.
        OData - NPE when accessing inactive vdb Sub-task Resolved Major Steven Hawkins

        Activity

          People

            rhn-engineering-rareddy Ramesh Reddy
            jdurani Juraj DurĂ¡ni (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: