-
Notifications
You must be signed in to change notification settings - Fork 8.3k
CSVWithNames input format does not work properly when the target table has more than 256 columns #35793
Description
When inserting data into a table with 256+ columns in CSVWithNames format, an INCORRECT_NUMBER_OF_COLUMNS error occurs.
How to reproduce
ClickHouse: 22.3.2.1
Client: clickhouse-client
Non-default settings: input_format_with_names_use_header = 1
Create table with 257 columns
CREATE TABLE test.t
(
`field_1` Int32,
`field_2` Int32,
`field_3` Int32,
`field_4` Int32,
`field_5` Int32,
`field_6` Int32,
`field_7` Int32,
`field_8` Int32,
`field_9` Int32,
`field_10` Int32,
`field_11` Int32,
`field_12` Int32,
`field_13` Int32,
`field_14` Int32,
`field_15` Int32,
`field_16` Int32,
`field_17` Int32,
`field_18` Int32,
`field_19` Int32,
`field_20` Int32,
`field_21` Int32,
`field_22` Int32,
`field_23` Int32,
`field_24` Int32,
`field_25` Int32,
`field_26` Int32,
`field_27` Int32,
`field_28` Int32,
`field_29` Int32,
`field_30` Int32,
`field_31` Int32,
`field_32` Int32,
`field_33` Int32,
`field_34` Int32,
`field_35` Int32,
`field_36` Int32,
`field_37` Int32,
`field_38` Int32,
`field_39` Int32,
`field_40` Int32,
`field_41` Int32,
`field_42` Int32,
`field_43` Int32,
`field_44` Int32,
`field_45` Int32,
`field_46` Int32,
`field_47` Int32,
`field_48` Int32,
`field_49` Int32,
`field_50` Int32,
`field_51` Int32,
`field_52` Int32,
`field_53` Int32,
`field_54` Int32,
`field_55` Int32,
`field_56` Int32,
`field_57` Int32,
`field_58` Int32,
`field_59` Int32,
`field_60` Int32,
`field_61` Int32,
`field_62` Int32,
`field_63` Int32,
`field_64` Int32,
`field_65` Int32,
`field_66` Int32,
`field_67` Int32,
`field_68` Int32,
`field_69` Int32,
`field_70` Int32,
`field_71` Int32,
`field_72` Int32,
`field_73` Int32,
`field_74` Int32,
`field_75` Int32,
`field_76` Int32,
`field_77` Int32,
`field_78` Int32,
`field_79` Int32,
`field_80` Int32,
`field_81` Int32,
`field_82` Int32,
`field_83` Int32,
`field_84` Int32,
`field_85` Int32,
`field_86` Int32,
`field_87` Int32,
`field_88` Int32,
`field_89` Int32,
`field_90` Int32,
`field_91` Int32,
`field_92` Int32,
`field_93` Int32,
`field_94` Int32,
`field_95` Int32,
`field_96` Int32,
`field_97` Int32,
`field_98` Int32,
`field_99` Int32,
`field_100` Int32,
`field_101` Int32,
`field_102` Int32,
`field_103` Int32,
`field_104` Int32,
`field_105` Int32,
`field_106` Int32,
`field_107` Int32,
`field_108` Int32,
`field_109` Int32,
`field_110` Int32,
`field_111` Int32,
`field_112` Int32,
`field_113` Int32,
`field_114` Int32,
`field_115` Int32,
`field_116` Int32,
`field_117` Int32,
`field_118` Int32,
`field_119` Int32,
`field_120` Int32,
`field_121` Int32,
`field_122` Int32,
`field_123` Int32,
`field_124` Int32,
`field_125` Int32,
`field_126` Int32,
`field_127` Int32,
`field_128` Int32,
`field_129` Int32,
`field_130` Int32,
`field_131` Int32,
`field_132` Int32,
`field_133` Int32,
`field_134` Int32,
`field_135` Int32,
`field_136` Int32,
`field_137` Int32,
`field_138` Int32,
`field_139` Int32,
`field_140` Int32,
`field_141` Int32,
`field_142` Int32,
`field_143` Int32,
`field_144` Int32,
`field_145` Int32,
`field_146` Int32,
`field_147` Int32,
`field_148` Int32,
`field_149` Int32,
`field_150` Int32,
`field_151` Int32,
`field_152` Int32,
`field_153` Int32,
`field_154` Int32,
`field_155` Int32,
`field_156` Int32,
`field_157` Int32,
`field_158` Int32,
`field_159` Int32,
`field_160` Int32,
`field_161` Int32,
`field_162` Int32,
`field_163` Int32,
`field_164` Int32,
`field_165` Int32,
`field_166` Int32,
`field_167` Int32,
`field_168` Int32,
`field_169` Int32,
`field_170` Int32,
`field_171` Int32,
`field_172` Int32,
`field_173` Int32,
`field_174` Int32,
`field_175` Int32,
`field_176` Int32,
`field_177` Int32,
`field_178` Int32,
`field_179` Int32,
`field_180` Int32,
`field_181` Int32,
`field_182` Int32,
`field_183` Int32,
`field_184` Int32,
`field_185` Int32,
`field_186` Int32,
`field_187` Int32,
`field_188` Int32,
`field_189` Int32,
`field_190` Int32,
`field_191` Int32,
`field_192` Int32,
`field_193` Int32,
`field_194` Int32,
`field_195` Int32,
`field_196` Int32,
`field_197` Int32,
`field_198` Int32,
`field_199` Int32,
`field_200` Int32,
`field_201` Int32,
`field_202` Int32,
`field_203` Int32,
`field_204` Int32,
`field_205` Int32,
`field_206` Int32,
`field_207` Int32,
`field_208` Int32,
`field_209` Int32,
`field_210` Int32,
`field_211` Int32,
`field_212` Int32,
`field_213` Int32,
`field_214` Int32,
`field_215` Int32,
`field_216` Int32,
`field_217` Int32,
`field_218` Int32,
`field_219` Int32,
`field_220` Int32,
`field_221` Int32,
`field_222` Int32,
`field_223` Int32,
`field_224` Int32,
`field_225` Int32,
`field_226` Int32,
`field_227` Int32,
`field_228` Int32,
`field_229` Int32,
`field_230` Int32,
`field_231` Int32,
`field_232` Int32,
`field_233` Int32,
`field_234` Int32,
`field_235` Int32,
`field_236` Int32,
`field_237` Int32,
`field_238` Int32,
`field_239` Int32,
`field_240` Int32,
`field_241` Int32,
`field_242` Int32,
`field_243` Int32,
`field_244` Int32,
`field_245` Int32,
`field_246` Int32,
`field_247` Int32,
`field_248` Int32,
`field_249` Int32,
`field_250` Int32,
`field_251` Int32,
`field_252` Int32,
`field_253` Int32,
`field_254` Int32,
`field_255` Int32,
`field_256` Int32,
`field_257` Int32
)
ENGINE = MergeTree
ORDER BY tuple()
Insert data in CSVWithNames format using header
$ (echo -e "field_1\n0") | clickhouse-client -q "INSERT INTO test.t FORMAT CSVWithNames" --input_format_with_names_use_header 1
Code: 7. DB::Exception: Unexpected empty column: While executing ParallelParsingBlockInputFormat: data for INSERT was parsed from stdin: (in query: INSERT INTO test.t FORMAT CSVWithNames). (INCORRECT_NUMBER_OF_COLUMNS)
Drop any column from table
$ clickhouse-client -q "ALTER TABLE test.t DROP COLUMN field_257"
Inserting data in CSVWithNames format using header
$ (echo -e "field_1\n0") | clickhouse-client -q "INSERT INTO test.t FORMAT CSVWithNames" --input_format_with_names_use_header 1
In version 21.11.6.7, there is no such problem yet, the data was inserted successfully.