Changeset: b394a5f93293 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b394a5f93293
Added Files:
sql/test/proto_loader/odbc/Tests/All
sql/test/proto_loader/odbc/Tests/SingleServer
sql/test/proto_loader/odbc/Tests/incomplete_uri.test
sql/test/proto_loader/odbc/Tests/monetodbc.test
sql/test/proto_loader/odbc/Tests/sqlite3odbc.test
Branch: Mar2025
Log Message:
Add tests for 'odbc:' scheme of proto_loader(uri)
diffs (115 lines):
diff --git a/sql/test/proto_loader/odbc/Tests/All
b/sql/test/proto_loader/odbc/Tests/All
new file mode 100644
--- /dev/null
+++ b/sql/test/proto_loader/odbc/Tests/All
@@ -0,0 +1,3 @@
+incomplete_uri
+sqlite3odbc
+monetodbc
diff --git a/sql/test/proto_loader/odbc/Tests/SingleServer
b/sql/test/proto_loader/odbc/Tests/SingleServer
new file mode 100644
--- /dev/null
+++ b/sql/test/proto_loader/odbc/Tests/SingleServer
@@ -0,0 +1,1 @@
+--loadmodule odbc_loader
diff --git a/sql/test/proto_loader/odbc/Tests/incomplete_uri.test
b/sql/test/proto_loader/odbc/Tests/incomplete_uri.test
new file mode 100644
--- /dev/null
+++ b/sql/test/proto_loader/odbc/Tests/incomplete_uri.test
@@ -0,0 +1,43 @@
+-- test incomplete 'odbc:' scheme specification
+
+statement error 42000!SELECT: proto_loader function failed 'Missing ':'
separator to determine the URI scheme'
+select * from proto_loader('odbc')
+
+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:')
+
+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:')
+
+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:FileNotFound')
+
+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:/tmp/FileNotFound.csv')
+
+statement error 42000!SELECT: proto_loader function failed 'Invalid ODBC
connection string. Should start with 'DSN=' or 'DRIVER=' or 'FILEDSN='.'
+select * from proto_loader(R'odbc:C:\temp\FileNotFound.csv.gz')
+
+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:/tmp/FileNotFound.csv.gz') as file
+
+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:/tmp/FileNotFound.csv.gz') as file(col1, col2)
+
+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:/tmp/FileNotFound.csv') file(col1, col2)
+
+
+statement error 42000!SELECT: no such table returning function
'sys'.'proto_loader'(varchar(5))
+select * from sys.proto_loader('odbc:')
+
+statement error 42000!SELECT: no such table returning function
'sys'.'proto_loader'(varchar(17))
+select * from sys.proto_loader('odbc:FileNotFound')
+
+statement error 42000!SELECT: no such table returning function
'sys'.'proto_loader'(varchar(21))
+select * from sys.proto_loader('odbc:FileNotFound.csv')
+
+
+statement error 42000!SELECT: proto_loader function failed 'Incomplete ODBC
connection string. Missing 'QUERY=' part (to specify the SQL SELECT query to
execute).'
+select * from proto_loader('odbc:DSN=MonetDB')
+
diff --git a/sql/test/proto_loader/odbc/Tests/monetodbc.test
b/sql/test/proto_loader/odbc/Tests/monetodbc.test
new file mode 100644
--- /dev/null
+++ b/sql/test/proto_loader/odbc/Tests/monetodbc.test
@@ -0,0 +1,20 @@
+-- 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')
+
+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')
+
+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')
+
+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')
+
+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')
+
diff --git a/sql/test/proto_loader/odbc/Tests/sqlite3odbc.test
b/sql/test/proto_loader/odbc/Tests/sqlite3odbc.test
new file mode 100644
--- /dev/null
+++ b/sql/test/proto_loader/odbc/Tests/sqlite3odbc.test
@@ -0,0 +1,23 @@
+-- test with 'odbc:DRIVER=/usr/lib64/libsqlite3odbc.so;' protocol specification
+
+statement error 42000!SELECT: proto_loader function failed 'odbc_loader Could
not connect. SQLDriverConnect failed. SQLstate HY000, Errnr 14, Message
[SQLite]connect failed'
+select * from
proto_loader('odbc:DRIVER=/usr/lib64/libsqlite3odbc.so;QUERY=SELECT * FROM
INFORMATION_SCHEMA.TABLES')
+
+statement error 42000!SELECT: proto_loader function failed 'odbc_loader Could
not connect. SQLDriverConnect failed. SQLstate HY000, Errnr 14, Message
[SQLite]connect failed'
+select * from
proto_loader('odbc:DRIVER=/usr/lib64/libsqlite3odbc.so;Database=~/Downloads/sqlite_dbs/chinook.db;QUERY=SELECT
* FROM INFORMATION_SCHEMA.TABLES')
+
+statement error 42000!SELECT: proto_loader function failed 'odbc_loader
SQLExecDirect query failed. SQLstate HY000, Errnr 1, Message [SQLite]no such
table: INFORMATION_SCHEMA.TABLES (1)'
+select * from
proto_loader('odbc:DRIVER=/usr/lib64/libsqlite3odbc.so;Database=odbc_loader_test.db;QUERY=SELECT
* FROM INFORMATION_SCHEMA.TABLES')
+
+--query TTTIT
+statement ok
+select * from
proto_loader('odbc:DRIVER=/usr/lib64/libsqlite3odbc.so;Database=odbc_loader_test.db;QUERY=SELECT
* FROM sqlite_schema')
+
+--query TTTIT
+statement ok
+select * from
proto_loader('odbc:DRIVER=/usr/lib64/libsqlite3odbc.so;Database=/home/dinther/Downloads/sqlite_dbs/chinook.db;QUERY=SELECT
* FROM sqlite_schema')
+
+--query IITTTTTTI
+statement ok
+select * from
proto_loader('odbc:DRIVER=/usr/lib64/libsqlite3odbc.so;Database=/home/dinther/Downloads/sqlite_dbs/chinook.db;QUERY=SELECT
* FROM invoices limit 21')
+
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]