-- ToughLog
\set HOSTNAME `echo "'$HOSTNAME'"`
select syslog('I', :HOSTNAME, 'browser.sql', 'ID',
'$Id$'
);
select syslog('I', :HOSTNAME, 'browser.sql', 'INSTALL',
'Install table Browser and function cg_BrowserID().'
);

drop function cg_BrowserID(Browser.Browser%type);
drop table    Browser;

create table Browser(
	BrowserID	serial NOT NULL primary key,
	Browser	text unique NOT NULL
);
create unique index Browser_BrowserID_uix on Browser(BrowserID);
create unique index Browser_Browser_uix on Browser(Browser);

comment on table Browser is 'Map between Browser and BrowserID.';
comment on column Browser.BrowserID is 'Unique ID for Browser.';
comment on column Browser.Browser is '';

create function cg_BrowserID(Browser.Browser%type) returns Browser.BrowserID%type as '
declare
	id      Browser.BrowserID%type;
	sname   Browser.Browser%type;
	p_name  alias for $1;
begin
	sname := trim(p_name);
	select BrowserID into id from Browser where (Browser = sname);
	if not found then
		insert into Browser (Browser) values(sname);
		select last_value into id from Browser_BrowserID_seq;
	end if;
	return id;
end;
' language 'PLpgSQL';

comment on function cg_BrowserID(Browser.Browser%type) is 'Create BrowserID and get Browser.';

select cg_BrowserID('');

--EOF
