def test_limit_special_quoting(self):
        """Oracle-specific test for #4730.

        Even though this issue is generic, test the originally reported Oracle
        use case.

        """

        col = literal_column("SUM(ABC)").label("SUM(ABC)")
        tbl = table("my_table")
        query = select([col]).select_from(tbl).order_by(col).limit(100)

        self.assert_compile(
            query,
            'SELECT "SUM(ABC)" FROM '
            '(SELECT SUM(ABC) AS "SUM(ABC)" '
            "FROM my_table ORDER BY SUM(ABC)) "
            "WHERE ROWNUM <= :param_1",
        )

        col = literal_column("SUM(ABC)").label(quoted_name("SUM(ABC)", True))
        tbl = table("my_table")
        query = select([col]).select_from(tbl).order_by(col).limit(100)

        self.assert_compile(
            query,
            'SELECT "SUM(ABC)" FROM '
            '(SELECT SUM(ABC) AS "SUM(ABC)" '
            "FROM my_table ORDER BY SUM(ABC)) "
            "WHERE ROWNUM <= :param_1",
        )

        col = literal_column("SUM(ABC)").label("SUM(ABC)_")
        tbl = table("my_table")
        query = select([col]).select_from(tbl).order_by(col).limit(100)

        self.assert_compile(
            query,
            'SELECT "SUM(ABC)_" FROM '
            '(SELECT SUM(ABC) AS "SUM(ABC)_" '
            "FROM my_table ORDER BY SUM(ABC)) "
            "WHERE ROWNUM <= :param_1",
        )

        col = literal_column("SUM(ABC)").label(quoted_name("SUM(ABC)_", True))
        tbl = table("my_table")
        query = select([col]).select_from(tbl).order_by(col).limit(100)

        self.assert_compile(
            query,
            'SELECT "SUM(ABC)_" FROM '
            '(SELECT SUM(ABC) AS "SUM(ABC)_" '
            "FROM my_table ORDER BY SUM(ABC)) "
            "WHERE ROWNUM <= :param_1",
        )
Exemplo n.º 2
0
 def test_order_by_literal_col_quoting_one_explict_quote(self):
     col = literal_column("SUM(ABC)").label(quoted_name("SUM(ABC)", True))
     tbl = table("my_table")
     query = select([col]).select_from(tbl).order_by(col)
     self.assert_compile(
         query,
         'SELECT SUM(ABC) AS "SUM(ABC)" FROM my_table ORDER BY "SUM(ABC)"',
     )
 def test_force_schema_quoted_name_w_dot_case_sensitive(self):
     metadata = MetaData()
     tbl = Table(
         "test",
         metadata,
         Column("id", Integer, primary_key=True),
         schema=quoted_name("Foo.dbo", True),
     )
     self.assert_compile(select([tbl]),
                         "SELECT [Foo.dbo].test.id FROM [Foo.dbo].test")
 class myfunc(GenericFunction):
     name = quoted_name("NotMyFunc", quote=True)