Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-129

Derby should throw a truncation error or warning when CASTing a parameter/constant to char or char for bit datatypes and the data is too large for the datatype.

    Details

    • Urgency:
      Low
    • Issue & fix info:
      Newcomer

      Description

      Derby doesn't throw a truncation exception/warning when data is too large during casting of constants or parameters to character string or bit string data types.

      Following is ij example for constants which is too big for the datatype it is getting cast to
      ij> values (cast ('hello' as char(3)));
      1


      hel

      1 row selected
      ij> values (cast (X'0102' as char(1) for bit data));
      1


      01

      1 row selected

      Following code snippet is when using parameters through a JDBC program
      s.executeUpdate("create table ct (c CLOB(100K))");
      //the following Formatters just loads cData with 32700 'c' characters
      String cData = org.apache.derbyTesting.functionTests.util.Formatters.repeatChar("c",32700);
      //notice that ? in the preared statement below is bound to length 32672
      pSt = con.prepareStatement("insert into ct values (cast (? as varchar(32672)))");
      pSt.setString(1, cData);
      //Derby doesn't throw an exception at ps.execute time for 32700 characters into 32672 parameter. It silently
      truncates it to 32672
      pSt.execute();

        Attachments

        1. delta-1a-1b.diff
          5 kB
          Knut Anders Hatlen
        2. d129-1b.diff
          3.02 MB
          Knut Anders Hatlen
        3. d129-1a.diff
          3.02 MB
          Knut Anders Hatlen

          Issue Links

            Activity

              People

              • Assignee:
                knutanders Knut Anders Hatlen
                Reporter:
                mamtas Mamta A. Satoor
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: