1
SET @DATABASE = 'mytable';
4
PRINT 'Testing random data on ' + @DATABASE;
6
IF (SELECT COUNT(*) FROM @DATABASE)
11
PRINT ' Creating table';
12
CREATE TABLE @DATABASE
39
z time with time zone,
40
_ timestamp with time zone,
45
SET @INTEGER = INTEGER(-10000, +10000);
46
SET @UNIQUE = INTEGER(0, 10000, 1);
47
SET @REAL = REAL(-10000, +10000, 2);
48
SET @BINARY = REGEX('[01]');
49
SET @BSTRING = REGEX('[01]{1,10}');
50
SET @BOOLEAN = INTEGER(0, 1);
51
SET @STRING = STRING(5, 10, 3);
52
SET @CHAR = STRING(1, 1, 1);
53
SET @NUMERIC = REGEX('[0-9]{5}.[0-9]{2}');
54
SET @TIME = TIME('00:00:00', '23:59:59');
55
SET @DATE = DATE('1900-01-01', '2008-08-01');
56
SET @DATETIME = DATETIME('1900-01-01 00:00:00', '2008-08-0100:00:00');
58
SET @RADIUS = INTEGER(1, 10000);
59
SET @IPELM = INTEGER(1, 254);
60
SET @MACELM = REGEX('[0-9a-f]{2}');
62
PRINT ' Inserting data';
64
WHILE @I < @ITERATIONS
66
-- Generate complex values with the indirect generators
67
SET @INETCIDR = CAST (@IPELM AS STRING) + '.' + CAST (@IPELM AS STRING) + '.'
68
+ CAST (@IPELM AS STRING) + '.' + CAST (@IPELM AS STRING) + '/32';
69
SET @MACADDR = CAST (@MACELM AS STRING) + ':' + CAST (@MACELM AS STRING) + ':'
70
+ CAST (@MACELM AS STRING) + ':' + CAST (@MACELM AS STRING) + ':'
71
+ CAST (@MACELM AS STRING) + ':' + CAST (@MACELM AS STRING);
72
SET @CIRCLE = '((' + CAST (@INTEGER AS STRING) + ',' + CAST (@INTEGER AS STRING)
73
+ '),' + CAST (@RADIUS AS STRING) + ')';
74
SET @LSEG = '((' + CAST (@INTEGER AS STRING) + ',' + CAST (@INTEGER AS STRING)
75
+ '),(' + CAST (@INTEGER AS STRING) + ',' + CAST (@INTEGER AS STRING) + '))';
76
SET @PATH = '((' + CAST (@INTEGER AS STRING) + ',' + CAST (@INTEGER AS STRING)
77
+ '),(' + CAST (@INTEGER AS STRING) + ',' + CAST (@INTEGER AS STRING)
78
+ '),(' + CAST (@INTEGER AS STRING) + ',' + CAST (@INTEGER AS STRING) + '))';
79
SET @POINT = '(' + CAST (@INTEGER AS STRING) + ',' + CAST (@INTEGER AS STRING) + ')';
80
SET @POLYGON = '((' + CAST (@INTEGER AS STRING) + ',' + CAST (@INTEGER AS STRING)
81
+ '),(' + CAST (@INTEGER AS STRING) + ',' + CAST (@INTEGER AS STRING)
82
+ '),(' + CAST (@INTEGER AS STRING) + ',' + CAST (@INTEGER AS STRING) + '))';
84
-- Insert value into the database
85
INSERT INTO @DATABASE(
86
a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q,
87
r, s, t, u, v, w, x, y, z, _)
89
@INTEGER, @UNIQUE, B'@BINARY', B'@BSTRING', '@BOOLEAN',
90
'@STRING'::bytea, '@STRING', '@CHAR', '@INETCIDR', '@CIRCLE',
91
'@DATE', @REAL, '@INETCIDR', '1 12:59:10',
92
'@LSEG', '@LSEG', '@MACADDR', @NUMERIC, @NUMERIC,
93
'@PATH', '@POINT', '@POLYGON', @INTEGER, @INTEGER,
94
'@STRING', '@TIME', '@DATETIME');
100
PRINT ' Checking data';
101
ASSERT (SELECT COUNT(*) FROM @DATABASE);
102
ASSERT CAST ((SELECT COUNT(*) FROM @DATABASE) AS INTEGER) = @ITERATIONS;
103
SET @RESULT = SELECT * FROM @DATABASE LIMIT 2;
104
SET @RESSTR = CAST (@RESULT AS STRING);
105
ASSERT @RESULT = CAST (@RESSTR AS RECORD);
107
PRINT ' Deleting table';
108
DROP TABLE @DATABASE;