- 修复 Xugu DataType 对应问题;#1934

This commit is contained in:
2881099
2024-11-29 20:42:30 +08:00
parent ccd13ba47f
commit cfb3bfa884
8 changed files with 13 additions and 1 deletions

View File

@@ -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();

View File

@@ -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);

View File

@@ -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();

View File

@@ -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:

View File

@@ -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:

View File

@@ -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;

View File

@@ -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:

View File

@@ -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: