From ab1aba0fa9292da92434304261d0e346b5ca32da Mon Sep 17 00:00:00 2001 From: Nick Christie Date: Fri, 6 Sep 2024 13:32:02 +0100 Subject: [PATCH 1/2] Fixing build errors NU5039: "The readme file 'readme.md' does not exist in the package" and NU5040: "The readme file 'readme.md' is empty." --- Laan.NHibernate.Appender/Laan.NHibernate.Appender.csproj | 4 ++++ Laan.NHibernate.Appender/readme.md | 1 + Laan.Sql.Formatter/Laan.Sql.Formatter.csproj | 4 ++++ Laan.Sql.Formatter/readme.md | 1 + Laan.Sql.Parser/Laan.Sql.Parser.csproj | 6 +++++- Laan.Sql.Parser/readme.md | 1 + 6 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Laan.NHibernate.Appender/Laan.NHibernate.Appender.csproj b/Laan.NHibernate.Appender/Laan.NHibernate.Appender.csproj index 3ad82d9..55822d0 100644 --- a/Laan.NHibernate.Appender/Laan.NHibernate.Appender.csproj +++ b/Laan.NHibernate.Appender/Laan.NHibernate.Appender.csproj @@ -14,6 +14,10 @@ + + + + \ No newline at end of file diff --git a/Laan.NHibernate.Appender/readme.md b/Laan.NHibernate.Appender/readme.md index e69de29..aa61873 100644 --- a/Laan.NHibernate.Appender/readme.md +++ b/Laan.NHibernate.Appender/readme.md @@ -0,0 +1 @@ +Please see [https://github.com/benlaan/sqlformat/wiki](https://github.com/benlaan/sqlformat/wiki) diff --git a/Laan.Sql.Formatter/Laan.Sql.Formatter.csproj b/Laan.Sql.Formatter/Laan.Sql.Formatter.csproj index 3f19d6e..502b9cc 100644 --- a/Laan.Sql.Formatter/Laan.Sql.Formatter.csproj +++ b/Laan.Sql.Formatter/Laan.Sql.Formatter.csproj @@ -9,6 +9,10 @@ + + + + diff --git a/Laan.Sql.Formatter/readme.md b/Laan.Sql.Formatter/readme.md index e69de29..aa61873 100644 --- a/Laan.Sql.Formatter/readme.md +++ b/Laan.Sql.Formatter/readme.md @@ -0,0 +1 @@ +Please see [https://github.com/benlaan/sqlformat/wiki](https://github.com/benlaan/sqlformat/wiki) diff --git a/Laan.Sql.Parser/Laan.Sql.Parser.csproj b/Laan.Sql.Parser/Laan.Sql.Parser.csproj index 5f1ed8a..9ddfcff 100644 --- a/Laan.Sql.Parser/Laan.Sql.Parser.csproj +++ b/Laan.Sql.Parser/Laan.Sql.Parser.csproj @@ -12,7 +12,11 @@ - + + + + + diff --git a/Laan.Sql.Parser/readme.md b/Laan.Sql.Parser/readme.md index e69de29..aa61873 100644 --- a/Laan.Sql.Parser/readme.md +++ b/Laan.Sql.Parser/readme.md @@ -0,0 +1 @@ +Please see [https://github.com/benlaan/sqlformat/wiki](https://github.com/benlaan/sqlformat/wiki) From 6b06260c8aa92eb94484b857596d2f961fcdd078 Mon Sep 17 00:00:00 2001 From: Nick Christie Date: Fri, 6 Sep 2024 13:32:55 +0100 Subject: [PATCH 2/2] Added formatter for variable assignment SET statement. --- .../Factories/StatementFormatterFactory.cs | 1 + .../SetVariableStatementFormatter.cs | 19 ++++++++++++++ .../VariableAssignmentFormatter.cs | 26 +++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 Laan.Sql.Formatter/StatementFormatters/SetVariableStatementFormatter.cs create mode 100644 Laan.Sql.Formatter/StatementFormatters/VariableAssignmentFormatter.cs diff --git a/Laan.Sql.Formatter/Factories/StatementFormatterFactory.cs b/Laan.Sql.Formatter/Factories/StatementFormatterFactory.cs index b663beb..cc393a4 100644 --- a/Laan.Sql.Formatter/Factories/StatementFormatterFactory.cs +++ b/Laan.Sql.Formatter/Factories/StatementFormatterFactory.cs @@ -22,6 +22,7 @@ static StatementFormatterFactory() { typeof( DeleteStatement ), typeof( DeleteStatementFormatter ) }, { typeof( InsertStatement ), typeof( InsertStatementFormatter ) }, { typeof( DeclareStatement ), typeof( DeclareStatementFormatter ) }, + { typeof( SetVariableStatement ), typeof( SetVariableStatementFormatter ) }, { typeof( GoTerminator ), typeof( GoTerminatorFormatter ) }, { typeof( IfStatement ), typeof( IfStatementFormatter ) }, { typeof( BeginTransactionStatement ), typeof( BeginTransactionStatementFormatter ) }, diff --git a/Laan.Sql.Formatter/StatementFormatters/SetVariableStatementFormatter.cs b/Laan.Sql.Formatter/StatementFormatters/SetVariableStatementFormatter.cs new file mode 100644 index 0000000..57c5d3c --- /dev/null +++ b/Laan.Sql.Formatter/StatementFormatters/SetVariableStatementFormatter.cs @@ -0,0 +1,19 @@ +using Laan.Sql.Parser.Entities; +using System.Text; + +namespace Laan.Sql.Formatter +{ + public class SetVariableStatementFormatter : StatementFormatter, IStatementFormatter + { + public SetVariableStatementFormatter(IIndentable indentable, StringBuilder sql, SetVariableStatement statement) + : base(indentable, sql, statement) + { + } + + public void Execute() + { + var formatter = new VariableAssignmentFormatter(_statement.Variable, _statement.Assignment, this, _sql); + formatter.Execute(); + } + } +} diff --git a/Laan.Sql.Formatter/StatementFormatters/VariableAssignmentFormatter.cs b/Laan.Sql.Formatter/StatementFormatters/VariableAssignmentFormatter.cs new file mode 100644 index 0000000..5e65418 --- /dev/null +++ b/Laan.Sql.Formatter/StatementFormatters/VariableAssignmentFormatter.cs @@ -0,0 +1,26 @@ +using Laan.Sql.Parser; +using Laan.Sql.Parser.Expressions; +using System.Text; + +namespace Laan.Sql.Formatter +{ + public class VariableAssignmentFormatter : BaseFormatter + { + private string _identifier; + private Expression _assignment; + + public VariableAssignmentFormatter(string identifier, Expression assignment, IIndentable indentable, StringBuilder sql) : base(indentable, sql) + { + _identifier = identifier; + _assignment = assignment; + } + + public void Execute() + { + var assignmentValue = _assignment.FormattedValue(0, this); + var variableAssignment = $"{Constants.Set} {_identifier} = {assignmentValue};"; + + IndentAppend(variableAssignment); + } + } +}