mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 01:58:13 +08:00
Update QuestDb
This commit is contained in:
@@ -117,8 +117,8 @@ namespace SqlSugar
|
|||||||
new KeyValuePair<string, CSharpDataType>("bit varying",CSharpDataType.byteArray),
|
new KeyValuePair<string, CSharpDataType>("bit varying",CSharpDataType.byteArray),
|
||||||
new KeyValuePair<string, CSharpDataType>("varbit",CSharpDataType.@byte),
|
new KeyValuePair<string, CSharpDataType>("varbit",CSharpDataType.@byte),
|
||||||
new KeyValuePair<string, CSharpDataType>("time",CSharpDataType.TimeSpan),
|
new KeyValuePair<string, CSharpDataType>("time",CSharpDataType.TimeSpan),
|
||||||
new KeyValuePair<string, CSharpDataType>("public.geometry",CSharpDataType.@object),
|
//new KeyValuePair<string, CSharpDataType>("public.geometry",CSharpDataType.@object),
|
||||||
new KeyValuePair<string, CSharpDataType>("inet",CSharpDataType.@object)
|
new KeyValuePair<string, CSharpDataType>("geohash",CSharpDataType.@string)
|
||||||
};
|
};
|
||||||
public override List<string> StringThrow
|
public override List<string> StringThrow
|
||||||
{
|
{
|
||||||
|
@@ -129,6 +129,14 @@ namespace SqlSugar
|
|||||||
sqlParameter.DbType = System.Data.DbType.Double;
|
sqlParameter.DbType = System.Data.DbType.Double;
|
||||||
sqlParameter.Value = Convert.ToDouble(sqlParameter.Value);
|
sqlParameter.Value = Convert.ToDouble(sqlParameter.Value);
|
||||||
}
|
}
|
||||||
|
else if (sqlParameter.DbType == System.Data.DbType.Guid)
|
||||||
|
{
|
||||||
|
sqlParameter.DbType = System.Data.DbType.Double;
|
||||||
|
if (sqlParameter.Value != null)
|
||||||
|
{
|
||||||
|
sqlParameter.Value = (sqlParameter.Value).ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
++index;
|
++index;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
@@ -24,14 +24,14 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return "current_date";
|
return "now()";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public override string FullSqlDateNow
|
public override string FullSqlDateNow
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return "select current_date";
|
return "select now()";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -7,7 +7,7 @@ namespace SqlSugar
|
|||||||
public SqlSugarProvider Context { get; set; }
|
public SqlSugarProvider Context { get; set; }
|
||||||
public QuestDBExpressionContext()
|
public QuestDBExpressionContext()
|
||||||
{
|
{
|
||||||
base.DbMehtods = new PostgreSQLMethod();
|
base.DbMehtods = new QuestDBMethod();
|
||||||
}
|
}
|
||||||
public override string SqlTranslationLeft
|
public override string SqlTranslationLeft
|
||||||
{
|
{
|
||||||
@@ -133,40 +133,61 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public class QuestDBMethod : DefaultDbMethod, IDbMethods
|
public class QuestDBMethod : DefaultDbMethod, IDbMethods
|
||||||
{
|
{
|
||||||
public override string TrueValue()
|
//public override string DateIsSameByType(MethodCallExpressionModel model)
|
||||||
|
//{
|
||||||
|
// var parameter = model.Args[0];
|
||||||
|
// var parameter2 = model.Args[1];
|
||||||
|
// var parameter3 = model.Args[2];
|
||||||
|
|
||||||
|
// return string.Format(" (DATEDIFF('{2}',{0},{1})=0) ", parameter.MemberName, parameter2.MemberName, parameter3.MemberValue);
|
||||||
|
//}
|
||||||
|
public override string Contains(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
return "true";
|
var parameter = model.Args[0];
|
||||||
}
|
var parameter2 = model.Args[1];
|
||||||
public override string FalseValue()
|
return string.Format(" ({0}~{1} ) ", parameter.MemberName, parameter2.MemberName);
|
||||||
{
|
|
||||||
return "false";
|
|
||||||
}
|
}
|
||||||
public override string DateDiff(MethodCallExpressionModel model)
|
public override string DateDiff(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var parameter = (DateType)(Enum.Parse(typeof(DateType), model.Args[0].MemberValue.ObjToString()));
|
var parameter = model.Args[0];
|
||||||
var begin = model.Args[1].MemberName;
|
var parameter2 = model.Args[1];
|
||||||
var end = model.Args[2].MemberName;
|
var parameter3 = model.Args[2];
|
||||||
switch (parameter)
|
return string.Format(" DATEDIFF('{0}',{1},{2}) ", parameter.MemberValue.ObjToString().First(), parameter2.MemberName, parameter3.MemberName);
|
||||||
{
|
|
||||||
case DateType.Year:
|
|
||||||
return $" ( DATE_PART('Year', {end} ) - DATE_PART('Year', {begin}) )";
|
|
||||||
case DateType.Month:
|
|
||||||
return $" ( ( DATE_PART('Year', {end} ) - DATE_PART('Year', {begin}) ) * 12 + (DATE_PART('month', {end}) - DATE_PART('month', {begin})) )";
|
|
||||||
case DateType.Day:
|
|
||||||
return $" ( DATE_PART('day', {end} - {begin}) )";
|
|
||||||
case DateType.Hour:
|
|
||||||
return $" ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) )";
|
|
||||||
case DateType.Minute:
|
|
||||||
return $" ( ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} ) )";
|
|
||||||
case DateType.Second:
|
|
||||||
return $" ( ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} )";
|
|
||||||
case DateType.Millisecond:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
throw new Exception(parameter + " datediff no support");
|
|
||||||
}
|
}
|
||||||
|
public override string TrueValue()
|
||||||
|
{
|
||||||
|
return "1";
|
||||||
|
}
|
||||||
|
public override string FalseValue()
|
||||||
|
{
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
//public override string DateDiff(MethodCallExpressionModel model)
|
||||||
|
//{
|
||||||
|
// var parameter = (DateType)(Enum.Parse(typeof(DateType), model.Args[0].MemberValue.ObjToString()));
|
||||||
|
// var begin = model.Args[1].MemberName;
|
||||||
|
// var end = model.Args[2].MemberName;
|
||||||
|
// switch (parameter)
|
||||||
|
// {
|
||||||
|
// case DateType.Year:
|
||||||
|
// return $" ( DATE_PART('Year', {end} ) - DATE_PART('Year', {begin}) )";
|
||||||
|
// case DateType.Month:
|
||||||
|
// return $" ( ( DATE_PART('Year', {end} ) - DATE_PART('Year', {begin}) ) * 12 + (DATE_PART('month', {end}) - DATE_PART('month', {begin})) )";
|
||||||
|
// case DateType.Day:
|
||||||
|
// return $" ( DATE_PART('day', {end} - {begin}) )";
|
||||||
|
// case DateType.Hour:
|
||||||
|
// return $" ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) )";
|
||||||
|
// case DateType.Minute:
|
||||||
|
// return $" ( ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} ) )";
|
||||||
|
// case DateType.Second:
|
||||||
|
// return $" ( ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} )";
|
||||||
|
// case DateType.Millisecond:
|
||||||
|
// break;
|
||||||
|
// default:
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// throw new Exception(parameter + " datediff no support");
|
||||||
|
//}
|
||||||
public override string IIF(MethodCallExpressionModel model)
|
public override string IIF(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var parameter = model.Args[0];
|
var parameter = model.Args[0];
|
||||||
@@ -184,49 +205,10 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
var parameter = model.Args[0];
|
var parameter = model.Args[0];
|
||||||
var parameter2 = model.Args[1];
|
var parameter2 = model.Args[1];
|
||||||
var format = "dd";
|
var format = parameter2.MemberValue.ObjToString();
|
||||||
if (parameter2.MemberValue.ObjToString() == DateType.Year.ToString())
|
return string.Format(" {1}({0}) ) ", format, parameter.MemberName);
|
||||||
{
|
}
|
||||||
format = "yyyy";
|
|
||||||
}
|
|
||||||
if (parameter2.MemberValue.ObjToString() == DateType.Month.ToString())
|
|
||||||
{
|
|
||||||
format = "MM";
|
|
||||||
}
|
|
||||||
if (parameter2.MemberValue.ObjToString() == DateType.Day.ToString())
|
|
||||||
{
|
|
||||||
format = "dd";
|
|
||||||
}
|
|
||||||
if (parameter2.MemberValue.ObjToString() == DateType.Hour.ToString())
|
|
||||||
{
|
|
||||||
format = "hh";
|
|
||||||
}
|
|
||||||
if (parameter2.MemberValue.ObjToString() == DateType.Minute.ToString())
|
|
||||||
{
|
|
||||||
format = "mi";
|
|
||||||
}
|
|
||||||
if (parameter2.MemberValue.ObjToString() == DateType.Second.ToString())
|
|
||||||
{
|
|
||||||
format = "ss";
|
|
||||||
}
|
|
||||||
if (parameter2.MemberValue.ObjToString() == DateType.Millisecond.ToString())
|
|
||||||
{
|
|
||||||
format = "ms";
|
|
||||||
}
|
|
||||||
if (parameter2.MemberValue.ObjToString() == DateType.Weekday.ToString())
|
|
||||||
{
|
|
||||||
return $" extract(DOW FROM cast({parameter.MemberName} as TIMESTAMP)) ";
|
|
||||||
}
|
|
||||||
|
|
||||||
return string.Format(" cast( to_char({1},'{0}')as integer ) ", format, parameter.MemberName);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string Contains(MethodCallExpressionModel model)
|
|
||||||
{
|
|
||||||
var parameter = model.Args[0];
|
|
||||||
var parameter2 = model.Args[1];
|
|
||||||
return string.Format(" ({0} like concat('%',{1},'%')) ", parameter.MemberName, parameter2.MemberName );
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string StartsWith(MethodCallExpressionModel model)
|
public override string StartsWith(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
@@ -289,11 +271,16 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return string.Format(" ( to_char({0},'{2}')=to_char({1},'{2}') ) ", parameter.MemberName, parameter2.MemberName, format);
|
return string.Format(" ( to_char({0},'{2}')=to_char({1},'{2}') ) ", parameter.MemberName, parameter2.MemberName, format);
|
||||||
}
|
}
|
||||||
|
public override string ToDateShort(MethodCallExpressionModel model)
|
||||||
|
{
|
||||||
|
var parameter = model.Args[0];
|
||||||
|
return string.Format("to_date (to_str({0}, 'yyyy-MM-dd'),'yyyy-MM-dd')", parameter.MemberName);
|
||||||
|
}
|
||||||
|
|
||||||
public override string ToDate(MethodCallExpressionModel model)
|
public override string ToDate(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var parameter = model.Args[0];
|
var parameter = model.Args[0];
|
||||||
return string.Format(" CAST({0} AS timestamp)", parameter.MemberName);
|
return string.Format("CAST({0} AS DATE)", parameter.MemberName);
|
||||||
}
|
}
|
||||||
public override string DateAddByType(MethodCallExpressionModel model)
|
public override string DateAddByType(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
@@ -369,11 +356,11 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public override string GetDate()
|
public override string GetDate()
|
||||||
{
|
{
|
||||||
return "NOW()";
|
return "now()";
|
||||||
}
|
}
|
||||||
public override string GetRandom()
|
public override string GetRandom()
|
||||||
{
|
{
|
||||||
return "RANDOM()";
|
return "now()";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string EqualTrue(string fieldName)
|
public override string EqualTrue(string fieldName)
|
||||||
|
@@ -53,6 +53,10 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
else if (Skip != null && Take != null)
|
else if (Skip != null && Take != null)
|
||||||
{
|
{
|
||||||
|
if (Skip == 0 && Take == 1&&this.OrderByValue== "ORDER BY NOW() ")
|
||||||
|
{
|
||||||
|
this.OrderByValue = null;
|
||||||
|
}
|
||||||
if (this.OrderByValue == "ORDER BY ") this.OrderByValue += GetSelectValue.Split(',')[0];
|
if (this.OrderByValue == "ORDER BY ") this.OrderByValue += GetSelectValue.Split(',')[0];
|
||||||
result = string.Format(PageTempalte, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString + HavingInfos, GetOrderByString, Skip.ObjToInt() > 0 ? Skip.ObjToInt() : 0, Take);
|
result = string.Format(PageTempalte, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString + HavingInfos, GetOrderByString, Skip.ObjToInt() > 0 ? Skip.ObjToInt() : 0, Take);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user