[ 
https://issues.apache.org/jira/browse/PHOENIX-7047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jacob Isaac updated PHOENIX-7047:
---------------------------------
    Description: 
 
{code:java}
@Test
public void testTenantViewUpdate() throws Exception {
    Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
    try (Connection conn = DriverManager.getConnection(getUrl(), props)) {
        String schemaName = generateUniqueName();
        String dataTableName = generateUniqueName();
        String dataTableFullName = SchemaUtil.getTableName(schemaName, 
dataTableName);
        String globalViewName = generateUniqueName();
        String globalViewFullName = SchemaUtil.getTableName(schemaName, 
globalViewName);
        String viewName = generateUniqueName();
        String viewFullName = SchemaUtil.getTableName(schemaName, viewName);
        String leafViewName = generateUniqueName();
        String leafViewFullName = SchemaUtil.getTableName(schemaName, 
leafViewName);
        String indexTableName1 = generateUniqueName();
        String indexTableFullName1 = SchemaUtil.getTableName(schemaName, 
indexTableName1);

        conn.createStatement().execute("CREATE TABLE " + dataTableFullName
                + " (OID CHAR(15) NOT NULL, KP CHAR(3) NOT NULL, VAL1 INTEGER, 
VAL2 INTEGER CONSTRAINT PK PRIMARY KEY (OID, KP)) MULTI_TENANT=true");
        conn.commit();
        conn.createStatement().execute(String.format("CREATE VIEW IF NOT EXISTS 
%s(ID1 INTEGER not null, COL4 VARCHAR, CONSTRAINT pk PRIMARY KEY (ID1)) AS 
SELECT * FROM %s WHERE KP = 'P01'", globalViewFullName, dataTableFullName));
        conn.commit();

        conn.createStatement().execute(String.format(
                "CREATE INDEX IF NOT EXISTS %s ON %s(ID1) include (COL4)", 
indexTableName1, globalViewFullName));

        conn.createStatement().execute(String.format("CREATE VIEW IF NOT EXISTS 
%s(TP INTEGER not null, ROW_ID CHAR(15) NOT NULL,COLA VARCHAR CONSTRAINT pk 
PRIMARY KEY (TP,ROW_ID)) AS SELECT * FROM %s WHERE ID1 = 42724", 
viewFullName,globalViewFullName));
        conn.commit();

        conn.createStatement().execute(String.format("CREATE VIEW IF NOT EXISTS 
%s AS SELECT * from %s WHERE TP = 32", leafViewFullName, viewFullName));
        conn.commit();

        conn.createStatement().execute("UPSERT INTO " + leafViewFullName + " 
(OID, ROW_ID, COL4, COLA) values ('00D0y0000000001', 
'00Z0y0000000001','d07223','a05493')");
        conn.commit();


        TestUtil.dumpTable(conn, TableName.valueOf(dataTableFullName));
        TestUtil.dumpTable(conn, TableName.valueOf(("_IDX_" + 
dataTableFullName)));
    }
}
{code}

  was:
 
{code:java}
@Test
public void testTenantViewUpdate() throws Exception {
    Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
    try (Connection conn = DriverManager.getConnection(getUrl(), props)) {
        String schemaName = generateUniqueName();
        String dataTableName = generateUniqueName();
        String dataTableFullName = SchemaUtil.getTableName(schemaName, 
dataTableName);
        String globalViewName = generateUniqueName();
        String globalViewFullName = SchemaUtil.getTableName(schemaName, 
globalViewName);
        String viewName = generateUniqueName();
        String viewFullName = SchemaUtil.getTableName(schemaName, viewName);
        String leafViewName = generateUniqueName();
        String leafViewFullName = SchemaUtil.getTableName(schemaName, 
leafViewName);
        String indexTableName1 = generateUniqueName();
        String indexTableFullName1 = SchemaUtil.getTableName(schemaName, 
indexTableName1);

        conn.createStatement().execute("CREATE TABLE " + dataTableFullName
                + " (OID CHAR(15) NOT NULL, KP CHAR(3) NOT NULL, VAL1 INTEGER, 
VAL2 INTEGER CONSTRAINT PK PRIMARY KEY (OID, KP)) MULTI_TENANT=true");
        conn.commit();
        conn.createStatement().execute(String.format("CREATE VIEW IF NOT EXISTS 
%s(ID1 INTEGER not null, COL4 VARCHAR, CONSTRAINT pk PRIMARY KEY (ID1)) AS 
SELECT * FROM %s WHERE KP = 'P01'", globalViewFullName, dataTableFullName));
        conn.commit();

        conn.createStatement().execute(String.format(
                "CREATE INDEX IF NOT EXISTS %s ON %s(ID1) include (COL4)", 
indexTableName1, globalViewFullName));

        conn.createStatement().execute(String.format("CREATE VIEW IF NOT EXISTS 
%s(TP INTEGER not null, ROW_ID CHAR(15) NOT NULL,COLA VARCHAR CONSTRAINT pk 
PRIMARY KEY (TP,ROW_ID)) AS SELECT * FROM %s WHERE ID1 = 42724", 
viewFullName,globalViewFullName));
        conn.commit();

        conn.createStatement().execute(String.format("CREATE VIEW IF NOT EXISTS 
%s AS SELECT * from %s WHERE TP = 32", leafViewFullName, viewFullName));
        conn.commit();

        conn.createStatement().execute("UPSERT INTO " + leafViewFullName + " 
(OID, ROW_ID, COL4, COLA) values ('00D0y0000000001', 
'00Z0y0000000001','d07223','a05493')");
        conn.commit();


        TestUtil.dumpTable(conn, TableName.valueOf(dataTableFullName));
        TestUtil.dumpTable(conn, TableName.valueOf(("_IDX_" + 
dataTableFullName)));
    }
}
}
{code}
 


> Index rows not generated for certain multilevel views
> -----------------------------------------------------
>
>                 Key: PHOENIX-7047
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-7047
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Jacob Isaac
>            Priority: Major
>
>  
> {code:java}
> @Test
> public void testTenantViewUpdate() throws Exception {
>     Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
>     try (Connection conn = DriverManager.getConnection(getUrl(), props)) {
>         String schemaName = generateUniqueName();
>         String dataTableName = generateUniqueName();
>         String dataTableFullName = SchemaUtil.getTableName(schemaName, 
> dataTableName);
>         String globalViewName = generateUniqueName();
>         String globalViewFullName = SchemaUtil.getTableName(schemaName, 
> globalViewName);
>         String viewName = generateUniqueName();
>         String viewFullName = SchemaUtil.getTableName(schemaName, viewName);
>         String leafViewName = generateUniqueName();
>         String leafViewFullName = SchemaUtil.getTableName(schemaName, 
> leafViewName);
>         String indexTableName1 = generateUniqueName();
>         String indexTableFullName1 = SchemaUtil.getTableName(schemaName, 
> indexTableName1);
>         conn.createStatement().execute("CREATE TABLE " + dataTableFullName
>                 + " (OID CHAR(15) NOT NULL, KP CHAR(3) NOT NULL, VAL1 
> INTEGER, VAL2 INTEGER CONSTRAINT PK PRIMARY KEY (OID, KP)) 
> MULTI_TENANT=true");
>         conn.commit();
>         conn.createStatement().execute(String.format("CREATE VIEW IF NOT 
> EXISTS %s(ID1 INTEGER not null, COL4 VARCHAR, CONSTRAINT pk PRIMARY KEY 
> (ID1)) AS SELECT * FROM %s WHERE KP = 'P01'", globalViewFullName, 
> dataTableFullName));
>         conn.commit();
>         conn.createStatement().execute(String.format(
>                 "CREATE INDEX IF NOT EXISTS %s ON %s(ID1) include (COL4)", 
> indexTableName1, globalViewFullName));
>         conn.createStatement().execute(String.format("CREATE VIEW IF NOT 
> EXISTS %s(TP INTEGER not null, ROW_ID CHAR(15) NOT NULL,COLA VARCHAR 
> CONSTRAINT pk PRIMARY KEY (TP,ROW_ID)) AS SELECT * FROM %s WHERE ID1 = 
> 42724", viewFullName,globalViewFullName));
>         conn.commit();
>         conn.createStatement().execute(String.format("CREATE VIEW IF NOT 
> EXISTS %s AS SELECT * from %s WHERE TP = 32", leafViewFullName, 
> viewFullName));
>         conn.commit();
>         conn.createStatement().execute("UPSERT INTO " + leafViewFullName + " 
> (OID, ROW_ID, COL4, COLA) values ('00D0y0000000001', 
> '00Z0y0000000001','d07223','a05493')");
>         conn.commit();
>         TestUtil.dumpTable(conn, TableName.valueOf(dataTableFullName));
>         TestUtil.dumpTable(conn, TableName.valueOf(("_IDX_" + 
> dataTableFullName)));
>     }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to