[ 
https://issues.apache.org/jira/browse/DERBY-7041?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16804427#comment-16804427
 ] 

Rick Hillegas commented on DERBY-7041:
--------------------------------------

I'm afraid that the attached script raises other compile-time errors for me and 
it does not fail on an NPE. Here is the output from running the script as 
provided with the problem CREATE statement uncommented:

{noformat}
ij> connect 'jdbc:derby:db;create=true';
WARNING 01J01: Database 'db' not created, connection made to existing database 
instead.
ij> CREATE SCHEMA JSL_DB;
0 rows inserted/updated/deleted
ij> -- SIMULATION_RUN captures the execution of a simulation experiment and its 
related options
CREATE TABLE JSL_DB.SIMULATION_RUN (
        ID INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START 
WITH 1 INCREMENT BY 1),
        SIM_NAME VARCHAR(510) NOT NULL,
        MODEL_NAME VARCHAR(510) NOT NULL,
        EXP_NAME VARCHAR(510) NOT NULL,
        EXP_START_TIME_STAMP TIMESTAMP,
        EXP_END_TIME_STAMP TIMESTAMP,
        NUM_REPS INTEGER NOT NULL CHECK (NUM_REPS >=1),
        LAST_REP INTEGER, 
        LENGTH_OF_REP DOUBLE PRECISION, 
        LENGTH_OF_WARM_UP DOUBLE PRECISION,
        HAS_MORE_REPS BOOLEAN,
        REP_ALLOWED_EXEC_TIME BIGINT,
        REP_INIT_OPTION BOOLEAN,
        RESET_START_STREAM_OPTION BOOLEAN,
        ANTITHETIC_OPTION BOOLEAN,
        ADV_NEXT_SUB_STREAM_OPTION BOOLEAN,
        NUM_STREAM_ADVANCES INTEGER
);
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.SIMULATION_RUN
  ADD CONSTRAINT SR_NAME_EXP_UNIQUE UNIQUE (SIM_NAME, EXP_NAME);
0 rows inserted/updated/deleted
ij> -- MODEL_ELEMENT represents the model element hierarchy associated with 
various 
-- simulation runs, i.e. the model elements in the model and their parent/child
-- relationship.  LEFT_COUNT and RIGHT_COUNT uses Joe Celko's SQL for Smarties
-- Advanced SQL Programming Chapter 36 to implement the nested set model for
-- the hierarchy. This allows statistics associated with hierarchical 
aggregations
-- and subtrees of the model element hierarchy to be more easily queried.
CREATE TABLE JSL_DB.MODEL_ELEMENT (
        SIM_RUN_ID_FK INTEGER NOT NULL,
        ELEMENT_ID INTEGER NOT NULL,
        ELEMENT_NAME VARCHAR(510) NOT NULL,
        CLASS_NAME VARCHAR(510) NOT NULL,
        PARENT_ID_FK INTEGER,
        PARENT_NAME VARCHAR(510),
        LEFT_COUNT INTEGER NOT NULL CHECK (LEFT_COUNT > 0),
        RIGHT_COUNT INTEGER NOT NULL CHECK (RIGHT_COUNT > 1),
        CONSTRAINT TRAVERSAL_ORDER_OKAY CHECK (LEFT_COUNT < RIGHT_COUNT)
);
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.MODEL_ELEMENT
  ADD CONSTRAINT ME_PRIM_KY PRIMARY KEY (SIM_RUN_ID_FK, ELEMENT_ID);
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.MODEL_ELEMENT
  ADD CONSTRAINT ME_NAME_UNIQUE UNIQUE (SIM_RUN_ID_FK, ELEMENT_NAME);
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.MODEL_ELEMENT
        ADD CONSTRAINT ME_SIMRUN_FK FOREIGN KEY (SIM_RUN_ID_FK) REFERENCES 
JSL_DB.SIMULATION_RUN (ID) ON DELETE CASCADE;
0 rows inserted/updated/deleted
ij> CREATE INDEX ME_SIMRUN_FK_INDEX ON JSL_DB.MODEL_ELEMENT(SIM_RUN_ID_FK);
0 rows inserted/updated/deleted
WARNING 01504: 'ME_SIMRUN_FK_INDEX' index not created because it is a duplicate 
of an existing index: 'SQL0000000007-a666c073-0169-c691-93ab-000007295718'.
ij> -- WITHIN_REP_STAT represents within replication statistics for each 
replication of
-- each simulation for each response
CREATE TABLE JSL_DB.WITHIN_REP_STAT (
        ID INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START 
WITH 1 INCREMENT BY 1),
        ELEMENT_ID_FK INTEGER NOT NULL,
        SIM_RUN_ID_FK INTEGER NOT NULL,
        REP_NUM INTEGER NOT NULL CHECK (REP_NUM >=1),
        STAT_NAME VARCHAR(510),
        STAT_COUNT DOUBLE PRECISION CHECK (STAT_COUNT >=0),
        AVERAGE  DOUBLE PRECISION,
        MINIMUM  DOUBLE PRECISION,
        MAXIMUM  DOUBLE PRECISION,
        WEIGHTED_SUM  DOUBLE PRECISION,
        SUM_OF_WEIGHTS  DOUBLE PRECISION,
        WEIGHTED_SSQ DOUBLE PRECISION,
        LAST_VALUE DOUBLE PRECISION,
        LAST_WEIGHT DOUBLE PRECISION    
);
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.WITHIN_REP_STAT 
        ADD CONSTRAINT WRS_SIMRUN_FK FOREIGN KEY (SIM_RUN_ID_FK) REFERENCES 
JSL_DB.SIMULATION_RUN (ID) ON DELETE CASCADE;
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.WITHIN_REP_STAT
  ADD CONSTRAINT WRS_UNIQUE_ELEMENT_SIMRUN_REPNUM UNIQUE (ELEMENT_ID_FK, 
SIM_RUN_ID_FK, REP_NUM);
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.WITHIN_REP_STAT
  ADD CONSTRAINT WRS_MODEL_ELEMENT_FK FOREIGN KEY (SIM_RUN_ID_FK, ELEMENT_ID_FK)
  REFERENCES JSL_DB.MODEL_ELEMENT (SIM_RUN_ID_FK, ELEMENT_ID) ON DELETE CASCADE;
0 rows inserted/updated/deleted
ij> CREATE INDEX WRS_ME_FK_INDEX ON JSL_DB.WITHIN_REP_STAT(SIM_RUN_ID_FK, 
ELEMENT_ID_FK);
0 rows inserted/updated/deleted
WARNING 01504: 'WRS_ME_FK_INDEX' index not created because it is a duplicate of 
an existing index: 'SQL0000000013-020e0090-0169-c691-93ab-000007295718'.
ij> -- ACROSS_REP_STAT represents summary statistics for each simulation 
response across
-- the replications within the experiment.
CREATE TABLE JSL_DB.ACROSS_REP_STAT (
        ID INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START 
WITH 1 INCREMENT BY 1),
        ELEMENT_ID_FK INTEGER NOT NULL,
        SIM_RUN_ID_FK INTEGER NOT NULL,
        STAT_NAME VARCHAR(510),
        STAT_COUNT DOUBLE PRECISION CHECK (STAT_COUNT >=0),
        AVERAGE  DOUBLE PRECISION,
        STD_DEV DOUBLE PRECISION CHECK (STD_DEV >=0),
        STD_ERR DOUBLE PRECISION CHECK (STD_ERR >=0),
        HALF_WIDTH DOUBLE PRECISION CHECK (HALF_WIDTH >=0),
        CONF_LEVEL DOUBLE PRECISION,
        MINIMUM  DOUBLE PRECISION,
        MAXIMUM  DOUBLE PRECISION,
        WEIGHTED_SUM  DOUBLE PRECISION,
        SUM_OF_WEIGHTS  DOUBLE PRECISION,
        WEIGHTED_SSQ DOUBLE PRECISION,
        DEV_SSQ DOUBLE PRECISION,
        LAST_VALUE DOUBLE PRECISION,
        LAST_WEIGHT DOUBLE PRECISION,
        KURTOSIS DOUBLE PRECISION,
        SKEWNESS DOUBLE PRECISION,
        LAG1_COV DOUBLE PRECISION,
        LAG1_CORR DOUBLE PRECISION,
        VON_NEUMAN_LAG1_STAT DOUBLE PRECISION,
        NUM_MISSING_OBS DOUBLE PRECISION
);
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.ACROSS_REP_STAT 
        ADD CONSTRAINT ARS_SIMRUN_FK FOREIGN KEY (SIM_RUN_ID_FK) REFERENCES 
JSL_DB.SIMULATION_RUN (ID) ON DELETE CASCADE;
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.ACROSS_REP_STAT
  ADD CONSTRAINT ARS_MODEL_ELEMENT_FK FOREIGN KEY (SIM_RUN_ID_FK, ELEMENT_ID_FK)
  REFERENCES JSL_DB.MODEL_ELEMENT (SIM_RUN_ID_FK, ELEMENT_ID) ON DELETE CASCADE;
0 rows inserted/updated/deleted
ij> CREATE UNIQUE INDEX ARS_ME_FK_INDEX ON 
JSL_DB.ACROSS_REP_STAT(SIM_RUN_ID_FK, ELEMENT_ID_FK);
0 rows inserted/updated/deleted
ij> -- WITHIN_REP_COUNTER_STAT represents within replication final value for 
each replication of
-- each simulation for each counter
CREATE TABLE JSL_DB.WITHIN_REP_COUNTER_STAT (
        ID INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START 
WITH 1 INCREMENT BY 1),
        ELEMENT_ID_FK INTEGER NOT NULL,
        SIM_RUN_ID_FK INTEGER NOT NULL,
        REP_NUM INTEGER NOT NULL CHECK (REP_NUM >=1),
        STAT_NAME VARCHAR(510),
        LAST_VALUE DOUBLE PRECISION     
);
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.WITHIN_REP_COUNTER_STAT 
        ADD CONSTRAINT WRCS_SIMRUN_FK FOREIGN KEY (SIM_RUN_ID_FK) REFERENCES 
JSL_DB.SIMULATION_RUN (ID) ON DELETE CASCADE;
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.WITHIN_REP_COUNTER_STAT
  ADD CONSTRAINT WRCS_UNIQUE_ELEMENT_SIMRUN_REPNUM UNIQUE (ELEMENT_ID_FK, 
SIM_RUN_ID_FK, REP_NUM);
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.WITHIN_REP_COUNTER_STAT
  ADD CONSTRAINT WRCS_MODEL_ELEMENT_FK FOREIGN KEY (SIM_RUN_ID_FK, 
ELEMENT_ID_FK)
  REFERENCES JSL_DB.MODEL_ELEMENT (SIM_RUN_ID_FK, ELEMENT_ID) ON DELETE CASCADE;
0 rows inserted/updated/deleted
ij> CREATE INDEX WRCS_ME_FK_INDEX ON 
JSL_DB.WITHIN_REP_COUNTER_STAT(SIM_RUN_ID_FK, ELEMENT_ID_FK);
0 rows inserted/updated/deleted
WARNING 01504: 'WRCS_ME_FK_INDEX' index not created because it is a duplicate 
of an existing index: 'SQL0000000025-4b6f00c8-0169-c691-93ab-000007295718'.
ij> -- BATCH_STAT represents summary statistics for each simulation response 
across
-- the batches within a replication. This is produced only if the batch 
statistics
-- option is used when running the simulation.
CREATE TABLE JSL_DB.BATCH_STAT (
        ID INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START 
WITH 1 INCREMENT BY 1),
        ELEMENT_ID_FK INTEGER NOT NULL,
        SIM_RUN_ID_FK INTEGER NOT NULL,
        REP_NUM INTEGER NOT NULL CHECK (REP_NUM >=1),
        STAT_NAME VARCHAR(510),
        STAT_COUNT DOUBLE PRECISION CHECK (STAT_COUNT >=0),
        AVERAGE  DOUBLE PRECISION,
        STD_DEV DOUBLE PRECISION CHECK (STD_DEV >=0),
        STD_ERR DOUBLE PRECISION CHECK (STD_ERR >=0),
        HALF_WIDTH DOUBLE PRECISION CHECK (HALF_WIDTH >=0),
        CONF_LEVEL DOUBLE PRECISION,
        MINIMUM  DOUBLE PRECISION,
        MAXIMUM  DOUBLE PRECISION,
        WEIGHTED_SUM  DOUBLE PRECISION,
        SUM_OF_WEIGHTS  DOUBLE PRECISION,
        WEIGHTED_SSQ DOUBLE PRECISION,
        DEV_SSQ DOUBLE PRECISION,
        LAST_VALUE DOUBLE PRECISION,
        LAST_WEIGHT DOUBLE PRECISION,
        KURTOSIS DOUBLE PRECISION,
        SKEWNESS DOUBLE PRECISION,
        LAG1_COV DOUBLE PRECISION,
        LAG1_CORR DOUBLE PRECISION,
        VON_NEUMAN_LAG1_STAT DOUBLE PRECISION,
        NUM_MISSING_OBS DOUBLE PRECISION,
        MIN_BATCH_SIZE DOUBLE PRECISION,
        MIN_NUM_BATCHES DOUBLE PRECISION,
        MAX_NUM_BATCHES_MULTIPLE DOUBLE PRECISION,
        MAX_NUM_BATCHES DOUBLE PRECISION,
        NUM_REBATCHES DOUBLE PRECISION,
        CURRENT_BATCH_SIZE DOUBLE PRECISION,
        AMT_UNBATCHED DOUBLE PRECISION,
        TOTAL_NUM_OBS DOUBLE PRECISION
);
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.BATCH_STAT
        ADD CONSTRAINT BS_SIMRUN_FK FOREIGN KEY (SIM_RUN_ID_FK) REFERENCES 
JSL_DB.SIMULATION_RUN (ID) ON DELETE CASCADE;
0 rows inserted/updated/deleted
ij> ALTER TABLE JSL_DB.BATCH_STAT
  ADD CONSTRAINT BS_MODEL_ELEMENT_FK FOREIGN KEY (SIM_RUN_ID_FK, ELEMENT_ID_FK)
  REFERENCES JSL_DB.MODEL_ELEMENT (SIM_RUN_ID_FK, ELEMENT_ID) ON DELETE CASCADE;
0 rows inserted/updated/deleted
ij> CREATE INDEX BS_ME_FK_INDEX ON JSL_DB.BATCH_STAT(SIM_RUN_ID_FK, 
ELEMENT_ID_FK);
0 rows inserted/updated/deleted
WARNING 01504: 'BS_ME_FK_INDEX' index not created because it is a duplicate of 
an existing index: 'SQL0000000033-01b7c0e6-0169-c691-93ab-000007295718'.
ij> -- WITHIN_REP_RESPONSE_VIEW represents a reduced view of within replication 
statistics containing only the average for the replication
CREATE VIEW JSL_DB.WITHIN_REP_RESPONSE_VIEW (SIM_RUN_ID_FK, EXP_NAME, 
ELEMENT_NAME, STAT_NAME, REP_NUM, AVERAGE)
  AS (SELECT JSL_DB.WITHIN_REP_STAT.SIM_RUN_ID_FK, EXP_NAME, ELEMENT_NAME, 
STAT_NAME, REP_NUM, AVERAGE
      FROM (JSL_DB.SIMULATION_RUN JOIN JSL_DB.WITHIN_REP_STAT on 
JSL_DB.SIMULATION_RUN.ID = JSL_DB.WITHIN_REP_STAT.SIM_RUN_ID_FK)
        JOIN JSL_DB.MODEL_ELEMENT ON ELEMENT_ID = 
JSL_DB.WITHIN_REP_STAT.ELEMENT_ID_FK);
0 rows inserted/updated/deleted
ij> -- WITHIN_REP_COUNTER_VIEW represents a reduced view of within replication 
counter containing only the last value for the replication   
CREATE VIEW JSL_DB.WITHIN_REP_COUNTER_VIEW (SIM_RUN_ID_FK, EXP_NAME, 
ELEMENT_NAME, STAT_NAME, REP_NUM, LAST_VALUE)
  AS (SELECT JSL_DB.WITHIN_REP_COUNTER_STAT.SIM_RUN_ID_FK, EXP_NAME, 
ELEMENT_NAME, STAT_NAME, REP_NUM, LAST_VALUE
     FROM (JSL_DB.SIMULATION_RUN JOIN JSL_DB.WITHIN_REP_COUNTER_STAT on 
JSL_DB.SIMULATION_RUN.ID = JSL_DB.WITHIN_REP_COUNTER_STAT.SIM_RUN_ID_FK)
       JOIN JSL_DB.MODEL_ELEMENT ON ELEMENT_ID = 
JSL_DB.WITHIN_REP_COUNTER_STAT.ELEMENT_ID_FK);
0 rows inserted/updated/deleted
ij> -- ACROSS_REP_VIEW represents a reduced view of the across replication 
responses containing only n, avg, and stddev       
CREATE VIEW JSL_DB.ACROSS_REP_VIEW (SIM_RUN_ID_FK, EXP_NAME, ELEMENT_NAME, 
STAT_NAME, STAT_COUNT, AVERAGE, STD_DEV)
AS (SELECT JSL_DB.ACROSS_REP_STAT.SIM_RUN_ID_FK, EXP_NAME, ELEMENT_NAME, 
STAT_NAME, STAT_COUNT, AVERAGE, STD_DEV
FROM (JSL_DB.SIMULATION_RUN JOIN JSL_DB.ACROSS_REP_STAT on 
JSL_DB.SIMULATION_RUN.ID = JSL_DB.ACROSS_REP_STAT.SIM_RUN_ID_FK)
  JOIN JSL_DB.MODEL_ELEMENT ON ELEMENT_ID = 
JSL_DB.ACROSS_REP_STAT.ELEMENT_ID_FK);
0 rows inserted/updated/deleted
ij> -- BATCH_STAT_VIEW represents a reduced view of the batch statistics 
responses containing only n, avg, and stddev  
CREATE VIEW JSL_DB.BATCH_STAT_VIEW (SIM_RUN_ID_FK, EXP_NAME, ELEMENT_NAME, 
STAT_NAME, STAT_COUNT, AVERAGE, STD_DEV)
  AS (SELECT JSL_DB.BATCH_STAT.SIM_RUN_ID_FK, EXP_NAME, ELEMENT_NAME, 
STAT_NAME, STAT_COUNT, AVERAGE, STD_DEV
     FROM (JSL_DB.SIMULATION_RUN JOIN JSL_DB.BATCH_STAT on 
JSL_DB.SIMULATION_RUN.ID = JSL_DB.BATCH_STAT.SIM_RUN_ID_FK)
       JOIN JSL_DB.MODEL_ELEMENT ON ELEMENT_ID = 
JSL_DB.BATCH_STAT.ELEMENT_ID_FK);
0 rows inserted/updated/deleted
ij> -- WITHIN_REP_VIEW combines the WITHIN_REP_COUNTER_VIEW and 
WITHIN_REP_RESPONSE_VIEW into one table from which across
-- replication or other statistical summaries by replication can be produced
CREATE VIEW JSL_DB.WITHIN_REP_VIEW (SIM_RUN_ID_FK, EXP_NAME, ELEMENT_NAME, 
STAT_NAME, REP_NUM, VALUE) AS
       (SELECT JSL_DB.WITHIN_REP_STAT.SIM_RUN_ID_FK, EXP_NAME, ELEMENT_NAME, 
STAT_NAME, REP_NUM, AVERAGE AS VALUE
FROM (JSL_DB.SIMULATION_RUN JOIN JSL_DB.WITHIN_REP_STAT on 
JSL_DB.SIMULATION_RUN.ID = JSL_DB.WITHIN_REP_STAT.SIM_RUN_ID_FK)
       JOIN JSL_DB.MODEL_ELEMENT ON ELEMENT_ID = 
JSL_DB.WITHIN_REP_STAT.ELEMENT_ID_FK
UNION
SELECT JSL_DB.WITHIN_REP_COUNTER_STAT.SIM_RUN_ID_FK, EXP_NAME, ELEMENT_NAME, 
STAT_NAME, REP_NUM, LAST_VALUE as VALUE
FROM (JSL_DB.SIMULATION_RUN JOIN JSL_DB.WITHIN_REP_COUNTER_STAT on 
JSL_DB.SIMULATION_RUN.ID = JSL_DB.WITHIN_REP_COUNTER_STAT.SIM_RUN_ID_FK)
            JOIN JSL_DB.MODEL_ELEMENT ON ELEMENT_ID = 
JSL_DB.WITHIN_REP_COUNTER_STAT.ELEMENT_ID_FK);
0 rows inserted/updated/deleted
ij> -- PW_DIFF_WITHIN_REP_VIEW computes the pairwise differences across 
difference simulation experiments
-- doesn't work for derby, 3-28-2019, works for postgres
-- 
 create view JSL_DB.PW_DIFF_WITHIN_REP_VIEW
 as (select SIMULATION_RUN.SIM_NAME, A.SIM_RUN_ID_FK AS A_SIM_NUM, A.STAT_NAME, 
A.EXP_NAME as A_EXP_NAME, A.REP_NUM, A.VAE as A_VALUE,
            B.SIM_RUN_ID_FK as B_SIM_NUM, B.EXP_NAME as B_EXP_NAME, B.VALUE as 
B_VALUE,
            '(' || A.EXP_NAME || ' - ' || B.EXP_NAME || ')' as DIFF_NAME, 
(A.VALUE - B.VALUE) as A_MINUS_B
     from JSL_DB.WITHIN_REP_VIEW as A, JSL_DB.WITHIN_REP_VIEW as B, 
JSL_DB.SIMULATION_RUN
     where A.SIM_RUN_ID_FK = JSL_DB.SIMULATION_RUN.ID
       and A.STAT_NAME = B.STAT_NAME
       and A.REP_NUM = B.REP_NUM
       and A.SIM_RUN_ID_FK > B.SIM_RUN_ID_FK
       and A.ELEMENT_NAME = B.ELEMENT_NAME);
ERROR 42X04: Column 'SIMULATION_RUN.SIM_NAME' is either not in any table in the 
FROM list or appears within a join specification and is outside the scope of 
the join specification or appears in a HAVING clause and is not in the GROUP BY 
list. If this is a CREATE or ALTER TABLE  statement then 
'SIMULATION_RUN.SIM_NAME' is not a column in the target table.
{noformat}

When I adjusted the bad column reference, the script terminated with the 
following error:

{noformat}
 create view JSL_DB.PW_DIFF_WITHIN_REP_VIEW
 as (select SIM_NAME, A.SIM_RUN_ID_FK AS A_SIM_NUM, A.STAT_NAME, A.EXP_NAME as 
A_EXP_NAME, A.REP_NUM, A.VAE as A_VALUE,
            B.SIM_RUN_ID_FK as B_SIM_NUM, B.EXP_NAME as B_EXP_NAME, B.VALUE as 
B_VALUE,
            '(' || A.EXP_NAME || ' - ' || B.EXP_NAME || ')' as DIFF_NAME, 
(A.VALUE - B.VALUE) as A_MINUS_B
     from JSL_DB.WITHIN_REP_VIEW as A, JSL_DB.WITHIN_REP_VIEW as B, 
JSL_DB.SIMULATION_RUN
     where A.SIM_RUN_ID_FK = JSL_DB.SIMULATION_RUN.ID
       and A.STAT_NAME = B.STAT_NAME
       and A.REP_NUM = B.REP_NUM
       and A.SIM_RUN_ID_FK > B.SIM_RUN_ID_FK
       and A.ELEMENT_NAME = B.ELEMENT_NAME);
ERROR 42X04: Column 'A.VAE' is either not in any table in the FROM list or 
appears within a join specification and is outside the scope of the join 
specification or appears in a HAVING clause and is not in the GROUP BY list. If 
this is a CREATE or ALTER TABLE  statement then 'A.VAE' is not a column in the 
target table.
{noformat}

At that point, I gave up trying to adjust the script. Could you attach a script 
which runs on Derby without any errors except for the NPE? Thanks.


> null pointer exception when creating view based on other views
> --------------------------------------------------------------
>
>                 Key: DERBY-7041
>                 URL: https://issues.apache.org/jira/browse/DERBY-7041
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.14.2.0
>         Environment: max os x , intellij
>            Reporter: Manuel Rossetti
>            Priority: Major
>         Attachments: JSLDb.sql, JSLDb_DriveThroughPharmacy.zip
>
>
> I can execute a SELECT query that works but when I try to create a view on 
> that select query, I simply get a java null pointer exception with no 
> details.  I have tested the same statements on a postgres database and they 
> worked without error.
> Below, the PW_DIFF_WITHIN_REP_VIEW create does work, but the 
> PW_DIFF_AR_REP_VIEW does not.  Again, the SELECT clause of 
> PW_DIFF_AR_REP_VIEW will work, but when used within the create clause the 
> error occurs.
> I have attached the entire database creation script and an embedded instance 
> that can be used for testing. It has data.
>  
> -- WITHIN_REP_VIEW combines the WITHIN_REP_COUNTER_VIEW and 
> WITHIN_REP_RESPONSE_VIEW into one table from which across
> -- replication or other statistical summaries by replication can be produced
> CREATE VIEW JSL_DB.WITHIN_REP_VIEW (SIM_RUN_ID_FK, EXP_NAME, ELEMENT_NAME, 
> STAT_NAME, REP_NUM, VALUE) AS
>  (SELECT JSL_DB.WITHIN_REP_STAT.SIM_RUN_ID_FK, EXP_NAME, ELEMENT_NAME, 
> STAT_NAME, REP_NUM, AVERAGE AS VALUE
> FROM (JSL_DB.SIMULATION_RUN JOIN JSL_DB.WITHIN_REP_STAT on 
> JSL_DB.SIMULATION_RUN.ID = JSL_DB.WITHIN_REP_STAT.SIM_RUN_ID_FK)
>  JOIN JSL_DB.MODEL_ELEMENT ON ELEMENT_ID = 
> JSL_DB.WITHIN_REP_STAT.ELEMENT_ID_FK
> UNION
> SELECT JSL_DB.WITHIN_REP_COUNTER_STAT.SIM_RUN_ID_FK, EXP_NAME, ELEMENT_NAME, 
> STAT_NAME, REP_NUM, LAST_VALUE as VALUE
> FROM (JSL_DB.SIMULATION_RUN JOIN JSL_DB.WITHIN_REP_COUNTER_STAT on 
> JSL_DB.SIMULATION_RUN.ID = JSL_DB.WITHIN_REP_COUNTER_STAT.SIM_RUN_ID_FK)
>  JOIN JSL_DB.MODEL_ELEMENT ON ELEMENT_ID = 
> JSL_DB.WITHIN_REP_COUNTER_STAT.ELEMENT_ID_FK); 
>  
> -- PW_DIFF_WITHIN_REP_VIEW computes the pairwise differences across 
> difference simulation experiments
> -- doesn't work for derby, 3-28-2019, works for postgres
> -- 
> -- create view JSL_DB.PW_DIFF_WITHIN_REP_VIEW
> -- as (select SIMULATION_RUN.SIM_NAME, A.SIM_RUN_ID_FK AS A_SIM_NUM, 
> A.STAT_NAME, A.EXP_NAME as A_EXP_NAME, A.REP_NUM, A.VALUE as A_VALUE,
> -- B.SIM_RUN_ID_FK as B_SIM_NUM, B.EXP_NAME as B_EXP_NAME, B.VALUE as B_VALUE,
> -- '(' || A.EXP_NAME || ' - ' || B.EXP_NAME || ')' as DIFF_NAME, (A.VALUE - 
> B.VALUE) as A_MINUS_B
> -- from JSL_DB.WITHIN_REP_VIEW as A, JSL_DB.WITHIN_REP_VIEW as B, 
> JSL_DB.SIMULATION_RUN
> -- where A.SIM_RUN_ID_FK = JSL_DB.SIMULATION_RUN.ID
> -- and A.STAT_NAME = B.STAT_NAME
> -- and A.REP_NUM = B.REP_NUM
> -- and A.SIM_RUN_ID_FK > B.SIM_RUN_ID_FK
> -- and A.ELEMENT_NAME = B.ELEMENT_NAME);
> --
> -- create view JSL_DB.PW_DIFF_AR_REP_VIEW (SIM_NAME, STAT_NAME, A_EXP_NAME, 
> B_EXP_NAME, DIFF_NAME, AVG_A, STD_DEV_A,
> -- AVG_B, STD_DEV_B, AVG_DIFF_A_MINUS_B, STD_DEV_DIFF_A_MINUS_B, STAT_COUNT)
> -- as (select SIM_NAME, STAT_NAME, A_EXP_NAME, B_EXP_NAME, DIFF_NAME, 
> AVG(A_VALUE) as AVG_A, STDDEV_SAMP(A_VALUE) as STD_DEV_A,
> -- AVG(B_VALUE) as AVG_B, STDDEV_SAMP(B_VALUE) as STD_DEV_B,
> -- AVG(A_MINUS_B) as AVG_DIFF_A_MINUS_B, STDDEV_SAMP(A_MINUS_B) as 
> STD_DEV_DIFF_A_MINUS_B,
> -- COUNT(A_MINUS_B) as STAT_COUNT
> -- from JSL_DB.PW_DIFF_WITHIN_REP_VIEW
> -- group by SIM_NAME, STAT_NAME, A_EXP_NAME, B_EXP_NAME, DIFF_NAME);



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to