Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-5924

RVC Offset does not handle variable length fields exclusive scan boundary correctly

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.0.0, 4.15.0, 4.14.3
    • 5.1.0, 4.16.0
    • None
    • None

    Description

      The way exclusive boundary was handled by incrementing the key for variable length fields is incorrect in the scan boundary.

       

      In the following case we incrementing incorrectly from 0x490049 -> 0x490050 ('1','1' -> '1','2')

      We should increment from 0x490049 -> 0x49004900 ('1','1' -> '1','1'\x00) 
      @Test
      public void testScenario() throws Exception {
      String TEST_DDL = "CREATE TABLE IF NOT EXISTS TEST_SCHEMA (\n"
      + " ORGANIZATION_ID VARCHAR(15), \n" + " TEST_ID VARCHAR(15), \n"
      + " CREATED_DATE DATE, \n" + " LAST_UPDATE DATE\n"
      + " CONSTRAINT TEST_SCHEMA_PK PRIMARY KEY (ORGANIZATION_ID, TEST_ID) \n" + ")";

      try (Statement statement = conn.createStatement())

      { statement.execute(TEST_DDL); }

      //setup
      List<String> upserts = new ArrayList<>();
      upserts.add("UPSERT INTO TEST_SCHEMA(ORGANIZATION_ID,TEST_ID) VALUES ('1','1')");
      upserts.add("UPSERT INTO TEST_SCHEMA(ORGANIZATION_ID,TEST_ID) VALUES ('1','10')");
      upserts.add("UPSERT INTO TEST_SCHEMA(ORGANIZATION_ID,TEST_ID) VALUES ('2','2')");

      for(String sql : upserts) {
      try (Statement statement = conn.createStatement())

      { statement.execute(sql); }

      }

      conn.commit();

      String query1 = "SELECT * FROM TEST_SCHEMA";
      String query2 = "SELECT * FROM TEST_SCHEMA OFFSET (ORGANIZATION_ID,TEST_ID) = ('1','1')";

      try (Statement statement = conn.createStatement() ; ResultSet rs1 = statement.executeQuery(query1) ) {
      TestUtil.printResultSet(rs1);
      }

      try (Statement statement = conn.createStatement() ; ResultSet rs2 = statement.executeQuery(query2) ) {
      TestUtil.printResultSet(rs2);
      }
      }
       

      Attachments

        1. PHOENIX-5924-master.patch
          6 kB
          Daniel Wong
        2. PHOENIX-5924-4.x.patch
          6 kB
          Daniel Wong

        Issue Links

          Activity

            People

              dbwong Daniel Wong
              dbwong Daniel Wong
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h