Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build fails with mysql8 #209

Open
ysk24ok opened this issue Aug 7, 2020 · 0 comments
Open

Build fails with mysql8 #209

ysk24ok opened this issue Aug 7, 2020 · 0 comments

Comments

@ysk24ok
Copy link
Contributor

ysk24ok commented Aug 7, 2020

$ ./waf -j4
In file included from ../src/database/mysql/connection_def.h:41,
                 from ../src/database/mysql/connection.cpp:36:
../src/database/mysql/statement.h:73:15: error: ‘my_bool’ was not declared in this scope
   std::vector<my_bool> nulls;
               ^~~~~~~
../src/database/mysql/statement.h:73:15: note: suggested alternative: ‘sql_bool’
   std::vector<my_bool> nulls;
               ^~~~~~~
               sql_bool
../src/database/mysql/statement.h:73:22: error: template argument 1 is invalid
   std::vector<my_bool> nulls;
                      ^
../src/database/mysql/statement.h:73:22: error: template argument 2 is invalid
In file included from ../src/database/mysql/statement.cpp:32:
../src/database/mysql/statement.h:73:15: error: ‘my_bool’ was not declared in this scope
   std::vector<my_bool> nulls;
               ^~~~~~~
../src/database/mysql/statement.h:73:15: note: suggested alternative: ‘sql_bool’
   std::vector<my_bool> nulls;
               ^~~~~~~
               sql_bool
../src/database/mysql/statement.h:73:22: error: template argument 1 is invalid
   std::vector<my_bool> nulls;
                      ^
../src/database/mysql/statement.h:73:22: error: template argument 2 is invalid
../src/database/mysql/statement.cpp: In member function ‘virtual int pfi::database::mysql::mysql_statement::execute(const std::vector<pfi::lang::shared_ptr<pfi::database::sql_value> >&)’:
../src/database/mysql/statement.cpp:112:10: error: ‘my_bool’ was not declared in this scope
   vector<my_bool> falses(args.size(), 0);
          ^~~~~~~
../src/database/mysql/statement.cpp:112:10: note: suggested alternative: ‘sql_bool’
   vector<my_bool> falses(args.size(), 0);
          ^~~~~~~
          sql_bool
../src/database/mysql/statement.cpp:112:17: error: template argument 1 is invalid
   vector<my_bool> falses(args.size(), 0);
                 ^
../src/database/mysql/statement.cpp:112:17: error: template argument 2 is invalid
../src/database/mysql/statement.cpp:112:40: error: expression list treated as compound expression in initializer [-fpermissive]
   vector<my_bool> falses(args.size(), 0);
                                        ^
../src/database/mysql/statement.cpp:120:30: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
     bind[i].is_null=&falses[i];
                              ^
../src/database/mysql/statement.cpp:125:10: error: expected ‘;’ before ‘rb’
   my_bool rb=mysql_stmt_bind_param(stmt, &bind[0]);
          ^~~
          ;
../src/database/mysql/statement.cpp:126:7: error: ‘rb’ was not declared in this scope
   if (rb!=0){
       ^~
../src/database/mysql/statement.cpp:140:9: error: request for member ‘clear’ in ‘((pfi::database::mysql::mysql_statement*)this)->pfi::database::mysql::mysql_statement::nulls’, which is of non-class type ‘int’
   nulls.clear();
         ^~~~~
../src/database/mysql/statement.cpp: In member function ‘virtual bool pfi::database::mysql::mysql_statement::fetch_row(std::vector<pfi::lang::shared_ptr<pfi::database::sql_value> >&)’:
../src/database/mysql/statement.cpp:158:11: error: request for member ‘resize’ in ‘((pfi::database::mysql::mysql_statement*)this)->pfi::database::mysql::mysql_statement::nulls’, which is of non-class type ‘int’
     nulls.resize(fn);
           ^~~~~~
../src/database/mysql/statement.cpp:162:14: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
       nulls[i]=0;
              ^
../src/database/mysql/statement.cpp:169:32: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
       binds[i].is_null=&nulls[i];
                                ^
Waf: Leaving directory `/hdd/nishioka/pficommon/build'
Build failed
 -> task in 'pficommon_database_mysql' failed with exit status 1 (run with -v to display more information)
 -> task in 'pficommon_database_mysql' failed with exit status 1 (run with -v to display more information)

Since https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html#mysqld-8-0-1-compiling says Incompatible Change: The my_bool type is no longer used in MySQL source code. Any third-party code that used this type to represent C boolean variables should use the bool or int C type instead., my_bool must be replaced by bool .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant