• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python sqlparse.parse函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中sqlparse.parse函数的典型用法代码示例。如果您正苦于以下问题:Python parse函数的具体用法?Python parse怎么用?Python parse使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了parse函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: test_identifiers

    def test_identifiers(self):
        s = 'select foo.bar from "myscheme"."table" where fail. order'
        parsed = sqlparse.parse(s)[0]
        self.ndiffAssertEqual(s, unicode(parsed))
        self.assert_(isinstance(parsed.tokens[2], sql.Identifier))
        self.assert_(isinstance(parsed.tokens[6], sql.Identifier))
        self.assert_(isinstance(parsed.tokens[8], sql.Where))
        s = 'select * from foo where foo.id = 1'
        parsed = sqlparse.parse(s)[0]
        self.ndiffAssertEqual(s, unicode(parsed))
        self.assert_(isinstance(parsed.tokens[-1].tokens[-1].tokens[0],
                                sql.Identifier))
        s = 'select * from (select "foo"."id" from foo)'
        parsed = sqlparse.parse(s)[0]
        self.ndiffAssertEqual(s, unicode(parsed))
        self.assert_(isinstance(parsed.tokens[-1].tokens[3], sql.Identifier))

        s = "INSERT INTO `test` VALUES('foo', 'bar');"
        parsed = sqlparse.parse(s)[0]
        types = [l.ttype for l in parsed.tokens if not l.is_whitespace()]
        self.assertEquals(types, [T.DML, T.Keyword, None,
                                  T.Keyword, None, T.Punctuation])

        s = "select 1.0*(a+b) as col, sum(c)/sum(d) from myschema.mytable"
        parsed = sqlparse.parse(s)[0]
        self.assertEqual(len(parsed.tokens), 7)
        self.assert_(isinstance(parsed.tokens[2], sql.IdentifierList))
        self.assertEqual(len(parsed.tokens[2].tokens), 4)
        identifiers = list(parsed.tokens[2].get_identifiers())
        self.assertEqual(len(identifiers), 2)
        self.assertEquals(identifiers[0].get_alias(), u"col")
开发者ID:AndiDog,项目名称:sqlparse,代码行数:31,代码来源:test_grouping.py


示例2: test_parse_join

def test_parse_join():
    p = sqlparse.parse('LEFT JOIN foo')[0]
    assert len(p.tokens) == 3
    assert p.tokens[0].ttype is Keyword
    p = sqlparse.parse('LEFT  OUTER  JOIN foo')[0]
    assert len(p.tokens) == 3
    assert p.tokens[0].ttype is Keyword
开发者ID:CodingMatrix,项目名称:sqlparse,代码行数:7,代码来源:test_tokenize.py


示例3: get_completions

    def get_completions(self, document):

        word_before_cursor = document.get_word_before_cursor(WORD=True)

        if not self.smart_completion:
            return self.find_matches(word_before_cursor, self.all_completions)

        # If we've partially typed a word then word_before_cursor won't be an
        # empty string. In that case we want to remove the partially typed
        # string before sending it to the sqlparser. Otherwise the last token
        # will always be the partially typed string which renders the smart
        # completion useless because it will always return the list of keywords
        # as completion.

        if word_before_cursor:
            parsed = sqlparse.parse(document.text[:-len(word_before_cursor)])
        else:
            parsed = sqlparse.parse(document.text)

        last_token = ''
        if parsed:
            last_token = parsed[0].token_prev(len(parsed[0].tokens))
            last_token = last_token.value if last_token else ''

        if last_token.lower() in ('select', 'where', 'having', 'set',
                'order by', 'group by'):
            return self.find_matches(word_before_cursor, self.column_names)
        elif last_token.lower() in ('from', 'update', 'into'):
            return self.find_matches(word_before_cursor, self.table_names)
        else:
            return self.find_matches(word_before_cursor,
                    self.keywords + self.special_commands)
开发者ID:pombredanne,项目名称:pgcli,代码行数:32,代码来源:pgcompleter.py


示例4: test_identifier_function

 def test_identifier_function(self):
     p = sqlparse.parse('foo() as bar')[0]
     self.assert_(isinstance(p.tokens[0], sql.Identifier))
     self.assert_(isinstance(p.tokens[0].tokens[0], sql.Function))
     p = sqlparse.parse('foo()||col2 bar')[0]
     self.assert_(isinstance(p.tokens[0], sql.Identifier))
     self.assert_(isinstance(p.tokens[0].tokens[0], sql.Function))
开发者ID:AndiDog,项目名称:sqlparse,代码行数:7,代码来源:test_grouping.py


示例5: test_identifier_extended

 def test_identifier_extended(self):  # issue 15
     p = sqlparse.parse('foo+100')[0]
     self.assert_(isinstance(p.tokens[0], sql.Identifier))
     p = sqlparse.parse('foo + 100')[0]
     self.assert_(isinstance(p.tokens[0], sql.Identifier))
     p = sqlparse.parse('foo*100')[0]
     self.assert_(isinstance(p.tokens[0], sql.Identifier))
开发者ID:AndiDog,项目名称:sqlparse,代码行数:7,代码来源:test_grouping.py


示例6: __init__

    def __init__(self, full_text, text_before_cursor):
        self.identifier = None
        self.word_before_cursor = word_before_cursor = last_word(
            text_before_cursor, include='many_punctuations')
        full_text = _strip_named_query(full_text)
        text_before_cursor = _strip_named_query(text_before_cursor)
        self.text_before_cursor_including_last_word = text_before_cursor

        # If we've partially typed a word then word_before_cursor won't be an
        # empty string. In that case we want to remove the partially typed
        # string before sending it to the sqlparser. Otherwise the last token
        # will always be the partially typed string which renders the smart
        # completion useless because it will always return the list of
        # keywords as completion.
        if self.word_before_cursor:
            if word_before_cursor[-1] == '(' or word_before_cursor[0] == '\\':
                parsed = sqlparse.parse(text_before_cursor)
            else:
                text_before_cursor = text_before_cursor[:-len(word_before_cursor)]
                parsed = sqlparse.parse(text_before_cursor)
                self.identifier = parse_partial_identifier(word_before_cursor)
        else:
            parsed = sqlparse.parse(text_before_cursor)

        full_text, text_before_cursor, parsed = \
            _split_multiple_statements(full_text, text_before_cursor, parsed)

        self.full_text = full_text
        self.text_before_cursor = text_before_cursor
        self.parsed = parsed

        self.last_token = parsed and parsed.token_prev(len(parsed.tokens)) or ''
开发者ID:ati-ozgur,项目名称:pgcli,代码行数:32,代码来源:sqlcompletion.py


示例7: test_parse_child_of

def test_parse_child_of():
    s = "(col1, col2)"
    p = sqlparse.parse(s)[0]
    assert p.tokens[0].tokens[1].is_child_of(p.tokens[0])
    s = "select foo"
    p = sqlparse.parse(s)[0]
    assert not p.tokens[2].is_child_of(p.tokens[0])
    assert p.tokens[2].is_child_of(p)
开发者ID:cloudera,项目名称:hue,代码行数:8,代码来源:test_parse.py


示例8: test_qualified_function

def test_qualified_function():
    p = sqlparse.parse('foo()')[0].tokens[0]
    assert p.get_parent_name() is None
    assert p.get_real_name() == 'foo'

    p = sqlparse.parse('foo.bar()')[0].tokens[0]
    assert p.get_parent_name() == 'foo'
    assert p.get_real_name() == 'bar'
开发者ID:AndiDog,项目名称:sqlparse,代码行数:8,代码来源:test_grouping.py


示例9: test_child_of

 def test_child_of(self):
     sql = '(col1, col2)'
     p = sqlparse.parse(sql)[0]
     self.assert_(p.tokens[0].tokens[1].is_child_of(p.tokens[0]))
     sql = 'select foo'
     p = sqlparse.parse(sql)[0]
     self.assert_(not p.tokens[2].is_child_of(p.tokens[0]))
     self.assert_(p.tokens[2].is_child_of(p))
开发者ID:AndiDog,项目名称:sqlparse,代码行数:8,代码来源:test_parse.py


示例10: test_identifier_with_operators

def test_identifier_with_operators():  # issue 53
    p = sqlparse.parse('foo||bar')[0]
    assert len(p.tokens) == 1
    assert isinstance(p.tokens[0], sql.Identifier)
    # again with whitespaces
    p = sqlparse.parse('foo || bar')[0]
    assert len(p.tokens) == 1
    assert isinstance(p.tokens[0], sql.Identifier)
开发者ID:AndiDog,项目名称:sqlparse,代码行数:8,代码来源:test_grouping.py


示例11: test_dashcomments_eol

 def test_dashcomments_eol(self):
     stmts = sqlparse.parse('select foo; -- comment\n')
     self.assertEqual(len(stmts), 1)
     stmts = sqlparse.parse('select foo; -- comment\r')
     self.assertEqual(len(stmts), 1)
     stmts = sqlparse.parse('select foo; -- comment\r\n')
     self.assertEqual(len(stmts), 1)
     stmts = sqlparse.parse('select foo; -- comment')
     self.assertEqual(len(stmts), 1)
开发者ID:AndiDog,项目名称:sqlparse,代码行数:9,代码来源:test_split.py


示例12: test_assignment

 def test_assignment(self):
     s = 'foo := 1;'
     parsed = sqlparse.parse(s)[0]
     self.assertEqual(len(parsed.tokens), 1)
     self.assert_(isinstance(parsed.tokens[0], sql.Assignment))
     s = 'foo := 1'
     parsed = sqlparse.parse(s)[0]
     self.assertEqual(len(parsed.tokens), 1)
     self.assert_(isinstance(parsed.tokens[0], sql.Assignment))
开发者ID:AndiDog,项目名称:sqlparse,代码行数:9,代码来源:test_grouping.py


示例13: test_comparison_exclude

 def test_comparison_exclude(self):
     # make sure operators are not handled too lazy
     p = sqlparse.parse('(=)')[0]
     self.assert_(isinstance(p.tokens[0], sql.Parenthesis))
     self.assert_(not isinstance(p.tokens[0].tokens[1], sql.Comparison))
     p = sqlparse.parse('(a=1)')[0]
     self.assert_(isinstance(p.tokens[0].tokens[1], sql.Comparison))
     p = sqlparse.parse('(a>=1)')[0]
     self.assert_(isinstance(p.tokens[0].tokens[1], sql.Comparison))
开发者ID:AndiDog,项目名称:sqlparse,代码行数:9,代码来源:test_grouping.py


示例14: test_where

 def test_where(self):
     s = 'select * from foo where bar = 1 order by id desc'
     p = sqlparse.parse(s)[0]
     self.ndiffAssertEqual(s, unicode(p))
     self.assertTrue(len(p.tokens), 16)
     s = 'select x from (select y from foo where bar = 1) z'
     p = sqlparse.parse(s)[0]
     self.ndiffAssertEqual(s, unicode(p))
     self.assertTrue(isinstance(p.tokens[-1].tokens[0].tokens[-2], sql.Where))
开发者ID:AndiDog,项目名称:sqlparse,代码行数:9,代码来源:test_grouping.py


示例15: test_contains_subquery

 def test_contains_subquery(self):
     query = ("select * from (select * from repo.table where "
              "repo.table.test = 'True')")
     subquery_token = sqlparse.parse(query)[0].tokens[6]
     no_subquery_token = sqlparse.parse(query)[0].tokens[0]
     self.assertEqual(
         self.query_rewriter.contains_subquery(subquery_token), True)
     self.assertEqual(
         self.query_rewriter.contains_subquery(no_subquery_token), False)
开发者ID:BEYHHH,项目名称:sunjiaojiao,代码行数:9,代码来源:test_query_rewriter.py


示例16: test_ok_not_count

    def test_ok_not_count(self):
        with self.patch_schema({}):
            sql = "SELECT * FROM a ORDER BY id DESC"
            stmt = sqlparse.parse(sql)[0]
            assert False == self.has_order_by_count(stmt)

            sql = "SELECT a, b, count FROM a ORDER BY id DESC"
            stmt = sqlparse.parse(sql)[0]
            assert False == self.has_order_by_count(stmt)
开发者ID:freshbooks,项目名称:sqlcop,代码行数:9,代码来源:test_order_by_count.py


示例17: test_wildcard_multiplication

def test_wildcard_multiplication():
    p = sqlparse.parse("select * from dual")[0]
    assert p.tokens[2].ttype == T.Wildcard

    p = sqlparse.parse("select a0.* from dual a0")[0]
    assert p.tokens[2][2].ttype == T.Wildcard

    p = sqlparse.parse("select 1 * 2 from dual")[0]
    assert p.tokens[2][2].ttype == T.Operator
开发者ID:cloudera,项目名称:hue,代码行数:9,代码来源:test_parse.py


示例18: test_aliased_column_without_as

def test_aliased_column_without_as():
    p = sqlparse.parse('foo bar')[0].tokens
    assert len(p) == 1
    assert p[0].get_real_name() == 'foo'
    assert p[0].get_alias() == 'bar'

    p = sqlparse.parse('foo.bar baz')[0].tokens[0]
    assert p.get_parent_name() == 'foo'
    assert p.get_real_name() == 'bar'
    assert p.get_alias() == 'baz'
开发者ID:AndiDog,项目名称:sqlparse,代码行数:10,代码来源:test_grouping.py


示例19: test_token_str_pos

def test_token_str_pos():
    sql = 'SELECT * FROM xxx'
    p = parse(sql)[0]
    idx = p.token_index(p.tokens[-1])
    assert token_start_pos(p.tokens, idx) == len('SELECT * FROM ')

    sql = 'SELECT * FROM \nxxx'
    p = parse(sql)[0]
    idx = p.token_index(p.tokens[-1])
    assert token_start_pos(p.tokens, idx) == len('SELECT * FROM \n')
开发者ID:arthurli1126,项目名称:pgcli,代码行数:10,代码来源:test_ctes.py


示例20: test_grouping_typecast

def test_grouping_typecast():
    s = 'select foo::integer from bar'
    p = sqlparse.parse(s)[0]
    assert str(p) == s
    assert p.tokens[2].get_typecast() == 'integer'
    assert p.tokens[2].get_name() == 'foo'
    s = 'select (current_database())::information_schema.sql_identifier'
    p = sqlparse.parse(s)[0]
    assert str(p) == s
    assert (p.tokens[2].get_typecast() == 'information_schema.sql_identifier')
开发者ID:AdamG,项目名称:sqlparse,代码行数:10,代码来源:test_grouping.py



注:本文中的sqlparse.parse函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python sqlparse.split函数代码示例发布时间:2022-05-27
下一篇:
Python sqlparse.format函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap