- 修复 ClickHouse 联表查询 GLOBAL left join、Ado.Query * 问题;#1383

This commit is contained in:
2881099
2022-12-26 22:28:06 +08:00
parent 0e98e0d309
commit b224118133
4 changed files with 57 additions and 4 deletions

View File

@ -151,6 +151,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -194,6 +195,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -211,6 +213,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -262,6 +265,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -279,6 +283,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -296,6 +301,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -353,6 +359,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -370,6 +377,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -387,6 +395,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -404,6 +413,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -467,6 +477,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -484,6 +495,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -501,6 +513,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -518,6 +531,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -535,6 +549,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);

View File

@ -67,6 +67,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -111,6 +112,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -128,6 +130,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -180,6 +183,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -197,6 +201,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -214,6 +219,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -272,6 +278,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -289,6 +296,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -306,6 +314,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -323,6 +332,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -387,6 +397,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -404,6 +415,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -421,6 +433,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -438,6 +451,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
@ -455,6 +469,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < fetch.Object.FieldCount; a++)
{
var name = fetch.Object.GetName(a);
if (DataType == DataType.ClickHouse && name.Contains(".")) name = name.Substring(name.IndexOf('.') + 1);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);

View File

@ -250,6 +250,29 @@ namespace FreeSql.Internal.ObjectPool
catch { }
}
public void AutoFree()
{
if (running == false) return;
if (UnavailableException != null) return;
var list = new List<Object<T>>();
while (_freeObjects.TryPop(out var obj))
list.Add(obj);
foreach (var obj in list)
{
if (obj != null && obj.Value == null ||
obj != null && Policy.IdleTimeout > TimeSpan.Zero && DateTime.Now.Subtract(obj.LastReturnTime) > Policy.IdleTimeout)
{
if (obj.Value != null)
{
Return(obj, true);
continue;
}
}
Return(obj);
}
}
/// <summary>
/// 获取可用资源,或创建资源
/// </summary>