@@ -226,7 +226,7 @@ private String createQueryFromAccountUsage(ConnectorArguments arguments)
226226 + "FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY\n "
227227 + "WHERE end_time >= to_timestamp_ltz('%s')\n "
228228 + "AND end_time <= to_timestamp_ltz('%s')\n " );
229- queryBuilder .append (extractEarliestTimestamp (arguments ));
229+ queryBuilder .append (earliestTimestamp (arguments ));
230230 if (overrideWhere != null ) queryBuilder .append (" AND " ).append (overrideWhere );
231231 return queryBuilder .toString ().replace ('\n' , ' ' );
232232 }
@@ -269,7 +269,7 @@ private String createQueryFromInformationSchema(ConnectorArguments arguments)
269269 // because we always iterate over the full 7 trailing days; maybe it's worth
270270 // preventing that in the future. To do that, we should require getQueryLogEarliestTimestamp()
271271 // to parse and return an ISO instant, not a database-server-specific format.
272- queryBuilder .append (extractEarliestTimestamp (arguments ));
272+ queryBuilder .append (earliestTimestamp (arguments ));
273273
274274 String overrideWhere = getOverrideWhere (arguments );
275275 if (overrideWhere != null ) {
@@ -336,13 +336,13 @@ private String createExtendedQueryFromAccountUsage(ConnectorArguments arguments)
336336 + "AND end_time <= to_timestamp_ltz('%s')\n "
337337 + "AND is_client_generated_statement = FALSE\n " );
338338
339- queryBuilder .append (extractEarliestTimestamp (arguments ));
339+ queryBuilder .append (earliestTimestamp (arguments ));
340340 if (overrideWhere != null ) queryBuilder .append (" AND " ).append (overrideWhere );
341341 return queryBuilder .toString ().replace ('\n' , ' ' );
342342 }
343343
344344 @ Nonnull
345- static String extractEarliestTimestamp (@ Nonnull ConnectorArguments arguments ) {
345+ static String earliestTimestamp (@ Nonnull ConnectorArguments arguments ) {
346346 String timestamp = arguments .getQueryLogEarliestTimestamp ();
347347 if (isBlank (timestamp )) {
348348 return "" ;
@@ -429,17 +429,16 @@ private static MetadataDumperUsageException unsupportedOption(String option) {
429429 return new MetadataDumperUsageException (message );
430430 }
431431
432- private String getOverrideableQuery (
433- @ Nullable String overrideQuery , @ Nonnull String defaultSql , @ Nonnull String whereField ) {
434- String sql = overrideQuery != null ? overrideQuery : defaultSql ;
435- return sql
436- + "\n "
437- + "WHERE "
438- + whereField
439- + " >= to_timestamp_ltz('%s')\n "
440- + "AND "
441- + whereField
442- + " <= to_timestamp_ltz('%s')" ;
432+ static String overrideableQuery (
433+ @ Nullable String override , @ Nonnull String defaultSql , @ Nonnull String whereField ) {
434+ String start = whereField + " >= to_timestamp_ltz('%s')" ;
435+ String end = whereField + " <= to_timestamp_ltz('%s')" ;
436+
437+ if (override != null ) {
438+ return String .format ("%s\n WHERE %s\n AND %s" , override , start , end );
439+ } else {
440+ return String .format ("%s\n WHERE %s\n AND %s" , defaultSql , start , end );
441+ }
443442 }
444443
445444 private String parseColumnsFromHeader (Class <? extends Enum <?>> headerClass ) {
@@ -454,7 +453,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
454453 return Arrays .asList (
455454 new TaskDescription (
456455 WarehouseEventsHistoryFormat .ZIP_ENTRY_PREFIX ,
457- getOverrideableQuery (
456+ overrideableQuery (
458457 arguments .getDefinition (
459458 SnowflakeLogConnectorProperties .WAREHOUSE_EVENTS_HISTORY_OVERRIDE_QUERY ),
460459 String .format (
@@ -465,7 +464,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
465464 WarehouseEventsHistoryFormat .Header .class ),
466465 new TaskDescription (
467466 AutomaticClusteringHistoryFormat .ZIP_ENTRY_PREFIX ,
468- getOverrideableQuery (
467+ overrideableQuery (
469468 arguments .getDefinition (
470469 SnowflakeLogConnectorProperties .AUTOMATIC_CLUSTERING_HISTORY_OVERRIDE_QUERY ),
471470 String .format (
@@ -476,7 +475,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
476475 AutomaticClusteringHistoryFormat .Header .class ),
477476 new TaskDescription (
478477 CopyHistoryFormat .ZIP_ENTRY_PREFIX ,
479- getOverrideableQuery (
478+ overrideableQuery (
480479 arguments .getDefinition (
481480 SnowflakeLogConnectorProperties .COPY_HISTORY_OVERRIDE_QUERY ),
482481 String .format (
@@ -487,7 +486,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
487486 CopyHistoryFormat .Header .class ),
488487 new TaskDescription (
489488 DatabaseReplicationUsageHistoryFormat .ZIP_ENTRY_PREFIX ,
490- getOverrideableQuery (
489+ overrideableQuery (
491490 arguments .getDefinition (
492491 SnowflakeLogConnectorProperties
493492 .DATABASE_REPLICATION_USAGE_HISTORY_OVERRIDE_QUERY ),
@@ -499,7 +498,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
499498 DatabaseReplicationUsageHistoryFormat .Header .class ),
500499 new TaskDescription (
501500 LoginHistoryFormat .ZIP_ENTRY_PREFIX ,
502- getOverrideableQuery (
501+ overrideableQuery (
503502 arguments .getDefinition (
504503 SnowflakeLogConnectorProperties .LOGIN_HISTORY_OVERRIDE_QUERY ),
505504 String .format (
@@ -510,7 +509,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
510509 LoginHistoryFormat .Header .class ),
511510 new TaskDescription (
512511 MeteringDailyHistoryFormat .ZIP_ENTRY_PREFIX ,
513- getOverrideableQuery (
512+ overrideableQuery (
514513 arguments .getDefinition (
515514 SnowflakeLogConnectorProperties .METERING_DAILY_HISTORY_OVERRIDE_QUERY ),
516515 String .format (
@@ -521,7 +520,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
521520 MeteringDailyHistoryFormat .Header .class ),
522521 new TaskDescription (
523522 PipeUsageHistoryFormat .ZIP_ENTRY_PREFIX ,
524- getOverrideableQuery (
523+ overrideableQuery (
525524 arguments .getDefinition (
526525 SnowflakeLogConnectorProperties .PIPE_USAGE_HISTORY_OVERRIDE_QUERY ),
527526 String .format (
@@ -532,7 +531,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
532531 PipeUsageHistoryFormat .Header .class ),
533532 new TaskDescription (
534533 QueryAccelerationHistoryFormat .ZIP_ENTRY_PREFIX ,
535- getOverrideableQuery (
534+ overrideableQuery (
536535 arguments .getDefinition (
537536 SnowflakeLogConnectorProperties .QUERY_ACCELERATION_HISTORY_OVERRIDE_QUERY ),
538537 String .format (
@@ -544,7 +543,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
544543 TaskCategory .OPTIONAL ),
545544 new TaskDescription (
546545 ReplicationGroupUsageHistoryFormat .ZIP_ENTRY_PREFIX ,
547- getOverrideableQuery (
546+ overrideableQuery (
548547 arguments .getDefinition (
549548 SnowflakeLogConnectorProperties .REPLICATION_GROUP_USAGE_HISTORY_OVERRIDE_QUERY ),
550549 String .format (
@@ -555,7 +554,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
555554 ReplicationGroupUsageHistoryFormat .Header .class ),
556555 new TaskDescription (
557556 ServerlessTaskHistoryFormat .ZIP_ENTRY_PREFIX ,
558- getOverrideableQuery (
557+ overrideableQuery (
559558 arguments .getDefinition (
560559 SnowflakeLogConnectorProperties .SERVERLESS_TASK_HISTORY_OVERRIDE_QUERY ),
561560 String .format (
@@ -566,7 +565,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
566565 ServerlessTaskHistoryFormat .Header .class ),
567566 new TaskDescription (
568567 TaskHistoryFormat .ZIP_ENTRY_PREFIX ,
569- getOverrideableQuery (
568+ overrideableQuery (
570569 arguments .getDefinition (
571570 SnowflakeLogConnectorProperties .TASK_HISTORY_OVERRIDE_QUERY ),
572571 String .format (
@@ -577,7 +576,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
577576 TaskHistoryFormat .Header .class ),
578577 new TaskDescription (
579578 WarehouseLoadHistoryFormat .ZIP_ENTRY_PREFIX ,
580- getOverrideableQuery (
579+ overrideableQuery (
581580 arguments .getDefinition (
582581 SnowflakeLogConnectorProperties .WAREHOUSE_LOAD_HISTORY_OVERRIDE_QUERY ),
583582 String .format (
@@ -588,7 +587,7 @@ private List<TaskDescription> createTimeSeriesTasks(ConnectorArguments arguments
588587 WarehouseLoadHistoryFormat .Header .class ),
589588 new TaskDescription (
590589 WarehouseMeteringHistoryFormat .ZIP_ENTRY_PREFIX ,
591- getOverrideableQuery (
590+ overrideableQuery (
592591 arguments .getDefinition (
593592 SnowflakeLogConnectorProperties .WAREHOUSE_METERING_HISTORY_OVERRIDE_QUERY ),
594593 String .format (
0 commit comments