{"System.Int16",(NpgsqlDbType.Smallint,"int2","int2 NOT NULL",false,false)},{"System.Nullable`1[System.Int16]",(NpgsqlDbType.Smallint,"int2","int2",false,true)},
{"System.Int32",(NpgsqlDbType.Integer,"int4","int4 NOT NULL",false,false)},{"System.Nullable`1[System.Int32]",(NpgsqlDbType.Integer,"int4","int4",false,true)},
{"System.Int64",(NpgsqlDbType.Bigint,"int8","int8 NOT NULL",false,false)},{"System.Nullable`1[System.Int64]",(NpgsqlDbType.Bigint,"int8","int8",false,true)},
{typeof(sbyte).FullName,(NpgsqlDbType.Smallint,"int2","int2 NOT NULL",false,false)},{typeof(sbyte?).FullName,(NpgsqlDbType.Smallint,"int2","int2",false,true)},
{typeof(short).FullName,(NpgsqlDbType.Smallint,"int2","int2 NOT NULL",false,false)},{typeof(short?).FullName,(NpgsqlDbType.Smallint,"int2","int2",false,true)},
{typeof(int).FullName,(NpgsqlDbType.Integer,"int4","int4 NOT NULL",false,false)},{typeof(int?).FullName,(NpgsqlDbType.Integer,"int4","int4",false,true)},
{typeof(long).FullName,(NpgsqlDbType.Bigint,"int8","int8 NOT NULL",false,false)},{typeof(long?).FullName,(NpgsqlDbType.Bigint,"int8","int8",false,true)},
{"System.Single",(NpgsqlDbType.Real,"float4","float4 NOT NULL",false,false)},{"System.Nullable`1[System.Single]",(NpgsqlDbType.Real,"float4","float4",false,true)},
{"System.Double",(NpgsqlDbType.Double,"float8","float8 NOT NULL",false,false)},{"System.Nullable`1[System.Double]",(NpgsqlDbType.Double,"float8","float8",false,true)},
{"System.Decimal",(NpgsqlDbType.Numeric,"numeric","numeric(10,2) NOT NULL",false,false)},{"System.Nullable`1[System.Decimal]",(NpgsqlDbType.Numeric,"numeric","numeric(10,2)",false,true)},
{typeof(byte).FullName,(NpgsqlDbType.Smallint,"int2","int2 NOT NULL",false,false)},{typeof(byte?).FullName,(NpgsqlDbType.Smallint,"int2","int2",false,true)},
{typeof(ushort).FullName,(NpgsqlDbType.Smallint,"int2","int2 NOT NULL",false,false)},{typeof(ushort?).FullName,(NpgsqlDbType.Smallint,"int2","int2",false,true)},
{typeof(uint).FullName,(NpgsqlDbType.Integer,"int4","int4 NOT NULL",false,false)},{typeof(uint?).FullName,(NpgsqlDbType.Integer,"int4","int4",false,true)},
{typeof(ulong).FullName,(NpgsqlDbType.Bigint,"int8","int8 NOT NULL",false,false)},{typeof(ulong?).FullName,(NpgsqlDbType.Bigint,"int8","int8",false,true)},
{typeof(float).FullName,(NpgsqlDbType.Real,"float4","float4 NOT NULL",false,false)},{typeof(float?).FullName,(NpgsqlDbType.Real,"float4","float4",false,true)},
{typeof(double).FullName,(NpgsqlDbType.Double,"float8","float8 NOT NULL",false,false)},{typeof(double?).FullName,(NpgsqlDbType.Double,"float8","float8",false,true)},
{typeof(decimal).FullName,(NpgsqlDbType.Numeric,"numeric","numeric(10,2) NOT NULL",false,false)},{typeof(decimal?).FullName,(NpgsqlDbType.Numeric,"numeric","numeric(10,2)",false,true)},
{"System.TimeSpan",(NpgsqlDbType.Time,"time","time NOT NULL",false,false)},{"System.Nullable`1[System.TimeSpan]",(NpgsqlDbType.Time,"time","time",false,true)},
{"System.DateTime",(NpgsqlDbType.Timestamp,"timestamp","timestamp NOT NULL",false,false)},{"System.Nullable`1[System.DateTime]",(NpgsqlDbType.Timestamp,"timestamp","timestamp",false,true)},
{"System.Boolean",(NpgsqlDbType.Boolean,"bool","bool NOT NULL",null,false)},{"System.Nullable`1[System.Boolean]",(NpgsqlDbType.Bit,"bool","bool",null,true)},
{typeof(TimeSpan).FullName,(NpgsqlDbType.Time,"time","time NOT NULL",false,false)},{typeof(TimeSpan?).FullName,(NpgsqlDbType.Time,"time","time",false,true)},
{typeof(DateTime).FullName,(NpgsqlDbType.Timestamp,"timestamp","timestamp NOT NULL",false,false)},{typeof(DateTime?).FullName,(NpgsqlDbType.Timestamp,"timestamp","timestamp",false,true)},
{typeof(NpgsqlPoint).FullName,(NpgsqlDbType.Point,"point","point NOT NULL",false,false)},{typeof(NpgsqlPoint?).FullName,(NpgsqlDbType.Point,"point","point",false,true)},
{typeof(NpgsqlLine).FullName,(NpgsqlDbType.Line,"line","line NOT NULL",false,false)},{typeof(NpgsqlLine?).FullName,(NpgsqlDbType.Line,"line","line",false,true)},
{typeof(NpgsqlLSeg).FullName,(NpgsqlDbType.LSeg,"lseg","lseg NOT NULL",false,false)},{typeof(NpgsqlLSeg?).FullName,(NpgsqlDbType.LSeg,"lseg","lseg",false,true)},
{typeof(NpgsqlBox).FullName,(NpgsqlDbType.Box,"box","box NOT NULL",false,false)},{typeof(NpgsqlBox?).FullName,(NpgsqlDbType.Box,"box","box",false,true)},
{typeof(NpgsqlPath).FullName,(NpgsqlDbType.Path,"path","path NOT NULL",false,false)},{typeof(NpgsqlPath?).FullName,(NpgsqlDbType.Path,"path","path",false,true)},
{typeof(NpgsqlPolygon).FullName,(NpgsqlDbType.Polygon,"polygon","polygon NOT NULL",false,false)},{typeof(NpgsqlPolygon?).FullName,(NpgsqlDbType.Polygon,"polygon","polygon",false,true)},
{typeof(NpgsqlCircle).FullName,(NpgsqlDbType.Circle,"circle","circle NOT NULL",false,false)},{typeof(NpgsqlCircle?).FullName,(NpgsqlDbType.Circle,"circle","circle",false,true)},
{typeof((IPAddressAddress,intSubnet)).FullName,(NpgsqlDbType.Cidr,"cidr","cidr NOT NULL",false,false)},{typeof((IPAddressAddress,intSubnet)?).FullName,(NpgsqlDbType.Cidr,"cidr","cidr",false,true)},
{typeof(NpgsqlRange<int>).FullName,(NpgsqlDbType.Range|NpgsqlDbType.Integer,"int4range","int4range NOT NULL",false,false)},{typeof(NpgsqlRange<int>?).FullName,(NpgsqlDbType.Range|NpgsqlDbType.Integer,"int4range","int4range",false,true)},
{typeof(NpgsqlRange<long>).FullName,(NpgsqlDbType.Range|NpgsqlDbType.Bigint,"int8range","int8range NOT NULL",false,false)},{typeof(NpgsqlRange<long>?).FullName,(NpgsqlDbType.Range|NpgsqlDbType.Bigint,"int8range","int8range",false,true)},
{typeof(NpgsqlRange<decimal>).FullName,(NpgsqlDbType.Range|NpgsqlDbType.Numeric,"numrange","numrange NOT NULL",false,false)},{typeof(NpgsqlRange<decimal>?).FullName,(NpgsqlDbType.Range|NpgsqlDbType.Numeric,"numrange","numrange",false,true)},
{typeof(NpgsqlRange<DateTime>).FullName,(NpgsqlDbType.Range|NpgsqlDbType.Timestamp,"tsrange","tsrange NOT NULL",false,false)},{typeof(NpgsqlRange<DateTime>?).FullName,(NpgsqlDbType.Range|NpgsqlDbType.Timestamp,"tsrange","tsrange",false,true)},
if(_orm.Ado.ExecuteScalar(CommandType.Text,"select 1 from pg_tables a inner join pg_namespace b on b.nspname = a.schemaname where b.nspname || '.' || a.tablename = {0}.{1}".FormatMySql(tbname))==null){//表不存在
if(_orm.Ado.ExecuteScalar(CommandType.Text,"select 1 from pg_tables a inner join pg_namespace b on b.nspname = a.schemaname where b.nspname || '.' || a.tablename = {0}.{1}".FormatPostgreSQL(tbname))==null){//表不存在
if(tboldname!=null&&_orm.Ado.ExecuteScalar(CommandType.Text,"select 1 from pg_tables a inner join pg_namespace b on b.nspname = a.schemaname where b.nspname || '.' || a.tablename = {0}.{1}".FormatMySql(tboldname))!=null){//旧表存在
if(tboldname!=null&&_orm.Ado.ExecuteScalar(CommandType.Text,"select 1 from pg_tables a inner join pg_namespace b on b.nspname = a.schemaname where b.nspname || '.' || a.tablename = {0}.{1}".FormatPostgreSQL(tboldname))!=null){//旧表存在
//修改表名
sb.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tboldname[0]}.{tboldname[1]}")).Append(" RENAME TO ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(";\r\n");
isRenameTable=true;
@ -126,8 +163,9 @@ a.attname,
t.typname,
case when a.atttypmod > 0 and a.atttypmod < 32767 then a.atttypmod - 4 else a.attlen end len,
case when t.typelem = 0 then t.typname else t2.typname end,
case when a.attnotnull then 0 else 1 end as is_nullable,
e.adsrc as is_identity
case when a.attnotnull then '0' else '1' end as is_nullable,
case when e.adsrc = 1 then '1' else '0' end as is_identity,
a.attndims
from pg_class c
inner join pg_attribute a on a.attnum > 0 and a.attrelid = c.oid
inner join pg_type t on t.oid = a.atttypid
@ -136,7 +174,7 @@ left join pg_description d on d.objoid = a.attrelid and d.objsubid = a.attnum
left join pg_attrdef e on e.adrelid = a.attrelid and e.adnum = a.attnum
inner join pg_namespace ns on ns.oid = c.relnamespace
inner join pg_namespace ns2 on ns2.oid = t.typnamespace
where ns.nspname = {0} and c.relname = {1}".FormatMySql(isRenameTable?tboldname:tbname);
where ns.nspname = {0} and c.relname = {1}".FormatPostgreSQL(isRenameTable?tboldname:tbname);
inner join pg_namespace ns on ns.oid = a.typnamespace
where a.typtype = 'e' and ns.nspname in (SELECT ""schema_name"" FROM information_schema.schemata where catalog_name in {0})".FormatPostgreSQL(database));
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.