Closed reynholm closed 5 years ago
Привет, нужна схема и данные, которые невозможно вставить.
Привет, нужна схема и данные, которые невозможно вставить.
Приветствую.
Для тестов простейшая табличка из одного поля:
CREATE TABLE IF NOT EXISTS ym_visits (
visit_id UInt64
)
ENGINE = MergeTree()
ORDER BY (visit_id);
Ну и код для проверки:
$ch_client = \Yii::$app->clickhouse;
$data = [
[12345678987654321],
[12345678987654321],
[12345678987654321]
];
try
{
$ch_client
->createCommand(null)
->batchInsert(
'test_table',
[
'visit_id'
],
$data
)
->execute();
}
catch(\Exception $e)
{
dump($e->getMessage());
dump($e->getTraceAsString());
}
Значения в дате можно как интом, так и строками, результат одинаков.
Привет, зафиксил.
Приветствую, потрясающая оперативность. Проверил, работает, спасибо!
Проблема схожая с #33 и #22 но касается batchInsert(): Yii пытается привратить число в строку и так и записать в CH.
Возможное решение - переопределить Schema::getColumnPhpType($column) (на bigint возвращать integer независимо от signed/unsigned типа при условии что PHP_INT_SIZE === 8):