Skip to content

Database CI fails for MySQL/MSSQL jobs #26816

Description

@lcheylus

The "Database CI" (defined in .github/workflows/db_ci.yml) fails at every run for mysql-driver-tests and mssql-driver-tests jobs.
See https://github.com/vlang/v/actions/workflows/db_ci.yml

Logs with errors for mysql-driver-tests job:

---- Testing... ----------------------------------------------------------------
 FAIL  [1/3] C:  1238.0 ms, R:     0.000 ms vlib/db/mysql/mysql_orm_test.v
>> compilation failed:
Error: vlib/db/mysql/mysql_orm_test.v:142:20: error: infix expr: cannot use `int literal` (right expression) as `orm.Primitive`
  140 |     assert sum_res[0][0] is int
  141 |     if sum_res[0][0] is int {
  142 |         assert sum_res[0][0] == 101
      |                          ~~~~~~~~~~
  143 |     }
  144 |
Error: vlib/db/mysql/mysql_orm_test.v:156:20: error: infix expr: cannot use `float literal` (right expression) as `orm.Primitive`
  154 |     assert avg_res[0][0] is f64
  155 |     if avg_res[0][0] is f64 {
  156 |         assert avg_res[0][0] == 101.0
      |                          ~~~~~~~~~~~~
  157 |     }
  158 |

Logs with errors for mssql-driver-tests job:

---- Testing... ----------------------------------------------------------------
 FAIL     0.000 ms vlib/db/mssql/mssql_test.v
>> compilation failed:
Warning: vlib/db/mssql/_cdefs.c.v:3:102: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
    1 | module mssql
    2 | 
    3 | fn C.SQLAllocHandle(handle_type C.SQLSMALLINT, input_handle C.SQLHANDLE, output_handle &C.SQLHANDLE) C.SQLRETURN
      |                                                                                                      ~~~~~~~~~~~
    4 | 
    5 | fn C.SQLSetEnvAttr(environment_handle C.SQLHENV, attribute C.SQLINTEGER, value C.SQLPOINTER, string_length C.SQLINTEGER) C.SQLRETURN
Warning: vlib/db/mssql/_cdefs.c.v:5:122: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
    3 | fn C.SQLAllocHandle(handle_type C.SQLSMALLINT, input_handle C.SQLHANDLE, output_handle &C.SQLHANDLE) C.SQLRETURN
    4 | 
    5 | fn C.SQLSetEnvAttr(environment_handle C.SQLHENV, attribute C.SQLINTEGER, value C.SQLPOINTER, string_length C.SQLINTEGER) C.SQLRETURN
      |                                                                                                                          ~~~~~~~~~~~
    6 | 
    7 | fn C.SQLGetDiagRec(handle_type C.SQLSMALLINT, handle C.SQLHANDLE, rec_number C.SQLSMALLINT, sql_state &C.SQLCHAR,
Warning: vlib/db/mssql/_cdefs.c.v:8:112: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
    6 | 
    7 | fn C.SQLGetDiagRec(handle_type C.SQLSMALLINT, handle C.SQLHANDLE, rec_number C.SQLSMALLINT, sql_state &C.SQLCHAR,
    8 |     native_error &C.SQLINTEGER, message_text &C.SQLCHAR, buffer_length C.SQLSMALLINT, text_length &C.SQLSMALLINT) C.SQLRETURN
      |                                                                                                                   ~~~~~~~~~~~
    9 | 
   10 | fn C.SQLSetConnectAttr(connection_handle C.SQLHDBC, attribute C.SQLINTEGER, value C.SQLPOINTER, string_length C.SQLINTEGER) C.SQLRETURN
Warning: vlib/db/mssql/_cdefs.c.v:10:125: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
    8 |     native_error &C.SQLINTEGER, message_text &C.SQLCHAR, buffer_length C.SQLSMALLINT, text_length &C.SQLSMALLINT) C.SQLRETURN
    9 | 
   10 | fn C.SQLSetConnectAttr(connection_handle C.SQLHDBC, attribute C.SQLINTEGER, value C.SQLPOINTER, string_length C.SQLINTEGER) C.SQLRETURN
      |                                                                                                                             ~~~~~~~~~~~
   11 | 
   12 | fn C.SQLDriverConnect(hdbc C.SQLHDBC, hwnd C.SQLHWND, sz_conn_str_in &C.SQLCHAR, cb_conn_str_in C.SQLSMALLINT,
Warning: vlib/db/mssql/_cdefs.c.v:13:134: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
   11 | 
   12 | fn C.SQLDriverConnect(hdbc C.SQLHDBC, hwnd C.SQLHWND, sz_conn_str_in &C.SQLCHAR, cb_conn_str_in C.SQLSMALLINT,
   13 |     sz_conn_str_out &C.SQLCHAR, cb_conn_str_out_max C.SQLSMALLINT, pcb_conn_str_out &C.SQLSMALLINT, f_driver_completion C.SQLUSMALLINT) C.SQLRETURN
      |                                                                                                                                         ~~~~~~~~~~~
   14 | 
   15 | fn C.SQLDisconnect(connection_handle C.SQLHDBC) C.SQLRETURN
Warning: vlib/db/mssql/_cdefs.c.v:15:49: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
   13 |     sz_conn_str_out &C.SQLCHAR, cb_conn_str_out_max C.SQLSMALLINT, pcb_conn_str_out &C.SQLSMALLINT, f_driver_completion C.SQLUSMALLINT) C.SQLRETURN
   14 | 
   15 | fn C.SQLDisconnect(connection_handle C.SQLHDBC) C.SQLRETURN
      |                                                 ~~~~~~~~~~~
   16 | 
   17 | fn C.SQLExecDirect(statement_handle C.SQLHSTMT, statement_text &C.SQLCHAR, text_length C.SQLINTEGER) C.SQLRETURN
Warning: vlib/db/mssql/_cdefs.c.v:17:102: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
   15 | fn C.SQLDisconnect(connection_handle C.SQLHDBC) C.SQLRETURN
   16 | 
   17 | fn C.SQLExecDirect(statement_handle C.SQLHSTMT, statement_text &C.SQLCHAR, text_length C.SQLINTEGER) C.SQLRETURN
      |                                                                                                      ~~~~~~~~~~~
   18 | 
   19 | fn C.SQLBindCol(statement_handle C.SQLHSTMT, column_number C.SQLUSMALLINT, target_type C.SQLSMALLINT, target_value C.SQLPOINTER,
Warning: vlib/db/mssql/_cdefs.c.v:20:52: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
   18 | 
   19 | fn C.SQLBindCol(statement_handle C.SQLHSTMT, column_number C.SQLUSMALLINT, target_type C.SQLSMALLINT, target_value C.SQLPOINTER,
   20 |     buffer_length C.SQLLEN, str_len_or_ind &C.SQLLEN) C.SQLRETURN
      |                                                       ~~~~~~~~~~~
   21 | 
   22 | fn C.SQLFetch(statement_handle C.SQLHSTMT) C.SQLRETURN
Warning: vlib/db/mssql/_cdefs.c.v:22:44: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
   20 |     buffer_length C.SQLLEN, str_len_or_ind &C.SQLLEN) C.SQLRETURN
   21 | 
   22 | fn C.SQLFetch(statement_handle C.SQLHSTMT) C.SQLRETURN
      |                                            ~~~~~~~~~~~
   23 | 
   24 | fn C.SQLFreeHandle(handle_type C.SQLSMALLINT, handle C.SQLHANDLE) C.SQLRETURN
Warning: vlib/db/mssql/_cdefs.c.v:24:67: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
   22 | fn C.SQLFetch(statement_handle C.SQLHSTMT) C.SQLRETURN
   23 | 
   24 | fn C.SQLFreeHandle(handle_type C.SQLSMALLINT, handle C.SQLHANDLE) C.SQLRETURN
      |                                                                   ~~~~~~~~~~~
   25 | 
   26 | fn C.SQLNumResultCols(statement_handle C.SQLHSTMT, column_count &C.SQLSMALLINT) C.SQLRETURN
Warning: vlib/db/mssql/_cdefs.c.v:26:81: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
   24 | fn C.SQLFreeHandle(handle_type C.SQLSMALLINT, handle C.SQLHANDLE) C.SQLRETURN
   25 | 
   26 | fn C.SQLNumResultCols(statement_handle C.SQLHSTMT, column_count &C.SQLSMALLINT) C.SQLRETURN
      |                                                                                 ~~~~~~~~~~~
   27 | 
   28 | fn C.SQLColAttribute(statement_handle C.SQLHSTMT, column_number C.SQLUSMALLINT, field_identifier C.SQLUSMALLINT,
Warning: vlib/db/mssql/_cdefs.c.v:29:123: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
   27 | 
   28 | fn C.SQLColAttribute(statement_handle C.SQLHSTMT, column_number C.SQLUSMALLINT, field_identifier C.SQLUSMALLINT,
   29 |     character_attribute C.SQLPOINTER, buffer_length C.SQLSMALLINT, string_length C.SQLSMALLINT, numeric_attribute &C.SQLLEN) C.SQLRETURN
      |                                                                                                                              ~~~~~~~~~~~
   30 | 
   31 | fn C.SQLRowCount(statement_handle C.SQLHSTMT, row_count &C.SQLLEN) C.SQLRETURN
Warning: vlib/db/mssql/_cdefs.c.v:31:68: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
   29 |     character_attribute C.SQLPOINTER, buffer_length C.SQLSMALLINT, string_length C.SQLSMALLINT, numeric_attribute &C.SQLLEN) C.SQLRETURN
   30 | 
   31 | fn C.SQLRowCount(statement_handle C.SQLHSTMT, row_count &C.SQLLEN) C.SQLRETURN
      |                                                                    ~~~~~~~~~~~
Warning: vlib/db/mssql/mssql.c.v:5:7: warning: unknown type `C.SQLHENV` (all virtual C types must be defined, this will be an error soon).
Did you mean `C.SQLLEN`?
    3 | pub struct Connection {
    4 | mut:
    5 |     henv C.SQLHENV = C.SQLHENV(C.SQL_NULL_HENV) // Environment
      |          ~~~~~~~~~
    6 |     hdbc C.SQLHDBC = C.SQLHDBC(C.SQL_NULL_HDBC) // Connection handle
    7 | pub mut:
Warning: vlib/db/mssql/mssql.c.v:6:7: warning: unknown type `C.SQLHDBC` (all virtual C types must be defined, this will be an error soon).
Did you mean `C.SQLHENV`?
    4 | mut:
    5 |     henv C.SQLHENV = C.SQLHENV(C.SQL_NULL_HENV) // Environment
    6 |     hdbc C.SQLHDBC = C.SQLHDBC(C.SQL_NULL_HDBC) // Connection handle
      |          ~~~~~~~~~
    7 | pub mut:
    8 |     conn_str string
Warning: vlib/db/mssql/mssql.c.v:91:18: warning: unknown type `C.SQLRETURN` (all virtual C types must be defined, this will be an error soon)
   89 | 
   90 | // check_error checks odbc return code and extract error string if available
   91 | fn check_error(e C.SQLRETURN, s string, h C.SQLHANDLE, t C.SQLSMALLINT) ! {
      |                  ~~~~~~~~~~~
   92 |     if e != C.SQLRETURN(C.SQL_SUCCESS) && e != C.SQLRETURN(C.SQL_SUCCESS_WITH_INFO) {
   93 |         err_str := extract_error(s, h, t)
Warning: vlib/db/mssql/mssql.c.v:91:43: warning: unknown type `C.SQLHANDLE` (all virtual C types must be defined, this will be an error soon).
Did you mean `C.SQLHWND`?
   89 | 
   90 | // check_error checks odbc return code and extract error string if available
   91 | fn check_error(e C.SQLRETURN, s string, h C.SQLHANDLE, t C.SQLSMALLINT) ! {
      |                                           ~~~~~~~~~~~
   92 |     if e != C.SQLRETURN(C.SQL_SUCCESS) && e != C.SQLRETURN(C.SQL_SUCCESS_WITH_INFO) {
   93 |         err_str := extract_error(s, h, t)
Warning: vlib/db/mssql/mssql.c.v:91:58: warning: unknown type `C.SQLSMALLINT` (all virtual C types must be defined, this will be an error soon).
Did you mean `C.SQLUSMALLINT`?
   89 | 
   90 | // check_error checks odbc return code and extract error string if available
   91 | fn check_error(e C.SQLRETURN, s string, h C.SQLHANDLE, t C.SQLSMALLINT) ! {
      |                                                          ~~~~~~~~~~~~~
   92 |     if e != C.SQLRETURN(C.SQL_SUCCESS) && e != C.SQLRETURN(C.SQL_SUCCESS_WITH_INFO) {
   93 |         err_str := extract_error(s, h, t)
Warning: vlib/db/mssql/mssql.c.v:99:40: warning: unknown type `C.SQLHANDLE` (all virtual C types must be defined, this will be an error soon).
Did you mean `C.SQLHWND`?
   97 | 
   98 | // extract_error extracts error string from odbc
   99 | fn extract_error(fnName string, handle C.SQLHANDLE, tp C.SQLSMALLINT) string {
      |                                        ~~~~~~~~~~~
  100 |     mut err_str := fnName
  101 |     mut i := 0
Warning: vlib/db/mssql/mssql.c.v:99:56: warning: unknown type `C.SQLSMALLINT` (all virtual C types must be defined, this will be an error soon).
Did you mean `C.SQLUSMALLINT`?
   97 | 
   98 | // extract_error extracts error string from odbc
   99 | fn extract_error(fnName string, handle C.SQLHANDLE, tp C.SQLSMALLINT) string {
      |                                                        ~~~~~~~~~~~~~
  100 |     mut err_str := fnName
  101 |     mut i := 0
Warning: vlib/db/mssql/stmt_handle.c.v:7:7: warning: unknown type `C.SQLHDBC` (all virtual C types must be defined, this will be an error soon).
Did you mean `C.SQLHENV`?
    5 | mut:
    6 |     // db connection reference. Owner is Connection struct.
    7 |     hdbc C.SQLHDBC = C.SQLHDBC(C.SQL_NULL_HDBC)
      |          ~~~~~~~~~
    8 |     // statement handle
    9 |     hstmt C.SQLHSTMT = C.SQLHSTMT(C.SQL_NULL_HSTMT)
Warning: vlib/db/mssql/stmt_handle.c.v:9:8: warning: unknown type `C.SQLHSTMT` (all virtual C types must be defined, this will be an error soon).
Did you mean `C.SQLHENV`?
    7 |     hdbc C.SQLHDBC = C.SQLHDBC(C.SQL_NULL_HDBC)
    8 |     // statement handle
    9 |     hstmt C.SQLHSTMT = C.SQLHSTMT(C.SQL_NULL_HSTMT)
      |           ~~~~~~~~~~
   10 |     // fields used for computation
   11 |     column_count int = -1
Warning: vlib/db/mssql/stmt_handle.c.v:15:13: warning: unknown type `C.SQLLEN` (all virtual C types must be defined, this will be an error soon)
   13 |     buffers [][]char
   14 |     // indicators for each column
   15 |     indicators []C.SQLLEN
      |                ~~~~~~~~~~
   16 | }
   17 |
Warning: vlib/db/mssql/stmt_handle.c.v:19:19: warning: unknown type `C.SQLHDBC` (all virtual C types must be defined, this will be an error soon).
Did you mean `C.SQLHENV`?
   17 | 
   18 | // new_hstmt constructs a new statement handle
   19 | fn new_hstmt(hdbc C.SQLHDBC) !HStmt {
      |                   ~~~~~~~~~
   20 |     mut retcode := C.SQLRETURN(C.SQL_SUCCESS)
   21 |     mut hstmt := C.SQLHSTMT(C.SQL_NULL_HSTMT)
Warning: vlib/db/mssql/stmt_handle.c.v:72:19: warning: unknown type `C.SQLLEN` (all virtual C types must be defined, this will be an error soon)
   70 | 
   71 |     h.buffers = [][]char{len: h.column_count}
   72 |     h.indicators = []C.SQLLEN{len: h.column_count}
      |                      ^
   73 | 
   74 |     for i := 0; i < h.column_count; i++ {
================== C compilation error (from tcc): ==============

Note

You can use the 👍 reaction to increase the issue's priority for developers.

Please note that only the 👍 reaction to the issue itself counts as a vote.
Other reactions and those to comments will not be taken into account.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions