mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	- 优化 pgsql15.0 部分类型兼容;#1436
This commit is contained in:
		@@ -220,6 +220,18 @@ where ns.nspname = {{0}} and c.relname = {{1}}", tboldname ?? tbname);
 | 
			
		||||
                    var type = string.Concat(a[1]);
 | 
			
		||||
                    var sqlType = string.Concat(a[3]);
 | 
			
		||||
                    var max_length = long.Parse(string.Concat(a[2]));
 | 
			
		||||
                    type = type.Replace("smallint", "int2")
 | 
			
		||||
                        .Replace("integer", "int4")
 | 
			
		||||
                        .Replace("bigint", "int8")
 | 
			
		||||
                        .Replace("real", "float4")
 | 
			
		||||
                        .Replace("double precision", "float8")
 | 
			
		||||
                        .Replace("character varying", "varchar"); //pg15+
 | 
			
		||||
                    sqlType = type.Replace("smallint", "int2")
 | 
			
		||||
                        .Replace("integer", "int4")
 | 
			
		||||
                        .Replace("bigint", "int8")
 | 
			
		||||
                        .Replace("real", "float4")
 | 
			
		||||
                        .Replace("double precision", "float8")
 | 
			
		||||
                        .Replace("character varying", "varchar"); //pg15+
 | 
			
		||||
                    switch (sqlType.ToLower())
 | 
			
		||||
                    {
 | 
			
		||||
                        case "bool": case "name": case "bit": case "varbit": case "bpchar": case "varchar": case "bytea": case "text": case "uuid": break;
 | 
			
		||||
 
 | 
			
		||||
@@ -54,15 +54,21 @@ namespace FreeSql.Odbc.PostgreSQL
 | 
			
		||||
            OdbcType ret = OdbcType.VarChar;
 | 
			
		||||
            switch (dbtype?.ToLower().TrimStart('_'))
 | 
			
		||||
            {
 | 
			
		||||
                case "smallint":
 | 
			
		||||
                case "int2": ret = OdbcType.SmallInt; break;
 | 
			
		||||
                case "integer":
 | 
			
		||||
                case "int4": ret = OdbcType.Int; break;
 | 
			
		||||
                case "bigint":
 | 
			
		||||
                case "int8": ret = OdbcType.BigInt; break;
 | 
			
		||||
                case "numeric": ret = OdbcType.Numeric; break;
 | 
			
		||||
                case "real":
 | 
			
		||||
                case "float4": ret = OdbcType.Real; break;
 | 
			
		||||
                case "double precision":
 | 
			
		||||
                case "float8": ret = OdbcType.Double; break;
 | 
			
		||||
                case "money": ret = OdbcType.Numeric; break;
 | 
			
		||||
 | 
			
		||||
                case "bpchar": ret = OdbcType.Char; break;
 | 
			
		||||
                case "character varying":
 | 
			
		||||
                case "varchar": ret = OdbcType.VarChar; break;
 | 
			
		||||
                case "text": ret = OdbcType.Text; break;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user