mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 20:38:16 +08:00
- 修复 ClickHouse 联表查询 GLOBAL left join、Ado.Query * 问题;#1383
This commit is contained in:
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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>
|
||||
|
Reference in New Issue
Block a user