From 9f9da66866f415c67226b29d3110aee6efba2bae Mon Sep 17 00:00:00 2001
From: Nigel Kukard <nkukard@lbsd.net>
Date: Sat, 2 May 2009 14:48:50 +0000
Subject: [PATCH] * Updated database schema to be a bit more tolerant to
 missing data * Added INT_UNSIGNED token to convert-tsql

---
 database/convert-tsql | 12 +++++++----
 database/core.tsql    | 48 +++++++++++++++++++++----------------------
 2 files changed, 32 insertions(+), 28 deletions(-)

diff --git a/database/convert-tsql b/database/convert-tsql
index 32428122..0fdd599b 100755
--- a/database/convert-tsql
+++ b/database/convert-tsql
@@ -59,7 +59,8 @@ case "$database" in
 			-e 's/@POSTLOAD@/SET FOREIGN_KEY_CHECKS=1;/' \
 			-e 's/@CREATE_TABLE_SUFFIX@/TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin/' \
 			-e 's/@SERIAL_TYPE@/SERIAL/' \
-			-e 's/@BIG_INTEGER@/BIGINT UNSIGNED/' \
+			-e 's/@BIGINT_UNSIGNED@/BIGINT UNSIGNED/' \
+			-e 's/@INT_UNSIGNED@/INT UNSIGNED/' \
 			-e 's/@TRACK_KEY_LEN@/255/' \
 			-e 's/@SERIAL_REF_TYPE@/BIGINT UNSIGNED/' < "$file"
 		;;
@@ -71,7 +72,8 @@ case "$database" in
 			-e 's/@POSTLOAD@/SET FOREIGN_KEY_CHECKS=1;/' \
 			-e 's/@CREATE_TABLE_SUFFIX@/TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin/' \
 			-e 's/@SERIAL_TYPE@/SERIAL/' \
-			-e 's/@BIG_INTEGER@/BIGINT UNSIGNED/' \
+			-e 's/@BIGINT_UNSIGNED@/BIGINT UNSIGNED/' \
+			-e 's/@INT_UNSIGNED@/INT UNSIGNED/' \
 			-e 's/@TRACK_KEY_LEN@/512/' \
 			-e 's/@SERIAL_REF_TYPE@/BIGINT UNSIGNED/' < "$file"
 		;;
@@ -83,7 +85,8 @@ case "$database" in
 			-e 's/@POSTLOAD@//' \
 			-e 's/@CREATE_TABLE_SUFFIX@//' \
 			-e 's/@SERIAL_TYPE@/SERIAL PRIMARY KEY/' \
-			-e 's/@BIG_INTEGER@/INT8/' \
+			-e 's/@BIGINT_UNSIGNED@/INT8/' \
+			-e 's/@INT_UNSIGNED@/INT8/' \
 			-e 's/@TRACK_KEY_LEN@/512/' \
 			-e 's/@SERIAL_REF_TYPE@/INT8/' < "$file"
 		;;
@@ -95,7 +98,8 @@ case "$database" in
 			-e 's/@POSTLOAD@//' \
 			-e 's/@CREATE_TABLE_SUFFIX@//' \
 			-e 's/@SERIAL_TYPE@/INTEGER PRIMARY KEY AUTOINCREMENT/' \
-			-e 's/@BIG_INTEGER@/INT8/' \
+			-e 's/@BIGINT_UNSIGNED@/INT8/' \
+			-e 's/@INT_UNSIGNED@/INT8/' \
 			-e 's/@TRACK_KEY_LEN@/512/' \
 			-e 's/@SERIAL_REF_TYPE@/INT8/' < "$file"
 		;;
diff --git a/database/core.tsql b/database/core.tsql
index 4d9608d9..7c5196cf 100644
--- a/database/core.tsql
+++ b/database/core.tsql
@@ -119,52 +119,52 @@ CREATE TABLE @PREFIX@realm_attributes (
 CREATE TABLE @PREFIX@accounting (
 	ID			@SERIAL_TYPE@,
 
-	Username		VARCHAR(255) NOT NULL,
+	Username		VARCHAR(255),
 
-	ServiceType		INT UNSIGNED NOT NULL,
+	ServiceType		@INT_UNSIGNED@,
 
-	FramedProtocol		INT UNSIGNED NOT NULL, 
+	FramedProtocol		@INT_UNSIGNED@, 
 
-	NASPort			VARCHAR(255) NOT NULL,
+	NASPort			VARCHAR(255),
 		
-	NASPortType		INT UNSIGNED NOT NULL,
+	NASPortType		@INT_UNSIGNED@,
 
-	CallingStationID	VARCHAR(255) NOT NULL, 
+	CallingStationID	VARCHAR(255), 
 
-	CalledStationID		VARCHAR(255) NOT NULL,
+	CalledStationID		VARCHAR(255),
 
-	NASPortID		VARCHAR(255) NOT NULL,
+	NASPortID		VARCHAR(255),
 
-	AcctSessionID		VARCHAR(255) NOT NULL,
+	AcctSessionID		VARCHAR(255),
 	
-	FramedIPAddress		VARCHAR(16) NOT NULL,
+	FramedIPAddress		VARCHAR(16),
 
-	AcctAuthentic		INT UNSIGNED NOT NULL,
+	AcctAuthentic		@INT_UNSIGNED@,
 
-	EventTimestamp		DATETIME NOT NULL,
+	EventTimestamp		DATETIME,
 
-	NASIdentifier		VARCHAR(255) NOT NULL,	
+	NASIdentifier		VARCHAR(255),	
 
-	NASIPAddress		VARCHAR(16) NOT NULL,
+	NASIPAddress		VARCHAR(16),
 
-	AcctDelayTime		INT UNSIGNED NOT NULL,
+	AcctDelayTime		@INT_UNSIGNED@,
 
-	AcctSessionTime		INT UNSIGNED NOT NULL,
+	AcctSessionTime		@INT_UNSIGNED@,
 
-	AcctInputOctets		INT UNSIGNED NOT NULL,
+	AcctInputOctets		@INT_UNSIGNED@,
 
-	AcctInputGigawords	INT UNSIGNED NOT NULL,
+	AcctInputGigawords	@INT_UNSIGNED@,
 
-	AcctInputPackets	INT UNSIGNED NOT NULL,	
+	AcctInputPackets	@INT_UNSIGNED@,	
 
-	AcctOutputOctets	INT UNSIGNED NOT NULL,
+	AcctOutputOctets	@INT_UNSIGNED@,
 
-	AcctOutputGigawords	INT UNSIGNED NOT NULL,
+	AcctOutputGigawords	@INT_UNSIGNED@,
 
-	AcctOutputPackets	INT UNSIGNED NOT NULL,
+	AcctOutputPackets	@INT_UNSIGNED@,
 
-	AcctStatusType		INT UNSIGNED NOT NULL,
+	AcctStatusType		@INT_UNSIGNED@,
 
-	AcctTerminateCause	INT UNSIGNED NOT NULL
+	AcctTerminateCause	@INT_UNSIGNED@
 ) @CREATE_TABLE_SUFFIX@;
 CREATE INDEX @PREFIX@accounting_idx1 ON @PREFIX@accounting (Username);
-- 
GitLab