@@ -70,3 +70,47 @@ def test_uuid(self):
7070 self .connection .query (self .table_src .drop (True ))
7171 self .connection .query (self .table_dst .drop (True ))
7272 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