1
package SQL::ReservedWords::SQLite;
9
use constant SQLITE2 => 0x01; # 2.8.17
10
use constant SQLITE3 => 0x02; # 3.3.4
13
require Sub::Exporter;
17
is_reserved_by_sqlite2
18
is_reserved_by_sqlite3
23
Sub::Exporter->import( -setup => { exports => \@exports } );
28
ALL => SQLITE2 | SQLITE3,
30
AND => SQLITE2 | SQLITE3,
31
AS => SQLITE2 | SQLITE3,
32
AUTOINCREMENT => SQLITE3,
33
BETWEEN => SQLITE2 | SQLITE3,
34
BY => SQLITE2 | SQLITE3,
35
CASE => SQLITE2 | SQLITE3,
36
CHECK => SQLITE2 | SQLITE3,
37
COLLATE => SQLITE2 | SQLITE3,
38
COMMIT => SQLITE2 | SQLITE3,
39
CONSTRAINT => SQLITE2 | SQLITE3,
40
CREATE => SQLITE2 | SQLITE3,
42
DEFAULT => SQLITE2 | SQLITE3,
43
DEFERRABLE => SQLITE2 | SQLITE3,
44
DELETE => SQLITE2 | SQLITE3,
45
DISTINCT => SQLITE2 | SQLITE3,
46
DROP => SQLITE2 | SQLITE3,
47
ELSE => SQLITE2 | SQLITE3,
49
EXCEPT => SQLITE2 | SQLITE3,
50
FOREIGN => SQLITE2 | SQLITE3,
51
FROM => SQLITE2 | SQLITE3,
54
GROUP => SQLITE2 | SQLITE3,
55
HAVING => SQLITE2 | SQLITE3,
56
IN => SQLITE2 | SQLITE3,
57
INDEX => SQLITE2 | SQLITE3,
59
INSERT => SQLITE2 | SQLITE3,
60
INTERSECT => SQLITE2 | SQLITE3,
61
INTO => SQLITE2 | SQLITE3,
62
IS => SQLITE2 | SQLITE3,
63
ISNULL => SQLITE2 | SQLITE3,
64
JOIN => SQLITE2 | SQLITE3,
67
LIMIT => SQLITE2 | SQLITE3,
69
NOT => SQLITE2 | SQLITE3,
70
NOTNULL => SQLITE2 | SQLITE3,
71
NULL => SQLITE2 | SQLITE3,
72
ON => SQLITE2 | SQLITE3,
73
OR => SQLITE2 | SQLITE3,
74
ORDER => SQLITE2 | SQLITE3,
76
PRIMARY => SQLITE2 | SQLITE3,
77
REFERENCES => SQLITE2 | SQLITE3,
79
ROLLBACK => SQLITE2 | SQLITE3,
80
SELECT => SQLITE2 | SQLITE3,
81
SET => SQLITE2 | SQLITE3,
82
TABLE => SQLITE2 | SQLITE3,
83
THEN => SQLITE2 | SQLITE3,
85
TRANSACTION => SQLITE2 | SQLITE3,
86
UNION => SQLITE2 | SQLITE3,
87
UNIQUE => SQLITE2 | SQLITE3,
88
UPDATE => SQLITE2 | SQLITE3,
89
USING => SQLITE2 | SQLITE3,
90
VALUES => SQLITE2 | SQLITE3,
91
WHEN => SQLITE2 | SQLITE3,
92
WHERE => SQLITE2 | SQLITE3,
96
return $WORDS{ uc pop } || 0;
99
sub is_reserved_by_sqlite2 {
100
return &is_reserved & SQLITE2;
103
sub is_reserved_by_sqlite3 {
104
return &is_reserved & SQLITE3;
108
my $flags = &is_reserved;
109
my @reserved_by = ();
111
push @reserved_by, 'SQLite 2' if $flags & SQLITE2;
112
push @reserved_by, 'SQLite 3' if $flags & SQLITE3;
118
return sort keys %WORDS;
128
SQL::ReservedWords::SQLite - Reserved SQL words by SQLite
132
if ( SQL::ReservedWords::SQLite->is_reserved( $word ) ) {
133
print "$word is a reserved SQLite word!";
138
Determine if words are reserved by SQLite.
144
=item is_reserved( $word )
146
Returns a boolean indicating if C<$word> is reserved by either SQLite 2 or 3.
148
=item is_reserved_by_sqlite2( $word )
150
Returns a boolean indicating if C<$word> is reserved by SQLite 2.
152
=item is_reserved_by_sqlite3( $word )
154
Returns a boolean indicating if C<$word> is reserved by SQLite 3.
156
=item reserved_by( $word )
158
Returns a list with SQLite versions that reserves C<$word>.
162
Returns a list with all reserved words.
168
Nothing by default. Following subroutines can be exported:
174
=item is_reserved_by_sqlite2
176
=item is_reserved_by_sqlite3
186
L<SQL::ReservedWords>
188
L<http://www.sqlite.org/docs.html>
192
Christian Hansen C<chansen@cpan.org>
196
This program is free software, you can redistribute it and/or modify
197
it under the same terms as Perl itself.