mirror of
				https://github.com/django/django.git
				synced 2025-10-30 17:16:10 +00:00 
			
		
		
		
	Fixed #32653 -- Made quoting names in the Oracle backend consistent with db_table.
This commit is contained in:
		| @@ -334,7 +334,7 @@ END; | ||||
|         # always defaults to uppercase. | ||||
|         # We simplify things by making Oracle identifiers always uppercase. | ||||
|         if not name.startswith('"') and not name.endswith('"'): | ||||
|             name = '"%s"' % truncate_name(name.upper(), self.max_name_length()) | ||||
|             name = '"%s"' % truncate_name(name, self.max_name_length()) | ||||
|         # Oracle puts the query text into a (query % args) construct, so % signs | ||||
|         # in names need to be escaped. The '%%' will be collapsed back to '%' at | ||||
|         # that stage so we aren't really making the name longer here. | ||||
|   | ||||
| @@ -4,7 +4,9 @@ from django.db import DatabaseError, connection | ||||
| from django.db.models import BooleanField | ||||
| from django.test import TransactionTestCase | ||||
|  | ||||
| from ..models import Square | ||||
| from ..models import ( | ||||
|     Square, VeryLongModelNameZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ, | ||||
| ) | ||||
|  | ||||
|  | ||||
| @unittest.skipUnless(connection.vendor == 'oracle', 'Oracle tests') | ||||
| @@ -16,6 +18,13 @@ class Tests(unittest.TestCase): | ||||
|         quoted_name = connection.ops.quote_name(name) | ||||
|         self.assertEqual(quoted_name % (), name) | ||||
|  | ||||
|     def test_quote_name_db_table(self): | ||||
|         model = VeryLongModelNameZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ | ||||
|         db_table = model._meta.db_table.upper() | ||||
|         self.assertEqual(f'"{db_table}"', connection.ops.quote_name( | ||||
|             'backends_verylongmodelnamezzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz', | ||||
|         )) | ||||
|  | ||||
|     def test_dbms_session(self): | ||||
|         """A stored procedure can be called through a cursor wrapper.""" | ||||
|         with connection.cursor() as cursor: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user