瀏覽代碼

optym. aktualizacji struktur

a.binder 9 年之前
父節點
當前提交
612238ae40
共有 1 個文件被更改,包括 16 次插入0 次删除
  1. 16 0
      SE/se-lib/Core/Database/Mysql.php

+ 16 - 0
SE/se-lib/Core/Database/Mysql.php

@@ -1002,6 +1002,22 @@ class Core_Database_Mysql extends Core_Database {
 																				  DEBUG_S(-3,'Pominieta Aktualizacja zawiezajaca zakres pola INT ma byc ='.$src_char_len[1]." byla dest=".$dst_char_len[1] ,array($sql,$src_char_len,$dst_char_len,$ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type),__FILE__, __FUNCTION__, __LINE__);
 																				  DEBUG_S(-3,'Pominieta Aktualizacja zawiezajaca zakres pola INT ma byc ='.$src_char_len[1]." byla dest=".$dst_char_len[1] ,array($sql,$src_char_len,$dst_char_len,$ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type),__FILE__, __FUNCTION__, __LINE__);
 																			  }
 																			  }
 																	      
 																	      
+																	     } else if(strstr($VAL->Type, 'double(') && strstr($ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type, 'double('  )) {
+																	         
+																	          preg_match('/^double\((.*),[0-9]+\)$/', $ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type, $src_char_len);
+																			  preg_match('/^double\((.*),[0-9]+\)$/', $VAL->Type, $dst_char_len);
+																			  preg_match('/^double\([0-9]+,(.*)\)$/', $ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type, $src_char_len_com);
+																			  preg_match('/^double\([0-9]+,(.*)\)$/', $VAL->Type, $dst_char_len_com);
+
+																			  if($src_char_len[1]>$dst_char_len[1] and $src_char_len_com[1]>=$dst_char_len_com[1]) {
+																			      $sql=" alter table `".$TABLE."` CHANGE `".$FIELD_TO_CHK."` `".$FIELD_TO_CHK."` ".$ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type." ; ";
+																				  DEBUG_S(-3,'Aktualizacja rozszerzajaca zakres pola Double ma byc ='.$src_char_len[1]." byla dest=".$dst_char_len[1] ,$sql,__FILE__, __FUNCTION__, __LINE__);
+																				 // 	$result=$this->query($sql) or DEBUG_S(-3,'Problem ze SQL:',$sql,__FILE__, __FUNCTION__, __LINE__)  or die1('\nProblem z '.$sql);
+																			  } else {
+																				  DEBUG_S(-3,'Pominieta Aktualizacja zawiezajaca zakres pola Double ma byc ='.$src_char_len[1]." byla dest=".$dst_char_len[1] ,array($sql,$src_char_len,$dst_char_len,$ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type),__FILE__, __FUNCTION__, __LINE__);
+																			  }
+																	      
+																	      
 																	      } else if( ( strstr($VAL->Type, 'char(') || strstr($VAL->Type, 'varchar(')  ) && strstr($ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type, 'text'  )
 																	      } else if( ( strstr($VAL->Type, 'char(') || strstr($VAL->Type, 'varchar(')  ) && strstr($ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type, 'text'  )
 																	      			|| ( strstr($VAL->Type, 'bigint(')  ) && strstr($ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type, 'longblob'  )
 																	      			|| ( strstr($VAL->Type, 'bigint(')  ) && strstr($ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type, 'longblob'  )
 																	      			|| ( strstr($VAL->Type, 'mediumtext')  ) && strstr($ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type, 'longblob'  )
 																	      			|| ( strstr($VAL->Type, 'mediumtext')  ) && strstr($ARR_TABLE['FIELDS'][$INDEX_OF_CONFIG_TABLE]->Type, 'longblob'  )