summaryrefslogtreecommitdiff
path: root/apps/codestyle/codestyle-sql.py
diff options
context:
space:
mode:
authorGrimdhex <176165533+Grimdhex@users.noreply.github.com>2025-01-21 10:44:39 +0100
committerGitHub <noreply@github.com>2025-01-21 10:44:39 +0100
commit7725610ff3e683d35423b49503c51a3a31b72721 (patch)
tree3102f8bc0183b3837a2e5251e7300579d063e0a5 /apps/codestyle/codestyle-sql.py
parent847d2156fc58502f13a80c88cab85e12c1191fdb (diff)
chore(Apps/Codestyle): add new checks for SQL files (#21026)
Diffstat (limited to 'apps/codestyle/codestyle-sql.py')
-rw-r--r--apps/codestyle/codestyle-sql.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/apps/codestyle/codestyle-sql.py b/apps/codestyle/codestyle-sql.py
index d93646d091..f15dceed6c 100644
--- a/apps/codestyle/codestyle-sql.py
+++ b/apps/codestyle/codestyle-sql.py
@@ -15,6 +15,7 @@ results = {
"Multiple blank lines check": "Passed",
"Trailing whitespace check": "Passed",
"SQL codestyle check": "Passed",
+ "INSERT safety usage check": "Passed",
"Missing semicolon check": "Passed"
}
@@ -43,6 +44,7 @@ def parsing_file(files: list) -> None:
multiple_blank_lines_check(file, file_path)
trailing_whitespace_check(file, file_path)
sql_check(file, file_path)
+ insert_safety_check(file, file_path)
semicolon_check(file, file_path)
except UnicodeDecodeError:
print(f"\nCould not decode file {file_path}")
@@ -108,6 +110,10 @@ def sql_check(file: io, file_path: str) -> None:
print(
f"DON'T EDIT broadcast_text TABLE UNLESS YOU KNOW WHAT YOU ARE DOING!\nThis error can safely be ignored if the changes are approved to be sniffed: {file_path} at line {line_number}")
check_failed = True
+ if "EntryOrGuid" in line:
+ print(
+ f"Please use entryorguid syntax instead of EntryOrgGuid in {file_path} at line {line_number}\nWe recommend to use keira to have the right syntax in auto-query generation")
+ check_failed = True
if [match for match in [';;'] if match in line]:
print(
f"Double semicolon (;;) found in {file_path} at line {line_number}")
@@ -128,6 +134,24 @@ def sql_check(file: io, file_path: str) -> None:
error_handler = True
results["SQL codestyle check"] = "Failed"
+def insert_safety_check(file: io, file_path: str) -> None:
+ global error_handler, results
+ file.seek(0) # Reset file pointer to the beginning
+ check_failed = False
+ previous_line = ""
+
+ # Parse all the file
+ for line_number, line in enumerate(file, start = 1):
+ if "INSERT" in line and "DELETE" not in previous_line:
+ print(f"No DELETE keyword found after the INSERT in {file_path} at line {line_number}\nIf this error is intended, please advert a maintainer")
+ check_failed = True
+ previous_line = line
+
+ # Handle the script error and update the result output
+ if check_failed:
+ error_handler = True
+ results["INSERT safety usage check"] = "Failed"
+
def semicolon_check(file: io, file_path: str) -> None:
global error_handler, results
file.seek(0) # Reset file pointer to the beginning