public function getTableNames($schema = null, $refresh = false, $use_alias = false) { if ($refresh || empty($this->tableNames) && null === ($this->tableNames = $this->getFromCache('table_names'))) { /** @type TableNameSchema[] $names */ $names = []; /** @var QueryTablesResult $result */ $result = $this->dbConn->queryTables(); $tables = $result->getTables(); foreach ($tables as $table) { $names[strtolower($table)] = new TableNameSchema($table); } // merge db extras if (!empty($extrasEntries = $this->getSchemaExtrasForTables($tables, false))) { foreach ($extrasEntries as $extras) { if (!empty($extraName = strtolower(strval($extras['table'])))) { if (array_key_exists($extraName, $tables)) { $names[$extraName]->fill($extras); } } } } $this->tableNames = $names; $this->addToCache('table_names', $this->tableNames, true); } return $this->tableNames; }
/** * Azure splits metrics tables every 10 days so we need to get the latest one from the storage pool * @return void */ private function identifyTableName() { $tables = $this->tableRestProxy->queryTables()->getTables(); $lastDate = null; $tmpCurrentTable = null; foreach ($tables as $table) { if (strpos($table, "WADMetricsPT1MP10") !== false) { $tableDate = Carbon::createFromFormat('Ymd', substr($table, -8)); if (is_null($lastDate)) { $lastDate = $tableDate; $tmpCurrentTable = $table; continue; } if ($tableDate->gt($lastDate)) { $lastDate = $tableDate; $tmpCurrentTable = $table; } } } unset($table, $tableDate); $this->tableName = $tmpCurrentTable; }