Author: mboersma
Date: 2008-12-08 12:36:22 -0600 (Mon, 08 Dec 2008)
New Revision: 9612
Modified:
django/trunk/django/db/backends/oracle/base.py
Log:
Fixed obscure Oracle quoting issues pointed out by the custom_columns_regress
test case.
Modified: django/trunk/django/db/backends/oracle/base.py
===================================================================
--- django/trunk/django/db/backends/oracle/base.py 2008-12-08 17:18:50 UTC
(rev 9611)
+++ django/trunk/django/db/backends/oracle/base.py 2008-12-08 18:36:22 UTC
(rev 9612)
@@ -49,17 +49,17 @@
SELECT COUNT(*) INTO i FROM USER_CATALOG
WHERE TABLE_NAME = '%(sq_name)s' AND TABLE_TYPE =
'SEQUENCE';
IF i = 0 THEN
- EXECUTE IMMEDIATE 'CREATE SEQUENCE %(sq_name)s';
+ EXECUTE IMMEDIATE 'CREATE SEQUENCE "%(sq_name)s"';
END IF;
END;
/""" % locals()
trigger_sql = """
- CREATE OR REPLACE TRIGGER %(tr_name)s
+ CREATE OR REPLACE TRIGGER "%(tr_name)s"
BEFORE INSERT ON %(tbl_name)s
FOR EACH ROW
WHEN (new.%(col_name)s IS NULL)
BEGIN
- SELECT %(sq_name)s.nextval
+ SELECT "%(sq_name)s".nextval
INTO :new.%(col_name)s FROM dual;
END;
/""" % locals()
@@ -94,8 +94,8 @@
return "%s"
def last_insert_id(self, cursor, table_name, pk_name):
- sq_name = util.truncate_name(table_name, self.max_name_length() - 3)
- cursor.execute('SELECT %s_sq.currval FROM dual' % sq_name)
+ sq_name = get_sequence_name(table_name)
+ cursor.execute('SELECT "%s".currval FROM dual' % sq_name)
return cursor.fetchone()[0]
def lookup_cast(self, lookup_type):
@@ -403,12 +403,12 @@
BEGIN
LOCK TABLE %(table)s IN SHARE MODE;
SELECT NVL(MAX(%(column)s), 0) INTO startvalue FROM %(table)s;
- SELECT %(sequence)s.nextval INTO cval FROM dual;
+ SELECT "%(sequence)s".nextval INTO cval FROM dual;
cval := startvalue - cval;
IF cval != 0 THEN
- EXECUTE IMMEDIATE 'ALTER SEQUENCE %(sequence)s MINVALUE 0
INCREMENT BY '||cval;
- SELECT %(sequence)s.nextval INTO cval FROM dual;
- EXECUTE IMMEDIATE 'ALTER SEQUENCE %(sequence)s INCREMENT BY 1';
+ EXECUTE IMMEDIATE 'ALTER SEQUENCE "%(sequence)s" MINVALUE 0
INCREMENT BY '||cval;
+ SELECT "%(sequence)s".nextval INTO cval FROM dual;
+ EXECUTE IMMEDIATE 'ALTER SEQUENCE "%(sequence)s" INCREMENT BY
1';
END IF;
COMMIT;
END;
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---