/* This file is part of VoltDB. * Copyright (C) 2008-2017 VoltDB Inc. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ package org.voltdb_testprocs.regressionsuites.matviewprocs; import org.voltdb.ProcInfo; import org.voltdb.SQLStmt; import org.voltdb.VoltProcedure; import org.voltdb.VoltTable; @ProcInfo ( singlePartition = false ) public class TruncateMatViewDataMP extends VoltProcedure { public final SQLStmt truncatebase1 = new SQLStmt("TRUNCATE TABLE PEOPLE;"); public final SQLStmt truncatebase2 = new SQLStmt("TRUNCATE TABLE THINGS;"); public final SQLStmt truncatebase3 = new SQLStmt("TRUNCATE TABLE OVERFLOWTEST;"); public final SQLStmt truncatebase4 = new SQLStmt("TRUNCATE TABLE ENG798;"); public final SQLStmt truncatebase5 = new SQLStmt("TRUNCATE TABLE CONTEST;"); public final SQLStmt truncatebase6 = new SQLStmt("TRUNCATE TABLE DEPT_PEOPLE;"); public final SQLStmt truncatebase7 = new SQLStmt("TRUNCATE TABLE ENG6511;"); public final SQLStmt truncatebase8 = new SQLStmt("TRUNCATE TABLE CUSTOMERS;"); public final SQLStmt truncatebase9 = new SQLStmt("TRUNCATE TABLE ORDERS;"); public final SQLStmt truncatebase10 = new SQLStmt("TRUNCATE TABLE ORDERITEMS;"); public final SQLStmt truncatebase11 = new SQLStmt("TRUNCATE TABLE PRODUCTS;"); public final SQLStmt validatebase1 = new SQLStmt("SELECT COUNT(*) FROM PEOPLE;"); public final SQLStmt validatebase2 = new SQLStmt("SELECT COUNT(*) FROM THINGS;"); public final SQLStmt validatebase3 = new SQLStmt("SELECT COUNT(*) FROM OVERFLOWTEST;"); public final SQLStmt validatebase4 = new SQLStmt("SELECT COUNT(*) FROM ENG798;"); public final SQLStmt validatebase5 = new SQLStmt("SELECT COUNT(*) FROM CONTEST;"); public final SQLStmt validatebase6 = new SQLStmt("SELECT COUNT(*) FROM DEPT_PEOPLE;"); public final SQLStmt validatebase7 = new SQLStmt("SELECT COUNT(*) FROM ENG6511;"); public final SQLStmt validatebase8 = new SQLStmt("SELECT COUNT(*) FROM CUSTOMERS;"); public final SQLStmt validatebase9 = new SQLStmt("SELECT COUNT(*) FROM ORDERS;"); public final SQLStmt validatebase10 = new SQLStmt("SELECT COUNT(*) FROM ORDERITEMS;"); public final SQLStmt validatebase11 = new SQLStmt("SELECT COUNT(*) FROM PRODUCTS;"); public final SQLStmt validateview1 = new SQLStmt("SELECT COUNT(*) FROM MATPEOPLE;"); public final SQLStmt validateview2 = new SQLStmt("SELECT COUNT(*) FROM MATTHINGS;"); public final SQLStmt validateview3 = new SQLStmt("SELECT COUNT(*) FROM V_OVERFLOWTEST;"); public final SQLStmt validateview4 = new SQLStmt("SELECT COUNT(*) FROM V_ENG798;"); public final SQLStmt validateview5 = new SQLStmt("SELECT COUNT(*) FROM V_RUNNING_TEAM;"); public final SQLStmt validateview6 = new SQLStmt("SELECT COUNT(*) FROM V_TEAM_MEMBERSHIP;"); public final SQLStmt validateview7 = new SQLStmt("SELECT COUNT(*) FROM V_TEAM_TIMES;"); public final SQLStmt validateview8 = new SQLStmt("SELECT COUNT(*) FROM MATPEOPLE2;"); public final SQLStmt validateview9 = new SQLStmt("SELECT COUNT(*) FROM MATPEOPLE3;"); public final SQLStmt validateview10 = new SQLStmt("SELECT COUNT(*) FROM DEPT_AGE_MATVIEW;"); public final SQLStmt validateview11 = new SQLStmt("SELECT COUNT(*) FROM DEPT_AGE_FILTER_MATVIEW;"); public final SQLStmt validateview12 = new SQLStmt("SELECT COUNT(*) FROM VENG6511;"); public final SQLStmt validateview13 = new SQLStmt("SELECT COUNT(*) FROM VENG6511expL;"); public final SQLStmt validateview14 = new SQLStmt("SELECT COUNT(*) FROM VENG6511expR;"); public final SQLStmt validateview15 = new SQLStmt("SELECT COUNT(*) FROM VENG6511expLR;"); public final SQLStmt validateview16 = new SQLStmt("SELECT COUNT(*) FROM VENG6511C;"); public final SQLStmt validateview17 = new SQLStmt("SELECT COUNT(*) FROM ORDER_COUNT_NOPCOL;"); // ORDER_COUNT_GLOBAL is a view without group by column. // If the source tables are successfully truncated, it will have one row with value 0. public final SQLStmt validateview18 = new SQLStmt("SELECT CNT FROM ORDER_COUNT_GLOBAL;"); public final SQLStmt validateview19 = new SQLStmt("SELECT COUNT(*) FROM ORDER_DETAIL_NOPCOL;"); public final SQLStmt validateview20 = new SQLStmt("SELECT COUNT(*) FROM ORDER_DETAIL_WITHPCOL;"); public final SQLStmt validateview21 = new SQLStmt("SELECT COUNT(*) FROM ORDER2016;"); // The following four views are all views without group-by columns (ENG-7872). public final SQLStmt validateview22 = new SQLStmt("SELECT * FROM MATPEOPLE_COUNT;"); public final SQLStmt validateview23 = new SQLStmt("SELECT * FROM MATPEOPLE_CONDITIONAL_COUNT;"); public final SQLStmt validateview24 = new SQLStmt("SELECT NUM FROM MATPEOPLE_CONDITIONAL_COUNT_SUM;"); public final SQLStmt validateview25 = new SQLStmt("SELECT NUM FROM MATPEOPLE_CONDITIONAL_COUNT_MIN_MAX;"); public VoltTable[] run() { VoltTable[] result; voltQueueSQL(truncatebase1); // ("TRUNCATE TABLE PEOPLE;"); voltQueueSQL(truncatebase2); // ("TRUNCATE TABLE THINGS;"); voltQueueSQL(truncatebase3); // ("TRUNCATE TABLE OVERFLOWTEST;"); voltQueueSQL(truncatebase4); // ("TRUNCATE TABLE ENG798;"); voltQueueSQL(truncatebase5); // ("TRUNCATE TABLE CONTEST;"); voltQueueSQL(truncatebase6); // ("TRUNCATE TABLE DEPT_PEOPLE;"); voltQueueSQL(truncatebase7); // ("TRUNCATE TABLE ENG6511;"); voltQueueSQL(truncatebase8); // ("TRUNCATE TABLE CUSTOMERS;"); voltQueueSQL(truncatebase9); // ("TRUNCATE TABLE ORDERS;"); voltQueueSQL(truncatebase10); // ("TRUNCATE TABLE ORDERITEMS;"); voltQueueSQL(truncatebase11); // ("TRUNCATE TABLE PRODUCTS;"); result = voltExecuteSQL(); /* for (VoltTable deleted : result) { System.out.println("DEBUG Deleted: " + deleted.asScalarLong()); } */ voltQueueSQL(validatebase1); // ("SELECT COUNT(*) FROM PEOPLE;"); voltQueueSQL(validatebase2); // ("SELECT COUNT(*) FROM THINGS;"); voltQueueSQL(validatebase3); // ("SELECT COUNT(*) FROM OVERFLOWTEST;"); voltQueueSQL(validatebase4); // ("SELECT COUNT(*) FROM ENG798;"); voltQueueSQL(validatebase5); // ("SELECT COUNT(*) FROM contest;"); voltQueueSQL(validatebase6); // ("SELECT COUNT(*) FROM DEPT_PEOPLE;"); voltQueueSQL(validatebase7); // ("SELECT COUNT(*) FROM ENG6511;"); voltQueueSQL(validatebase8); // ("SELECT COUNT(*) FROM CUSTOMERS;"); voltQueueSQL(validatebase9); // ("SELECT COUNT(*) FROM ORDERS;"); voltQueueSQL(validatebase10); // ("SELECT COUNT(*) FROM ORDERITEMS;"); voltQueueSQL(validatebase11); // ("SELECT COUNT(*) FROM PRODUCTS;"); voltQueueSQL(validateview1); // ("SELECT COUNT(*) FROM MATPEOPLE;"); voltQueueSQL(validateview2); // ("SELECT COUNT(*) FROM MATTHINGS;"); voltQueueSQL(validateview3); // ("SELECT COUNT(*) FROM V_OVERFLOWTEST;"); voltQueueSQL(validateview4); // ("SELECT COUNT(*) FROM V_ENG798;"); voltQueueSQL(validateview5); // ("SELECT COUNT(*) FROM V_RUNNING_TEAM;"); voltQueueSQL(validateview6); // ("SELECT COUNT(*) FROM V_TEAM_MEMBERSHIP;"); voltQueueSQL(validateview7); // ("SELECT COUNT(*) FROM V_TEAM_TIMES;"); voltQueueSQL(validateview8); // ("SELECT COUNT(*) FROM MATPEOPLE2;"); voltQueueSQL(validateview9); // ("SELECT COUNT(*) FROM MATPEOPLE3;"); voltQueueSQL(validateview10); // ("SELECT COUNT(*) FROM DEPT_AGE_MATVIEW;"); voltQueueSQL(validateview11); // ("SELECT COUNT(*) FROM DEPT_AGE_FILTER_MATVIEW;"); voltQueueSQL(validateview12); // ("SELECT COUNT(*) FROM VENG6511;"); voltQueueSQL(validateview13); // ("SELECT COUNT(*) FROM VENG6511expL;"); voltQueueSQL(validateview14); // ("SELECT COUNT(*) FROM VENG6511expR;"); voltQueueSQL(validateview15); // ("SELECT COUNT(*) FROM VENG6511expLR;"); voltQueueSQL(validateview16); // ("SELECT COUNT(*) FROM VENG6511C;"); voltQueueSQL(validateview17); // ("SELECT COUNT(*) FROM ORDER_COUNT_NOPCOL;"); voltQueueSQL(validateview18); // ("SELECT CNT FROM ORDER_COUNT_GLOBAL;"); voltQueueSQL(validateview19); // ("SELECT COUNT(*) FROM ORDER_DETAIL_NOPCOL;"); voltQueueSQL(validateview20); // ("SELECT COUNT(*) FROM ORDER_DETAIL_WITHPCOL;"); voltQueueSQL(validateview21); // ("SELECT COUNT(*) FROM ORDER2016;"); voltQueueSQL(validateview22); // ("SELECT * FROM MATPEOPLE_COUNT;"); voltQueueSQL(validateview23); // ("SELECT * FROM MATPEOPLE_CONDITIONAL_COUNT;"); voltQueueSQL(validateview24); // ("SELECT NUM FROM MATPEOPLE_CONDITIONAL_COUNT_SUM;"); voltQueueSQL(validateview25); // ("SELECT NUM FROM MATPEOPLE_CONDITIONAL_COUNT_MIN_MAX;"); result = voltExecuteSQL(true); int ii = 0; for (VoltTable undeleted : result) { ++ii; try { long found = undeleted.asScalarLong(); if (found != 0) { System.out.println("DEBUG: In TruncateMatViewDataMP.java," + " validated truncate statements with check " + ii + " and got: " + found + " undeleted tuples."); } } catch (Exception exc) { System.out.println("DEBUG: In TruncateMatViewDataMP.java, " + "validated truncate statements with check " + ii + " and got: " + exc); } } return result; } }