prestodb / presto-python-client

Python DB-API client for Presto
Apache License 2.0
239 stars 87 forks source link

How to run CALL system.sync_partition_metadata #126

Open shivamtundele opened 1 year ago

shivamtundele commented 1 year ago

Hi I am trying to run below query to update partitions of the schema after a table update. But fetchone and fetchall are causing errors as this updating partition statement is not getting executed and returns error coz its expecting rows to return with that query. Is there any other method to run this statement?

presto_connection = self._load_presto_connection( use_presto_service_account=self.use_presto_service_account ) cursor = presto_connection.cursor() query = f"CALL system.sync_partition_metadata(schema_name => '{schema_name}', table_name => '{table_name}', mode => 'add')" DebugLogger.info(f"Updating schema paritition for {schema_name}.{table_name}:\n {query}") cursor.execute(query) cursor.fetchone() DebugLogger.info(f"Updated schema partition!") presto_connection.close()

shivamtundele commented 1 year ago

I also tried commit method on the presto connection but its not working either

    query = f"CALL system.sync_partition_metadata(schema_name => '{schema_name}', table_name => '{table_name}', mode => 'add')"
    DebugLogger.info(f"Updating schema paritition for {schema_name}.{table_name}:\n {query}")
    presto_connection.commit()
    DebugLogger.info(f"Updated schema partition!")
    presto_connection.close()