Changeset - 83c7ee1b5f5c
[Not reviewed]
default
0 1 0
Marcin Kuzminski - 15 years ago 2010-05-21 03:01:31
marcin@python-works.com
improved timerproxy with sqllogging, and new way of sqlformat queries
1 file changed with 20 insertions and 10 deletions:
0 comments (0 inline, 0 general)
pylons_app/lib/timerproxy.py
Show inline comments
 
@@ -7,24 +7,34 @@ BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA
 
def color_sql(sql):
 
    COLOR_SEQ = "\033[1;%dm"
 
    COLOR_SQL = YELLOW
 
    normal = '\x1b[0m'
 
    return COLOR_SEQ % COLOR_SQL + sql + normal 
 

	
 
def one_space_trim(s):
 
    if s.find("  ") == -1:
 
        return s
 
    else:
 
        s = s.replace('  ', ' ')
 
        return one_space_trim(s)
 
    
 
def format_sql(sql):
 
    sql = color_sql(sql)
 
    sql = sql.replace('SELECT', '\n    SELECT \n\t')\
 
        .replace('FROM', '\n    FROM')\
 
        .replace('ORDER BY', '\n    ORDER BY')\
 
        .replace('LIMIT', '\n    LIMIT')\
 
        .replace('WHERE', '\n    WHERE')\
 
        .replace('AND', '\n    AND')\
 
        .replace('LEFT', '\n    LEFT')\
 
        .replace('INNER', '\n    INNER')\
 
        .replace('INSERT', '\n    INSERT')\
 
        .replace('DELETE', '\n    DELETE')
 
    sql = sql.replace('\n', '')
 
    sql = one_space_trim(sql)
 
    sql = sql\
 
        .replace('SELECT', '\n\tSELECT \n\t')\
 
        .replace('FROM', '\n\tFROM')\
 
        .replace('ORDER BY', '\n\tORDER BY')\
 
        .replace('LIMIT', '\n\tLIMIT')\
 
        .replace('WHERE', '\n\tWHERE')\
 
        .replace('AND', '\n\tAND')\
 
        .replace('LEFT', '\n\tLEFT')\
 
        .replace('INNER', '\n\tINNER')\
 
        .replace('INSERT', '\n\tINSERT')\
 
        .replace('DELETE', '\n\tDELETE')
 
    return sql
 

	
 

	
 
class TimerProxy(ConnectionProxy):
 
    def cursor_execute(self, execute, cursor, statement, parameters, context, executemany):
 
        now = time.time()
0 comments (0 inline, 0 general)