Пещера отшельного фердопердозника

2009-08-13

ADuC847, его ADC и измерение температуры с термопары (часть 2: практика)

Рубрика: low-level programming — Метки: , , , , — datacompboy @ 19:44:35 | 824 views

Теперь посмотрим реализацию на практике измерения температуры.
(далее…)

2009-05-06

my2pg.pl: продолжение

Рубрика: web programming — Метки: , , , — datacompboy @ 15:00:45 | 510 views

как выяснилось, одного фикса с ` ему мало.
Еще обнаруженные проблемы:
1. В после конверсии INSERT в COPY числа с плавающей точкой (1.0 например) превращаются в две колонки. Бред тот еще. Лечится правкой $colRe:

my $colRe = qr/(?:'[^'\\]*(?:\\.[^'\\]*)*'|[\w.+-]+)/;

2. DROP TABLE IF EXISTS оставляет после себя висящую «;». Мелочь, а неприятно. Заодно остаются USE …; LOCK и UNLOCK…
Вылечилось заменой блока дропа на:

s/^DROP\s+TABLE\s+IF\s+EXISTS([^;]+);//;
# remove USE database;
s/^USE\s([^;]+);$//;
# remove LOCK & UNLOCK clauses
s/^(UN)?LOCK TABLES[^;]*;$//;
# remove mysql-specific comments
s/^\/\*![0-9]+ .*?\*\/;$//;

3. ENUM тип теперь поддерживается нативно, а потому сишный код для него лишний. Выкинута вся генерация .cшки относительно этого типа, и перед s/enum… воткнуто

$types .= "CREATE TYPE $typename AS ENUM ('".join("','",@item)."');\n";

4. Ну и как писано выше –

s/`//g;

после

if($tabledef) {

Взять поправленную версию можно тут: my2pg-133

Дополнение: так же обнаружились проблемы с импортом NULL полей и добавлена обработка ON UPDATE CURRENT_TIMESTAMP.

2009-05-05

Попробуем оживить блог работой.

Рубрика: web programming — Метки: , , , — datacompboy @ 17:17:12 | 278 views

Что ж, попробую запустить блог полезными записями..

Сегодня понадобилось отконвертить дамп из мускула для скармливания pgsql’ю. Лёгкий гуглинг в момент нашел скрипт my2pg.pl, однако он сломался на первом же: бэк-тики в названиях (`field`).
Фикс оказался самым простейшим, после

if($tabledef) {

воткнуть

    s/[`]//g;

Сайт работает на WordPress