]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-9920 Allowed xmldb to create 32-bit serial fields if specified, in postgres
authorsam_marshall <sam_marshall>
Thu, 24 May 2007 15:18:35 +0000 (15:18 +0000)
committersam_marshall <sam_marshall>
Thu, 24 May 2007 15:18:35 +0000 (15:18 +0000)
lib/xmldb/classes/generators/XMLDBGenerator.class.php
lib/xmldb/classes/generators/postgres7/postgres7.class.php

index 40642f0f1ae3d3d6ca15788883b888b9fca53a3c..fe41d2db1acc8d44e39ad706a0b14668c8aac674 100644 (file)
@@ -76,6 +76,7 @@ class XMLDBgenerator {
 
     var $sequence_extra_code = true; //Does the generator need to add extra code to generate the sequence fields
     var $sequence_name = 'auto_increment'; //Particular name for inline sequences in this generator
+    var $sequence_name_small = false; //Different name for small (4byte) sequences or false if same
     var $sequence_only = false; //To avoid to output the rest of the field specs, leaving only the name and the sequence_name variable
 
     var $enum_inline_code = true; //Does the generator need to add inline code in the column definition
@@ -384,11 +385,16 @@ class XMLDBgenerator {
         }
     /// The sequence
         if ($xmldb_field->getSequence()) {
-            $field .= ' ' . $this->sequence_name;
+            if($xmldb_field->getLength()<=9 && $this->sequence_name_small) {
+                $sequencename=$this->sequence_name_small;
+            } else {
+                $sequencename=$this->sequence_name;
+            }
+            $field .= ' ' . $sequencename;
             if ($this->sequence_only) {
             /// We only want the field name and sequence name to be printed
             /// so, calculate it and return
-                return $this->getEncQuoted($xmldb_field->getName()) . ' ' . $this->sequence_name;
+                return $this->getEncQuoted($xmldb_field->getName()) . ' ' . $sequencename;
             }
         }
         return $field;
index 04fae195f60951ff583ba570958339bf9577dddb..dbf2e2eb46f22a4fa4226033c200168a1543f83c 100644 (file)
@@ -39,6 +39,7 @@ class XMLDBpostgres7 extends XMLDBgenerator {
 
     var $sequence_extra_code = false; //Does the generator need to add extra code to generate the sequence fields
     var $sequence_name = 'BIGSERIAL'; //Particular name for inline sequences in this generator
+    var $sequence_name_small = 'SERIAL'; //Particular name for inline sequences in this generator
     var $sequence_only = true; //To avoid to output the rest of the field specs, leaving only the name and the sequence_name variable
 
     var $rename_table_extra_code = true; //Does the generator need to add code after table rename