@@ -70,3 +70,47 @@ def test_uuid(self):
70
70
self .connection .query (self .table_src .drop (True ))
71
71
self .connection .query (self .table_dst .drop (True ))
72
72
mysql_conn .query (self .table_dst .drop (True ))
73
+
74
+
75
+ class Test100Fields (unittest .TestCase ):
76
+ def setUp (self ) -> None :
77
+ self .connection = get_conn (db .PostgreSQL )
78
+
79
+ table_suffix = random_table_suffix ()
80
+
81
+ self .table_src_name = f"src{ table_suffix } "
82
+ self .table_dst_name = f"dst{ table_suffix } "
83
+
84
+ self .table_src = table (self .table_src_name )
85
+ self .table_dst = table (self .table_dst_name )
86
+
87
+ def test_100_fields (self ):
88
+ self .connection .query ('CREATE EXTENSION IF NOT EXISTS "uuid-ossp";' , None )
89
+
90
+ columns = [f"col{ i } " for i in range (100 )]
91
+ fields = " ," .join (f'"{ field } " TEXT' for field in columns )
92
+
93
+ queries = [
94
+ self .table_src .drop (True ),
95
+ self .table_dst .drop (True ),
96
+ f"CREATE TABLE { self .table_src_name } (id uuid DEFAULT uuid_generate_v4 (), { fields } )" ,
97
+ commit ,
98
+ self .table_src .insert_rows ([[f"{ x * y } " for x in range (100 )] for y in range (10 )], columns = columns ),
99
+ commit ,
100
+ self .table_dst .create (self .table_src ),
101
+ commit ,
102
+ self .table_src .insert_rows ([[1 for x in range (100 )]], columns = columns ),
103
+ commit ,
104
+ ]
105
+
106
+ for query in queries :
107
+ self .connection .query (query )
108
+
109
+ a = TableSegment (self .connection , self .table_src .path , ("id" ,), extra_columns = tuple (columns ))
110
+ b = TableSegment (self .connection , self .table_dst .path , ("id" ,), extra_columns = tuple (columns ))
111
+
112
+ differ = HashDiffer ()
113
+ diff = list (differ .diff_tables (a , b ))
114
+ id_ = diff [0 ][1 ][0 ]
115
+ result = (id_ ,) + tuple ("1" for x in range (100 ))
116
+ self .assertEqual (diff , [("-" , result )])
0 commit comments