mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 优化 pgsql15.0 部分类型兼容;#1436
This commit is contained in:
parent
679cf7efca
commit
c6a3ca6d2f
@ -219,6 +219,18 @@ where ns.nspname = {{0}} and c.relname = {{1}}", tboldname ?? tbname);
|
|||||||
var type = string.Concat(a[1]);
|
var type = string.Concat(a[1]);
|
||||||
var sqlType = string.Concat(a[3]);
|
var sqlType = string.Concat(a[3]);
|
||||||
var max_length = long.Parse(string.Concat(a[2]));
|
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())
|
switch (sqlType.ToLower())
|
||||||
{
|
{
|
||||||
case "bool": case "name": case "bit": case "varbit": case "bpchar": case "varchar": case "bytea": case "text": case "uuid": break;
|
case "bool": case "name": case "bit": case "varbit": case "bpchar": case "varchar": case "bytea": case "text": case "uuid": break;
|
||||||
|
@ -53,15 +53,21 @@ namespace FreeSql.Custom.PostgreSQL
|
|||||||
DbType ret = DbType.String;
|
DbType ret = DbType.String;
|
||||||
switch (dbtype?.ToLower().TrimStart('_'))
|
switch (dbtype?.ToLower().TrimStart('_'))
|
||||||
{
|
{
|
||||||
|
case "smallint":
|
||||||
case "int2": ret = DbType.Int16; break;
|
case "int2": ret = DbType.Int16; break;
|
||||||
|
case "integer":
|
||||||
case "int4": ret = DbType.Int32; break;
|
case "int4": ret = DbType.Int32; break;
|
||||||
|
case "bigint":
|
||||||
case "int8": ret = DbType.Int64; break;
|
case "int8": ret = DbType.Int64; break;
|
||||||
case "numeric": ret = DbType.Decimal; break;
|
case "numeric": ret = DbType.Decimal; break;
|
||||||
|
case "real":
|
||||||
case "float4": ret = DbType.Single; break;
|
case "float4": ret = DbType.Single; break;
|
||||||
|
case "double precision":
|
||||||
case "float8": ret = DbType.Double; break;
|
case "float8": ret = DbType.Double; break;
|
||||||
case "money": ret = DbType.Decimal; break;
|
case "money": ret = DbType.Decimal; break;
|
||||||
|
|
||||||
case "bpchar": ret = DbType.AnsiString; break;
|
case "bpchar": ret = DbType.AnsiString; break;
|
||||||
|
case "character varying":
|
||||||
case "varchar": ret = DbType.String; break;
|
case "varchar": ret = DbType.String; break;
|
||||||
case "text": ret = DbType.String; break;
|
case "text": ret = DbType.String; break;
|
||||||
|
|
||||||
|
@ -220,6 +220,18 @@ where ns.nspname = {{0}} and c.relname = {{1}}", tboldname ?? tbname);
|
|||||||
var type = string.Concat(a[1]);
|
var type = string.Concat(a[1]);
|
||||||
var sqlType = string.Concat(a[3]);
|
var sqlType = string.Concat(a[3]);
|
||||||
var max_length = long.Parse(string.Concat(a[2]));
|
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())
|
switch (sqlType.ToLower())
|
||||||
{
|
{
|
||||||
case "bool": case "name": case "bit": case "varbit": case "bpchar": case "varchar": case "bytea": case "text": case "uuid": break;
|
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;
|
OdbcType ret = OdbcType.VarChar;
|
||||||
switch (dbtype?.ToLower().TrimStart('_'))
|
switch (dbtype?.ToLower().TrimStart('_'))
|
||||||
{
|
{
|
||||||
|
case "smallint":
|
||||||
case "int2": ret = OdbcType.SmallInt; break;
|
case "int2": ret = OdbcType.SmallInt; break;
|
||||||
|
case "integer":
|
||||||
case "int4": ret = OdbcType.Int; break;
|
case "int4": ret = OdbcType.Int; break;
|
||||||
|
case "bigint":
|
||||||
case "int8": ret = OdbcType.BigInt; break;
|
case "int8": ret = OdbcType.BigInt; break;
|
||||||
case "numeric": ret = OdbcType.Numeric; break;
|
case "numeric": ret = OdbcType.Numeric; break;
|
||||||
|
case "real":
|
||||||
case "float4": ret = OdbcType.Real; break;
|
case "float4": ret = OdbcType.Real; break;
|
||||||
|
case "double precision":
|
||||||
case "float8": ret = OdbcType.Double; break;
|
case "float8": ret = OdbcType.Double; break;
|
||||||
case "money": ret = OdbcType.Numeric; break;
|
case "money": ret = OdbcType.Numeric; break;
|
||||||
|
|
||||||
case "bpchar": ret = OdbcType.Char; break;
|
case "bpchar": ret = OdbcType.Char; break;
|
||||||
|
case "character varying":
|
||||||
case "varchar": ret = OdbcType.VarChar; break;
|
case "varchar": ret = OdbcType.VarChar; break;
|
||||||
case "text": ret = OdbcType.Text; break;
|
case "text": ret = OdbcType.Text; break;
|
||||||
|
|
||||||
|
@ -269,9 +269,21 @@ where ns.nspname = {{0}} and c.relname = {{1}}", tboldname ?? tbname);
|
|||||||
var type = string.Concat(a[1]);
|
var type = string.Concat(a[1]);
|
||||||
var sqlType = string.Concat(a[3]);
|
var sqlType = string.Concat(a[3]);
|
||||||
var max_length = long.Parse(string.Concat(a[2]));
|
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())
|
switch (sqlType.ToLower())
|
||||||
{
|
{
|
||||||
case "bool": case "name": case "bit": case "varbit": case "bpchar": case "varchar": case "bytea": case "text": case "uuid": break;
|
case "bool": case "name": case "bit": case "varbit": case "bpchar": case "varchar": case "bytea": case "text": case "uuid":
|
||||||
default: max_length *= 8; break;
|
default: max_length *= 8; break;
|
||||||
}
|
}
|
||||||
if (type.StartsWith("_"))
|
if (type.StartsWith("_"))
|
||||||
|
@ -59,15 +59,21 @@ namespace FreeSql.PostgreSQL
|
|||||||
NpgsqlDbType ret = NpgsqlDbType.Unknown;
|
NpgsqlDbType ret = NpgsqlDbType.Unknown;
|
||||||
switch (dbtype?.ToLower().TrimStart('_'))
|
switch (dbtype?.ToLower().TrimStart('_'))
|
||||||
{
|
{
|
||||||
|
case "smallint":
|
||||||
case "int2": ret = NpgsqlDbType.Smallint; break;
|
case "int2": ret = NpgsqlDbType.Smallint; break;
|
||||||
|
case "integer":
|
||||||
case "int4": ret = NpgsqlDbType.Integer; break;
|
case "int4": ret = NpgsqlDbType.Integer; break;
|
||||||
|
case "bigint":
|
||||||
case "int8": ret = NpgsqlDbType.Bigint; break;
|
case "int8": ret = NpgsqlDbType.Bigint; break;
|
||||||
case "numeric": ret = NpgsqlDbType.Numeric; break;
|
case "numeric": ret = NpgsqlDbType.Numeric; break;
|
||||||
|
case "real":
|
||||||
case "float4": ret = NpgsqlDbType.Real; break;
|
case "float4": ret = NpgsqlDbType.Real; break;
|
||||||
|
case "double precision":
|
||||||
case "float8": ret = NpgsqlDbType.Double; break;
|
case "float8": ret = NpgsqlDbType.Double; break;
|
||||||
case "money": ret = NpgsqlDbType.Money; break;
|
case "money": ret = NpgsqlDbType.Money; break;
|
||||||
|
|
||||||
case "bpchar": ret = NpgsqlDbType.Char; break;
|
case "bpchar": ret = NpgsqlDbType.Char; break;
|
||||||
|
case "character varying":
|
||||||
case "varchar": ret = NpgsqlDbType.Varchar; break;
|
case "varchar": ret = NpgsqlDbType.Varchar; break;
|
||||||
case "text": ret = NpgsqlDbType.Text; break;
|
case "text": ret = NpgsqlDbType.Text; break;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user