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

dblook doesn't generate SQL statements for SQL functions.

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 10.0.2.0
    • 10.1.1.0
    • Tools
    • None
    • All platforms.

    Description

      DBLOOK schema dumping tool doesn't emit SQL statements for functions. It covers procedures and all other database objects, but not funtions. Here is an example I tried:

      [bandaram:satheesh] java org.apache.derby.tools.dblook -d 'jdbc:derby:tdb'
      – Timestamp: 2005-06-05 09:41:20.603
      – Source database is: tdb
      – Connection URL is: jdbc:derby:tdb
      – appendLogs: false

      – ----------------------------------------------
      – DDL Statements for tables
      – ----------------------------------------------

      CREATE TABLE "APP"."T" ("I" INTEGER);

      At this point, the database has only one table 'T'. Now create a function:

      C:\DerbyCode\bug>java -Dij.protocol=jdbc:derby: org.apache.derby.tools.ij
      ij version 10.1
      ij> connect 'tdb';
      ij> create function gatp(SCH VARCHAR(128), TBL VARCHAR(128)) RETURNS VARCHAR(100
      0)
      EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.TestPropertyInfo.getAllTableProperties'
      LANGUAGE JAVA PARAMETER STYLE JAVA;
      0 rows inserted/updated/deleted
      ij> quit;

      Now try dblook. Should show a function, but doesn't.

      [bandaram:satheesh] java org.apache.derby.tools.dblook -d 'jdbc:derby:tdb'
      – Timestamp: 2005-06-05 09:41:20.603
      – Source database is: tdb
      – Connection URL is: jdbc:derby:tdb
      – appendLogs: false

      – ----------------------------------------------
      – DDL Statements for tables
      – ----------------------------------------------

      CREATE TABLE "APP"."T" ("I" INTEGER);

      Now create a procedure:

      C:\DerbyCode\bug>java -Dij.protocol=jdbc:derby: org.apache.derby.tools.ij
      ij version 10.1
      ij> connect 'tdb';
      ij> create procedure insertAsciiColumn( stmtText varchar( 256), colNumber int) P
      ARAMETER STYLE JAVA LANGUAGE JAVA MODIFIES SQL DATA
      EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.StreamUtil.insertAsc
      iiColumn';
      0 rows inserted/updated/deleted
      ij>

      DBLOOK output include newly created procedure, but still not function statement.

      [bandaram:satheesh] java org.apache.derby.tools.dblook -d 'jdbc:derby:tdb'
      – Timestamp: 2005-06-05 09:43:09.5
      – Source database is: tdb
      – Connection URL is: jdbc:derby:tdb
      – appendLogs: false

      – ----------------------------------------------
      – DDL Statements for stored procedures
      – ----------------------------------------------

      CREATE PROCEDURE "APP"."INSERTASCIICOLUMN" (IN STMTTEXT VARCHAR(256),IN COLNUMBE
      R INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA EXTERNAL NAME 'o
      rg.apache.derbyTesting.functionTests.util.StreamUtil.insertAsciiColumn' ;

      – ----------------------------------------------
      – DDL Statements for tables
      – ----------------------------------------------

      CREATE TABLE "APP"."T" ("I" INTEGER);

      Attachments

        There are no Sub-Tasks for this issue.

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            army A B
            bandaram Satheesh E. Bandaram
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment