1
2
3
4
5
6
7
8
9
10
11 from rdkit import six
12 from rdkit import RDConfig
13
14 if hasattr(RDConfig,"usePgSQL") and RDConfig.usePgSQL:
15 from pyPgSQL import PgSQL
16
17
18 PgSQL.fetchReturnsList=1
19
20 from pyPgSQL.PgSQL import *
21 sqlTextTypes = [PG_CHAR,PG_BPCHAR,PG_TEXT,PG_VARCHAR,PG_NAME]
22 sqlIntTypes = [PG_INT8,PG_INT2,PG_INT4]
23 sqlFloatTypes = [PG_FLOAT4,PG_FLOAT8]
24 sqlBinTypes = [PG_OID,PG_BLOB,PG_BYTEA]
25 getTablesSql = """select tablename from pg_tables where schemaname='public'"""
26 getTablesAndViewsSql = """SELECT c.relname as "Name"
27 FROM pg_catalog.pg_class c
28 LEFT JOIN pg_catalog.pg_user u ON u.usesysid = c.relowner
29 LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
30 WHERE c.relkind IN ('r','v','S','')
31 AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
32 AND pg_catalog.pg_table_is_visible(c.oid)
33
34 """
35 getDbSql = """ select datname from pg_database where datallowconn """
36 fileWildcard=None
37 placeHolder='%s'
38 binaryTypeName="bytea"
39 binaryHolder = PgBytea
40 RDTestDatabase="::RDTests"
41 elif hasattr(RDConfig,"useSqlLite") and RDConfig.useSqlLite:
42 try:
43 import sqlite3 as sqlite
44
45 except ImportError:
46 from pysqlite2 import dbapi2 as sqlite
47
48 sqlTextTypes = []
49 sqlIntTypes = []
50 sqlFloatTypes = []
51 sqlBinTypes = []
52 getTablesSql = """select name from SQLite_Master where type='table'"""
53 getTablesAndViewsSql = """select name from SQLite_Master where type in ('table','view')"""
54 getDbSql = None
55 dbFileWildcard='*.sqlt'
56 placeHolder='?'
57 binaryTypeName="blob"
58 binaryHolder = memoryview if six.PY3 else buffer
59
60 connect = lambda x,*args:sqlite.connect(x)
61 else:
62 raise ImportError("Neither sqlite nor PgSQL support found.")
63