From 68d977c2ba651f8e575e50e2a95277bcac96ebdf Mon Sep 17 00:00:00 2001 From: hummypkg Date: Fri, 16 Sep 2011 00:22:06 +0000 Subject: [PATCH] sql updates --- main.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/main.c b/main.c index a2188de..32ea3d6 100644 --- a/main.c +++ b/main.c @@ -126,11 +126,12 @@ sql_escape_len(unsigned int len, char *txt) void sqldumpstart() { - printf("create table if not exists epg\n"); + printf("create table if not exists epg_load\n"); printf("(\n"); printf("service_id bigint unsigned not null default 0,\n"); printf("event_id bigint unsigned not null default 0,\n"); printf("start bigint unsigned not null,\n"); + printf("end bigint unsigned not null,\n"); printf("duration bigint unsigned not null,\n"); printf("name varchar(255),\n"); printf("text varchar(255),\n"); @@ -141,18 +142,24 @@ sqldumpstart() printf("series_crid varchar(255),\n"); printf("rec_crid varchar(255),\n"); printf("primary key (service_id, event_id),\n"); - printf("index name (name),\n"); + printf("index time (start,end),\n"); printf("index start (start),\n"); - printf("index text (text)\n"); - printf(") engine=innodb;\n"); - printf("truncate epg;\n"); - printf("set autocommit = 0;\n"); + printf("index event_crid (event_crid),\n"); + printf("index series_crid (series_crid),\n"); + printf("fulltext (name),\n"); + printf("fulltext (name, text)\n"); + printf(") engine=mysql;\n"); + printf("truncate epg_load;\n"); + printf("lock tables epg_load write;\n"); } void sqldumpend() { - printf("commit;\n"); + printf("unlock tables;\n"); + printf("analyze table epg_load;\n"); + printf("drop table if exists epg;\n"); + printf("alter table epg_load rename as epg;\n"); } void @@ -160,16 +167,17 @@ sqldump(struct epg *epg __attribute__((unused)), struct section *s, struct data *d, struct descriptor **ds, void *var __attribute__((unused))) { - time_t tm; + time_t tm, dur; tm = mjd(d->start_date, d->start_hour, d->start_min, d->start_sec); + dur = d->dur_hour * 3600 + d->dur_min * 60 + d->dur_sec; - printf("replace into epg set \n"); + printf("replace into epg_load set \n"); printf(" service_id = %d,\n", s->service_id); printf(" event_id = %d,\n", d->event_id); printf(" start = %ld,\n", tm); - printf(" duration = %d", - d->dur_hour * 3600 + d->dur_min * 60 + d->dur_sec); + printf(" end = %ld,\n", tm + dur); + printf(" duration = %ld", dur); if (ds[PARSER_SHORT_EVENT]) { struct descriptor *d = ds[PARSER_SHORT_EVENT];