--- mantis_orig_1.2.6/admin/schema.php	Tue Jul 26 08:49:10 2011
+++ mantis_patched_1.2.6/admin/schema.php	Thu Jul 28 14:10:36 2011
@@ -228,7 +228,9 @@
   file_path 		C(250) NOTNULL DEFAULT \" '' \",
   description 		XL NOTNULL
 ",Array('mysql' => 'ENGINE=MyISAM DEFAULT CHARSET=utf8', 'pgsql' => 'WITHOUT OIDS')));
-$upgrade[] = Array('CreateIndexSQL',Array('idx_project_id',db_get_table('mantis_project_table'),'id'));
+# Index autocreated when oci used
+if( $GLOBALS['g_db_type'] != 'oci8' )
+	$upgrade[] = Array('CreateIndexSQL',Array('idx_project_id',db_get_table('mantis_project_table'),'id'));
 $upgrade[] = Array('CreateIndexSQL',Array('idx_project_name',db_get_table('mantis_project_table'),'name',Array('UNIQUE')));
 $upgrade[] = Array('CreateIndexSQL',Array('idx_project_view',db_get_table('mantis_project_table'),'view_state'));
 $upgrade[] = Array('CreateTableSQL',Array(db_get_table('mantis_project_user_list_table'),"
@@ -334,10 +336,17 @@
 $upgrade[] = Array('CreateIndexSQL',Array('idx_enable',db_get_table('mantis_user_table'),'enabled'));
 /* 50 */
 $upgrade[] = Array('CreateIndexSQL',Array('idx_access',db_get_table('mantis_user_table'),'access_level'));
-$upgrade[] = Array('InsertData', Array( db_get_table('mantis_user_table'),
-    "(username, realname, email, password, date_created, last_visit, enabled, protected, access_level, login_count, lost_password_request_count, failed_login_count, cookie_string) VALUES
-        ('administrator', '', 'root@localhost', '63a9f0ea7bb98050796b649e85481845', '" . installer_db_now() . "', '" . installer_db_now() . "', '1', '0', 90, 3, 0, 0, '" .
-             md5( mt_rand( 0, mt_getrandmax() ) + mt_rand( 0, mt_getrandmax() ) ) . md5( time() ) . "')" ) );
+# Oci uses other date literal syntax 
+if( $GLOBALS['g_db_type'] != 'oci8' )
+	$upgrade[] = Array('InsertData', Array( db_get_table('mantis_user_table'),
+		"(username, realname, email, password, date_created, last_visit, enabled, protected, access_level, login_count, lost_password_request_count, failed_login_count, cookie_string) VALUES
+		('administrator', '', 'root@localhost', '63a9f0ea7bb98050796b649e85481845', '" . installer_db_now() . "', '" . installer_db_now() . "', '1', '0', 90, 3, 0, 0, '" .
+		md5( mt_rand( 0, mt_getrandmax() ) + mt_rand( 0, mt_getrandmax() ) ) . md5( time() ) . "')" ) );
+else
+	$upgrade[] = Array('InsertData', Array( db_get_table('mantis_user_table'),
+		"(username, realname, email, password, date_created, last_visit, enabled, protected, access_level, login_count, lost_password_request_count, failed_login_count, cookie_string) VALUES
+		('administrator', '', 'root@localhost', '63a9f0ea7bb98050796b649e85481845', timestamp" . installer_db_now() . ", timestamp" . installer_db_now() . ", '1', '0', 90, 3, 0, 0, '" .
+		md5( mt_rand( 0, mt_getrandmax() ) + mt_rand( 0, mt_getrandmax() ) ) . md5( time() ) . "')" ) );
 $upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_bug_history_table' ), "old_value C(255) NOTNULL" ) );
 $upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_bug_history_table' ), "new_value C(255) NOTNULL" ) );
 
@@ -349,7 +358,9 @@
   metadata 		XL NOTNULL,
   body 			XL NOTNULL
   ",Array('mysql' => 'ENGINE=MyISAM DEFAULT CHARSET=utf8', 'pgsql' => 'WITHOUT OIDS')));
-$upgrade[] = Array('CreateIndexSQL',Array('idx_email_id',db_get_table('mantis_email_table'),'email_id'));
+# Index autocreated when oci used
+if( $GLOBALS['g_db_type'] != 'oci8' )
+	$upgrade[] = Array('CreateIndexSQL',Array('idx_email_id',db_get_table('mantis_email_table'),'email_id'));
 $upgrade[] = Array('AddColumnSQL',Array(db_get_table('mantis_bug_table'), "target_version C(64) NOTNULL DEFAULT \" '' \""));
 $upgrade[] = Array('AddColumnSQL',Array(db_get_table('mantis_bugnote_table'), "time_tracking I UNSIGNED NOTNULL DEFAULT \" 0 \""));
 $upgrade[] = Array('CreateIndexSQL',Array('idx_diskfile',db_get_table('mantis_bug_file_table'),'diskfile'));
@@ -382,8 +393,12 @@
 	basename		C(40)	NOTNULL PRIMARY,
 	enabled			L		NOTNULL DEFAULT \" '0' \"
 	", Array( 'mysql' => 'ENGINE=MyISAM DEFAULT CHARSET=utf8', 'pgsql' => 'WITHOUT OIDS' ) ) );
+# Field cannot be null with oci because of empty string equals NULL 
+if( $GLOBALS['g_db_type'] != 'oci8' )
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_user_pref_table' ), "redirect_delay 	I NOTNULL DEFAULT 0" ) );
+else
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_user_pref_table' ), "redirect_delay 	I DEFAULT 0" ) );
 
-$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_user_pref_table' ), "redirect_delay 	I NOTNULL DEFAULT 0" ) );
 
 /* apparently mysql now has a STRICT mode, where setting a DEFAULT value on a blob/text is now an error, instead of being silently ignored */
 if ( isset( $f_db_type ) && ( $f_db_type == 'mysql' || $f_db_type == 'mysqli' ) ) {
@@ -601,7 +616,11 @@
 $upgrade[] = Array( 'DropColumnSQL', Array( db_get_table( 'mantis_user_pref_table'), "advanced_view" ) );
 $upgrade[] = Array( 'DropColumnSQL', Array( db_get_table( 'mantis_user_pref_table'), "advanced_update" ) );
 $upgrade[] = Array( 'CreateIndexSQL', Array( 'idx_project_hierarchy_child_id', db_get_table( 'mantis_project_hierarchy_table' ), 'child_id' ) );
-$upgrade[] = Array( 'CreateIndexSQL', Array( 'idx_project_hierarchy_parent_id', db_get_table( 'mantis_project_hierarchy_table' ), 'parent_id' ) );
+# Decrease index name length for oci8(30 chars max)
+if( $GLOBALS['g_db_type'] != 'oci8' )
+	$upgrade[] = Array( 'CreateIndexSQL', Array( 'idx_project_hierarchy_parent_id', db_get_table( 'mantis_project_hierarchy_table' ), 'parent_id' ) );
+else
+	$upgrade[] = Array( 'CreateIndexSQL', Array( 'idx_prj_hier_parent_id', db_get_table( 'mantis_project_hierarchy_table' ), 'parent_id' ) );
 
 /* 180 */
 $upgrade[] = Array( 'CreateIndexSQL', Array( 'idx_tag_name', db_get_table( 'mantis_tag_table' ), 'name' ) );
@@ -608,3 +627,19 @@
 $upgrade[] = Array( 'CreateIndexSQL', Array( 'idx_bug_tag_tag_id', db_get_table( 'mantis_bug_tag_table' ), 'tag_id' ) );
 $upgrade[] = Array( 'CreateIndexSQL', Array( 'idx_email_id', db_get_table( 'mantis_email_table' ), 'email_id', array( 'DROP' ) ), Array( 'db_index_exists', Array( db_get_table( 'mantis_email_table' ), 'idx_email_id') ) );
 $upgrade[] = Array( 'UpdateFunction', 'correct_multiselect_custom_fields_db_format' );
+
+# Field cannot be null with oci because of empty string equals NULL 
+if( $GLOBALS['g_db_type'] == 'oci8' )	{
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_bug_table' ), "sticky NULL" ) );
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_bug_history_table' ), "new_value NULL" ) );
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_bug_history_table' ), "old_value NULL" ) );
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_bug_history_table' ), "field_name NULL" ) );
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_bug_text_table' ), "additional_information  NULL" ) );
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_bug_text_table' ), "steps_to_reproduce NULL" ) );
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_project_table' ), "description NULL" ) );
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_project_version_table' ), "description NULL" ) );
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_tag_table' ), "description NULL" ) );
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_user_pref_table' ), "email_on_priority NULL" ) );
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_user_pref_table' ), "email_on_status NULL" ) );
+	$upgrade[] = Array('AlterColumnSQL', Array( db_get_table( 'mantis_user_profile_table' ), "description NULL" ) );
+}
