Ticket #11487: base_with_tests.diff

File base_with_tests.diff, 1.9 KB (added by rafax, 6 years ago)

Patch with regression test added.

  • django/db/backends/oracle/base.py

     
    360360            # If parameter has `input_size` attribute, use that.
    361361            self.input_size = param.input_size
    362362        elif isinstance(param, basestring) and len(param) > 4000:
    363             # Mark any string param greater than 4000 characters as an NCLOB.
    364             self.input_size = Database.NCLOB
     363            # Mark any string param greater than 4000 characters as a CLOB.
     364            self.input_size = Database.CLOB
    365365        else:
    366366            self.input_size = None
    367367
  • tests/regressiontests/backends/tests.py

     
    1717            return True
    1818        else:
    1919            return True
     20           
     21class LongString(unittest.TestCase):
    2022
     23    def test_long_string(self):
     24        # If the backend is Oracle, test that we can save a text longer
     25        # than 4000 chars and read it properly
     26        if settings.DATABASE_ENGINE == 'oracle':
     27            c = connection.cursor()
     28            c.execute('CREATE TABLE ltext ("TEXT" CLOB)')
     29            transaction.commit_unless_managed()
     30            long_str = ''.join( unicode(x) for x in xrange(4000) )
     31            c.execute('INSERT INTO ltext VALUES (%s)',[long_str])
     32            transaction.commit_unless_managed()
     33            c.execute('SELECT text FROM ltext')
     34            row = c.fetchone()
     35            c.execute('DROP TABLE ltext')
     36            transaction.commit_unless_managed()
     37            self.assertEquals(long_str, row[0].read())
     38
    2139def connection_created_test(sender, **kwargs):
    2240    print 'connection_created signal'
    2341
Back to Top