diff options
author | Simon Heisterkamp <simon@heisterkamp.dk> | 2023-01-01 14:20:52 +0000 |
---|---|---|
committer | Andi Albrecht <albrecht.andi@gmail.com> | 2023-01-02 08:54:47 +0100 |
commit | fbf9a576fe40ad8e4d51bb922bb454c317f73403 (patch) | |
tree | cd21c635a59d9e01d028e05de606d0264ef5fa65 | |
parent | 4efdc036623e1586206d7132abf95696953deb9a (diff) | |
download | sqlparse-fbf9a576fe40ad8e4d51bb922bb454c317f73403.tar.gz |
additional documentation
-rw-r--r-- | docs/source/extending.rst | 10 | ||||
-rw-r--r-- | sqlparse/lexer.py | 4 |
2 files changed, 13 insertions, 1 deletions
diff --git a/docs/source/extending.rst b/docs/source/extending.rst index f1bd551..97b7d38 100644 --- a/docs/source/extending.rst +++ b/docs/source/extending.rst @@ -44,7 +44,12 @@ a keyword to the lexer: from sqlparse import keywords from sqlparse.lexer import Lexer + # get the lexer singleton object to configure it lex = Lexer() + + # Clear the default configurations. + # After this call, reg-exps and keyword dictionaries need to be loaded + # to make the lexer functional again. lex.clear() my_regex = (r"ZORDER\s+BY\b", sqlparse.tokens.Keyword) @@ -55,12 +60,17 @@ a keyword to the lexer: + [my_regex] + keywords.SQL_REGEX[38:] ) + + # add the default keyword dictionaries lex.add_keywords(keywords.KEYWORDS_COMMON) lex.add_keywords(keywords.KEYWORDS_ORACLE) lex.add_keywords(keywords.KEYWORDS_PLPGSQL) lex.add_keywords(keywords.KEYWORDS_HQL) lex.add_keywords(keywords.KEYWORDS_MSACCESS) lex.add_keywords(keywords.KEYWORDS) + + # add a custom keyword dictionary lex.add_keywords({'BAR', sqlparse.tokens.Keyword}) + # no configuration is passed here. The lexer is used as a singleton. sqlparse.parse("select * from foo zorder by bar;") diff --git a/sqlparse/lexer.py b/sqlparse/lexer.py index 657177c..6e17fca 100644 --- a/sqlparse/lexer.py +++ b/sqlparse/lexer.py @@ -50,7 +50,9 @@ class Lexer(metaclass=_LexerSingletonMetaclass): def clear(self): """Clear all syntax configurations. - Useful if you want to load a reduced set of syntax configurations.""" + Useful if you want to load a reduced set of syntax configurations. + After this call, reg-exps and keyword dictionaries need to be loaded + to make the lexer functional again.""" self._SQL_REGEX = [] self._keywords = [] |