forked from ClickHouse/clickhouse-odbc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.py
executable file
·50 lines (42 loc) · 2.09 KB
/
test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# sudo apt install -y python-pyodbc
# sudo apt install -y python3-pyodbc
# sudo pkg install -y py36-pyodbc
# pip install pyodbc
import pyodbc
import sys
dsn = 'clickhouse_localhost'
is_wide = False
if len(sys.argv) >= 2:
dsn = sys.argv[1]
if len(sys.argv) >= 3:
is_wide = sys.argv[2] == 'w'
print("Using DSN=" + dsn)
connection = pyodbc.connect('DSN=' + dsn + ';')
try:
connection.setencoding(str, encoding='utf-8')
connection.setencoding(unicode, encoding='utf-8')
#connection.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
#connection.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
#connection.setdecoding(pyodbc.SQL_WMETADATA, encoding='utf-8')
except BaseException:
connection.setencoding(encoding='utf-8')
#connection.setdecoding(pyodbc.SQL_CHAR, 'utf-8')
#connection.setdecoding(pyodbc.SQL_WCHAR, 'utf-8')
#connection.setdecoding(pyodbc.SQL_WMETADATA, 'utf-8')
def query(q):
sys.stdout.write(q.encode('utf-8'))
print(" :")
cursor = connection.cursor()
cursor.execute(q)
rows = cursor.fetchall()
for row in rows:
print(row)
query("select * from system.build_options")
query("SELECT *, (CASE WHEN (number == 1) THEN 'o' WHEN (number == 2) THEN 'two long string' WHEN (number == 3) THEN 'r' WHEN (number == 4) THEN NULL ELSE '-' END) FROM system.numbers LIMIT 6")
#TODO query("SELECT 1, 'string', NULL")
query(u"SELECT 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'")
query("SELECT -127,-128,-129,126,127,128,255,256,257,-32767,-32768,-32769,32766,32767,32768,65535,65536,65537,-2147483647,-2147483648,-2147483649,2147483646,2147483647,2147483648,4294967295,4294967296,4294967297,-9223372036854775807,-9223372036854775808,-9223372036854775809,9223372036854775806,9223372036854775807,9223372036854775808,18446744073709551615,18446744073709551616,18446744073709551617")
query("SELECT 2147483647, 2147483648, 2147483647+1, 2147483647+10, 4294967295")
query("SELECT * FROM system.contributors ORDER BY name LIMIT 10")