#!/usr/bin/env ruby
 
usage = <<US
create-hn <trace table>
Example: create-hn ABCD_20090201
Will create ABCD_20090201_HostNames from ABCD_20090201_Flows
US
 
trace = ARGV[0] || abort('Expecting trace name: ' + usage)
 
sql = <<SQL
DROP TABLE IF EXISTS `#{trace}_HostNames`;
CREATE TABLE `#{trace}_HostNames` (
Ip INT UNSIGNED,
HostName VARCHAR(255),
PRIMARY KEY (Ip)
)
AS
(SELECT DISTINCT SrcIp AS Ip, NULL AS HostName FROM `#{trace}_Flows`)
UNION DISTINCT
(SELECT DISTINCT DstIp AS Ip, NULL AS HostName FROM `#{trace}_Flows`);
SQL
puts sql
