docs: public BaseTable doMakeTable(Record record)
      {
          BaseTable table = null;
          boolean bIsQueryRecord = record.isQueryRecord();
          boolean bIsQuerySupported = !DBConstants.FALSE.equalsIgnoreCase(this.getProperty(SQLParams.SQL_JOINS_SUPPORTED));
          if ((bIsQueryRecord) && (bIsQuerySupported))
              if (!DBConstants.TRUE.equalsIgnoreCase(this.getProperty(SQLParams.SQL_VIEWS_BUILT)))
          { // If this is a query and there are no SQL Views, make sure this query doesn't have an object (multi) query as one of it's records.
              if (record instanceof QueryRecord)  // Always
                  bIsQuerySupported = !((QueryRecord)record).isComplexQuery();
          }
          int iRawDBType = (record.getDatabaseType() & DBConstants.TABLE_TYPE_MASK);
          if (((iRawDBType == DBConstants.LOCAL) || (iRawDBType == DBConstants.TABLE))
                  && (!bIsQueryRecord))
              table = new JdbcTable(this, record);
          else if ((bIsQueryRecord) &&
              ((!bIsQuerySupported)
              || ((record.getDatabaseType() & DBConstants.MANUAL_QUERY) != 0)))
          { // Physical Tables cannot process SQL queries, so use QueryTable!
              PassThruTable passThruTable = new QueryTable(this, record);
              passThruTable.addTable(record.getRecordlistAt(0).getTable());
              table = passThruTable;
          }
          else if ((iRawDBType == DBConstants.LOCAL)
                  || (iRawDBType == DBConstants.REMOTE)
                      || (iRawDBType == DBConstants.TABLE))
              table = new JdbcTable(this, record);
          else
              table = super.doMakeTable(record);
          return table;
      }