Changeset: 2be3e700fc41 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2be3e700fc41
Modified Files:
        testing/mktest.py
Branch: mtest
Log Message:

Fix recognition of functions, procedures, triggers and alike.


diffs (29 lines):

diff --git a/testing/mktest.py b/testing/mktest.py
--- a/testing/mktest.py
+++ b/testing/mktest.py
@@ -55,7 +55,7 @@ query = []
 
 def is_psm_stmt(stmt:str):
     if opts.language == 'sql':
-        rgx = 
re.compile(r'(create|create\s+or\s+replace)\s+(function|procedure|trigger)', 
re.I)
+        rgx = 
re.compile(r'(create|create\s+or\s+replace)\s+(function|procedure|aggregate|filter|window|loader|trigger)\b',
 re.I)
         return rgx.match(stmt) is not None
     else:
         return re.match(r'\s*function\s', stmt) is not None
@@ -68,8 +68,14 @@ def is_psm_stmt_end(stmt:str):
 
 def is_complete_psm_stmt(stmt:str):
     if opts.language == 'sql':
-        rgx = 
re.compile(r'(create|create\s+or\s+replace)\s+(function|procedure|trigger)[\S\s]*(end;|external\s+name\s+.*;)$',
 re.I)
-        return rgx.match(stmt) is not None
+        if 
re.match(r'create(\s+or\d+replace)?\s+(function|procedure|aggregate|filter|window|loader|trigger)\b[^;]*\bbegin\b.*?\bend\b\s*;',
 stmt, re.DOTALL|re.IGNORECASE) is not None:
+            return True
+        if 
re.match(r'create(\s+or\d+replace)?\s+(function|procedure|aggregate|filter|window|loader|trigger)\b[^;]*\bbegin\b',
 stmt, re.IGNORECASE) is not None:
+            # we need an "end"
+            return False
+        if 
re.match(r'create(\s+or\d+replace)?\s+(function|procedure|aggregate|filter|window|loader|trigger)\b[^;]*;',
 stmt, re.IGNORECASE) is not None:
+            return True
+        return False
     else:
         return re.match(r'\s*function\s.*\bend(\s+\w+)?\s*;', stmt, re.DOTALL) 
is not None
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to