Changeset: 65d73769201a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/65d73769201a
Modified Files:
sql/test/proto_loader/odbc/Tests/All
sql/test/proto_loader/odbc/Tests/monetodbc.test
testing/Mtest.py.in
Branch: Mar2025
Log Message:
Use our own ODBC driver through the driver manager for testing.
This is triggered by having a --loadmodule odbc_loader in the
SingleServer file, and by having the HAVE_ODBC condition in the All
file.
diffs (60 lines):
diff --git a/sql/test/proto_loader/odbc/Tests/All
b/sql/test/proto_loader/odbc/Tests/All
--- a/sql/test/proto_loader/odbc/Tests/All
+++ b/sql/test/proto_loader/odbc/Tests/All
@@ -1,4 +1,4 @@
incomplete_uri
-NOT_WIN32?monetodbc
+HAVE_ODBC?monetodbc
!NOT_WIN32?monetodbc-Windows
HAVE_SQLITE3ODBC&HAVE_DATA_PATH?sqlite3odbc
diff --git a/sql/test/proto_loader/odbc/Tests/monetodbc.test
b/sql/test/proto_loader/odbc/Tests/monetodbc.test
--- a/sql/test/proto_loader/odbc/Tests/monetodbc.test
+++ b/sql/test/proto_loader/odbc/Tests/monetodbc.test
@@ -1,20 +1,26 @@
-- test with 'odbc:DRIVER=/usr/lib64/libMonetODBC.so;' protocol specification
statement error 42000!SELECT: proto_loader function failed 'Invalid ODBC
connection string. Should start with 'DSN=' or 'DRIVER=' or 'FILEDSN='.'
-select * from proto_loader('odbc:Driver=/usr/lib64/libMonetODBC.so')
+select * from proto_loader('odbc:Dsn=MonetDB-Test')
statement error 42000!CATALOG: no such table returning function 'proto_loader'
-select * from proto_loader('odbc:DRIVER=/usr/lib64/libMonetODBC.so',
'monetdb', 'monetdb', 'SELECT * FROM INFORMATION_SCHEMA.TABLES')
+select * from proto_loader('odbc:DSN=MonetDB-Test', 'monetdb', 'monetdb',
'SELECT * FROM INFORMATION_SCHEMA.TABLES')
statement error 42000!SELECT: proto_loader function failed 'odbc_loader Could
not connect. SQLDriverConnect failed. SQLstate IM002, Errnr 0, Message
[unixODBC][Driver Manager]Data source name not found and no default driver
specified'
-select * from proto_loader('odbc:DSN=MonetDB;QUERY=SELECT * FROM
INFORMATION_SCHEMA.TABLES')
+select * from proto_loader('odbc:DSN=MonetDB-Test;QUERY=SELECT * FROM
INFORMATION_SCHEMA.TABLES')
statement error 42000!SELECT: proto_loader function failed 'odbc_loader Could
not connect. SQLDriverConnect failed. SQLstate IM002, Errnr 0, Message
[unixODBC][Driver Manager]Data source name not found and no default driver
specified'
-select * from proto_loader('odbc:FILEDSN=MonetDB;QUERY=SELECT * FROM
INFORMATION_SCHEMA.TABLES')
+select * from proto_loader('odbc:FILEDSN=MonetDB-Test;QUERY=SELECT * FROM
INFORMATION_SCHEMA.TABLES')
statement error 42000!SELECT: proto_loader function failed 'odbc_loader Could
not connect. SQLDriverConnect failed. SQLstate 01000, Errnr 0, Message
[unixODBC][Driver Manager]Can't open lib 'libMonetODBC' : file not found'
select * from proto_loader('odbc:DRIVER=libMonetODBC;QUERY=SELECT * FROM
INFORMATION_SCHEMA.TABLES')
statement error 42000!SELECT: proto_loader function failed 'odbc_loader Could
not connect. SQLDriverConnect failed. SQLstate 01000, Errnr 0, Message
[unixODBC][Driver Manager]Can't open lib '/usr/lib64/libMonetODBC.so' : file
not found'
-select * from
proto_loader('odbc:DRIVER=/usr/lib64/libMonetODBC.so;UID=monetdb;PWD=monetdb;QUERY=SELECT
* FROM INFORMATION_SCHEMA.TABLES')
+select * from
proto_loader('odbc:DSN=MonetDB-Test;UID=monetdb;PWD=monetdb;QUERY=SELECT * FROM
INFORMATION_SCHEMA.TABLES')
+query I
+select id from 'odbc:DSN=MonetDB-Test;QUERY=select id from sys._tables where
name = ''_tables'' order by id'
+----
+2067
+2115
+
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -1279,6 +1279,12 @@ def PerformDir(env, testdir, testlist, t
for o in options:
if o.startswith('embedded'):
inmem = False
+ if o == 'odbc_loader':
+ orig_odbcsysini = os.environ.pop('ODBCSYSINI',
None)
+ orig_odbcini = os.environ.pop('ODBCINI', None)
+ orig_odbcinstini = os.environ.pop('ODBCINSTINI',
None)
+ os.environ['ODBCSYSINI'] = TSTTRGDIR
+ os.environ['ODBCINI'] = os.path.join(TSTTRGDIR,
'odbc.ini')
if o != 'nodrop':
opts.append(o)
if inmem:
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]