def query_one_table(self, table_name):
table_date = self._datetime_for_table_name(table_name)<EOL>logger.info('<STR_LIT>', table_name,<EOL>table_date.strftime('<STR_LIT>'))<EOL>final = self._dict_for_projects()<EOL>try:<EOL><INDENT>data_timestamp = self._get_newest_ts_in_table(table_name)<EOL><DEDENT>except HttpError as exc:<EOL><INDENT>try:<EOL><INDENT>content = json.loads(exc.content.decode('<STR_LIT:utf-8>'))<EOL>if content['<STR_LIT:error>']['<STR_LIT:message>'].startswith('<STR_LIT>'):<EOL><INDENT>logger.error("<STR_LIT>",<EOL>table_name)<EOL>return<EOL><DEDENT><DEDENT>except:<EOL><INDENT>pass<EOL><DEDENT>raise exc<EOL><DEDENT>for name, func in {<EOL>'<STR_LIT>': self._query_by_version,<EOL>'<STR_LIT>': self._query_by_file_type,<EOL>'<STR_LIT>': self._query_by_installer,<EOL>'<STR_LIT>': self._query_by_implementation,<EOL>'<STR_LIT>': self._query_by_system,<EOL>'<STR_LIT>': self._query_by_distro,<EOL>'<STR_LIT>': self._query_by_country_code<EOL>}.items():<EOL><INDENT>tmp = func(table_name)<EOL>for proj_name in tmp:<EOL><INDENT>final[proj_name][name] = tmp[proj_name]<EOL><DEDENT><DEDENT>for proj_name in final:<EOL><INDENT>self.cache.set(proj_name, table_date, final[proj_name],<EOL>data_timestamp)<EOL><DEDENT>
Run all queries for the given table name (date) and update the cache.

:param table_name: table name to query against
:type table_name: str