@Override public void failedLoad(String matTableName) { MatTableInfo info = getMatTableInfo(matTableName); synchronized (info) { if (info.state != MatState.LOADED) { info.setState(MatState.FAILED_LOAD, null); } } }
@Override public void droppedMembers(Collection<Serializable> addresses) { for (MatTableInfo info : this.matTables.values()) { synchronized (info) { if (info.getState() == MatState.LOADING && addresses.contains(info.loadingAddress)) { info.setState(MatState.FAILED_LOAD, null); } } } }
@Override public void failedLoad(String matTableName) { MatTableInfo info = getMatTableInfo(matTableName); synchronized (info) { if (info.state != MatState.LOADED) { info.setState(MatState.FAILED_LOAD, null); } } }
@Override public void droppedMembers(Collection<Serializable> addresses) { for (MatTableInfo info : this.matTables.values()) { synchronized (info) { if (info.getState() == MatState.LOADING && addresses.contains(info.loadingAddress)) { info.setState(MatState.FAILED_LOAD, null); } } } }
@Override public void droppedMembers(Collection<Serializable> addresses) { for (MatTableInfo info : this.matTables.values()) { synchronized (info) { if (info.getState() == MatState.LOADING && addresses.contains(info.loadingAddress)) { info.setState(MatState.FAILED_LOAD, null); } } } }
@Override public void failedLoad(String matTableName) { MatTableInfo info = getMatTableInfo(matTableName); synchronized (info) { if (info.state != MatState.LOADED) { info.setState(MatState.FAILED_LOAD, null); } } }
@Override public void loaded(String matTableName, TempTable table) { swapTempTable(matTableName, table); this.getMatTableInfo(matTableName).setState(MatState.LOADED, true); }
@Override public void loaded(String matTableName, TempTable table) { swapTempTable(matTableName, table); this.getMatTableInfo(matTableName).setState(MatState.LOADED, true); }
@Override public void loaded(String matTableName, TempTable table) { swapTempTable(matTableName, table); this.getMatTableInfo(matTableName).setState(MatState.LOADED, true); }
@Override public void setState(String stateId, InputStream istream) { try { ObjectInputStream ois = new ObjectInputStream(istream); loadTable(stateId, ois); ois.close(); } catch (Exception e) { MatTableInfo info = this.getMatTableInfo(stateId); if (!info.isUpToDate()) { info.setState(MatState.FAILED_LOAD, null); } throw new TeiidRuntimeException(QueryPlugin.Event.TEIID30222, e); } }
@Override public void setState(String stateId, InputStream istream) { try { ObjectInputStream ois = new ObjectInputStream(istream); loadTable(stateId, ois); ois.close(); } catch (Exception e) { MatTableInfo info = this.getMatTableInfo(stateId); if (!info.isUpToDate()) { info.setState(MatState.FAILED_LOAD, null); } throw new TeiidRuntimeException(QueryPlugin.Event.TEIID30222, e); } }
@Override public void setState(String stateId, InputStream istream) { try { ObjectInputStream ois = new ObjectInputStream(istream); loadTable(stateId, ois); ois.close(); } catch (Exception e) { MatTableInfo info = this.getMatTableInfo(stateId); if (!info.isUpToDate()) { info.setState(MatState.FAILED_LOAD, null); } throw new TeiidRuntimeException(QueryPlugin.Event.TEIID30222, e); } }
synchronized (info) { swapTempTable(stateId, tempTable); info.setState(state, true); info.updateTime = updateTime; info.loadingAddress = loadingAddress;
synchronized (info) { swapTempTable(stateId, tempTable); info.setState(state, true); info.updateTime = updateTime; info.loadingAddress = loadingAddress;
synchronized (info) { swapTempTable(stateId, tempTable); info.setState(state, true); info.updateTime = updateTime; info.loadingAddress = loadingAddress;
@Test public void testReadWrite() throws Exception { execute("SELECT * from vgroup3 where x = 'one'", Arrays.asList("one", "zne")); ByteArrayOutputStream baos = new ByteArrayOutputStream(); String matTableName = RelationalPlanner.MAT_PREFIX + "MATVIEW.VGROUP3"; this.globalStore.getState(matTableName, baos); MatTableInfo matTableInfo = this.globalStore.getMatTableInfo(matTableName); long time = matTableInfo.getUpdateTime(); this.globalStore.failedLoad(matTableName); this.globalStore.setState(matTableName, new ByteArrayInputStream(baos.toByteArray())); assertEquals(time, matTableInfo.getUpdateTime()); execute("SELECT * from vgroup3 where x = 'one'", Arrays.asList("one", "zne")); execute("select lookup('mattable.info', 'e1', 'e2', 5)", Arrays.asList((String)null)); baos = new ByteArrayOutputStream(); String codeTableName = "#CODE_MATTABLE.INFO.E2.E1"; this.globalStore.getState(codeTableName, baos); this.globalStore.setState(codeTableName, new ByteArrayInputStream(baos.toByteArray())); }