text:
Resolver / PPM 2000 Incident Management Platform Profile
By Brian Karas, Published Jun 20, 2017, 08:49am EDT
You might have seen the company whose employees wear hockey jerseys at trade shows and wondered "what do they do?"
PPM 2000 has been active in the security industry for nearly 30 years. In 2016, PPM 2000 was combined with risk management provider Resolver, through an acquisition of both companies by Klass Capital, to create a software platform for large organizations to manage security incidents and related risk factors.
This report profiles the Resolver (formerly PPM 2000) Perspective incident management platform, including revenue, customer base, functionalities, reporting, pricing and sales model.
Company **********
*** ****'* *********** ******* has ****** ** ******** management ******** ******* ** Resolver. **** ** *** result ***** **** ***** ********** ** **** ***** *******, *** **** ******** Resolver, *** ************ *** *** *********, ******* *** ******** brand.
********, *** *********** ** risk ********** *** ********** software, *** ****** * combined **** **********/******** ********** platform.
*** ******* ******* ~$*** ** annual ******* *** ******* ~*** people.
******** ******* ** *** acquisitions **** *** ********, but ***** *** ****** they **** ******** * total ** $*** **** the ******** ********, ********* a ****** $** ********** to **** *** ******** [link ** ****** *********].
Incident ********** ********
**** ****** ******* ** the ******** ********** ******* of *** ********, ** that ** **** ******** to ****'* ********.
********'* ******** ********** ********, ******** ***** ** ***********, is ******** ** **** security ********** ******* ****** events **** * ****** of *******, ********* ****** control *******, *****, ************* sensors, *** ***** ********* (******, company *********, *********, ******* calls). ** **** **** *** platform ** **** ** expanded ****, ****** **** less ***** ** ***** an ******* ** ***** security ********.
*********** ** **** ******** deployed ** * ***** app, ****** *******/********** ******* are ********* ** ****. Users ********* ******** **** Perspective ******* * *** UI, *** ******-****** **** are **** *********.
*** ******* *************, ***** input ** **** **** as ******** **** *** Resolver ********. **** ******** not **** **** ***** actual ********* (*.*.: ******** events **** ****** **** alarms, ******* ** "********** persons", ******, ***.) *** also **** ***** *********, contractors, ********, ***.
*** ******** ********** ********, an ******** "********" ****** can ***** *********** ***** the ******** ** ** shared ***** ********* ********** to *** ***** (******, security ********, ********** *********, etc.).
*** ******** **** ***** users **** ************ ******* events, ** ******* ****** and ********** ******* (*.*.: determining **** ***** *** grab ********** ** * parking *** **** ***** occur **** * ********** person *** **** ** the ********). *** ***** below ***** ** ******* of ****, * ****** associated **** * ****** of *********, ** **** and ***** ************ ** another ****** *** ***********:
Reporting *** ********
***** *** ****** ******* and ********* ** ***** items **** ****** ** monthly ********* ******** ** target *****, **** **************, crime *****, ***. **** data *** **** ** pulled ** **** ***** sources, *** ********* ******* shows * ****-**** ******* on *** ****, ***** charts ** *** ******, and **** ***** **** Twitter *** ***** ******* on *** *****:
Customer ****
******** ****** ~*,*** ********* globally, ********* ****** ** large ***********, ************, ** larger *-** *************. ***** customers **** ********* **** their *** ****-**** ******** personnel, ******** *** ********** to ****** ** **** time.
** **** ***** ********* come ** ******** ***** they **** ***** ***** methods ** ***** *** manage *********, *** **** common ***** ***** ****** spreadsheets, ********* ** * company **************.
*********, ******* ****** ** ~$55/user/month, ****** *** ***** sheet ** ** *** process ** ***** ********, according ** ********. *** new ******* **** ****** have * **** **-***** license ***, **** * per-user ******* ***. ** the *******/******* *** *** grown, *** ******* **** the **** ** ****** product ******* ** * way **** ******* ******* flexibility *** *********.
Direct ***** *****
* ****** ** ***-**** sales ******** ** *******, though ******** **** **** do ********* **** **** partners ** ***** ***** process. **** ****** ***** is ****** ** *** complexity *** ******* ******* of *** *******, ******* that **** ** *********** for ******** ** **** the **** ************* ** the ******* ******** ** tailor * ******** ** customer ************.
Risk ********** ***-**
****** *** **** **** the ******** ********** ******** can **** ** *** into * **** ********** module, ** **** ************ assess ******* ****. ***** like ******* ** * high ****** ** ******-**** alarms, ** ******* ** unescorted ******** *** ** useful ** **** ********** teams ** ********* ****** controls ** ******* ***** things **** ********* ** the ******.
Deployment ******** *** *******
*** ** *** **** degree ** *************, ******** on ********-******** ****, *** application ************, ********** ********* are ********* ******** ** weeks, ********* ** ********. Deployment ***** ****** **** some *********** ********** *** questionnaires * ******** ***** out ** *******, *** then *** ******** ** the ******* ***** *** configuration ** ********* ** Resolver ************ ******** *********. Training ** ***** ** also ******** ** ****** that *** ******* ** utilized *********** *** **** is ********** ********.
Competitors / ************
*** *********** **** ***** similar ********* *** ** ******** *** ***** *******. **** ** ***** platforms ***** ******* ******** management, *** *****/************* ************ tools. ***** ******* **** offers **** ********** *********, similar ** ********. **** does *** **** ****** about **** ***** ** fairly ******** *** ***** opinions ** *** ** superior.
Ross Vander Klok
We used to use PPM2000 when they were at the top; big, fat and happy. Used them for years , basically from when they were a DOS program. Got to the point where we had to upgrade to Perspective and they were grossly overpriced and customer service was nonexistent because they were the best and they knew it. "Oh you have been a customer for twelve years? Nice, but no consideration given for that, what is the PO# or quit wasting my time!" Was the attitude. They were the top of the industry kind of like Pelco, but with no customer service!
Sounds like they have their act together now which is good, but we moved on to Report Exec years ago and have never looked back.
Agree: 1 Disagree: 1 Informative: 5 Unhelpful Funny Fav
Brian McIlravey
In reply to Ross Vander Klok | 07/10/17 02:24pm
Interesting feedback. As the former CEO of PPM I can say with certainty we never felt 'we knew it' for being 'at the top'. For the most part I would say the statements above about no consideration for long term customers or "what is the PO# or quit wasting my time" would not have ever been the norm. PPM and Resolver have been in business for 25+ years and have had a solid reputable history. While we certainly expect not all customers are always happy, Its concerning to see the statements above.
Michael Gonzalez
Integrated Security Technologies, Inc.
I've been using Perspective for several years now, I think it's the best one out there by far. We're using almost all of the modules, including dispatch, workflow, and visual analysis. Customer service has been helpful, but we're using the on premise enterprise version as well as spending the money on the enhanced SSA, so I'm not sure if my experience reflects the same as what could be expected for the subscription service. Personally, I don't think there should be a difference in customer service based on how much a customer is paying - that's not a good look at all.
My only real criticism is the complexity of the reporting and analysis modules. There are quite a few prebuilt reports and queries that can be run, most of what you'd expect to need for a security operation. For enterprise users, it's important to have a user friendly way of building custom reports, but that is lacking in Perspective. The upside is there are quite a few videos and classes available online, but the custom report lesson alone is several hours long (which speaks to the complexity of report building). I don't really have time for that with all of my other duties, so we're not using it to its full potential which is a shame. I'm hiring a security program analyst this year, so hopefully we'll start getting more out of all of this data we're collecting from various systems.
The dashboard for Perspective is a very useful tool for day to day use of the system. At a glance, security operations centers can see what facilities carry the most risk and can dispatch personnel accordingly. That is really a force multiplier, as we're able to cover hotspots with extra patrols until we see the numbers going down to an acceptable level through security presence and active patrolling.
Agree: 1 Disagree Informative: 6 Unhelpful Funny Fav
IPVM | In reply to Michael Gonzalez | 06/20/17 08:06pm
Thanks for the first-hand feedback. Interesting to hear how you use the software to drive guard patrols. Can you share how many incidents per week on average you enter into your system and their sources? (e.g.: guards, employees, etc.)
IPVMU Certified | In reply to Michael Gonzalez | 06/21/17 11:52am
Great info! Are you using the dispatch module as well Michael? How well does that integrate if you are? Do you pull metrics more from the Dispatch side or the reporting side? We have found that the bulk of our actionable metrics actually come from the dispatch side which surprised us.
Hi Ross, yes, we're using the dispatch module pretty extensively. All of the integrations w/ Perspective are relatively straight forward, Resolver assigns support personnel to those types of projects as part of the SSA. I'd say we're 50/50 as far as actionable metrics are concerned between the dispatch and incident reporting modules. The reporting capabilities are great, but the report building module is a bit confusing and cumbersome. I'm sure it would make a lot more sense if I had time to take all of the classes, but for now I'm just getting by with what I know.
In reply to Michael Gonzalez | 06/29/17 01:13pm
Do your dispatch personnel find the dispatching module to be user friendly? Do you recall how much training was involved before the dispatch personnel were fully functional with it? Thanks.
Hi Brian, it really depends on the month, it is summer for the kids right now, so things are getting a bit busier. Our average input of incidents by month averages between 45-100, and there are roughly 75 people inputting data. We have guards at fixed guard stations entering information, as well as mobile officers using the iPad app w/ a VPN back to our servers. There is also a workflow which allows employees to report incidents via a web portal, but we generally ask them to call into the Command Center to report things.
In addition to the statistical analysis of incident data, the dispatching module provides mountains of data that can be used for various things, including measuring individual officer or team performance. For example, guard A averages 36 minutes to patrol Zone 1 at Site X, compared to guard B who does it in 15 minutes. For security operations, faster isn't always better and can be indicative of an officer who is rushing through his patrol and not really paying attention. We can also use it to randomize zone patrols at facilities to decrease predictability in case of hostile surveillance. All of the activities we program into the system can be given a time limit. This sets off an alert in the Command Center if they haven't checked in before that time expires, which serves an important safety function.
Our Security Command Center is the primary user of the dispatching module, they're inputting between 3,600 - 4,800 individual activities per month, all of which can be escalated to an incident report if needed. When they do escalate, the activities are appended to the incident report so we know the entire timeline of events.
On a side note, I'm working on an integration w/ CCURE 9000/Victor Site Manager right now which will automatically create an incident report for equipment malfunctions when the health monitor reports the loss of heartbeat reporting from any of our supervised devices. We have more than 6,000 devices connected to our system at the moment, so the more efficiently we can automate and track maintenance issues, the easier my job is.
Brandon Knutson
IPVMU Certified | In reply to Michael Gonzalez | 06/20/17 09:20pm
Michael, Excellent info. What industry are you in?
In reply to Brandon Knutson | 06/20/17 11:21pm
HI Brandon, I work for an electrical utility, we use all of these systems to monitor power plants and electric substations.
Do they have their own in house software integration services, or at least a list of third party developers that they can refer you to? One problem I've found with a lot of products that depend on integrating with other systems to leverage them best is they will tell you "here is our API, but you're on your own finding a code developer to write an integration for you".
Hi Luis, this is from their webpage: http://www.resolver.com/wp-content/uploads/2016/05/Perspective-Connectors.pdf
IPVM | In reply to Luis Carmona | 06/26/17 07:44pm
Yes, they do have a professional services team that is often part of the deployment engagement to handle customizations and connectivity.
We have a list of COTS integration we can get for you. We can also build the integrations internally if the system is not yet COTS. Contact me if you have more questions.
IPVM | 06/28/17 05:56pm
UPDATE - Resolver has raised another $20M for "acquisitions to expand product capability in the information security market". Klass Capital was listed as the primary investor in this round as well.
Spoke with Resolver about their latest funding and put together a report here: Resolver Raises $20M For Acquisitions


text:
European Council Chief Invites ECB, IMF Heads for Greece Bailout Summit
© Fotobank.ru/Getty Images / Sean Gallup
https://sputniknews.com/politics/201506201023614252/
Donald Tusk invited heads of the European Central Bank, Eurogroup and the International Monetary Fund for the urgent summit on the Greek debt.
BRUSSELS (Sputnik) – President of the European Council Donald Tusk invited heads of the European Central Bank, Eurogroup and the International Monetary Fund for the urgent summit on the Greek debt scheduled for Monday, Tusk's invitation letter said.
"I have also invited the Presidents of the ECB, of the Euro Group and the Managing Director of the IMF to join us," the letter said.
© Flickr / International Monetary Fund
REVEALED: IMF 'Trained' Greek Journalists in DC to Promote its Position in the Media
Tusk stressed that it was time to call an urgent meeting given the fact that the current bailout package for Greece expires on June 30 and there is still no decision on Greece's future.
"Given the outcome of the Euro Group meeting on 18 June, I consider that we cannot wait until our regular meeting to discuss the situation of Greece at the highest political level," Tusk said in a letter.
The forthcoming negotiators will make another attempt to reach a new agreement on Athens's debt relief before the expiry of its current bailout program.
Greece's overall state debt stands at $350 billion, of which $270 billion is owed to its three key lenders — the European Commission, the European Central Bank and the International Monetary Fund.
Greece Has to Choose Between Creditors' Proposal, Default - EC President
Greece Could Join BRICS Bank on Equal Basis as Soon as Launched
Greek Economic Crisis Reflects EU Problems - Tsipras
International Monetary Fund, The European Central Bank (ECB), European Council, Donald Tusk, Greece

redpajama_set_name: RedPajamaCommonCrawl


text:
Ku-ring-gai Municipality
Lindfield
Report for Lindfield
Population stats for Lindfield, New South Wales and nearby amenities. Scroll down and click on things to see more detail.
Planning Applications (24)
89B Bent Street, Lindfield, NSW
DA - Alterations/additions bathroom extension and deck 16th May 2017 Ku-ring-gai Council
80 Bent Street, Lindfield, NSW
Alterations and additions 7th March 2017 Ku-ring-gai Council
47 Beaconsfield Parade, Lindfield, NSW
Proposed modification to DA0031/16 - enlargement to bedroom window. 28th July 2016 Ku-ring-gai Council
28 Cocupara Avenue, Lindfield, NSW
Timber deck plus storage room and associated landscaping works. 13th July 2016 Ku-ring-gai Council
3 Burraga Place, Lindfield, NSW
Proposed modification to DA0411/14 - Adjustment to front setback. 12th May 2016 Ku-ring-gai Council
Alterations and additions to the existing dwelling. 22nd January 2016 Ku-ring-gai Council
Proposed Alterations and additions to existing single storey residence plus modifications to existing garage and driveway 5th November 2015 Ku-ring-gai Council
Internal changes, widening of entrance and changes to staircase. 14th May 2015 Ku-ring-gai Council
Dwelling development - alterations and additions to the existing detached dual occupancy dwelling, including extension of the kitchen, dining and a new gable roof and deck. 3rd December 2014 Ku-ring-gai Council
Addition to first storey 9th October 2014 Ku-ring-gai Council
5 Ivey Street, Lindfield, NSW
Amend DA with internal changes to functions of existing rooms, door change to garage 29th September 2014 Ku-ring-gai Council
Demolition of existing deck, construction of new deck, new balustrade and steps 2nd September 2014 Ku-ring-gai Council
10 Polding Road, Lindfield, NSW
Modification to stormwater, from Detention to Retention. 27th August 2014 Ku-ring-gai Council
Alterations and additions to existing dwelling 22nd May 2012 Ku-ring-gai Council
Alterations and additions to existing two storey dwelling including a new rear garage and swimming pool 12th April 2012 Ku-ring-gai Council
0 / 95B Bent Street, Lindfield, NSW
Subdivision development 17th October 2011 Ku-ring-gai Council
Residential ancillary development 1st July 2011 Ku-ring-gai Council
17A Ivey Street, Lindfield, NSW
Dwelling development 25th March 2011 Ku-ring-gai Council
Additions and alterations - 1st floor addition , ground floor alterations amd landscape works 29th September 2010 Ku-ring-gai Council
Alterations & additions to existing dwelling including first floor additions 21st September 2010 Ku-ring-gai Council
95A Bent Street, Lindfield, NSW
Build additonal house on property 3rd August 2010 Ku-ring-gai Council
Carport 25th June 2010 Ku-ring-gai Council
Internal alterations & ancillary 1st June 2010 Ku-ring-gai Council
Alterations & additions including kitchen laundry bifold doors deck garage & front fence and gate 17th May 2010 Ku-ring-gai Council
Family Score: 10 / 10
Affluence Score: 10 / 10
Safety Score: 9 / 10
Community Score: 10 / 10
Local Government Area Stats
For unlimited access, we just need your email (no payment!)
Killara (NSW)
Chatswood West
East Killara
East Lindfield
Macquarie Park
City of Willoughby
Hornsby Municipality
Warringah Municipality
City of Ryde
Nearby Regions
Sydney Western suburbs
Contains Microburbs


His Holiness Bhakti Purushottam Swami is from India. He is sanyasa disciple of H H Jayapataka Swami. He has been with great dedication serving Mayapur since decades.
He extensively travels and preaches in South East Asia, Bangladesh, US and Middle East. He preaches in english, hindi and bengali. He is well known for his narrations of Lord Sri Chaitanya Mahaprabhu's pastimes.


Home » Aspects » Is Your Natal Chart "Fixable" ?
One way to look at it: Saturn is Capricorn and the opposite of Capricorn is Cancer and thus… radical self-love, acceptance, and nurturing, the ideal mother love, surely is the antidote, right? The way to solve Saturn problems? With love? Warm for the cold.
Like, when someone comes down hard on you and you tell them: I love you anyway. I'm not talking about situations of abuse or self-sacrifice. I'm kinda talking about the way you talk to yourself.
Damn. The next time someone disappoints you, experiment with this: instead of being Saturn, tell them that you love them anyway.
How do you "solve" your Saturn "problems" ?
Can You Get What You Want If You Don't Know What You Want?
Interesting. Profound. I find people bring out the Capricorn to my Cancer. They're like, are you uncomfortable? Insecure? Is there something you don't like about your way of living? Find small ways to change it or be stuck forever, I don't want to hear it.
I'm just catching up on a lot of your posts (32 to be exact). Right around the time you wrote this one – I, Cancer Sun, got into a tiff with Mom – Cap Sun. It's a perennial thing with us. I did exactly that, told her that despite all our misunderstandings I loved her very much. Her response? "Thank you, but it would be nice if your actions aligned with words sometimes." Not sure how my head didn't explode in that moment. I left.
Really funny with the timing. Something must've been in the air. Oh well, tried, didn't work.
Ummm – sigh — I AM the Saturn problem…. just hate that.
I love your answer best 🙂 I think it would melt an iceberg.
Work…the work of self-love is never ending.
Just like that! I have Saturn in the 1st and Venus in Capricorn. I didn't even realize I was already doing this MP until you put it into words. Thank you!


text:
Website allows reporting of blocked railroad crossings
WASHINGTON – U.S. Senator Dick Durbin, D-Illinois, announced that the Federal Railroad Administration will establish a website where the public can report blocked rail crossings by freight trains in an effort to collect better data and prevent blocked rail crossings, which are jeopardizing safety in communities across Illinois.
Durbin helped secure provisions in this year's Fiscal Year 2020 appropriations bill that directed FRA to create this website in order to improve passenger rail service throughout Illinois.
"Blocked rail crossings are impacting Illinois communities much too often. The new FRA website will help empower the public to hold the freight railroads accountable when they are blocking crossings that run through our state causing unnecessary traffic delays and jeopardizing the safety of my constituents," Durbin said. "The FRA must keep Illinois rail moving forward as efficiently and safely as possible."
"Our ability to address this issue is only as effective as the data we collect," FRA Administrator Ronald L. Batory said. "Therefore, we are hoping to engage citizens and all levels of government to help spread the word about this important tool."
Durbin has urged FRA to take a more active role in preventing the blocking of grade crossings by freight trains, an increasing problem in communities around Illinois.


The Henn-na Strange Hotel located in Nagasaki Prefecture has fired hundreds of robots after they began causing trouble for their human colleagues. According to the hotel, these robots were not doing a good enough job and therefore, had to be laid off.
One of the robots that were fired was named Churi. Churi was a doll-shaped assistant robot that was placed in each room of the hotel. The purpose of Churi was to help the guests staying in the room plan their stay by answering questions regarding local attractions. However, Churi was struggling with even the basic of questions such as 'what time does the theme park open?' The guests had to then turn towards human employees at the hotel and this created problems for those staff members since they were not able to complete their tasks.
Two velociraptor receptionists were also laid off. The tasks assigned to these robots included greeting guests and facilitating them with the check-ins. However, the robots were not able to photocopy the guest passports. This is a requirement for checking into a Japanese hotel. The task of photocopy again required input by a human thus, making the presence of the robot useless.
Sadly, the robots that had been staffed were not up to the task. The older-gen robots were not able to stay on top of the tasks and upgrading would have cost the hotel a lot. The baggage robots, for instance, were only able to access 24 rooms out of the total 100 rooms and would only work in perfect weather conditions.
The hotel was the highlight back in 2015 when it opened with its unique approach. Another approach that is becoming the norm is that of automated hotels. Such hotels do not hire robotic staff but rather make use of easy systems for seamless check-ins and keyless access to the rooms.


LOUGHBOROUGH Friday 18th January – Intelligent Energy, the Loughborough based fuel cell engineering company, is this week launching a £100,000 Charitable Trust Fund to benefit local community groups and organisations in the Charnwood area. To launch the Trust, Intelligent Energy this week hosted an event which was attended, by The Lord-Lieutenant of Leicestershire, Mr Mike Kapur OBE and a number of key local figures from various organisations in and around the Charnwood area.
Applications for Trust funds can now be made via the company's website and the Trust will be welcoming applications from groups and organisations in the local community.
The Trust has been established to support local causes in need of financial assistance which, support and aid, amongst others; community groups, young people, sport and lifelong learning.
The Loughborough based Trust will be governed by a committee comprising of three Intelligent Energy employees and three external representatives; Jon Walker, Director of Enterprise Development at Loughborough University, Councillor Eric Vardy, Lead Member for Planning, Inward Investment and Tourism Strategy at Charnwood Borough Council and Leon Spence, Press Officer and Caseworker to the Rt Hon Nicky Morgan, Member of Parliament for Loughborough.


The undefeated MSVU Mystics (17-0) host the second-place Mount Allison Mounties in ACAA Women's Volleyball action on Saturday in Halifax, NS. Mount Allison (12-6) has won three straight and will look to avenge a 3-1 defeat at the hands of MSVU on Jan. 19. The Mystics, currently ranked No. 6 in the CCAA, are led by left side Madison Urquhart, who leads the conference with 4.08 kills per set.
Two CCAA Top 10 teams will clash Friday night in RSEQ Women's Basketball action. Sainte-Foy, who will host CCAA Women's Basketball Nationals next month, is 9-1 and ranked No. 4 in the nation. They'll travel to Laval to take on Montmorency (8-2), which has won three straight and is currently ranked No. 7 in the CCAA. The game will feature the top two scorers in the RSEQ: Donna Ophombo Ntambue leads the Nomades with 17.9 points per game, while Frédérique Beaudry-Blais is averaging 17.6 points per game for the Dynamiques.
The top three teams in both the OCAA's East and West divisions are in tight races to finish the season at the top of their respective standings. The George Brown Huskies (11-3) currently hold a slight edge over the Durham Lords (11-4) for second in the East - based on win percentage - but the teams are 1-1 against each other this year. This rubber match may solidify each team's position as the playoffs near.
Anyone wanting a preview of teams that could represent the ACAC at the CCAA National Championship should check out Red Deer versus Lethbridge this weekend. The RDC Kings (16-6) are guaranteed a spot as Hosts and the Lethbridge Kodiaks (20-0) have the best record in the conference. The undefeated Kodiaks are also ranked second in the CCAA and the historically strong Kings are close behind at No. 8.
PACWEST teams have been prominent in the CCAA Women's Volleyball Rankings this season, including the No. 3 Douglas Royals and No. 10 UFV Cascades. Douglas (14-6) will visit UFV (12-8) on Thursday then host the Cascades in a rematch the following night. The Royals are currently second in the conference standings, but UFV is only a few points behind in fourth with only one more week of play to go.


text:
28/04/2020 - India / Tripura / Agartala - Manju Bauri, mother of 23, is an immigrant workforce, originally from Rajasthan, working in Agartala, his eldest son plays with his newborn baby, who was born on April 13, in the evening, during the national confinement imposed by the government as a preventive measure against COVID-19 in Agartala, capital of the northeastern state of Tripura, India. The government moved 33 Rajasthanins to a school, which got stuck due to the sudden confinement, in Agartala. The mother is determined, she will call him - LOCKDOWN-, because he was born during confinement.
Manju Bauri, mother of 23, is an immigrant workforce, originally from Rajasthan, working in Agartala, his eldest son plays with his newborn baby, who was born on April 13, in the evening, during the national confinement imposed by the government as a preventive measure against COVID-19 in Agartala, capital of the northeastern state of Tripura, India. The government moved 33 Rajasthanins to a school, which got stuck due to the sudden confinement, in Agartala. The mother is determined, she will call him - LOCKDOWN-, because he was born during confinement.


text:
package com.google.cloud.talent.v4beta1.samples;

// [START jobs_v4beta1_generated_CompanyService_ListCompanies_async]
import com.google.api.core.ApiFuture;
import com.google.cloud.talent.v4beta1.Company;
import com.google.cloud.talent.v4beta1.CompanyServiceClient;
import com.google.cloud.talent.v4beta1.ListCompaniesRequest;
import com.google.cloud.talent.v4beta1.TenantName;

public class AsyncListCompanies {

  public static void main(String[] args) throws Exception {
    asyncListCompanies();
  }

  public static void asyncListCompanies() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (CompanyServiceClient companyServiceClient = CompanyServiceClient.create()) {
      ListCompaniesRequest request =
          ListCompaniesRequest.newBuilder()
              .setParent(TenantName.of("[PROJECT]", "[TENANT]").toString())
              .setPageToken("pageToken873572522")
              .setPageSize(883849137)
              .setRequireOpenJobs(true)
              .build();
      ApiFuture<Company> future =
          companyServiceClient.listCompaniesPagedCallable().futureCall(request);
      // Do something.
      for (Company element : future.get().iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}
// [END jobs_v4beta1_generated_CompanyService_ListCompanies_async]

redpajama_set_name: RedPajamaGithub


Thursday the 30th July was the day we, Libera, left for our tour of some of the Southern states of the USA. As America is behind us in time, we managed to arrive in Dallas that very evening, which was rather useful, as we could fall asleep instantly; and rather comfortably, may I add, as the suites in this hotel were fantastic – fit for a king (although not an English one – George III take note).
In our first state, Texas, we went into the centre of Fort Worth to see a cattle drive. It was just like in the movies. Dust, cowboys and wagons – I even said to one cowboy "howdy!" and he replied "howdy, partner!" How cool is that?! We later went to the nearest science museum, where there was a 4-D film showing the beginning of time right up to present day. It was really nasty when the dinosaur in the film roared, as spittle produced from the back of the seats in front of us was flung in our faces. Obviously, as dinosaurs no longer exist, it wasn't real spittle, only water, but it was a real surprise. 4-D is really clever and very realistic! That same day, we went to the ranch of these very nice Texan people, who made us lovely Tex-Mex food, and we took a hayride around their estate to see their animals. The had llamas, moose – I think antelopes as well. They basically had a whole zoo on their land! It was awesome. They also let us use their pool, which was very nice of them.
The Preston Hollow Presbyterian Church was really nice. It was really big, and completely white inside, so that if we stood against a wall in our robes, all that would have been visible would have been a head or hands! The service that we attended was different to the ones we normally sing at, but good different. Everyone was very welcoming, and there was a really pleasant atmosphere. We later did a concert in the same church, and that went rather well. I was surprised at how many fans there were from that part of the US! For lunch we went to another kind person's house, where we had traditional American dishes, like burgers and hotdogs. It was really cool.A few of us started to play this game called Taboo, where you have to make the people on your team guess the thing you have been assigned to describe, without using certain words. It was really fun.
The next evening, we performed a concert in the Arborlawn United Methodist Church. That church was even bigger than the previous one, and this one was shaped a bit like the Church in The Simpsons! The start of this performance was really atmospheric, as we walked up in lines from the back of the church with our hoods up, so we looked like monks. There were also these air-con fans on the floor, and if we stood on top of them in our robes, it inflated them and made us look really fat. It was quite funny. We had a good load of people coming to this concert too, and they all seemed to really enjoy it. We were glad about that.


text:
package com.xruby.compiler.codedom;

public class UnaryOperatorExpressionTest extends TestingAstTestCase {
	public void test_negative_one() {
		String program_text = "-1";

		String expected_result =
			"1\n" +
			"-@\n" +
			"EOF";
		assertAstOutput(program_text, expected_result);
	}

	public void test_precedence_minus() {
		String program_text1 = "-1.to_s";
		String program_text2 = "(-1).to_s";
		assertAstEquals(program_text1, program_text2);
	}

	public void test_precedence_not() {
		String program_text1 = "!false.to_s";
		String program_text2 = "!(false.to_s)";
		assertAstEquals(program_text1, program_text2);
	}

}


text:
Hennessy's Master Blender's Selection No. 4 wins 'best Cognac' in Robb Report Singapore's Best of the Best 2021 awards
Robb Report Singapore
In this year's Best of the Best, we continue to honour the brands and people who have continued to create covetable products, even in the midst of a global pandemic. Here, we have Hennessy's Master Blender's Selection No. 4 win 'best Cognac' in the wine and spirits category
The fourth edition in a limited series from renowned Cognac house Hennessy is also the second created by eighth-generation master blender Renaud Fillioux de Gironde, who says the special release was inspired by the sights, sounds and smells encountered during a winter walk in the mountains. The bottle contains eaux de vie aged for at least five years in French red-oak barrels, with apricot, candied orange and fruity spice on the palate, but with a lightness one might not expect from such a rich Cognac. The Master Blender's Selection is truly a series of one-offs, a world away from the core VS and VSOP expressions and never to be re-created, so each one – and especially this one – is worth a trophy position on your bar cart.
Best of the Best 2021: The McLaren 765LT tops the supercar category
Best of the Best 2021: Massari Design wins 'best private jet interior concept'
Best of the Best 2021: Princess Yachts' X95 wins 'best yacht'
Best of the Best 2021: The Bentley Flying Spur wins 'best interior'
Best of the Best 2021: Bvlgari wins 'best ultra-thin movement'


text:
package org.apache.carbondata.datamap.bloom

import java.io.File
import java.util.{Random, UUID}

import org.apache.commons.io.FileUtils
import org.apache.spark.sql.{CarbonEnv, SaveMode}
import org.apache.spark.sql.test.Spark2TestQueryExecutor
import org.apache.spark.sql.test.util.QueryTest
import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach}

import org.apache.carbondata.core.constants.{CarbonCommonConstants, CarbonV3DataFormatConstants}
import org.apache.carbondata.core.datamap.status.DataMapStatusManager
import org.apache.carbondata.core.util.CarbonProperties
import org.apache.carbondata.core.util.path.CarbonTablePath
import org.apache.carbondata.datamap.bloom.BloomCoarseGrainDataMapTestUtil.deleteFile
import org.apache.carbondata.datamap.bloom.BloomCoarseGrainDataMapTestUtil.createFile
import org.apache.carbondata.datamap.bloom.BloomCoarseGrainDataMapTestUtil.checkBasicQuery

class BloomCoarseGrainDataMapFunctionSuite  extends QueryTest with BeforeAndAfterAll with BeforeAndAfterEach {
  val bigFile = s"$resourcesPath/bloom_datamap_function_test_big.csv"
  val normalTable = "carbon_normal"
  val bloomDMSampleTable = "carbon_bloom"
  val dataMapName = "bloom_dm"

  override protected def beforeAll(): Unit = {
    deleteFile(bigFile)
    new File(CarbonProperties.getInstance().getSystemFolderLocation).delete()
    createFile(bigFile, line = 2000)
    sql(s"DROP TABLE IF EXISTS $normalTable")
    sql(s"DROP TABLE IF EXISTS $bloomDMSampleTable")
  }

  override def afterEach(): Unit = {
    sql(s"DROP TABLE IF EXISTS $normalTable")
    sql(s"DROP TABLE IF EXISTS $bloomDMSampleTable")
    CarbonProperties.getInstance().addProperty(CarbonCommonConstants.CARBON_DATE_FORMAT,
      CarbonCommonConstants.CARBON_DATE_DEFAULT_FORMAT)
  }

  test("test bloom datamap: index column is integer, dictionary, sort_column") {
    sql(
      s"""
         | CREATE TABLE $normalTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata' TBLPROPERTIES('table_blocksize'='128')
         |  """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata' TBLPROPERTIES('table_blocksize'='128', 'dictionary_include'='id', 'sort_columns'='id')
         |  """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable
         | USING 'bloomfilter'
         | DMProperties('INDEX_COLUMNS'='city,id', 'BLOOM_SIZE'='640000')
      """.stripMargin)

    var map = DataMapStatusManager.readDataMapStatusMap()
    assert(map.get(dataMapName).isEnabled)

    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $normalTable
         | OPTIONS('header'='false')
         """.stripMargin)
    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $bloomDMSampleTable
         | OPTIONS('header'='false')
         """.stripMargin)

    map = DataMapStatusManager.readDataMapStatusMap()
    assert(map.get(dataMapName).isEnabled)

    sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable").show(false)
    checkExistence(sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable"), true, dataMapName)
    sql(s"select * from $bloomDMSampleTable where id = 1").show(false)
    sql(s"select * from $bloomDMSampleTable where city = 'city_1'").show(false)
    checkBasicQuery(dataMapName, bloomDMSampleTable, normalTable)
    sql(s"DROP TABLE IF EXISTS $normalTable")
    sql(s"DROP TABLE IF EXISTS $bloomDMSampleTable")
  }

  test("test bloom datamap: index column is integer, dictionary, not sort_column") {
    sql(
      s"""
         | CREATE TABLE $normalTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata' TBLPROPERTIES('table_blocksize'='128')
         |  """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata' TBLPROPERTIES('table_blocksize'='128', 'dictionary_include'='id', 'sort_columns'='name')
         |  """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable
         | USING 'bloomfilter'
         | DMProperties('INDEX_COLUMNS'='city,id', 'BLOOM_SIZE'='640000')
      """.stripMargin)

    var map = DataMapStatusManager.readDataMapStatusMap()
    assert(map.get(dataMapName).isEnabled)

    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $normalTable
         | OPTIONS('header'='false')
         """.stripMargin)
    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $bloomDMSampleTable
         | OPTIONS('header'='false')
         """.stripMargin)

    map = DataMapStatusManager.readDataMapStatusMap()
    assert(map.get(dataMapName).isEnabled)

    sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable").show(false)
    checkExistence(sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable"), true, dataMapName)
    sql(s"select * from $bloomDMSampleTable where id = 1").show(false)
    sql(s"select * from $bloomDMSampleTable where city = 'city_1'").show(false)
    checkBasicQuery(dataMapName, bloomDMSampleTable, normalTable)
    sql(s"DROP TABLE IF EXISTS $normalTable")
    sql(s"DROP TABLE IF EXISTS $bloomDMSampleTable")
  }

  test("test bloom datamap: index column is integer, sort_column") {
    sql(
      s"""
         | CREATE TABLE $normalTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata' TBLPROPERTIES('table_blocksize'='128')
         |  """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata' TBLPROPERTIES('table_blocksize'='128', 'sort_columns'='id')
         |  """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable
         | USING 'bloomfilter'
         | DMProperties('INDEX_COLUMNS'='city,id', 'BLOOM_SIZE'='640000')
      """.stripMargin)

    var map = DataMapStatusManager.readDataMapStatusMap()
    assert(map.get(dataMapName).isEnabled)

    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $normalTable
         | OPTIONS('header'='false')
         """.stripMargin)
    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $bloomDMSampleTable
         | OPTIONS('header'='false')
         """.stripMargin)

    map = DataMapStatusManager.readDataMapStatusMap()
    assert(map.get(dataMapName).isEnabled)

    sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable").show(false)
    checkExistence(sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable"), true, dataMapName)
    sql(s"select * from $bloomDMSampleTable where id = 1").show(false)
    sql(s"select * from $bloomDMSampleTable where city = 'city_1'").show(false)
    checkBasicQuery(dataMapName, bloomDMSampleTable, normalTable)
    sql(s"DROP TABLE IF EXISTS $normalTable")
    sql(s"DROP TABLE IF EXISTS $bloomDMSampleTable")
  }

  test("test bloom datamap: index column is float, not dictionary") {
    val floatCsvPath = s"$resourcesPath/datasamplefordate.csv"
    CarbonProperties.getInstance().addProperty(CarbonCommonConstants.CARBON_DATE_FORMAT, "yyyy-MM-dd")
    sql(
      s"""
         | CREATE TABLE $normalTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$floatCsvPath' INTO TABLE $normalTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable USING 'bloomfilter' DMPROPERTIES (
         | 'INDEX_COLUMNS'='salary')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$floatCsvPath' INTO TABLE $bloomDMSampleTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040.56'").show(false)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040'").show(false)
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040.56'"),
      sql(s"SELECT * FROM $normalTable WHERE salary='1040.56'"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040'"),
      sql(s"SELECT * FROM $normalTable WHERE salary='1040'"))
  }

  test("test bloom datamap: index column is float, dictionary") {
    val floatCsvPath = s"$resourcesPath/datasamplefordate.csv"
    CarbonProperties.getInstance().addProperty(CarbonCommonConstants.CARBON_DATE_FORMAT, "yyyy-MM-dd")
    sql(
      s"""
         | CREATE TABLE $normalTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$floatCsvPath' INTO TABLE $normalTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno', 'dictionary_include'='salary')
       """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable USING 'bloomfilter' DMPROPERTIES (
         | 'INDEX_COLUMNS'='salary')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$floatCsvPath' INTO TABLE $bloomDMSampleTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040.56'").show(false)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040'").show(false)
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040.56'"),
      sql(s"SELECT * FROM $normalTable WHERE salary='1040.56'"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040'"),
      sql(s"SELECT * FROM $normalTable WHERE salary='1040'"))
  }

  // since float cannot be sort_columns, we skip the test case

  test("test bloom datamap: index column is date") {
    val dateCsvPath = s"$resourcesPath/datasamplefordate.csv"
    CarbonProperties.getInstance().addProperty(CarbonCommonConstants.CARBON_DATE_FORMAT, "yyyy-MM-dd")
    sql(
      s"""
         | CREATE TABLE $normalTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$dateCsvPath' INTO TABLE $normalTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable USING 'bloomfilter' DMPROPERTIES (
         | 'INDEX_COLUMNS'='doj')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$dateCsvPath' INTO TABLE $bloomDMSampleTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-14'").show(false)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-15'").show(false)
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-14'"),
      sql(s"SELECT * FROM $normalTable WHERE doj='2016-03-14'"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-15'"),
      sql(s"SELECT * FROM $normalTable WHERE doj='2016-03-15'"))
  }

  test("test bloom datamap: index column is date, dictionary, sort column") {
    val dateCsvPath = s"$resourcesPath/datasamplefordate.csv"
    CarbonProperties.getInstance().addProperty(CarbonCommonConstants.CARBON_DATE_FORMAT, "yyyy-MM-dd")
    sql(
      s"""
         | CREATE TABLE $normalTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$dateCsvPath' INTO TABLE $normalTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno', 'dictionary_include'='doj', 'sort_columns'='doj')
       """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable USING 'bloomfilter' DMPROPERTIES (
         | 'INDEX_COLUMNS'='doj')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$dateCsvPath' INTO TABLE $bloomDMSampleTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-14'").show(false)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-15'").show(false)
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-14'"),
      sql(s"SELECT * FROM $normalTable WHERE doj='2016-03-14'"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-15'"),
      sql(s"SELECT * FROM $normalTable WHERE doj='2016-03-15'"))
  }

  // since date cannot be dictionary_exclude, we skip the test case

  // timestamp is naturally not dictionary
  test("test bloom datamap: index column is timestamp") {
    val timeStampData = s"$resourcesPath/timeStampFormatData1.csv"
    sql(
      s"""
         | CREATE TABLE IF NOT EXISTS $normalTable (
         | ID Int, date date, starttime Timestamp, country String, name String, phonetype String, serialname String, salary Int)
         | STORED BY 'carbondata'
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$timeStampData' into table $normalTable
         | OPTIONS('dateformat' = 'yyyy/MM/dd','timestampformat'='yyyy-MM-dd HH:mm:ss')
       """.stripMargin)
    sql(
      s"""
         | CREATE TABLE IF NOT EXISTS $bloomDMSampleTable (
         | ID Int, date date, starttime Timestamp, country String, name String, phonetype String, serialname String, salary Int)
         | STORED BY 'carbondata'
       """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable USING 'bloomfilter' DMPROPERTIES (
         | 'INDEX_COLUMNS'='starttime')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$timeStampData' into table $bloomDMSampleTable
         | OPTIONS('dateformat' = 'yyyy/MM/dd','timestampformat'='yyyy-MM-dd HH:mm:ss')
       """.stripMargin)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE starttime='2016-07-25 01:03:30.0'").show(false)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE starttime='2016-07-25 01:03:31.0'").show(false)
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE starttime='2016-07-25 01:03:30.0'"),
      sql(s"SELECT * FROM $normalTable WHERE starttime='2016-07-25 01:03:30.0'"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE starttime='2016-07-25 01:03:31.0'"),
      sql(s"SELECT * FROM $normalTable WHERE starttime='2016-07-25 01:03:31.0'"))
  }

  test("test bloom datamap: index column is timestamp, dictionary, sort_column") {
    val timeStampData = s"$resourcesPath/timeStampFormatData1.csv"
    sql(
      s"""
         | CREATE TABLE IF NOT EXISTS $normalTable (
         | ID Int, date date, starttime Timestamp, country String, name String, phonetype String, serialname String, salary Int)
         | STORED BY 'carbondata'
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$timeStampData' into table $normalTable
         | OPTIONS('dateformat' = 'yyyy/MM/dd','timestampformat'='yyyy-MM-dd HH:mm:ss')
       """.stripMargin)
    sql(
      s"""
         | CREATE TABLE IF NOT EXISTS $bloomDMSampleTable (
         | ID Int, date date, starttime Timestamp, country String, name String, phonetype String, serialname String, salary Int)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('dictionary_column'='starttime', 'sort_columns'='starttime')
       """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable USING 'bloomfilter' DMPROPERTIES (
         | 'INDEX_COLUMNS'='starttime')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$timeStampData' into table $bloomDMSampleTable
         | OPTIONS('dateformat' = 'yyyy/MM/dd','timestampformat'='yyyy-MM-dd HH:mm:ss')
       """.stripMargin)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE starttime=null").show(false)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE starttime='2016-07-25 01:03:30.0'").show(false)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE starttime='2016-07-25 01:03:31.0'").show(false)
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE starttime='2016-07-25 01:03:30.0'"),
      sql(s"SELECT * FROM $normalTable WHERE starttime='2016-07-25 01:03:30.0'"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE starttime='2016-07-25 01:03:31.0'"),
      sql(s"SELECT * FROM $normalTable WHERE starttime='2016-07-25 01:03:31.0'"))
  }

  // it seems the CI env will be timeout on this test, just ignore it here
  ignore("test bloom datamap: loading and querying with empty values on index column") {
    sql(s"CREATE TABLE $normalTable(c1 string, c2 int, c3 string) STORED BY 'carbondata'")
    sql(s"CREATE TABLE $bloomDMSampleTable(c1 string, c2 int, c3 string) STORED BY 'carbondata'")
    sql(
      s"""
         | CREATE DATAMAP $dataMapName on table $bloomDMSampleTable
         | using 'bloomfilter'
         | DMPROPERTIES('index_columns'='c1, c2')
       """.stripMargin)

    // load data with empty value
    sql(s"INSERT INTO $normalTable SELECT '', 1, 'xxx'")
    sql(s"INSERT INTO $bloomDMSampleTable SELECT '', 1, 'xxx'")
    sql(s"INSERT INTO $normalTable SELECT '', null, 'xxx'")
    sql(s"INSERT INTO $bloomDMSampleTable SELECT '', null, 'xxx'")

    // query on null fields
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable"),
      sql(s"SELECT * FROM $normalTable"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE c1 = null"),
      sql(s"SELECT * FROM $normalTable WHERE c1 = null"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE c1 = ''"),
      sql(s"SELECT * FROM $normalTable WHERE c1 = ''"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE isNull(c1)"),
      sql(s"SELECT * FROM $normalTable WHERE isNull(c1)"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE isNull(c2)"),
      sql(s"SELECT * FROM $normalTable WHERE isNull(c2)"))
  }

  test("test bloom datamap: querying with longstring index column") {
    sql(s"CREATE TABLE $normalTable(c1 string, c2 int, c3 string) STORED BY 'carbondata' TBLPROPERTIES('long_string_columns'='c3')")
    sql(s"CREATE TABLE $bloomDMSampleTable(c1 string, c2 int, c3 string) STORED BY 'carbondata' TBLPROPERTIES('long_string_columns'='c3')")
    // create datamap on longstring columns
    sql(
      s"""
         | CREATE DATAMAP $dataMapName on table $bloomDMSampleTable
         | using 'bloomfilter'
         | DMPROPERTIES('index_columns'='c3')
       """.stripMargin)

    sql(s"INSERT INTO $normalTable SELECT 'c1v1', 1, 'xxx'")
    sql(s"INSERT INTO $bloomDMSampleTable SELECT 'c1v1', 1, 'xxx'")
    sql(s"INSERT INTO $normalTable SELECT 'c1v1', 1, 'yyy'")
    sql(s"INSERT INTO $bloomDMSampleTable SELECT 'c1v1', 1, 'yyy'")

    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE c3 = 'xxx'"),
      sql(s"SELECT * FROM $normalTable WHERE c3 = 'xxx'"))
  }

  test("test rebuild bloom datamap: index column is integer, dictionary, sort_column") {
    sql(
      s"""
         | CREATE TABLE $normalTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('table_blocksize'='128')
         |  """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('table_blocksize'='128', 'dictionary_include'='id, name, s1', 'sort_columns'='id')
         |  """.stripMargin)

    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $normalTable
         | OPTIONS('header'='false')
         """.stripMargin)
    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $bloomDMSampleTable
         | OPTIONS('header'='false')
         """.stripMargin)

    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable
         | USING 'bloomfilter'
         | DMProperties('INDEX_COLUMNS'='city,id,age,name', 'BLOOM_SIZE'='640000')
      """.stripMargin)

    sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable").show(false)
    checkExistence(sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable"), true, dataMapName)
    checkBasicQuery(dataMapName, bloomDMSampleTable, normalTable)
    sql(s"DROP TABLE IF EXISTS $normalTable")
    sql(s"DROP TABLE IF EXISTS $bloomDMSampleTable")
  }

  test("test rebuild bloom datamap: index column is integer, dictionary, not sort_column") {
    sql(
      s"""
         | CREATE TABLE $normalTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('table_blocksize'='128')
         |  """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('table_blocksize'='128', 'dictionary_include'='id, name, s1', 'sort_columns'='name')
         |  """.stripMargin)

    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $normalTable
         | OPTIONS('header'='false')
         """.stripMargin)
    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $bloomDMSampleTable
         | OPTIONS('header'='false')
         """.stripMargin)

    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable
         | USING 'bloomfilter'
         | DMProperties('INDEX_COLUMNS'='city,id,age,name', 'BLOOM_SIZE'='640000')
      """.stripMargin)

    sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable").show(false)
    checkExistence(sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable"), true, dataMapName)
    checkBasicQuery(dataMapName, bloomDMSampleTable, normalTable)
    sql(s"DROP TABLE IF EXISTS $normalTable")
    sql(s"DROP TABLE IF EXISTS $bloomDMSampleTable")
  }

  test("test rebuild bloom datamap: index column is integer, sort_column") {
    sql(
      s"""
         | CREATE TABLE $normalTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('table_blocksize'='128')
         |  """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(id INT, name STRING, city STRING, age INT,
         | s1 STRING, s2 STRING, s3 STRING, s4 STRING, s5 STRING, s6 STRING, s7 STRING, s8 STRING)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('table_blocksize'='128', 'dictionary_include'='name, s1', 'sort_columns'='id')
         |  """.stripMargin)

    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $normalTable
         | OPTIONS('header'='false')
         """.stripMargin)
    sql(
      s"""
         | LOAD DATA LOCAL INPATH '$bigFile' INTO TABLE $bloomDMSampleTable
         | OPTIONS('header'='false')
         """.stripMargin)

    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable
         | USING 'bloomfilter'
         | DMProperties('INDEX_COLUMNS'='city,id,age,name', 'BLOOM_SIZE'='640000')
      """.stripMargin)

    sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable").show(false)
    checkExistence(sql(s"SHOW DATAMAP ON TABLE $bloomDMSampleTable"), true, dataMapName)
    checkBasicQuery(dataMapName, bloomDMSampleTable, normalTable)
    sql(s"DROP TABLE IF EXISTS $normalTable")
    sql(s"DROP TABLE IF EXISTS $bloomDMSampleTable")
  }

  test("test rebuild bloom datamap: index column is float, not dictionary") {
    val floatCsvPath = s"$resourcesPath/datasamplefordate.csv"
    CarbonProperties.getInstance().addProperty(CarbonCommonConstants.CARBON_DATE_FORMAT, "yyyy-MM-dd")
    sql(
      s"""
         | CREATE TABLE $normalTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$floatCsvPath' INTO TABLE $normalTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$floatCsvPath' INTO TABLE $bloomDMSampleTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable USING 'bloomfilter' DMPROPERTIES (
         | 'INDEX_COLUMNS'='salary')
       """.stripMargin)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040.56'").show(false)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040'").show(false)
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040.56'"),
      sql(s"SELECT * FROM $normalTable WHERE salary='1040.56'"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040'"),
      sql(s"SELECT * FROM $normalTable WHERE salary='1040'"))
  }

  test("test rebuild bloom datamap: index column is float, dictionary") {
    val floatCsvPath = s"$resourcesPath/datasamplefordate.csv"
    CarbonProperties.getInstance().addProperty(CarbonCommonConstants.CARBON_DATE_FORMAT, "yyyy-MM-dd")
    sql(
      s"""
         | CREATE TABLE $normalTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno', 'DICTIONARY_INCLUDE'='salary')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$floatCsvPath' INTO TABLE $normalTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$floatCsvPath' INTO TABLE $bloomDMSampleTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable USING 'bloomfilter' DMPROPERTIES (
         | 'INDEX_COLUMNS'='salary')
       """.stripMargin)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040.56'").show(false)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040'").show(false)
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040.56'"),
      sql(s"SELECT * FROM $normalTable WHERE salary='1040.56'"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE salary='1040'"),
      sql(s"SELECT * FROM $normalTable WHERE salary='1040'"))
  }

  test("test rebuild bloom datamap: index column is date") {
    val dateCsvPath = s"$resourcesPath/datasamplefordate.csv"
    CarbonProperties.getInstance().addProperty(CarbonCommonConstants.CARBON_DATE_FORMAT, "yyyy-MM-dd")
    sql(
      s"""
         | CREATE TABLE $normalTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$dateCsvPath' INTO TABLE $normalTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$dateCsvPath' INTO TABLE $bloomDMSampleTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable USING 'bloomfilter' DMPROPERTIES (
         | 'INDEX_COLUMNS'='doj')
       """.stripMargin)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-14'").show(false)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-15'").show(false)
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-14'"),
      sql(s"SELECT * FROM $normalTable WHERE doj='2016-03-14'"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-15'"),
      sql(s"SELECT * FROM $normalTable WHERE doj='2016-03-15'"))
  }

  test("test rebuild bloom datamap: index column is date, dictionary, sort_colum") {
    val dateCsvPath = s"$resourcesPath/datasamplefordate.csv"
    CarbonProperties.getInstance().addProperty(CarbonCommonConstants.CARBON_DATE_FORMAT, "yyyy-MM-dd")
    sql(
      s"""
         | CREATE TABLE $normalTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno')
       """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable(empno string, doj date, salary float)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('SORT_COLUMNS'='empno,doj', 'DICTIONARY_INCLUDE'='doj,empno')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$dateCsvPath' INTO TABLE $normalTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | LOAD DATA INPATH '$dateCsvPath' INTO TABLE $bloomDMSampleTable OPTIONS(
         | 'DELIMITER'=',', 'QUOTECHAR'='"', 'BAD_RECORDS_ACTION'='FORCE')
       """.stripMargin)
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable USING 'bloomfilter' DMPROPERTIES (
         | 'INDEX_COLUMNS'='doj')
       """.stripMargin)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-14'").show(false)
    sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-15'").show(false)
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-14'"),
      sql(s"SELECT * FROM $normalTable WHERE doj='2016-03-14'"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE doj='2016-03-15'"),
      sql(s"SELECT * FROM $normalTable WHERE doj='2016-03-15'"))
  }

  ignore("test rebuild bloom datamap: loading and querying with empty values on index column") {
    sql(s"CREATE TABLE $normalTable(c1 string, c2 int, c3 string) STORED BY 'carbondata'")
    sql(s"CREATE TABLE $bloomDMSampleTable(c1 string, c2 int, c3 string) STORED BY 'carbondata'")

    // load data with empty value
    sql(s"INSERT INTO $normalTable SELECT '', 1, 'xxx'")
    sql(s"INSERT INTO $bloomDMSampleTable SELECT '', 1, 'xxx'")
    sql(s"INSERT INTO $normalTable SELECT '', null, 'xxx'")
    sql(s"INSERT INTO $bloomDMSampleTable SELECT '', null, 'xxx'")

    sql(
      s"""
         | CREATE DATAMAP $dataMapName on table $bloomDMSampleTable
         | using 'bloomfilter'
         | DMPROPERTIES('index_columns'='c1, c2')
       """.stripMargin)

    // query on null fields
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable"),
      sql(s"SELECT * FROM $normalTable"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE c1 = null"),
      sql(s"SELECT * FROM $normalTable WHERE c1 = null"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE c1 = ''"),
      sql(s"SELECT * FROM $normalTable WHERE c1 = ''"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE isNull(c1)"),
      sql(s"SELECT * FROM $normalTable WHERE isNull(c1)"))
    checkAnswer(sql(s"SELECT * FROM $bloomDMSampleTable WHERE isNull(c2)"),
      sql(s"SELECT * FROM $normalTable WHERE isNull(c2)"))
  }

  test("test bloom datamap: deleting & clearning segment will clear datamap files") {
    sql(s"CREATE TABLE $bloomDMSampleTable(c1 string, c2 int, c3 string) STORED BY 'carbondata'")
    sql(
      s"""
         | CREATE DATAMAP $dataMapName on table $bloomDMSampleTable
         | using 'bloomfilter'
         | DMPROPERTIES('index_columns'='c1, c2')
       """.stripMargin)
    sql(s"INSERT INTO $bloomDMSampleTable SELECT 'c1v1', 1, 'c3v1'")
    sql(s"INSERT INTO $bloomDMSampleTable SELECT 'c1v2', 2, 'c3v2'")

    // two segments both has datamap files
    val carbonTable = CarbonEnv.getCarbonTable(Option("default"), bloomDMSampleTable)(Spark2TestQueryExecutor.spark)
    import scala.collection.JavaConverters._
    (0 to 1).foreach { segId =>
      val datamapPath = CarbonTablePath.getDataMapStorePath(carbonTable.getTablePath, segId.toString, dataMapName)
      assert(FileUtils.listFiles(FileUtils.getFile(datamapPath), Array("bloomindexmerge"), true).asScala.nonEmpty)
    }
    // delete and clean the first segment, the corresponding datamap files should be cleaned too
    sql(s"DELETE FROM TABLE $bloomDMSampleTable WHERE SEGMENT.ID IN (0)")
    sql(s"CLEAN FILES FOR TABLE $bloomDMSampleTable")
    var datamapPath = CarbonTablePath.getDataMapStorePath(carbonTable.getTablePath, "0", dataMapName)
    assert(!FileUtils.getFile(datamapPath).exists(), "index file of this segment has been deleted, should not exist")
    datamapPath = CarbonTablePath.getDataMapStorePath(carbonTable.getTablePath, "1", dataMapName)
    assert(FileUtils.listFiles(FileUtils.getFile(datamapPath), Array("bloomindexmerge"), true).asScala.nonEmpty)
  }

  // two blocklets in one block are hit by bloom datamap while block cache level hit this block
  test("CARBONDATA-2788: enable block cache level and bloom datamap") {
    // minimum per page is 2000 rows
    CarbonProperties.getInstance().addProperty(CarbonCommonConstants.BLOCKLET_SIZE, "2000")
    // minimum per blocklet is 16MB
    CarbonProperties.getInstance().addProperty(CarbonV3DataFormatConstants.BLOCKLET_SIZE_IN_MB, "16")
    // these lines will result in 3 blocklets in one block and bloom will hit at least 2 of them
    val lines = 100000
    sql("drop table if exists test_rcd").collect()
    val r = new Random()
    import sqlContext.implicits._
    val df = sqlContext.sparkContext.parallelize(1 to lines)
      .map(x => ("No." + r.nextInt(10000), "country" + x % 10000, "city" + x % 10000, x % 10000,
        UUID.randomUUID().toString, UUID.randomUUID().toString, UUID.randomUUID().toString,
        UUID.randomUUID().toString, UUID.randomUUID().toString, UUID.randomUUID().toString,
        UUID.randomUUID().toString, UUID.randomUUID().toString, UUID.randomUUID().toString,
        UUID.randomUUID().toString, UUID.randomUUID().toString, UUID.randomUUID().toString))
      .toDF("ID", "country", "city", "population",
        "random1", "random2", "random3",
        "random4", "random5", "random6",
        "random7", "random8", "random9",
        "random10", "random11", "random12")
    df.write
      .format("carbondata")
      .option("tableName", "test_rcd")
      .option("SORT_COLUMNS", "id")
      .option("SORT_SCOPE", "LOCAL_SORT")
      .mode(SaveMode.Overwrite)
      .save()

    val withoutBloom = sql("select count(*) from test_rcd where city = 'city40'").collect().toSeq
    sql("CREATE DATAMAP dm_rcd ON TABLE test_rcd " +
        "USING 'bloomfilter' DMPROPERTIES " +
        "('INDEX_COLUMNS' = 'city', 'BLOOM_SIZE'='640000', 'BLOOM_FPP'='0.00001')")
    checkAnswer(sql("select count(*) from test_rcd where city = 'city40'"), withoutBloom)

    sql("drop table if exists test_rcd").collect()
    CarbonProperties.getInstance().addProperty(CarbonCommonConstants.BLOCKLET_SIZE,
      CarbonCommonConstants.BLOCKLET_SIZE_DEFAULT_VAL)
    CarbonProperties.getInstance().addProperty(CarbonV3DataFormatConstants.BLOCKLET_SIZE_IN_MB,
      CarbonV3DataFormatConstants.BLOCKLET_SIZE_IN_MB_DEFAULT_VALUE)
  }

  /**
   * create bloom and preagg on base table, then create bloom on preagg table,
   * index column and group by column is dictionary column.
   * note that the test steps are copied from issue.
   * In the CI env, sometime it will become timeout, so we ignore the newly added tests
   */
  ignore("test bloom datamap: CARBONDATA-2799 bloom datamap on preaggregate") {
    sql(
      s"""
         | CREATE TABLE $normalTable (id int, name string, salary float,dob date)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('dictionary_include'='id')
       """.stripMargin)
    sql(
      s"""
         | CREATE TABLE $bloomDMSampleTable (id int, name string, salary float,dob date)
         | STORED BY 'carbondata'
         | TBLPROPERTIES('dictionary_include'='id')
       """.stripMargin)
    (1 to 2).foreach { _ =>
      sql(
        s"""
           | INSERT INTO $bloomDMSampleTable VALUES
           | ('1', 'name1', '11.1', '2018-07-01'),
           | ('2', 'name2', '21.1', '2018-07-02'),
           | ('3', 'name3', '31.1', '2018-07-03'),
           | ('4', 'name4', '41.1', '2018-07-04')
       """.stripMargin)
      sql(
        s"""
           | INSERT INTO $normalTable VALUES
           | ('1', 'name1', '11.1', '2018-07-01'),
           | ('2', 'name2', '21.1', '2018-07-02'),
           | ('3', 'name3', '31.1', '2018-07-03'),
           | ('4', 'name4', '41.1', '2018-07-04')
       """.stripMargin)
    }
    sql(
      s"""
         | CREATE DATAMAP $dataMapName ON TABLE $bloomDMSampleTable
         | USING 'bloomfilter'
         | DMPROPERTIES('INDEX_COLUMNS'='id', 'BLOOM_SIZE'='320000', 'BLOOM_FPP'='0.01', 'BLOOM_COMPRESS'='TRUE')
       """.stripMargin)
    sql(
      s"""
         | INSERT INTO $bloomDMSampleTable VALUES
         | ('1', 'name1', '11.1', '2018-07-01'),
         | ('2', 'name2', '21.1', '2018-07-02'),
         | ('3', 'name3', '31.1', '2018-07-03'),
         | ('4', 'name4', '41.1', '2018-07-04')
       """.stripMargin)
    sql(
      s"""
         | INSERT INTO $normalTable VALUES
         | ('1', 'name1', '11.1', '2018-07-01'),
         | ('2', 'name2', '21.1', '2018-07-02'),
         | ('3', 'name3', '31.1', '2018-07-03'),
         | ('4', 'name4', '41.1', '2018-07-04')
       """.stripMargin)
    val preAggOnBase = "preagg_on_base"
    sql(
      s"""
         | CREATE DATAMAP $preAggOnBase ON TABLE $bloomDMSampleTable
         | USING 'preaggregate' AS
         | select id, count(id) from $bloomDMSampleTable group by id
       """.stripMargin)
    checkAnswer(sql(s"SELECT id, count(id) from $bloomDMSampleTable where id = 3 group by id"),
      sql(s"SELECT id, count(id) from $normalTable where id = 3 group by id"))

    val bloomOnPreAgg = "bloom_on_pre_agg"
    sql(
      s"""
         | CREATE DATAMAP $bloomOnPreAgg ON TABLE ${bloomDMSampleTable}_${preAggOnBase}
         | USING 'bloomfilter'
         | DMPROPERTIES('INDEX_COLUMNS'='${bloomDMSampleTable}_id')
       """.stripMargin)
    checkAnswer(sql(s"SELECT id, count(id) from $bloomDMSampleTable where id = 3 group by id"),
      sql(s"SELECT id, count(id) from $normalTable where id = 3 group by id"))

    sql(s"DROP DATAMAP $bloomOnPreAgg on table ${bloomDMSampleTable}_${preAggOnBase}")
    checkAnswer(sql(s"SELECT id, count(id) from $bloomDMSampleTable where id = 3 group by id"),
      sql(s"SELECT id, count(id) from $normalTable where id = 3 group by id"))

    sql(
      s"""
         | CREATE DATAMAP $bloomOnPreAgg ON TABLE ${bloomDMSampleTable}_${preAggOnBase}
         | USING 'bloomfilter'
         | DMPROPERTIES('INDEX_COLUMNS'='${bloomDMSampleTable}_id')
       """.stripMargin)
    checkAnswer(sql(s"SELECT id, count(id) from $bloomDMSampleTable where id = 3 group by id"),
      sql(s"SELECT id, count(id) from $normalTable where id = 3 group by id"))

    sql(s"DROP DATAMAP $bloomOnPreAgg on table ${bloomDMSampleTable}_${preAggOnBase}")
    checkAnswer(sql(s"SELECT id, count(id) from $bloomDMSampleTable where id = 3 group by id"),
      sql(s"SELECT id, count(id) from $normalTable where id = 3 group by id"))
  }

  override def afterAll(): Unit = {
    deleteFile(bigFile)
    sql(s"DROP TABLE IF EXISTS $normalTable")
    sql(s"DROP TABLE IF EXISTS $bloomDMSampleTable")
  }
}


Leatherwood Mountains Homes and Land Sales, LLC sells exclusively Leatherwood Mountains properties. Our listings of both homes and tracts of land range from 1 – 25+ acres in a low density mountain environment.
Established in 1985, Leatherwood Mountains has a sales history that is tried and true. Leatherwood is 96% SOLD OUT of the 300+ tracts that are currently included in Leatherwood Mountains. Additional exclusive listings will be released soon. Along with many other excellent features (please explore the rest of our website), Leatherwood's record of solid sales helps confirm this development has stood the test of time and continues to be extremely desirable real estate.
We have a very personal connection with the properties we offer, as our agents are not only property owners, but also full-time residents. We work very hard to assist our customers in finding that perfect mountain dream home or ideal piece of property. Confident that we know every aspect of this community and development, we can immediately answer any question a future buyer may have about the property and development specs, history of the community, amenities available, and the future of Leatherwood. We want our future neighbors to be completely satisfied with their choices.
Please call toll free 800.4NC.MTNS (800.462.6867) to speak with our sales personnel (we are repeatedly told their low-key and sincere approach is very much appreciated) … or contact us via email. . . or better yet, come by our sales office located just inside the main entrance to Leatherwood Mountains in the Old Historic Hendrix home place.


A. Preamble: Thank you for taking time to come and hear how we in APA think about Zimbabwe's way forward.
I am not going to follow the manifesto as laid out because I know you will go and pour over it later.
Instead, I will give you a broad rendition and framing of how we see the job at hand and the manner in which it should be addressed. In the process I will highlight the core elements of our thinking.
We as a country, confront a challenge or problem that requires a very systematic approach to solving it. So the framework that we have followed is precisely a problem solving approach.
Firstly we need to define the challenge or problem as precisely and as dispassionately as we possibly can. This is what we would term a diagnostic.
Secondly, we must respect the fact that situations come about because of prior action, or inaction for that matter. That will help us pin down the causal relationships.
Thirdly, having clarified the cause and effect relationships that brought us to where we are, we ought to be able to identify what factors we should manage out of the system in order to move in a different and more desirable direction.
Rehabilitating Zimbabwe is a project and so just like any other project, the sequencing of the solution elements is very important. The correct sequencing allows one to manage the necessary resources as economically as possible.
At best it even allows earlier elements of the solution to release resources for subsequent elements, which of course is the best place to be.
So then, let me share with you our view of the diagnostic, but I have a feeling that just like an artist, I will be using my perspective to give you a rendition of things that are quite familiar to you.
a. Broken economy: – Our economy is broken and our population, especially the youth has no means of earning a decent livelihood.
b. Very poor service delivery: – Services to the population, i.e. education, health, water and sanitation, general infrastructure are in a very poor state or completely non-existent.
c. A damaged national psyche: – Not surprisingly, due to the abuse that Zimbabweans have borne for such a long time, a time that goes all the way back to colonization and UDI, we as a nation have internalised abusiveness! We abuse each other in debate, in rendering services such as at boarder posts, in hospitals, at the passport office, in fact at most government points of service delivery and most visibly in the way we drive on what is left of our roads.
d. As most of you will know, we are what is referred to as a pariah state. Something to be avoided, not desirable, not to be befriended, not to be associated with.
e. We have become a corrupt society: – We pay incentives, over and above the formal price, to get anything and everything done.
f. As a society we have a lot of substance abuse because of unemployment and idleness of the youth in particular.
In brief this is how I would characterize our country presently. I expect that we may have differences in some details rather than in the broad observations.
The next thing is to understand how we got here. In our view there is value in doing this, only if we are prepared to look at ourselves in the mirror and accept if our face is dirty so we can wash it. Clearly we will see no need to take remedial action if we are not able or prepared to see the shortcomings in what we have done.
The first thing to note is that all the ills or characteristics of malfunction of our country emanate from the failure of the economy. Sadly, though although consequential on the failure of the economy, some of these ills have now evolved into stand-alone problems such that simply getting the economy to turn around and grow will not automatically resolve the other challenges. They will need to be addressed and resolved in their own right.
It is our view that there are three things that got us here.
b. Nepotism, cronyism and patronage.
Corruption has deprived our nation of huge amounts of resources. As I pointed out in my debate with Ambassador Mutsvangwa, if you did a lifestyle audit on most people who have served in government to date, most of them would fail the test. They have lifestyles and assets that cannot be matched to their official incomes.
I am sure I do not have to dwell on this point except to point out the obvious; these huge leakages have deprived the country of vital resources that would otherwise have been used for investment and development.
Of equal import is the lack of meritocracy and performance management in our public sector. People get jobs, up to today in case you had not noticed, on the basis of who they know, who they are related to and who they have done favors for.
I hope you appreciate that in these circumstances there can be no performance management. You typically do not let go of your relatives and friends when they fail to perform in their jobs as we have seen ad nauseam!
Nepotism, cronyism and patronage have led to the country being run like the private property of the ruling families.
Lastly in terms of the factors that have brought us here is the inability to introspect. As I wrote and as you can imagine, rewrote this presentation, I found myself searching for some of the characteristics of successful nations.
It occurred to me that successful nations have an ability to honestly self criticize.
I suspect that arising from the war of liberation, we have developed an oversized capacity for defensiveness, to the point where we have become incapable of acknowledging our mistakes. The trouble is that as we hide those mistakes from others, we also hide them from ourselves so we cannot correct them!
Performance management fundamentally depends on the ability to review and adjust and correct mis-steps.
Understanding where we are and appreciating how we got here, makes it easier to tackle the task of structuring a way forward. I hope we can all agree that the root problems have to be dealt with if we hope to rehabilitate our country.
Our biggest challenge is that we have become experts at paying lip service to most things. We get into agreements with each other and with the world at large, which we constantly fail to honor. I start with this observation because a manifesto is a promise, and yet we are now so used to promises that mean absolutely nothing, starting with a constitution we do not consider to be binding!
• We will as APA stand by, firstly the constitution and secondly our promises to the people of Zimbabwe.
• We will make sure that institutions of state are not conflated with party political interests and identity.
• We will have a zero tolerance stance towards corruption.
• We will always deploy the best talents that the country has at its disposal, in other words meritocracy, in all positions of public service.
• We will practice total transparency in all situations that cannot be proven to compromise state security.
• We will not subscribe to state monopolies in the provision of any serve to the population.
• We will respect human rights in all practices.
• We will pay special attention to groups that tend to be overlooked, i.e. women, the youth and the disabled.
• Whilst appreciating the work and value of development partners, we will work to make Zimbabweans understand that developing Zimbabwe is, in the first instance, the collective responsibility of Zimbabweans. We cannot outsource that responsibility.
• We will subscribe to, and take seriously, the findings of the Africa Peer Review Mechanism.
Follow Zimbabweans, in brief, the above gives you an insight into what has guided the construct of the APA manifesto.
Thank you again for giving us time to share our thoughts with you.


You shouldn't be worried about this, you're still able to effortlessly observe an automated ASA Citation Maker. You shouldn't stress about this, it's still possible to comfortably select an automated ASA Citation Maker. Will not worry about this, you can easlily comfortably find an automated ASA Citation Maker.
You must make sure the style you're using is correct and suitable. The usage of a white board might be of usage.
ASA citation style is among the parenthetical referencing methods that employs the usage of the author-date system. Also, should you need an ASA literature review example or a different sample, we'll be delighted to give you one anytime! Some of the conventional rules when using ASA citation style include the usage of double spaced work and also the font of the project has to be normal.
Most writers of sociology papers using the ASA citation style forget there are different font styles that may be used during the whole writing. asa citations Be aware that it will surely facilitate to extend your academic details and scores. Take note an effective and valuable use of the ASA citation style will certainly guidance to boost your academic factors and scores.
Once you pick the appropriate source from the listed results, you're going to be shown what information was and wasn't found, then taken straight to the form. Once an e-book doesn't have page numbers, there are some choices to spell out the location of the text being quoted. It'll be enough to add an association to your text to have the extensive info in several moments.
When such situation happens, a number of them prefer to request an experienced aid, which implies addressing professional writing companies including Pro-Papers. Of course, when you studied in the usa or have experience with their tests, it may be simpler for you. Notwithstanding the simple truth that ASA is broadly employed all around the Earth, too many folks are still not well conversant with all the style.
What you have to do is comprehend all the essential format requirements and correctly apply that. It can generate references for various forms of digital sources. The formats can differ.
MLA works cited generator also will help to conserve energy and time. What follows are examples of special varieties of references. Compared with different kinds of essays, an essay doesn't have a thesis assertion.
Doing so won't only enable you to steer clear of plagiarism but will also supply you with a better score. You are able to also utilize citations for examples you take on the internet. In-text citations are utilized to demonstrate where precisely you've used the words of another writer.
Do not just use all info you create it from different sources to compose your paper. Citing your resources is normally an extremely important part. Your research paper or essay needs to have a one.
Citation machines are the best tool of automatic citation generator that aids the writer in only a few clicks and saves lots of time. Direct citation is really a program.
As a consequence, you can need an automated ASA citation tool reference manufacturer, to help make it a fantastic deal simpler for you. Quick, user-friendly, and totally free ASA citation generator is in your own services. With just a couple of clicks, you may wind upon your method of supplying your citation and referencing as easy as pie.
Find Out Who's Talking About Define Research Paper and Why You Should Be Worried Do you know the vital essay subjects for competitive exams?


^ 1.0 1.1 1.2 1.3 1.4 1.5 01. 董顯光--創局元老(民國36年5月2日至37年12月22日). 行政院新聞局 (中文(繁體)).
^ 美国国务院. Record of the First Meeting of the Council of Foreign Ministers, Lancaster House, London, September 11, 1945, 4 p.m.. [2019-01-20].
^ 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 李新總主編,中國社會科學院近代史研究所中華民國史研究室編,韓信夫、姜克夫主編 (编). 《中華民國史大事記》. 北京: 中華書局. 2011年7月.


BASIC FEATURES: www.rtlchat.com is an great international chatting website where you can chat as you like. No limits on any chatt user @-\www.rtlchat.com\. No sign ups, registrations, logins, no credit cards, no payments to use our website (www.rtlchat.com). Random chatt online@-(www.rtlchat.com). Free gamings chat rooms @-(www.rtlchat.com). Randomchat with strangers as guest in -www.rtlchat.com- public and real private chatrooms, anonymous and mobile friendly. - www.rtlchat.com is a cool place to meet people at random and anonymity without having to register @-(www.rtlchat.com), chat as guest with one click. -|www.rtlchat.com|- has a number of chatrooms to meet cool new people from around the globe. @www.rtlchat.com- Private Chat is among the basic features and this online chat-www.rtlchat.com is free of cost. No charges are applied for chatting. Chat with strangers @|-www.rtlchat.com-|, talk in private chats, send videos, pictures for free. Connect to people @www.rtlchat.com- from around the world and all of these services are for free. - TAGS: -www.rtlchat.com- Australia ChatRooms Free, Austria ChatRooms Free, Belgium ChatRooms Free, Canada ChatRooms Free, Denmark ChatRooms Free, Finland ChatRooms Free, France ChatRooms Free, Germany ChatRooms Free, Ireland ChatRooms Free, Italy ChatRooms Free, Luxembourg ChatRooms Free, Netherlands ChatRooms Free, New Zeleand ChatRooms Free, Norway ChatRooms Free, Spain ChatRooms Free, Sweeden ChatRooms Free, Switzerland ChatRooms Free, United Kingdom ChatRooms Free, United States of America ChatRooms Free.


Agile Process – problems with 'chasing the money'?
After attending a number of seminars (esp. the 'Agile Investment in Software: Who cares how you build it?' seminar by Chris Matts) and talking to other developers/architects I've been considering the pro's and con's of, "chasing the money" (Money). The basic idea is that you should provide the business with the best mechanisms for the company to make money. A core issue with any Agile development processes is what feature to implement next. If you take the Money approach then it can help focus the development on the immediate business needs, thus helping the product get to market faster, the business more successful, etc, etc (see Clarke Ching for a good introduction). I can see why this is a good idea (clever me) and it certainly is worth asking the question for every potential feature that could be implemented. However, as with so many ideas neither is it a silver bullet or particularly new. Recently, on different occasions, I've been confronted with developers who have not considered the non-functional requirements during their development process. When I recovered from the shock that this can happen I wondered if there was some common problem with the teams. When discussing it at XPDay the first conclusion was simply poor developers. I think there is something to that, certainly in one example the team of people were asked to do development when that isn't that primary skill, ah the beauty of false economy. The other common factor was a feeling of them-and-us. The team Chris Matts described sounded like just such a case, "The Business people" vs. "The IT lot" whereas the idea is that everyone should be working together (aaaah sweet). Chris' conclusion was that by using the Money approach the IT team were forced to validate everything they did as a business case. Herein lies the problem, if you combine the Money approach with the lack of importance given to non-functional requirements you run the very real risk of passing over such features in the clamour to grab the money. Some of the features are difficult if not plain impossible to put in afterwards. For example, consider building a house. Customers wants walls and a roof, they don't care too much about the floor. Obviously the conclusion of this example is you end with a lovely house that falls over in the next strong wind because the boring no-thrills foundations are rubbish and you end up with one angry customer and a reputation in tatters. I'm not suggesting this means the Money approach is wrong, but you must ensure that non-functional requirements are properly considered (with the proper business case) when deciding upon priorities and don't use the wrong people! Like I said, I don't think this is anything new, but it seems to be a lost message when there is a temptation of a quick buck.
When chasing the money, you need to be aware of what debt you are piling up behind you and which you are going to have to service.
Others, as you say, do not make sense, such as skimping on foundations. Unless of course the money is so huge you are quite happy to build a brand new second house next door to the first one and take the risk that it will indeed be ready before the strong autumn winds come.


Paul Davis On Crime: Is The Austin Bomber Showing Shades of the Unabomber?
Is The Austin Bomber Showing Shades of the Unabomber?
Perry Chiaramonte at Foxnews.com offers a piece on the Austin bomber.
A fifth explosion in a series of Texas bombings that began March 2 continues to put the state on edge, and now comparisons are being made to another serial bomber from more than two decades ago – The Unabomber — as investigators try to figure out the motives of the unknown suspect.
A March 18 explosion, the fourth out of five that have occurred in the Austin and San Antonio areas, signaled to investigators a stepped-up level of sophistication in the attacks. Unlike the previous bombings, which involved packages left on doorsteps, the bomb that went off March 18 was placed near a hiking trail and had a thin translucent tripwire, like fishing line. Two people have died in the explosions and four others have been injured.
The bombs used in Texas are hidden in parcels, similar to devices made by the Unabomber.
According to the Washington Post, sending bombs in the mail was the method of choice for Ted Kaczynski, tagged the Unabomber, whose parcel's exploded in the faces of unsuspecting recipients over a period of 17 years until his arrest in 1996.


Zeald.com Website Design:: © 2008 Park Supplies Company Ltd. All rights reserved.
Website by Zeald.com :: © 2008 Park Supplies Company Ltd. All rights reserved.
Park Supplies Company Ltd on Wises Maps. Find driving directions to or from a location. Print a map or email it to a friend.
Southern Demolition is the leading supplier of demolition services and rejuvenated timber products in Christchurch and throughout the country.
Greg Lysaght and Steven Pyke started P & L Glassing Ltd in 1996. They first started trading from the old Wrightsons building where Buntings are today on West Street.
Complete sitemap for Just Queenstown ... If you think we can improve, tell us how and we'll put you into our monthly draw to win a trip for 2 to Queestown from AA Travel.
New Zealand Scrapbook supplies, free shipping New Zealand wide.
Cut a shape, emboss a shape, or cut then emboss shapes with the inspired designs available exclusively with Cuttlebug cutting and embossing dies.