mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-24 01:00:59 +08:00
- 修复 Xugu DataType 对应问题;#1934
This commit is contained in:
@@ -705,6 +705,7 @@ ManyToMany 级联删除中间表(注意不删除外部根)
|
|||||||
case DataType.ShenTong:
|
case DataType.ShenTong:
|
||||||
case DataType.DuckDB:
|
case DataType.DuckDB:
|
||||||
case DataType.Firebird: //firebird 只支持单条插入 returning
|
case DataType.Firebird: //firebird 只支持单条插入 returning
|
||||||
|
case DataType.Xugu:
|
||||||
if (_tableIdentitys.Length == 1 && _tableReturnColumns.Length == 1)
|
if (_tableIdentitys.Length == 1 && _tableReturnColumns.Length == 1)
|
||||||
{
|
{
|
||||||
var idtval = OrmInsert(table).AppendData(data).ExecuteIdentity();
|
var idtval = OrmInsert(table).AppendData(data).ExecuteIdentity();
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ namespace FreeSql
|
|||||||
case DataType.ShenTong:
|
case DataType.ShenTong:
|
||||||
case DataType.DuckDB:
|
case DataType.DuckDB:
|
||||||
case DataType.Firebird: //firebird 只支持单条插入 returning
|
case DataType.Firebird: //firebird 只支持单条插入 returning
|
||||||
|
case DataType.Xugu:
|
||||||
if (_tableIdentitys.Length == 1 && _tableReturnColumns.Length == 1)
|
if (_tableIdentitys.Length == 1 && _tableReturnColumns.Length == 1)
|
||||||
{
|
{
|
||||||
await DbContextFlushCommandAsync(cancellationToken);
|
await DbContextFlushCommandAsync(cancellationToken);
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ namespace FreeSql
|
|||||||
case DataType.ShenTong:
|
case DataType.ShenTong:
|
||||||
case DataType.DuckDB:
|
case DataType.DuckDB:
|
||||||
case DataType.Firebird: //firebird 只支持单条插入 returning
|
case DataType.Firebird: //firebird 只支持单条插入 returning
|
||||||
|
case DataType.Xugu:
|
||||||
if (_tableIdentitys.Length == 1 && _tableReturnColumns.Length == 1)
|
if (_tableIdentitys.Length == 1 && _tableReturnColumns.Length == 1)
|
||||||
{
|
{
|
||||||
DbContextFlushCommand();
|
DbContextFlushCommand();
|
||||||
|
|||||||
@@ -751,6 +751,7 @@ JOIN {select._commonUtils.QuoteSqlName(tbDbName)} a ON cte_tbc.cte_id = a.{selec
|
|||||||
case DataType.Firebird:
|
case DataType.Firebird:
|
||||||
case DataType.ClickHouse:
|
case DataType.ClickHouse:
|
||||||
case DataType.DuckDB:
|
case DataType.DuckDB:
|
||||||
|
case DataType.Xugu:
|
||||||
sql1ctePath = select._commonExpression.ExpressionWhereLambda(select._tables, select._tableRule,
|
sql1ctePath = select._commonExpression.ExpressionWhereLambda(select._tables, select._tableRule,
|
||||||
Expression.Call(typeof(Convert).GetMethod("ToString", new Type[] { typeof(string) }), pathSelector?.Body), select._diymemexpWithTempQuery, null, null);
|
Expression.Call(typeof(Convert).GetMethod("ToString", new Type[] { typeof(string) }), pathSelector?.Body), select._diymemexpWithTempQuery, null, null);
|
||||||
break;
|
break;
|
||||||
@@ -847,6 +848,7 @@ JOIN {select._commonUtils.QuoteSqlName(tbDbName)} a ON cte_tbc.cte_id = a.{selec
|
|||||||
case DataType.CustomMySql:
|
case DataType.CustomMySql:
|
||||||
case DataType.Firebird:
|
case DataType.Firebird:
|
||||||
case DataType.DuckDB:
|
case DataType.DuckDB:
|
||||||
|
case DataType.Xugu:
|
||||||
nsselsb.Append("RECURSIVE ");
|
nsselsb.Append("RECURSIVE ");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -900,6 +902,7 @@ SELECT ");
|
|||||||
case DataType.KingbaseES:
|
case DataType.KingbaseES:
|
||||||
case DataType.ShenTong:
|
case DataType.ShenTong:
|
||||||
case DataType.DuckDB:
|
case DataType.DuckDB:
|
||||||
|
case DataType.Xugu:
|
||||||
return that.OrderBy("random()");
|
return that.OrderBy("random()");
|
||||||
case DataType.Oracle:
|
case DataType.Oracle:
|
||||||
case DataType.OdbcOracle:
|
case DataType.OdbcOracle:
|
||||||
|
|||||||
@@ -1291,6 +1291,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
case DataType.OdbcPostgreSQL:
|
case DataType.OdbcPostgreSQL:
|
||||||
case DataType.CustomPostgreSQL:
|
case DataType.CustomPostgreSQL:
|
||||||
case DataType.KingbaseES:
|
case DataType.KingbaseES:
|
||||||
|
case DataType.Xugu:
|
||||||
_tosqlAppendContent = $"{_tosqlAppendContent} for update{(noawait ? " nowait" : "")}";
|
_tosqlAppendContent = $"{_tosqlAppendContent} for update{(noawait ? " nowait" : "")}";
|
||||||
break;
|
break;
|
||||||
case DataType.Oracle:
|
case DataType.Oracle:
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
case DataType.KingbaseES:
|
case DataType.KingbaseES:
|
||||||
case DataType.ShenTong:
|
case DataType.ShenTong:
|
||||||
case DataType.DuckDB:
|
case DataType.DuckDB:
|
||||||
|
case DataType.Xugu:
|
||||||
InterceptPostgreSQL?.Invoke(); break;
|
InterceptPostgreSQL?.Invoke(); break;
|
||||||
case DataType.Oracle:
|
case DataType.Oracle:
|
||||||
case DataType.OdbcOracle:
|
case DataType.OdbcOracle:
|
||||||
@@ -216,6 +217,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
case DataType.CustomPostgreSQL:
|
case DataType.CustomPostgreSQL:
|
||||||
case DataType.KingbaseES:
|
case DataType.KingbaseES:
|
||||||
case DataType.ShenTong:
|
case DataType.ShenTong:
|
||||||
|
case DataType.Xugu:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
var tbalias = _query2Provider._tables.Where(tb => tb.Table == col.Table).FirstOrDefault()?.Alias ?? _query2Provider._tables[0].Alias;
|
var tbalias = _query2Provider._tables.Where(tb => tb.Table == col.Table).FirstOrDefault()?.Alias ?? _query2Provider._tables[0].Alias;
|
||||||
|
|||||||
@@ -1197,6 +1197,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
case DataType.CustomPostgreSQL:
|
case DataType.CustomPostgreSQL:
|
||||||
case DataType.KingbaseES:
|
case DataType.KingbaseES:
|
||||||
case DataType.ShenTong:
|
case DataType.ShenTong:
|
||||||
|
case DataType.Xugu:
|
||||||
vcvalue = $"{_tableAlias}.{vcname}"; //set name = b.name
|
vcvalue = $"{_tableAlias}.{vcname}"; //set name = b.name
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -397,6 +397,7 @@ namespace FreeSql.Internal
|
|||||||
case DataType.CustomPostgreSQL:
|
case DataType.CustomPostgreSQL:
|
||||||
case DataType.KingbaseES:
|
case DataType.KingbaseES:
|
||||||
case DataType.ShenTong:
|
case DataType.ShenTong:
|
||||||
|
case DataType.Xugu:
|
||||||
if (strlen < 0) colattr.DbType = $"TEXT{strNotNull}";
|
if (strlen < 0) colattr.DbType = $"TEXT{strNotNull}";
|
||||||
else colattr.DbType = Regex.Replace(colattr.DbType, charPattern, m =>
|
else colattr.DbType = Regex.Replace(colattr.DbType, charPattern, m =>
|
||||||
replaceCounter++ == 0 ? $"{m.Groups[1].Value}({strlen})" : m.Groups[0].Value);
|
replaceCounter++ == 0 ? $"{m.Groups[1].Value}({strlen})" : m.Groups[0].Value);
|
||||||
@@ -470,7 +471,8 @@ namespace FreeSql.Internal
|
|||||||
case DataType.CustomPostgreSQL:
|
case DataType.CustomPostgreSQL:
|
||||||
case DataType.KingbaseES:
|
case DataType.KingbaseES:
|
||||||
case DataType.ShenTong: //驱动引发的异常:“System.Data.OscarClient.OscarException”(位于 System.Data.OscarClient.dll 中)
|
case DataType.ShenTong: //驱动引发的异常:“System.Data.OscarClient.OscarException”(位于 System.Data.OscarClient.dll 中)
|
||||||
colattr.DbType = $"BYTEA{strNotNull}"; //变长二进制串
|
case DataType.Xugu:
|
||||||
|
colattr.DbType = $"BYTEA{strNotNull}"; //变长二进制串
|
||||||
break;
|
break;
|
||||||
case DataType.Oracle:
|
case DataType.Oracle:
|
||||||
case DataType.OdbcOracle:
|
case DataType.OdbcOracle:
|
||||||
|
|||||||
Reference in New Issue
Block a user