import os
import sys
-from sqlparse.compat import text_type
from sqlconvert.print_tokens import print_tokens
from sqlconvert.process_mysql import is_directive_statement, process_statement
from sqlconvert.process_tokens import is_newline_statement, StatementGrouper
from m_lib.defenc import default_encoding
from m_lib.pbar.tty_pbar import ttyProgressBar
+try:
+ text_type = unicode
+except NameError:
+ text_type = str
+
def get_fsize(fp):
try:
if size is None:
use_pbar = False
- print("Converting: ", end='', file=sys.stderr)
- sys.stderr.flush()
+ if use_pbar:
+ print("Converting", end='', file=sys.stderr)
+ if infile.name != '<stdin>':
+ print(' ' + infile.name, end='', file=sys.stderr)
+ print(": ", end='', file=sys.stderr)
+ sys.stderr.flush()
if use_pbar:
pbar = ttyProgressBar(0, size-1)
got_directive = is_directive_statement(statement)
if got_directive:
continue
- process_statement(statement, quoting_style)
- print_tokens(statement, outfile=outfile,
- encoding=output_encoding)
+ for _statement in process_statement(statement, quoting_style):
+ print_tokens(_statement, outfile=outfile,
+ encoding=output_encoding)
tokens = grouper.close()
if tokens:
for token in tokens:
if use_pbar:
pbar.erase()
- print("done.")
+ print("done.")
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Convert MySQL to SQL')
parser.add_argument('output_file', nargs='?', help='output file name')
args = parser.parse_args()
- if int(args.mysql) + int(args.postgres) + int(args.sqlite) > 1:
+ if int(args.mysql) + int(args.pg) + int(args.sqlite) > 1:
print("Error: options -m/-p/-s are mutually incompatible, "
"use only one of them",
file=sys.stderr)
if outfile == '-':
outfile = sys.stdout
+ args.no_pbar = True
else:
try:
outfile = open(outfile, 'wt', encoding=output_encoding)
if args.mysql:
quoting_style = 'mysql'
- elif args.postgres:
+ elif args.pg:
quoting_style = 'postgres'
else:
quoting_style = 'sqlite'