blob: 9f9d60961a7bfc63378c4bfa86c119f8831af90a [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
drop database TinySocial if exists;
create database TinySocial;
use TinySocial;
create type TinySocial.EmploymentType as
{
"organization-name" : string,
"start-date" : date,
"end-date" : date?
}
create type TinySocial.FacebookUserType as
closed {
id : int32,
alias : string,
name : string,
"user-since" : datetime,
"friend-ids" : {{int32}},
employment : [EmploymentType]
}
create table FacebookUsers(FacebookUserType) primary key id;
with lonelyusers as (
select element d
from FacebookUsers as d
where (TinySocial.count(d."friend-ids") < 2)
),
lonelyusers2 as (
select element d
from FacebookUsers as d
where (TinySocial.count(d."friend-ids") < 2)
)
select element {'user1':{'id':l1.id,'name':l1.name},'user2':{'id':l2.id,'name':l2.name}}
from lonelyusers as l1,
lonelyusers2 as l2
where (l1.id < l2.id)
order by l1.id,l2.id
;