Synchronization code

This commit is contained in:
sunkaixuan 2023-08-13 17:49:20 +08:00
parent 5f45b608bc
commit e49d39f968
10 changed files with 54 additions and 1 deletions

View File

@ -1064,5 +1064,10 @@ namespace SqlSugar
var parameterNameA = mode.Args[0].MemberName;
return $" CEILING({parameterNameA}) ";
}
public virtual string NewUid(MethodCallExpressionModel mode)
{
return $" uuid_generate_v4() ";
}
}
}

View File

@ -120,6 +120,7 @@ namespace SqlSugar
string Right(MethodCallExpressionModel mode);
string PadLeft(MethodCallExpressionModel mode);
string Floor(MethodCallExpressionModel mode);
string Ceil(MethodCallExpressionModel mode);
string Ceil(MethodCallExpressionModel mode);
string NewUid(MethodCallExpressionModel mode);
}
}

View File

@ -303,6 +303,7 @@ namespace SqlSugar
public static string ToVarchar(object value) { return value.ObjToString(); }
public static decimal ToDecimal(object value) { return value.ObjToDecimal(); }
public static Guid ToGuid(object value) { return Guid.Parse(value.ObjToString()); }
public static Guid NewUid() { throw new NotSupportedException("Can only be used in expressions"); }
public static double ToDouble(object value) { return value.ObjToMoney(); }
public static bool ToBool(object value) { return value.ObjToBool(); }
public static string Substring(object value, int index, int length) { return value.ObjToString().Substring(index, length); }

View File

@ -259,5 +259,10 @@ namespace SqlSugar
var parameterNameA = mode.Args[0].MemberName;
return $" CEIL({parameterNameA}) ";
}
public override string NewUid(MethodCallExpressionModel mode)
{
return " SYS_GUID() ";
}
}
}

View File

@ -37,6 +37,11 @@ namespace SqlSugar
{
base.AppendFilter();
string oldOrderValue = this.OrderByValue;
var isNullOrderValue = Skip == 0 && Take == 1 && oldOrderValue == "ORDER BY NOW() ";
if (isNullOrderValue)
{
this.OrderByValue = null;
}
string result = null;
sql = new StringBuilder();
sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString + HavingInfos, (Skip != null || Take != null) ? null : GetOrderByString);
@ -61,6 +66,19 @@ namespace SqlSugar
result = sql.ToString();
}
this.OrderByValue = oldOrderValue;
result = GetSqlQuerySql(result);
if (result.IndexOf("-- No table") > 0)
{
return "-- No table";
}
if (TranLock != null)
{
result = result + TranLock;
}
if (result.Contains("uuid_generate_v4()"))
{
result = " CREATE EXTENSION IF NOT EXISTS pgcrypto;CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\"; " + result;
}
return result;
}

View File

@ -245,6 +245,10 @@ namespace SqlSugar
return $" JSON_CONTAINS({model.Args[0].MemberName},'{{\"{model.Args[1].MemberValue}\":\"{model.Args[2].MemberValue.ObjToStringNoTrim().ToSqlFilter()}\"}}')";
}
}
public override string NewUid(MethodCallExpressionModel mode)
{
return " CONCAT(\r\n LPAD(UPPER(HEX(FLOOR(UUID_SHORT() / 0x100000000))), 8, '0'),\r\n '-',\r\n LPAD(UPPER(HEX(FLOOR(UUID_SHORT() / 0x10000) & 0xFFFF)), 4, '0'),\r\n '-',\r\n LPAD(UPPER(HEX(FLOOR(UUID_SHORT() / 0x100) & 0xFFFF)), 4, '0'),\r\n '-',\r\n LPAD(UPPER(HEX(UUID_SHORT() & 0xFF)), 4, '0'),\r\n '-000000000000'\r\n ) ";
}
//public override string TrimEnd(MethodCallExpressionModel mode)
//{
// var parameterNameA = mode.Args[0].MemberName;

View File

@ -385,5 +385,10 @@ namespace SqlSugar
var parameterNameA = mode.Args[0].MemberName;
return $" CEIL({parameterNameA}) ";
}
public override string NewUid(MethodCallExpressionModel mode)
{
return " SYS_GUID() ";
}
}
}

View File

@ -86,6 +86,10 @@ namespace SqlSugar
{
result = result + TranLock;
}
if (result.Contains("uuid_generate_v4()"))
{
result=" CREATE EXTENSION IF NOT EXISTS pgcrypto;CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\"; "+ result;
}
return result;
}

View File

@ -130,6 +130,11 @@ namespace SqlSugar
var parameterNameC = mode.Args[2].MemberName;
return $" CONCAT(REPLICATE({parameterNameC}, {parameterNameB} - LEN({parameterNameA})), {parameterNameA}) ";
}
public override string NewUid(MethodCallExpressionModel mode)
{
return " NEWID() ";
}
}

View File

@ -319,5 +319,10 @@ namespace SqlSugar
var parameterNameB = mode.Args[1].MemberName;
return $" SUBSTR({parameterNameA}, -2, {parameterNameB}) ";
}
public override string NewUid(MethodCallExpressionModel mode)
{
return " substr(upper(hex(randomblob(4))), 1, 8) || '-' ||\r\n substr(upper(hex(randomblob(2))), 1, 4) || '-' ||\r\n '4' || substr(upper(hex(randomblob(2))), 2, 3) || '-' ||\r\n substr('89ab', 1 + (abs(random()) % 4), 1) || substr(upper(hex(randomblob(2))), 2, 3) || '-' ||\r\n substr(upper(hex(randomblob(6))), 1, 12) ";
}
}
}