<?php

/*
 * This script will create the database tables that we need.
 */

$LOCKOUT = FALSE;


if ($LOGOUT) {
  echo '<p>Sorry, you may not run this.<br>If you are the server admin then please edit createtables.php and change \$LOCKOUT = TRUE; to say FALSE;</p>';
  exit;
}
require dirname(__FILE__) . '/inc/config.inc.php';

if (isset($_GET['type'])) {
  if ($_GET['type'] == 'pgsql') $PG_CONFIG['DB_TYPE'] = 'pgsql';
  if ($_GET['type'] == 'mysql') $PG_CONFIG['DB_TYPE'] = 'mysql';
}

$dbcolumn_maps = array(
  'pgsql' => array(
    ':sep:'    => ',',
    'SERIAL'  => 'SERIAL',
    'CHAR'    => 'CHAR',
    'VARCHAR' => 'VARCHAR',
    'CLOB'    => 'TEXT',
    'BLOB'    => 'BLOB',
    ':index'  => 'CREATE INDEX =TABLE=_=COLUMN=_index ON =TABLE= (=COLUMN=);',
  ),
  'mysql' => array(
    ':sep:'    => ',',
    'SERIAL'  => 'INTEGER NOT NULL AUTO_INCREMENT',
    'CHAR'    => 'CHAR',
    'VARCHAR' => 'VARCHAR',
    'CLOB'    => 'LONGTEXT',
    'BLOB'    => 'LONGBLOB',
    ':index'  => 'CREATE INDEX =TABLE=_=COLUMN=_index ON =TABLE= (=COLUMN=);',
  ),
);


$table_schemas = array(
  'temp' => array(
    'name' => 'archive', # Table name
    'schema' => array(   # Specify the table columns in our non-DB specific format
      'ID           SERIAL',
      'METHOD       VARCHAR 16',
      'HOST         VARCHAR 255',
      'PATH         VARCHAR 1024',
      'QUERYSTRING  VARCHAR 4096',
      'MIMETYPE     VARCHAR 64',
      'CONTENT      BLOB',
      ':index       HOST',
      ':index       MIMETYPE',
    ),
  ),
);


$returnmessage = '';
$schemaSQL = PGLIB_GenerateSchema($PG_CONFIG['DB_TYPE'], $table_schemas, $dbcolumn_maps, $returnmessage);

if ($returnmessage != '') {
  echo $returnmessage;
  exit;
}

echo '<table border="1"><tr><td><pre>',
     print_r($table_schemas, true),
     '</pre></td><td><b>',
     $PG_CONFIG['DB_TYPE'],
     '</b><br><pre>',
     $schemaSQL,
     '</pre><td></tr></table>';

echo '<a href="?type=pgsql">PGSQL</a> | <a href="?type=mysql">MYSQL</a>';
?>