-
-
05 Jul 2011 07:14:54 UTC
- Distribution: SQL-Tokenizer
- Module version: 0.24
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Issues (5)
- Testers (6949 / 0 / 0)
- Kwalitee
Bus factor: 0- 96.77% Coverage
- License: unknown
- Activity
24 month- Tools
- Download (9.89KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- Test::More
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
NAME
SQL::Tokenizer - A simple SQL tokenizer.
VERSION
0.20
SYNOPSIS
use SQL::Tokenizer qw(tokenize_sql); my $query= q{SELECT 1 + 1}; my @tokens= SQL::Tokenizer->tokenize($query); # @tokens now contains ('SELECT', ' ', '1', ' ', '+', ' ', '1') @tokens= tokenize_sql($query); # procedural interface
DESCRIPTION
SQL::Tokenizer is a simple tokenizer for SQL queries. It does not claim to be a parser or query verifier. It just creates sane tokens from a valid SQL query.
It supports SQL with comments like:
-- This query is used to insert a message into -- logs table INSERT INTO log (application, message) VALUES (?, ?)
Also supports
''
,""
and\'
escaping methods, so tokenizing queries like the one below should not be a problem:INSERT INTO log (application, message) VALUES ('myapp', 'Hey, this is a ''single quoted string''!')
API
- tokenize_sql
-
use SQL::Tokenizer qw(tokenize_sql); my @tokens= tokenize_sql($query); my $tokens= tokenize_sql($query); $tokens= tokenize_sql( $query, $remove_white_tokens );
tokenize_sql
can be imported to current namespace on request. It receives a SQL query, and returns an array of tokens if called in list context, or an arrayref if called in scalar context. - tokenize
-
my @tokens= SQL::Tokenizer->tokenize($query); my $tokens= SQL::Tokenizer->tokenize($query); $tokens= SQL::Tokenizer->tokenize( $query, $remove_white_tokens );
This is the only available class method. It receives a SQL query, and returns an array of tokens if called in list context, or an arrayref if called in scalar context.
If
$remove_white_tokens
is true, white spaces only tokens will be removed from result.
ACKNOWLEDGEMENTS
Evan Harris, for implementing Shell comment style and SQL operators.
Charlie Hills, for spotting a lot of important issues I haven't thought.
Jonas Kramer, for fixing MySQL quoted strings and treating dot as punctuation character correctly.
Emanuele Zeppieri, for asking to fix SQL::Tokenizer to support dollars as well.
Nigel Metheringham, for extending the dollar signal support.
Devin Withers, for making it not choke on CR+LF in comments.
Luc Lanthier, for simplifying the regex and make it not choke on backslashes.
AUTHOR
Copyright (c) 2007, 2008, 2009, 2010, 2011 Igor Sutton Lopes "<IZUT@cpan.org>". All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Module Install Instructions
To install SQL::Tokenizer, copy and paste the appropriate command in to your terminal.
cpanm SQL::Tokenizer
perl -MCPAN -e shell install SQL::Tokenizer
For more information on module installation, please visit the detailed CPAN module installation guide.