Developer Perspective


Q: Report error: "'openssl/ssl.h' file not found" when building hawq on Mac.

A: The problem can be:

  • openssl haven't been installed, so we need to install it using "brew install openssl"
  • or even installed, but it doesn't override the system default setting (setting env variable path) . This problem often occurs after we updated software using "brew update",  the default option for brew is to install without option '–force', so we need to run  "brew link openssl --force" to link it to system lib path.
Q: Report error: "'gram.c:1370:41: error: use of undeclared identifier 'yyscanner' yychar = yylex (&yylval, &yylloc, yyscanner)" when building hawq on Mac.

A: The problem can be:

  • bison version on local MAC is too high.  try bison --version to look at the version, if it is later than 3.0, try install bison with a lower version, such as 2.3. And rebuild HAWQ.

Debugging & Fixing

Q: How to debug using LLDB on a Mac

Similiar to postrgres, please refer to the gist

Q: How to get all tuples with all MVCC versions in catalog table?

Need to set guc before running SELECT statement:   set gp_select_invisible=true;

Q: How to set fixed virtual segment number to run query?

Need to set enforce_virtual_segment_number for random table or default_hash_table_bucket_number for hash table.

User Perspective




Q: How to vacuum all catalog tables?

You can run below bash file:



psql -tc "select '$VCOMMAND' || ' pg_catalog.' || relname || ';' from pg_class a,pg_namespace b where a.relnamespace=b.oid and b.nspname= 'pg_catalog' and a.relkind='r'" $DBNAME | psql -a $DBNAME


About this Wiki

How to get permission to edit





  • No labels