File Coverage

blib/lib/SQL/ReservedWords/Sybase.pm
Criterion Covered Total %
statement 24 24 100.0
branch 4 4 100.0
condition 2 2 100.0
subroutine 10 10 100.0
pod 5 5 100.0
total 45 45 100.0


line stmt bran cond sub pod time code
1             package SQL::ReservedWords::Sybase;
2              
3 1     1   1621 use strict;
  1         4  
  1         40  
4 1     1   6 use warnings;
  1         2  
  1         43  
5 1     1   5 use vars '$VERSION';
  1         2  
  1         57  
6              
7             $VERSION = '0.8';
8              
9 1     1   5 use constant SYBASEASE12 => 0x01;
  1         1  
  1         67  
10 1     1   4 use constant SYBASEASE15 => 0x02;
  1         3  
  1         4238  
11              
12             {
13             require Sub::Exporter;
14              
15             my @exports = qw[
16             is_reserved
17             is_reserved_by_ase12
18             is_reserved_by_ase15
19             reserved_by
20             words
21             ];
22              
23             Sub::Exporter->import( -setup => { exports => \@exports } );
24             }
25              
26             {
27             my %WORDS = (
28             ADD => SYBASEASE12 | SYBASEASE15,
29             ALL => SYBASEASE12 | SYBASEASE15,
30             ALTER => SYBASEASE12 | SYBASEASE15,
31             AND => SYBASEASE12 | SYBASEASE15,
32             ANY => SYBASEASE12 | SYBASEASE15,
33             ARITH_OVERFLOW => SYBASEASE12 | SYBASEASE15,
34             AS => SYBASEASE12 | SYBASEASE15,
35             ASC => SYBASEASE12 | SYBASEASE15,
36             AT => SYBASEASE12 | SYBASEASE15,
37             AUTHORIZATION => SYBASEASE12 | SYBASEASE15,
38             AVG => SYBASEASE12 | SYBASEASE15,
39             BEGIN => SYBASEASE12 | SYBASEASE15,
40             BETWEEN => SYBASEASE12 | SYBASEASE15,
41             BREAK => SYBASEASE12 | SYBASEASE15,
42             BROWSE => SYBASEASE12 | SYBASEASE15,
43             BULK => SYBASEASE12 | SYBASEASE15,
44             BY => SYBASEASE12 | SYBASEASE15,
45             CASCADE => SYBASEASE12 | SYBASEASE15,
46             CASE => SYBASEASE12 | SYBASEASE15,
47             CHAR_CONVERT => SYBASEASE12 | SYBASEASE15,
48             CHECK => SYBASEASE12 | SYBASEASE15,
49             CHECKPOINT => SYBASEASE12 | SYBASEASE15,
50             CLOSE => SYBASEASE12 | SYBASEASE15,
51             CLUSTERED => SYBASEASE12 | SYBASEASE15,
52             COALESCE => SYBASEASE12 | SYBASEASE15,
53             COMMIT => SYBASEASE12 | SYBASEASE15,
54             COMPUTE => SYBASEASE12 | SYBASEASE15,
55             CONFIRM => SYBASEASE12 | SYBASEASE15,
56             CONNECT => SYBASEASE12 | SYBASEASE15,
57             CONSTRAINT => SYBASEASE12 | SYBASEASE15,
58             CONTINUE => SYBASEASE12 | SYBASEASE15,
59             CONTROLROW => SYBASEASE12 | SYBASEASE15,
60             CONVERT => SYBASEASE12 | SYBASEASE15,
61             COUNT => SYBASEASE12 | SYBASEASE15,
62             COUNT_BIG => SYBASEASE15,
63             CREATE => SYBASEASE12 | SYBASEASE15,
64             CURRENT => SYBASEASE12 | SYBASEASE15,
65             CURSOR => SYBASEASE12 | SYBASEASE15,
66             DATABASE => SYBASEASE12 | SYBASEASE15,
67             DBCC => SYBASEASE12 | SYBASEASE15,
68             DEALLOCATE => SYBASEASE12 | SYBASEASE15,
69             DECLARE => SYBASEASE12 | SYBASEASE15,
70             DECRYPT => SYBASEASE15,
71             DEFAULT => SYBASEASE12 | SYBASEASE15,
72             DELETE => SYBASEASE12 | SYBASEASE15,
73             DESC => SYBASEASE12 | SYBASEASE15,
74             DETERMINISTIC => SYBASEASE12 | SYBASEASE15,
75             DISK => SYBASEASE12 | SYBASEASE15,
76             DISTINCT => SYBASEASE12 | SYBASEASE15,
77             DOUBLE => SYBASEASE12,
78             DROP => SYBASEASE12 | SYBASEASE15,
79             DUMMY => SYBASEASE12 | SYBASEASE15,
80             DUMP => SYBASEASE12 | SYBASEASE15,
81             ELSE => SYBASEASE12 | SYBASEASE15,
82             ENCRYPT => SYBASEASE15,
83             END => SYBASEASE12 | SYBASEASE15,
84             ENDTRAN => SYBASEASE12 | SYBASEASE15,
85             ERRLVL => SYBASEASE12 | SYBASEASE15,
86             ERRORDATA => SYBASEASE12 | SYBASEASE15,
87             ERROREXIT => SYBASEASE12 | SYBASEASE15,
88             ESCAPE => SYBASEASE12 | SYBASEASE15,
89             EXCEPT => SYBASEASE12 | SYBASEASE15,
90             EXCLUSIVE => SYBASEASE12 | SYBASEASE15,
91             EXEC => SYBASEASE12 | SYBASEASE15,
92             EXECUTE => SYBASEASE12 | SYBASEASE15,
93             EXISTS => SYBASEASE12 | SYBASEASE15,
94             EXIT => SYBASEASE12 | SYBASEASE15,
95             EXP_ROW_SIZE => SYBASEASE12 | SYBASEASE15,
96             EXTERNAL => SYBASEASE12 | SYBASEASE15,
97             FETCH => SYBASEASE12 | SYBASEASE15,
98             FILLFACTOR => SYBASEASE12 | SYBASEASE15,
99             FOR => SYBASEASE12 | SYBASEASE15,
100             FOREIGN => SYBASEASE12 | SYBASEASE15,
101             FROM => SYBASEASE12 | SYBASEASE15,
102             FUNC => SYBASEASE12,
103             GOTO => SYBASEASE12 | SYBASEASE15,
104             GRANT => SYBASEASE12 | SYBASEASE15,
105             GROUP => SYBASEASE12 | SYBASEASE15,
106             HAVING => SYBASEASE12 | SYBASEASE15,
107             HOLDLOCK => SYBASEASE12 | SYBASEASE15,
108             IDENTITY => SYBASEASE12 | SYBASEASE15,
109             IDENTITY_GAP => SYBASEASE12 | SYBASEASE15,
110             IDENTITY_INSERT => SYBASEASE12,
111             IDENTITY_START => SYBASEASE12 | SYBASEASE15,
112             IF => SYBASEASE12 | SYBASEASE15,
113             IN => SYBASEASE12 | SYBASEASE15,
114             INDEX => SYBASEASE12 | SYBASEASE15,
115             INOUT => SYBASEASE12 | SYBASEASE15,
116             INSENSITIVE => SYBASEASE15,
117             INSERT => SYBASEASE12 | SYBASEASE15,
118             INSTALL => SYBASEASE12 | SYBASEASE15,
119             INTERSECT => SYBASEASE12 | SYBASEASE15,
120             INTO => SYBASEASE12 | SYBASEASE15,
121             IS => SYBASEASE12 | SYBASEASE15,
122             ISOLATION => SYBASEASE12 | SYBASEASE15,
123             JAR => SYBASEASE12 | SYBASEASE15,
124             JOIN => SYBASEASE12 | SYBASEASE15,
125             KEY => SYBASEASE12 | SYBASEASE15,
126             KILL => SYBASEASE12 | SYBASEASE15,
127             LEVEL => SYBASEASE12 | SYBASEASE15,
128             LIKE => SYBASEASE12 | SYBASEASE15,
129             LINENO => SYBASEASE12 | SYBASEASE15,
130             LOAD => SYBASEASE12 | SYBASEASE15,
131             LOCK => SYBASEASE12 | SYBASEASE15,
132             MATERIALIZED => SYBASEASE15,
133             MAX => SYBASEASE12 | SYBASEASE15,
134             MAX_ROWS_PER_PAGE => SYBASEASE12 | SYBASEASE15,
135             MIN => SYBASEASE12 | SYBASEASE15,
136             MIRROR => SYBASEASE12 | SYBASEASE15,
137             MIRROREXIT => SYBASEASE12 | SYBASEASE15,
138             MODIFY => SYBASEASE12 | SYBASEASE15,
139             NATIONAL => SYBASEASE12 | SYBASEASE15,
140             NEW => SYBASEASE12 | SYBASEASE15,
141             NOHOLDLOCK => SYBASEASE12 | SYBASEASE15,
142             NONCLUSTERED => SYBASEASE12 | SYBASEASE15,
143             NONSCROLLABLE => SYBASEASE15,
144             NON_SENSITIVE => SYBASEASE15,
145             NOT => SYBASEASE12 | SYBASEASE15,
146             NULL => SYBASEASE12 | SYBASEASE15,
147             NULLIF => SYBASEASE12 | SYBASEASE15,
148             NUMERIC_TRUNCATION => SYBASEASE12 | SYBASEASE15,
149             OF => SYBASEASE12 | SYBASEASE15,
150             OFF => SYBASEASE12 | SYBASEASE15,
151             OFFSETS => SYBASEASE12 | SYBASEASE15,
152             ON => SYBASEASE12 | SYBASEASE15,
153             ONCE => SYBASEASE12 | SYBASEASE15,
154             ONLINE => SYBASEASE12 | SYBASEASE15,
155             ONLY => SYBASEASE12 | SYBASEASE15,
156             OPEN => SYBASEASE12 | SYBASEASE15,
157             OPTION => SYBASEASE12 | SYBASEASE15,
158             OR => SYBASEASE12 | SYBASEASE15,
159             ORDER => SYBASEASE12 | SYBASEASE15,
160             OUT => SYBASEASE12 | SYBASEASE15,
161             OUTPUT => SYBASEASE12 | SYBASEASE15,
162             OVER => SYBASEASE12 | SYBASEASE15,
163             PARTITION => SYBASEASE12 | SYBASEASE15,
164             PERM => SYBASEASE12 | SYBASEASE15,
165             PERMANENT => SYBASEASE12 | SYBASEASE15,
166             PLAN => SYBASEASE12 | SYBASEASE15,
167             PRECISION => SYBASEASE12,
168             PREPARE => SYBASEASE12 | SYBASEASE15,
169             PRIMARY => SYBASEASE12 | SYBASEASE15,
170             PRINT => SYBASEASE12 | SYBASEASE15,
171             PRIVILEGES => SYBASEASE12 | SYBASEASE15,
172             PROC => SYBASEASE12 | SYBASEASE15,
173             PROCEDURE => SYBASEASE12 | SYBASEASE15,
174             PROCESSEXIT => SYBASEASE12 | SYBASEASE15,
175             PROXY_TABLE => SYBASEASE12 | SYBASEASE15,
176             PUBLIC => SYBASEASE12 | SYBASEASE15,
177             QUIESCE => SYBASEASE12 | SYBASEASE15,
178             RAISERROR => SYBASEASE12 | SYBASEASE15,
179             READ => SYBASEASE12 | SYBASEASE15,
180             READPAST => SYBASEASE12 | SYBASEASE15,
181             READTEXT => SYBASEASE12 | SYBASEASE15,
182             RECONFIGURE => SYBASEASE12 | SYBASEASE15,
183             REFERENCES => SYBASEASE12 | SYBASEASE15,
184             REMOVE => SYBASEASE12 | SYBASEASE15,
185             REORG => SYBASEASE12 | SYBASEASE15,
186             REPLACE => SYBASEASE12 | SYBASEASE15,
187             REPLICATION => SYBASEASE12 | SYBASEASE15,
188             RESERVEPAGEGAP => SYBASEASE12 | SYBASEASE15,
189             RETURN => SYBASEASE12 | SYBASEASE15,
190             RETURNS => SYBASEASE12 | SYBASEASE15,
191             REVOKE => SYBASEASE12 | SYBASEASE15,
192             ROLE => SYBASEASE12 | SYBASEASE15,
193             ROLLBACK => SYBASEASE12 | SYBASEASE15,
194             ROWCOUNT => SYBASEASE12 | SYBASEASE15,
195             ROWS => SYBASEASE12 | SYBASEASE15,
196             RULE => SYBASEASE12 | SYBASEASE15,
197             SAVE => SYBASEASE12 | SYBASEASE15,
198             SCHEMA => SYBASEASE12 | SYBASEASE15,
199             SCROLL => SYBASEASE15,
200             SCROLLABLE => SYBASEASE15,
201             SELECT => SYBASEASE12 | SYBASEASE15,
202             SEMI_SENSITIVE => SYBASEASE15,
203             SET => SYBASEASE12 | SYBASEASE15,
204             SETUSER => SYBASEASE12 | SYBASEASE15,
205             SHARED => SYBASEASE12 | SYBASEASE15,
206             SHUTDOWN => SYBASEASE12 | SYBASEASE15,
207             SOME => SYBASEASE12 | SYBASEASE15,
208             STATISTICS => SYBASEASE12 | SYBASEASE15,
209             STRINGSIZE => SYBASEASE12 | SYBASEASE15,
210             STRIPE => SYBASEASE12 | SYBASEASE15,
211             SUM => SYBASEASE12 | SYBASEASE15,
212             SYB_IDENTITY => SYBASEASE12 | SYBASEASE15,
213             SYB_RESTREE => SYBASEASE12 | SYBASEASE15,
214             SYB_TERMINATE => SYBASEASE12 | SYBASEASE15,
215             TABLE => SYBASEASE12 | SYBASEASE15,
216             TEMP => SYBASEASE12 | SYBASEASE15,
217             TEMPORARY => SYBASEASE12 | SYBASEASE15,
218             TEXTSIZE => SYBASEASE12 | SYBASEASE15,
219             TO => SYBASEASE12 | SYBASEASE15,
220             TRACEFILE => SYBASEASE15,
221             TRAN => SYBASEASE12 | SYBASEASE15,
222             TRANSACTION => SYBASEASE12 | SYBASEASE15,
223             TRIGGER => SYBASEASE12 | SYBASEASE15,
224             TRUNCATE => SYBASEASE12 | SYBASEASE15,
225             TSEQUAL => SYBASEASE12 | SYBASEASE15,
226             UNION => SYBASEASE12 | SYBASEASE15,
227             UNIQUE => SYBASEASE12 | SYBASEASE15,
228             UNPARTITION => SYBASEASE12 | SYBASEASE15,
229             UPDATE => SYBASEASE12 | SYBASEASE15,
230             USE => SYBASEASE12 | SYBASEASE15,
231             USER => SYBASEASE12 | SYBASEASE15,
232             USER_OPTION => SYBASEASE12 | SYBASEASE15,
233             USING => SYBASEASE12 | SYBASEASE15,
234             VALUES => SYBASEASE12 | SYBASEASE15,
235             VARYING => SYBASEASE12 | SYBASEASE15,
236             VIEW => SYBASEASE12 | SYBASEASE15,
237             WAITFOR => SYBASEASE12 | SYBASEASE15,
238             WHEN => SYBASEASE12 | SYBASEASE15,
239             WHERE => SYBASEASE12 | SYBASEASE15,
240             WHILE => SYBASEASE12 | SYBASEASE15,
241             WITH => SYBASEASE12 | SYBASEASE15,
242             WORK => SYBASEASE12 | SYBASEASE15,
243             WRITETEXT => SYBASEASE12 | SYBASEASE15,
244             XMLEXTRACT => SYBASEASE15,
245             XMLPARSE => SYBASEASE15,
246             XMLTEST => SYBASEASE15,
247             XMLVALIDATE => SYBASEASE15,
248             );
249              
250             sub is_reserved {
251 20   100 20 1 231 return $WORDS{ uc(pop || '') } || 0;
252             }
253              
254             sub is_reserved_by_ase12 {
255 5     5 1 12 return &is_reserved & SYBASEASE12;
256             }
257              
258             sub is_reserved_by_ase15 {
259 5     5 1 12 return &is_reserved & SYBASEASE15;
260             }
261              
262             sub reserved_by {
263 4     4 1 10 my $flags = &is_reserved;
264 4         8 my @reserved_by = ();
265              
266 4 100       16 push @reserved_by, 'Sybase ASE 12' if $flags & SYBASEASE12;
267 4 100       13 push @reserved_by, 'Sybase ASE 15' if $flags & SYBASEASE15;
268              
269 4         25 return @reserved_by;
270             }
271              
272             sub words {
273 2     2 1 7346 return sort keys %WORDS;
274             }
275             }
276              
277             1;
278              
279             __END__