29
29
import thrift .transport .TSocket
30
30
from hive_metastore .ttypes import (
31
31
AlreadyExistsException ,
32
+ EnvironmentContext ,
32
33
FieldSchema ,
33
34
InvalidOperationException ,
34
35
LockResponse ,
44
45
45
46
from pyiceberg .catalog import PropertiesUpdateSummary
46
47
from pyiceberg .catalog .hive import (
48
+ DO_NOT_UPDATE_STATS ,
49
+ DO_NOT_UPDATE_STATS_DEFAULT ,
47
50
HIVE_KERBEROS_AUTH ,
48
51
LOCK_CHECK_MAX_WAIT_TIME ,
49
52
LOCK_CHECK_MIN_WAIT_TIME ,
@@ -874,7 +877,7 @@ def test_rename_table(hive_table: HiveTable) -> None:
874
877
875
878
catalog ._client = MagicMock ()
876
879
catalog ._client .__enter__ ().get_table .side_effect = [hive_table , renamed_table ]
877
- catalog ._client .__enter__ ().alter_table .return_value = None
880
+ catalog ._client .__enter__ ().alter_table_with_environment_context .return_value = None
878
881
879
882
from_identifier = ("default" , "new_tabl2e" )
880
883
to_identifier = ("default" , "new_tabl3e" )
@@ -884,7 +887,12 @@ def test_rename_table(hive_table: HiveTable) -> None:
884
887
885
888
calls = [call (dbname = "default" , tbl_name = "new_tabl2e" ), call (dbname = "default" , tbl_name = "new_tabl3e" )]
886
889
catalog ._client .__enter__ ().get_table .assert_has_calls (calls )
887
- catalog ._client .__enter__ ().alter_table .assert_called_with (dbname = "default" , tbl_name = "new_tabl2e" , new_tbl = renamed_table )
890
+ catalog ._client .__enter__ ().alter_table_with_environment_context .assert_called_with (
891
+ dbname = "default" ,
892
+ tbl_name = "new_tabl2e" ,
893
+ new_tbl = renamed_table ,
894
+ environment_context = EnvironmentContext (properties = {DO_NOT_UPDATE_STATS : DO_NOT_UPDATE_STATS_DEFAULT }),
895
+ )
888
896
889
897
890
898
def test_rename_table_from_self_identifier (hive_table : HiveTable ) -> None :
@@ -902,22 +910,27 @@ def test_rename_table_from_self_identifier(hive_table: HiveTable) -> None:
902
910
renamed_table .tableName = "new_tabl3e"
903
911
904
912
catalog ._client .__enter__ ().get_table .side_effect = [hive_table , renamed_table ]
905
- catalog ._client .__enter__ ().alter_table .return_value = None
913
+ catalog ._client .__enter__ ().alter_table_with_environment_context .return_value = None
906
914
to_identifier = ("default" , "new_tabl3e" )
907
915
table = catalog .rename_table (from_table .name (), to_identifier )
908
916
909
917
assert table .name () == to_identifier
910
918
911
919
calls = [call (dbname = "default" , tbl_name = "new_tabl2e" ), call (dbname = "default" , tbl_name = "new_tabl3e" )]
912
920
catalog ._client .__enter__ ().get_table .assert_has_calls (calls )
913
- catalog ._client .__enter__ ().alter_table .assert_called_with (dbname = "default" , tbl_name = "new_tabl2e" , new_tbl = renamed_table )
921
+ catalog ._client .__enter__ ().alter_table_with_environment_context .assert_called_with (
922
+ dbname = "default" ,
923
+ tbl_name = "new_tabl2e" ,
924
+ new_tbl = renamed_table ,
925
+ environment_context = EnvironmentContext (properties = {DO_NOT_UPDATE_STATS : DO_NOT_UPDATE_STATS_DEFAULT }),
926
+ )
914
927
915
928
916
929
def test_rename_table_from_does_not_exists () -> None :
917
930
catalog = HiveCatalog (HIVE_CATALOG_NAME , uri = HIVE_METASTORE_FAKE_URL )
918
931
919
932
catalog ._client = MagicMock ()
920
- catalog ._client .__enter__ ().alter_table .side_effect = NoSuchObjectException (
933
+ catalog ._client .__enter__ ().alter_table_with_environment_context .side_effect = NoSuchObjectException (
921
934
message = "hive.default.does_not_exists table not found"
922
935
)
923
936
@@ -931,7 +944,7 @@ def test_rename_table_to_namespace_does_not_exists() -> None:
931
944
catalog = HiveCatalog (HIVE_CATALOG_NAME , uri = HIVE_METASTORE_FAKE_URL )
932
945
933
946
catalog ._client = MagicMock ()
934
- catalog ._client .__enter__ ().alter_table .side_effect = InvalidOperationException (
947
+ catalog ._client .__enter__ ().alter_table_with_environment_context .side_effect = InvalidOperationException (
935
948
message = "Unable to change partition or table. Database default does not exist Check metastore logs for detailed stack.does_not_exists"
936
949
)
937
950
0 commit comments