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

Insert into table with constraints fails if the table name is "indicator" (or any other SQL keyword)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 10.2.2.0, 10.3.1.4, 10.4.1.3
    • 10.3.2.1, 10.4.1.3
    • SQL
    • None
    • Intel x86
      Windows XP SP2
      java version "1.5.0_06"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
      Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
    • Normal

    Description

      I've runned the testcase against both 10.2.2.0 (latest stable) and 10.4.0.0 alpha (trunk) and results are the same.

      Sysinfo output:

      ------------------ Информация Java ------------------
      Версия Java: 1.5.0_11
      Поставщик Java: Sun Microsystems Inc.
      Домашний каталог Java: C:\java\jre-1.5.0
      Путь классов Java: D:\dev\workspaces\DerbyQuery\bin;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbytools.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derby.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyclient.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_cs.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_de_DE.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_es.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_fr.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_hu.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_it.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_ja_JP.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_ko_KR.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_pl.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_pt_BR.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_zh_CN.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyLocale_zh_TW.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbynet.jar;
      D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyrun.jar
      Имя ОС: Windows XP
      Архитектура ОС: x86
      Версия ОС: 5.1
      Имя пользователя Java: dmitrygusev
      Домашний каталог пользователя Java: C:\Documents and Settings\dmitrygusev
      Каталог пользователя Java: D:\dev\workspaces\DerbyQuery
      java.specification.name: Java Platform API Specification
      java.specification.version: 1.5
      --------- Информация Derby --------
      JRE - JDBC: J2SE 5.0 - JDBC 3.0
      [D:\dev\src\db-derby-trunk-20070802\jars\sane\derby.jar] 10.4.0.0 alpha - (???)
      [D:\dev\src\db-derby-trunk-20070802\jars\sane\derbytools.jar] 10.4.0.0 alpha - (???)
      [D:\dev\src\db-derby-trunk-20070802\jars\sane\derbynet.jar] 10.4.0.0 alpha - (???)
      [D:\dev\src\db-derby-trunk-20070802\jars\sane\derbyclient.jar] 10.4.0.0 alpha - (???)
      ------------------------------------------------------
      ----------------- Информация о локали ------------------
      Текущая локаль: [русский/Россия [ru_RU]]
      Обнаружена поддержка локали: [cs]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [de_DE]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [es]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [fr]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [hu]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [it]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [ja_JP]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [ko_KR]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [pl]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [pt_BR]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [ru]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [zh_CN]
      версия: 10.4.0.0 alpha - (???)
      Обнаружена поддержка локали: [zh_TW]
      версия: 10.4.0.0 alpha - (???)
      ------------------------------------------------------
      How to reproduce the bug:
      1. Create a table with name "indicator" (or any other SQL keyword as the name, i.e. "select") and one field of any type, for instance CHAR(1), like this:

      CREATE TABLE \"indicator\"(c CHAR(1) DEFAULT 'N')

      2. Add constraint to the field:

      ALTER TABLE \" indicator \" ADD CONSTRAINT \"MY_CONSTRAINT\" CHECK ((c IN ('Y','N')))

      3. Try to insert any row to that table:

      INSERT INTO \"indicator\" VALUES ('N')

      The INSERT statement will throw an exception:
      java.sql.SQLException: Java exception: ': java.util.EmptyStackException'.

      Also, see the program (Main.java) attached to this issue and derby.log contained the exception's stacktace output.

      I've also created and attached the patch that may fix this issue.

      Hope this help to improve Derby.

      Attachments

        1. derby.log
          2 kB
          Dmitry Gusev
        2. DERBY-2989-2.diff
          59 kB
          Dag H. Wanvik
        3. DERBY-2989-2.stat
          2 kB
          Dag H. Wanvik
        4. DERBY-2989-3-10_3.diff
          62 kB
          Dag H. Wanvik
        5. DERBY-2989-3-10_3.stat
          2 kB
          Dag H. Wanvik
        6. Main.java
          2 kB
          Dmitry Gusev
        7. patch.patch
          0.5 kB
          Dmitry Gusev

        Activity

          People

            dagw Dag H. Wanvik
            dmitrygusev Dmitry Gusev
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: