EnterpriseDB / mysql_fdw

PostgreSQL foreign data wrapper for MySQL
Other
523 stars 161 forks source link

Make error in deparse.c #159

Open ryanfmurphy opened 6 years ago

ryanfmurphy commented 6 years ago

Hello EnterpriseDB Team,

I am trying to build your (insanely useful sounding) mysql_fdw on Mac OS X. I get this error on make:

deparse.c:301:21: error: initializing 'Form_pg_attribute' (aka 'struct FormData_pg_attribute *') with an expression of incompatible type 'FormData_pg_attribute' (aka 'struct FormData_pg_attribute');

The full output is here:

$ make USE_PGXS=1
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -g -O0  -I/usr/local/Cellar/mysql/5.7.18_1/include/mysql -D _MYSQL_LIBNAME=\"libmysqlclient.dylib\" -I. -I./ -I/path/to/postgres/install_dir/include/server -I/path/to/postgres/install_dir/include/internal    -c -o deparse.o deparse.c
deparse.c:301:21: error: initializing 'Form_pg_attribute' (aka 'struct FormData_pg_attribute *') with an expression of incompatible type 'FormData_pg_attribute' (aka 'struct FormData_pg_attribute');
      take the address with &
                Form_pg_attribute attr = tupdesc->attrs[i - 1];
                                  ^      ~~~~~~~~~~~~~~~~~~~~~
                                         &
deparse.c:418:13: warning: implicit declaration of function 'get_relid_attribute_name' is invalid in C99 [-Wimplicit-function-declaration]
                colname = get_relid_attribute_name(rte->relid, varattno);
                          ^
deparse.c:418:11: warning: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
                colname = get_relid_attribute_name(rte->relid, varattno);
                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings and 1 error generated.
make: *** [deparse.o] Error 1

I attempted to change the C code as it suggests by putting an & in front to take the address, but that just led to a slew of other errors, so I'll leave it to you guys. :)

Have you seen this before? I tried moving to an earlier commit (the latest release tag, REL-2_4_0, but still got the error.

Other details: Mac OS X Yosemite, building using a clang that says "Apple LLVM version 7.0.2 (clang-700.1.79)"

Thanks! Ryan