CGI-OptimalQuery

 view release on metacpan or  search on metacpan

demo/make_test_data.pl  view on Meta::CPAN

  my $product_id = int(rand($NUM_PRODUCT)) + 1;
  my $barcode = '345'.sprintf("%03d",$id);
  $lasttime += int(rand(9999)) + 1;
  my @t = localtime($lasttime);
  my $date_acquired = ($t[5] + 1900).'-'.sprintf("%02d", $t[4] + 1).'-'.sprintf("%02d", $t[3]);
  my $date_disposed;
  if (rand(5) > 3) {
    @t = localtime($lasttime + rand(999999));
    $date_disposed = ($t[5] + 1900).'-'.sprintf("%02d", $t[4] + 1).'-'.sprintf("%02d", $t[3]);
  }

  $sth->execute($id, $barcode, $product_id, $owner_id, $date_acquired, $date_disposed);
}

$dbh->do("
CREATE TABLE oq_saved_search (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  user_id INTEGER,
  uri TEXT NOT NULL,
  oq_title TEXT NOT NULL,
  user_title TEXT NOT NULL,
  params TEXT,
  alert_mask INTEGER NOT NULL DEFAULT 0,
  alert_interval_min INTEGER,
  alert_dow TEXT,
  alert_start_hour INTEGER,
  alert_end_hour INTEGER,
  alert_last_dt DATETIME,
  alert_err TEXT,
  alert_uids TEXT,
  is_default INTEGER NOT NULL DEFAULT 0,
  CONSTRAINT unq_oq_saved_search UNIQUE (user_id,uri,oq_title,user_title)
)");

$dbh->do("
CREATE TABLE oq_autoaction (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  uri TEXT NOT NULL,
  oq_title TEXT NOT NULL,
  user_title TEXT NOT NULL,
  params TEXT,
  start_dt DATETIME NOT NULL,
  end_dt   DATETIME,
  repeat_interval_min INTEGER UNSIGNED NOT NULL DEFAULT 1440,
  last_run_dt DATETIME NOT NULL,
  trigger_mask INTEGER UNSIGNED NOT NULL,
  error_txt TEXT
)");


$dbh->do("CREATE INDEX idx_manufact_name ON manufact (name)");
$dbh->do("CREATE INDEX idx_product_name ON product (name)");
$dbh->do("CREATE INDEX idx_product_prodno ON product (prodno)");
$dbh->do("CREATE INDEX idx_product_manufact ON product (manufact)");
$dbh->do("CREATE INDEX idx_inventory_barcode ON inventory(barcode)");
$dbh->do("CREATE INDEX idx_inventory_product ON inventory(product)");
$dbh->do("CREATE INDEX idx_inventory_owner ON inventory(owner)");
$dbh->commit();
$dbh->disconnect();

system("chmod -R ugo+rwX db");



( run in 1.209 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )