protected static PCollection getJDBCRecords()

in spanner-data-validator-java/src/main/java/com/google/migration/JDBCToSpannerDVTWithHash.java [459:505]


  protected static PCollection<HashResult> getJDBCRecords(String tableName,
      PipelineTracker pipelineTracker,
      String query,
      Integer keyIndex,
      String rangeFieldType,
      DVTOptionsCore options,
      PCollection<PartitionRange> pRanges,
      Integer timestampThresholdKeyIndex,
      CustomTransformation customTransformation,
      Schema schema) {

    String driver = POSTGRES_JDBC_DRIVER;
    if(options.getProtocol().compareTo("mysql") == 0) {
      driver = MYSQL_JDBC_DRIVER;
    }

    // https://stackoverflow.com/questions/68353660/zero-date-value-prohibited-hibernate-sql-jpa
    String zeroDateTimeNullBehaviorStr = options.getZeroDateTimeBehavior() ? "?zeroDateTimeBehavior=CONVERT_TO_NULL" : "";

    // JDBC conn string
    String connString = String.format("jdbc:%s://%s:%d/%s%s", options.getProtocol(),
        options.getServer(),
        options.getPort(),
        options.getSourceDB(),
        zeroDateTimeNullBehaviorStr);

    LOG.info(String.format("++++++++++++++++++++++++++++++++JDBC conn string: %s", connString));

    String jdbcPass = Helpers.getJDBCPassword(options);

    //Return the ResultSet back for custom transformations instead of computing HashResult here.
    return getJDBCRecordsHelper(tableName,
        pipelineTracker,
        query,
        keyIndex,
        rangeFieldType,
        options,
        pRanges,
        timestampThresholdKeyIndex,
        customTransformation,
        schema,
        driver,
        connString,
        "0",
        options.getUsername(),
        jdbcPass);
  }