5 Replies Latest reply: Aug 19, 2014 8:37 PM by Fernando Tonial RSS

    "-1" added to table name after partial reload

      My application is designed in a 3-tier manner: tier 1=data access saving qvds, tier 2=building QVWs from QVDs, tier 3=document.

      Everything works well if I do a regular reload. My problem is when I do a Partial Reload. The only table I am partially reloading is Insights. After a partial reload Insights does not get refreshed and I see a new table Insights-1 in the diagram. The auto-created Insights-1 contains refreshed data while Insights does not.

       

      Here's the script I am using to reload it (this script lives in tier 2, reading from the QVD generated in tier 1:

       

      Insights:

      replace LOAD Id, date(InsightDate, 'MM/DD/YYYY') as calendar_date, Priority, Issues, Perception, Recommendations, AddressedByClient, time_period_key

      FROM

      [Insights.qvd]

      (qvd);

       

      Everything OK when I perform a regular Reload:

      question_ok.jpg

       

      After the reload I insert one more record into the Insights database table, so that I can verify my partial reload will work.

      question_3.jpg

      After performing a partial reload:

      question_final.jpg

       

       

      Why did this Insights-1 table get created? How do I resolve this?

       

      Thank you so much for your help.

       

      QV version 11.20.12235.0

        • Re: "-1" added to table name after partial reload
          Fernando Tonial

          Hi,

          Remove QUALIFY *; from your script.

          Rename fields using "As"

           

          Ex.

          Id As [Insight Id],

           

          Best Regards.

          Tonial.

            • Re: "-1" added to table name after partial reload

              Fernando,

              I forgot to mentioned that QUALIFY *; is removed in the following manner:

              if IsPartialReload()=0 then

                 QUALIFY *;

               

              if I leave the QUALIFY *; then I still get the Insights-1, but it does not come linked to Calendar.

              question_wrongagain.jpg

               

              Thanks but your suggestions did not change my outcome.

                • Re: Re: "-1" added to table name after partial reload
                  Fernando Tonial

                  Hi,

                  Qualify *; don't work with partial reload.

                  Try this;

                   

                  Insights:
                  Replace
                  LOAD
                    Id AS Insights_Id,
                    date(InsightDate, 'MM/DD/YYYY') as Insights_calendar_date,
                    Priority AS Insights_Priority,
                    Issues AS Insights_Issues,
                    Perception AS Insights_Perception,
                    Recommendations AS Insights_Recommendations,
                    AddressedByClient AS Insights_AddressedByClient,
                    time_period_key
                  FROM
                  [Insights.qvd]
                  (qvd);
                  
                  

                   

                  Best Regards.

                  Tonial.

                    • Re: Re: "-1" added to table name after partial reload

                      Hi Fernando,

                      As I said before, qualify * is NOT used when a partial reload is called because of the if IsPartialReload()=0 statement.

                       

                      I did what you suggested and I still have 2 tables after the partial reload:

                      question_wrongagain2.jpg

                       

                      It appears it has something to do with the fields being qualified in the original table, and appearing unqualified in the Insights-1 table which is auto-generated for some reason.

                       

                      Thanks a lot for trying to help me!

                      Gus

                        • Re: Re: Re: "-1" added to table name after partial reload
                          Fernando Tonial

                          Hi,

                          put your script here, i can help you more. But, you should do both loads without the qualify

                          See this.

                           

                          Insights:
                          Replace 
                          LOAD 
                            Id AS Insights_Id, 
                            date(InsightDate, 'MM/DD/YYYY') as Insights_calendar_date, 
                            Priority AS Insights_Priority, 
                            Issues AS Insights_Issues, 
                            Perception AS Insights_Perception, 
                            Recommendations AS Insights_Recommendations, 
                            AddressedByClient AS Insights_AddressedByClient, 
                            time_period_key
                          FROM
                          [Insights.qvd]
                          (qvd);
                          
                          if IsPartialReload()=0 Then
                          Insights:
                          LOAD 
                            Id AS Insights_Id, 
                            date(InsightDate, 'MM/DD/YYYY') as Insights_calendar_date, 
                            Priority AS Insights_Priority, 
                            Issues AS Insights_Issues, 
                            Perception AS Insights_Perception, 
                            Recommendations AS Insights_Recommendations, 
                            AddressedByClient AS Insights_AddressedByClient, 
                            time_period_key
                          FROM
                          [Insights.qvd]
                          (qvd);
                          EndIf
                          


                          Best Regards.

                          Tonial.