Hi,

This patch fix problem in rhn-satellite-exporter on Postgre:
When we are trying to export dump with options --start-date and/or
--end-date with Postgre backend these dates have only day precision, but
with Oracle backend they have second precision.

On Postgre DATE is represented as day only and the time information is
striped.
We want to represent these dates as TIMESTAMP so we can preserve time
and have second precision.

Honza Brázdil
--- exporter/exportLib.py.old	2011-05-09 08:57:22.000000000 -0400
+++ exporter/exportLib.py	2011-05-09 08:57:27.000000000 -0400
@@ -311,8 +311,8 @@
         select package_id as id
           from rhnChannelPackage rcp
          where rcp.channel_id = :channel_id
-           and rcp.modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS')
-           and rcp.modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS')
+           and rcp.modified >= TO_TIMESTAMP(:lower_limit, 'YYYYMMDDHH24MISS')
+           and rcp.modified <= TO_TIMESTAMP(:upper_limit, 'YYYYMMDDHH24MISS')
      """)
 
     _query_get_package_ids_by_rhndate_limits = rhnSQL.Statement("""
@@ -320,8 +320,8 @@
           from rhnPackage rp, rhnChannelPackage rcp
          where rcp.channel_id = :channel_id
            and rcp.package_id = rp.id
-           and rp.last_modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS')
-           and rp.last_modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS')
+           and rp.last_modified >= TO_TIMESTAMP(:lower_limit, 'YYYYMMDDHH24MISS')
+           and rp.last_modified <= TO_TIMESTAMP(:upper_limit, 'YYYYMMDDHH24MISS')
      """)
 
 
@@ -375,14 +375,14 @@
 
     _query__get_errata_ids_by_limits = rhnSQL.Statement("""
          %s
-           and ce.modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS')
-           and ce.modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS')
+           and ce.modified >= TO_TIMESTAMP(:lower_limit, 'YYYYMMDDHH24MISS')
+           and ce.modified <= TO_TIMESTAMP(:upper_limit, 'YYYYMMDDHH24MISS')
     """ % _query__get_errata_ids)
 
     _query__get_errata_ids_by_rhnlimits = rhnSQL.Statement("""
          %s
-           and e.last_modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS')
-           and e.last_modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS')
+           and e.last_modified >= TO_TIMESTAMP(:lower_limit, 'YYYYMMDDHH24MISS')
+           and e.last_modified <= TO_TIMESTAMP(:upper_limit, 'YYYYMMDDHH24MISS')
     """ % _query__get_errata_ids)
     
     def _get_errata_ids(self):
@@ -399,14 +399,14 @@
 
     _query_get_kickstartable_trees_by_rhnlimits = rhnSQL.Statement("""
          %s
-           and kt.last_modified >= TO_DATE(:lower_limit, 'YYYYMMDDHH24MISS')
-           and kt.last_modified <= TO_DATE(:upper_limit, 'YYYYMMDDHH24MISS')
+           and kt.last_modified >= TO_TIMESTAMP(:lower_limit, 'YYYYMMDDHH24MISS')
+           and kt.last_modified <= TO_TIMESTAMP(:upper_limit, 'YYYYMMDDHH24MISS')
     """ % _query_get_kickstartable_trees)
 
     _query_get_kickstartable_trees_by_limits = rhnSQL.Statement("""
          %s
-           and kt.modified >= TO_DATE(:lower_limit, 'YYYYMMDDHH24MISS')
-           and kt.modified <= TO_DATE(:upper_limit, 'YYYYMMDDHH24MISS')
+           and kt.modified >= TO_TIMESTAMP(:lower_limit, 'YYYYMMDDHH24MISS')
+           and kt.modified <= TO_TIMESTAMP(:upper_limit, 'YYYYMMDDHH24MISS')
     """ % _query_get_kickstartable_trees)
 
     def _get_kickstartable_trees(self):

--- disk_dumper/iss.py.old	2011-05-09 08:58:35.000000000 -0400
+++ disk_dumper/iss.py	2011-05-09 08:59:41.000000000 -0400
@@ -250,13 +250,13 @@
             if self.start_date:
                 if self.use_rhn_date:
                     query += """
-                        and rp.last_modified >= TO_DATE(:start_date, 'YYYYMMDDHH24MISS')
-                        and rp.last_modified <= TO_DATE(:end_date, 'YYYYMMDDHH24MISS')
+                        and rp.last_modified >= TO_TIMESTAMP(:start_date, 'YYYYMMDDHH24MISS')
+                        and rp.last_modified <= TO_TIMESTAMP(:end_date, 'YYYYMMDDHH24MISS')
                         """
                 else:
                     query += """
-                        and rcp.modified >= TO_DATE(:start_date, 'YYYYMMDDHH24MISS')
-                        and rcp.modified <= TO_DATE(:end_date, 'YYYYMMDDHH24MISS')
+                        and rcp.modified >= TO_TIMESTAMP(:start_date, 'YYYYMMDDHH24MISS')
+                        and rcp.modified <= TO_TIMESTAMP(:end_date, 'YYYYMMDDHH24MISS')
                         """
 	    self.brpm_query = rhnSQL.Statement(query)
             brpm_data = rhnSQL.prepare(self.brpm_query)
@@ -287,13 +287,13 @@
 	    if self.start_date:
                 if self.use_rhn_date:
                     query += """
-                    and rp.last_modified >= TO_DATE(:start_date, 'YYYYMMDDHH24MISS')
-                    and rp.last_modified <= TO_DATE(:end_date, 'YYYYMMDDHH24MISS')
+                    and rp.last_modified >= TO_TIMESTAMP(:start_date, 'YYYYMMDDHH24MISS')
+                    and rp.last_modified <= TO_TIMESTAMP(:end_date, 'YYYYMMDDHH24MISS')
                     """
                 else:
                     query += """
-                    and rcp.modified >= TO_DATE(:start_date, 'YYYYMMDDHH24MISS')
-                    and rcp.modified <= TO_DATE(:end_date, 'YYYYMMDDHH24MISS')
+                    and rcp.modified >= TO_TIMESTAMP(:start_date, 'YYYYMMDDHH24MISS')
+                    and rcp.modified <= TO_TIMESTAMP(:end_date, 'YYYYMMDDHH24MISS')
                     """
             self.package_query = rhnSQL.Statement(query)
             package_data = rhnSQL.prepare(self.package_query)
@@ -328,13 +328,13 @@
             if self.start_date:
                 if self.use_rhn_date:
                    query += """
-	           where ps.last_modified >= TO_DATE(:start_date, 'YYYYMMDDHH24MISS')
-	             and ps.last_modified <= TO_DATE(:end_date, 'YYYYMMDDHH24MISS')
+	           where ps.last_modified >= TO_TIMESTAMP(:start_date, 'YYYYMMDDHH24MISS')
+	             and ps.last_modified <= TO_TIMESTAMP(:end_date, 'YYYYMMDDHH24MISS')
                    """
                 else:
                    query += """
-	           where ps.modified >= TO_DATE(:start_date, 'YYYYMMDDHH24MISS')
-	             and ps.modified <= TO_DATE(:end_date, 'YYYYMMDDHH24MISS')
+	           where ps.modified >= TO_TIMESTAMP(:start_date, 'YYYYMMDDHH24MISS')
+	             and ps.modified <= TO_TIMESTAMP(:end_date, 'YYYYMMDDHH24MISS')
                    """
             self.source_package_query = rhnSQL.Statement(query)
             source_package_data = rhnSQL.prepare(self.source_package_query)
@@ -366,13 +366,13 @@
             if self.start_date:
                 if self.use_rhn_date:
                     query += """
-                      and e.last_modified >= TO_DATE(:start_date, 'YYYYMMDDHH24MISS')
-                      and e.last_modified <= TO_DATE(:end_date, 'YYYYMMDDHH24MISS')
+                      and e.last_modified >= TO_TIMESTAMP(:start_date, 'YYYYMMDDHH24MISS')
+                      and e.last_modified <= TO_TIMESTAMP(:end_date, 'YYYYMMDDHH24MISS')
                       """
                 else:
                     query += """
-                      and ce.modified >= TO_DATE(:start_date, 'YYYYMMDDHH24MISS')
-                      and ce.modified <= TO_DATE(:end_date, 'YYYYMMDDHH24MISS')
+                      and ce.modified >= TO_TIMESTAMP(:start_date, 'YYYYMMDDHH24MISS')
+                      and ce.modified <= TO_TIMESTAMP(:end_date, 'YYYYMMDDHH24MISS')
                       """
             self.errata_query = rhnSQL.Statement(query)
             errata_data = rhnSQL.prepare(self.errata_query)
@@ -403,14 +403,14 @@
             if self.start_date:
                 if self.use_rhn_date:
                    query += """
-		   and kt.last_modified >= TO_DATE(:start_date, 'YYYYMMDDHH24MISS')
-		   and kt.last_modified <= TO_DATE(:end_date, 'YYYYMMDDHH24MISS')
+		   and kt.last_modified >= TO_TIMESTAMP(:start_date, 'YYYYMMDDHH24MISS')
+		   and kt.last_modified <= TO_TIMESTAMP(:end_date, 'YYYYMMDDHH24MISS')
 		   and kt.org_id is Null
                    """
                 else:
                    query += """
-		   and kt.modified >= TO_DATE(:start_date, 'YYYYMMDDHH24MISS')
-		   and kt.modified <= TO_DATE(:end_date, 'YYYYMMDDHH24MISS')
+		   and kt.modified >= TO_TIMESTAMP(:start_date, 'YYYYMMDDHH24MISS')
+		   and kt.modified <= TO_TIMESTAMP(:end_date, 'YYYYMMDDHH24MISS')
 		   and kt.org_id is Null
                    """
             self.kickstart_trees_query = rhnSQL.Statement(query)
@@ -447,8 +447,8 @@
 	        """
             if self.start_date:
                 query += """
-		       and rkt.last_modified >= TO_DATE(:start_date, 'YYYYMMDDHH24MISS')
-		       and rkt.last_modified <= TO_DATE(:end_date, 'YYYYMMDDHH24MISS')
+		       and rkt.last_modified >= TO_TIMESTAMP(:start_date, 'YYYYMMDDHH24MISS')
+		       and rkt.last_modified <= TO_TIMESTAMP(:end_date, 'YYYYMMDDHH24MISS')
                 """
             self.kickstart_files_query = rhnSQL.Statement(query)
             kickstart_files = rhnSQL.prepare(self.kickstart_files_query)

_______________________________________________
Spacewalk-devel mailing list
Spacewalk-devel@redhat.com
https://www.redhat.com/mailman/listinfo/spacewalk-devel

Reply via email to