/** * Process stored queries and change store accordingly. The query obj is modified * so that it contains non-recursive description of a select to execute for getting * the actual result. * * @param integer $id * @throws RuntimeException */ public function doExecuteSubqueryJoinDependenciesFor($id) { $this->hierarchyTempTableBuilder->emptyHierarchyCache(); $this->executedQueries = array(); // Should never happen if (!isset($this->querySegmentList[$id])) { throw new RuntimeException("{$id} doesn't exist"); } $this->doResolveBySegment($this->querySegmentList[$id]); }
public function testCreateHierarchyTempTable() { $this->connection->expects($this->once())->method('tableName')->with($this->stringContains('bar'))->will($this->returnValue('_bar')); $this->connection->expects($this->atLeastOnce())->method('query'); $instance = new HierarchyTempTableBuilder($this->connection, $this->temporaryIdTableCreator); $instance->setClassHierarchyTableDefinition('bar', 3); $instance->createHierarchyTempTableFor('class', 'foobar', '(42)'); $expected = array('(42)' => 'foobar'); $this->assertEquals($expected, $instance->getHierarchyCache()); $instance->emptyHierarchyCache(); $this->assertEmpty($instance->getHierarchyCache()); }