(sql)
| 190 | return results,desc |
| 191 | |
| 192 | def show_qry(sql): |
| 193 | if sql.strip().startswith('--'): |
| 194 | return |
| 195 | filename=fd='' |
| 196 | nr=reclen=0 |
| 197 | fd, filename = mkstemp() |
| 198 | sql = sql.strip().strip(';') |
| 199 | #emulate pg/mysql limit |
| 200 | limit = sql.split('limit') |
| 201 | if len(limit) > 1: |
| 202 | if sql.lower().find('where') != -1: |
| 203 | sql=limit[0] + ' and rownum <= ' + limit[1] |
| 204 | else: |
| 205 | sql=limit[0] + ' where rownum <= ' + limit[1] |
| 206 | rs,desc = select_qry(sql) |
| 207 | if not rs: |
| 208 | return |
| 209 | title=[] |
| 210 | for row in desc: |
| 211 | title.append(row[0].lower()) |
| 212 | righe = [ title ] + rs |
| 213 | leng = table(righe) |
| 214 | for j in leng.values(): |
| 215 | reclen+=j |
| 216 | for row in righe:#print rows |
| 217 | for rc in range(len(row)): |
| 218 | if rc: |
| 219 | fmt = "| %%-%ss" % (leng[rc]) |
| 220 | else: |
| 221 | fmt = "%%-%ss" % (leng[rc]) |
| 222 | if row[rc] is None: |
| 223 | val='NULL' |
| 224 | else: |
| 225 | val=row[rc] |
| 226 | os.write(fd,(fmt%val)) |
| 227 | os.write(fd,'\n') |
| 228 | if not nr: #print titles |
| 229 | for rc in range(len(row)): |
| 230 | if rc: |
| 231 | os.write(fd,'+ '+('-'*(leng[rc]))) |
| 232 | else: |
| 233 | os.write(fd, ('-'*(leng[rc]))) |
| 234 | os.write(fd,'\n') |
| 235 | nr+=1 |
| 236 | if nr: nr-=1 |
| 237 | os.write(fd, '(%s rows)\n' % nr ) |
| 238 | os.close(fd) |
| 239 | pager(filename,reclen,len(rs)) |
| 240 | |
| 241 | def pager(filename,reclen,totrec): |
| 242 | if totrec > int(LINES) or reclen > int(COLUMNS): |
no test coverage detected