Taewoo Kim has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/1021

Change subject: ASTERIXDB-1544: fix the issue with fuzzyjoin on an indexed 
nullable field
......................................................................

ASTERIXDB-1544: fix the issue with fuzzyjoin on an indexed nullable field

 - Fix the issue with index-based fuzzyjoin where the indexed field is nullable.

Change-Id: Ie82badb0b9c1c04a1135b1829c445b5ddfb8c754
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.1.ddl.aql
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.2.update.aql
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.3.query.aql
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.1.adm
M asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
6 files changed, 122 insertions(+), 0 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/21/1021/1

diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java
index 305d1a9..58cc32e 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java
@@ -42,6 +42,7 @@
 import org.apache.asterix.om.functions.AsterixBuiltinFunctions;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.ATypeTag;
+import org.apache.asterix.om.types.AUnionType;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.types.hierachy.ATypeHierarchy;
 import org.apache.commons.lang3.mutable.Mutable;
@@ -798,10 +799,18 @@
                 type = optFuncExpr.getFieldType(0);
             }
             typeTag = type.getTypeTag();
+            if (type.getTypeTag() == ATypeTag.UNION) {
+                // If this is a nullable field, then we need to get the actual 
type tag.
+                typeTag = ((AUnionType) type).getActualType().getTypeTag();
+            }
         } else {
             // We are optimizing a selection query. Add the type of the search 
key constant.
             type = optFuncExpr.getConstantType(0);
             typeTag = type.getTypeTag();
+            if (typeTag == ATypeTag.UNION) {
+                // If this is a nullable field, then we need to get the actual 
type tag.
+                typeTag = ((AUnionType) type).getActualType().getTypeTag();
+            }
             if (typeTag != ATypeTag.ORDEREDLIST && typeTag != ATypeTag.STRING 
&& typeTag != ATypeTag.UNORDEREDLIST) {
                 throw new AlgebricksException("Only ordered lists, string, and 
unordered lists types supported.");
             }
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.1.ddl.aql
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.1.ddl.aql
new file mode 100644
index 0000000..53ff3f9
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.1.ddl.aql
@@ -0,0 +1,46 @@
+/*
+ * 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 dataverse fuzzyjoin if exists;
+
+create dataverse fuzzyjoin;
+
+use dataverse fuzzyjoin;
+
+create type DBLPType as open {
+  id: int64,
+  dblpid: string?,
+  title: string?,
+  authors: string?,
+  misc: string?
+}
+
+create type CSXType as open {
+  id: int64,
+  csxid: string?,
+  title: string?,
+  authors: string?,
+  misc: string?
+}
+
+create dataset DBLP(DBLPType) primary key id;
+create dataset CSX(CSXType) primary key id;
+
+create index dblpKidx on DBLP(title) type keyword;
+create index csxKidx on CSX(title) type keyword;
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.2.update.aql
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.2.update.aql
new file mode 100644
index 0000000..fc2fb4b
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.2.update.aql
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+use dataverse fuzzyjoin;
+
+load dataset DBLP
+using localfs
+(("path"="asterix_nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
+
+load dataset CSX
+using localfs
+(("path"="asterix_nc1://data/pub-small/csx-small-id.txt"),("format"="delimited-text"),("delimiter"=":"),("quote"="\u0000"));
+
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.3.query.aql
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.3.query.aql
new file mode 100644
index 0000000..b5d9ac1
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.3.query.aql
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+use dataverse fuzzyjoin;
+
+set simthreshold '.5f';
+
+for $dblp in dataset('DBLP')
+for $csx in dataset('CSX')
+where word-tokens($csx.title) ~= word-tokens($dblp.title)
+order by $dblp.id, $csx.id
+return {'dblp': $dblp, 'csx': $csx}
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.1.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.1.adm
new file mode 100644
index 0000000..9e9c6d4
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/fuzzyjoin/dblp-csx-aqlplus_4/dblp-csx-aqlplus_4.1.adm
@@ -0,0 +1,7 @@
+{ "dblp": { "id": 1, "dblpid": "books/acm/kim95/AnnevelinkACFHK95", "title": 
"Object SQL - A Language for the Design and Implementation of Object 
Databases.", "authors": "Jurgen Annevelink Rafiul Ahad Amelia Carlson Daniel H. 
Fishman Michael L. Heytens William Kent", "misc": "2002-01-03 42-68 1995 Modern 
Database Systems db/books/collections/kim95.html#AnnevelinkACFHK95" }, "csx": { 
"id": 1, "csxid": "oai CiteSeerXPSU 10.1.1.39.1830", "title": "Object SQL - A 
Language for the Design and Implementation of Object Databases", "authors": 
"Jurgen Annevelink Rafiul Ahad Amelia Carlson Dan Fishman Mike Heytens William 
Kent", "misc": "2009-04-13 ly, a function application expression consists of 
two expressions  a function reference (labelled func_ref in Figure 3 line 2), 
and an argument (labelled arg). The func_ref expression evaluates to a (generic 
or specific) function identifier, which may be the same as the function that 
the expression is a part of, thus allowing recursive funct
 ion invocations. The expression labelled arg evaluates to an arbitrary object 
or aggregate object. The semantics of evaluating function applications was 
discussed in detail in section 2. For example, to set the name of a person, we 
evaluate the following expression   FunAssign(function name.person) (p1,'John') 
 In this example, the first expression is itself a function call, applying the 
function FunAssign to the function name.person (an example of a specific 
function reference). This returns the oid of the function that sets a person's 
name, which is subsequently applied to a tuple of two elements, the oid of the 
person and the new name (a string o... CiteSeerX ACM Press 2009-04-13 
2007-11-22 1994 application/postscript text http 
//citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.1830 http 
//www.tu-chemnitz.de/~igrdb/docs/OpenODB/osql.ps.gz en 10.1.1.31.2534 
10.1.1.28.4658 10.1.1.44.5947 10.1.1.39.199 Metadata may be used without 
restrictions as long as the oai identifie
 r remains attached to it." } }
+{ "dblp": { "id": 5, "dblpid": "books/acm/kim95/DayalHW95", "title": "Active 
Database Systems.", "authors": "Umeshwar Dayal Eric N. Hanson Jennifer Widom", 
"misc": "2002-01-03 434-456 1995 Modern Database Systems 
db/books/collections/kim95.html#DayalHW95" }, "csx": { "id": 98, "csxid": "oai 
CiteSeerXPSU 10.1.1.49.2910", "title": "Active Database Systems", "authors": 
"Umeshwar Dayal Eric N. Hanson Jennifer Widom", "misc": "2009-04-12 In Won Kim 
editor Modern Database Systems The Object Model Integrating a production rules 
facility into a database system provides a uniform mechanism for a number of 
advanced database features including integrity constraint enforcement, derived 
data maintenance, triggers, alerters, protection, version control, and others. 
In addition, a database system with rule processing capabilities provides a 
useful platform for large and efficient knowledge-base and expert systems. 
Database systems with production rules are referred to as active database sy
 stems, and the field of active database systems has indeed been active. This 
chapter summarizes current work in active database systems  topics covered 
include active database rule models and languages, rule execution semantics, 
and implementation issues.  1 Introduction  Conventional database systems are 
passive  they only execute queries or transactions explicitly submitted by a 
user or an application program. For many applications, however, it is important 
to monitor situations of interest, and to ... CiteSeerX ACM Press 2009-04-12 
2007-11-22 1994 application/postscript text http 
//citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.49.2910 http 
//www-db.stanford.edu/pub/papers/book-chapter.ps en 10.1.1.17.1323 
10.1.1.143.7196 10.1.1.50.3821 10.1.1.51.9946 10.1.1.41.2030 10.1.1.46.2504 
10.1.1.52.4421 10.1.1.38.2083 10.1.1.34.661 10.1.1.103.7630 10.1.1.100.9015 
10.1.1.97.1699 10.1.1.107.4220 10.1.1.47.9217 10.1.1.133.7157 10.1.1.101.5051 
10.1.1.30.9989 10.1.1.53.6941 10.1.1.5
 0.8529 10.1.1.133.4287 10.1.1.50.7278 10.1.1.10.1688 10.1.1.19.8669 
10.1.1.44.7600 10.1.1.144.376 10.1.1.44.1348 10.1.1.47.9998 10.1.1.90.4428 
10.1.1.108.344 10.1.1.48.9470 10.1.1.53.5472 10.1.1.52.4872 10.1.1.144.4965 
10.1.1.31.7578 10.1.1.32.6426 10.1.1.58.6335 10.1.1.85.8052 10.1.1.93.1931 
10.1.1.55.4610 10.1.1.21.3821 10.1.1.26.9208 10.1.1.31.4869 10.1.1.48.1833 
10.1.1.83.8628 10.1.1.87.9318 10.1.1.90.2195 10.1.1.36.5184 10.1.1.21.1704 
10.1.1.53.1733 10.1.1.90.3181 10.1.1.53.6783 10.1.1.52.6151 10.1.1.104.6911 
10.1.1.105.1691 10.1.1.21.1984 10.1.1.23.2775 10.1.1.62.5556 10.1.1.68.9063 
10.1.1.74.4746 10.1.1.78.5097 10.1.1.84.743 10.1.1.84.904 10.1.1.87.6019 
10.1.1.88.3907 10.1.1.89.9631 10.1.1.90.4147 10.1.1.92.365 10.1.1.100.2747 
10.1.1.98.5083 10.1.1.98.6663 10.1.1.99.1894 10.1.1.99.8174 10.1.1.133.8073 
10.1.1.52.7823 10.1.1.39.5341 10.1.1.35.3458 10.1.1.26.4620 10.1.1.18.8936 
10.1.1.19.3694 10.1.1.12.631 10.1.1.48.6394 Metadata may be used without 
restrictions as long 
 as the oai identifier remains attached to it." } }
+{ "dblp": { "id": 21, "dblpid": "books/acm/kim95/MengY95", "title": "Query 
Processing in Multidatabase Systems.", "authors": "Weiyi Meng Clement T. Yu", 
"misc": "2002-01-03 551-572 1995 Modern Database Systems 
db/books/collections/kim95.html#MengY95" }, "csx": { "id": 89, "csxid": "oai 
CiteSeerXPSU 10.1.1.33.8596", "title": "Dynamic Query Optimization and Query 
Processing in Multidatabase Systems 1.", "authors": "Henryk Josinski", "misc": 
"2009-04-15 Introduction  The multidatabase system (MDBS) approach, as a 
solution for integrated access to information distributed among diverse data 
sources, has gained a lot of attention in recent years. The multidatabase 
system is a database system which integrates pre--existing databases allowing 
the users to access simultaneously database systems (DBMSs) formulating a 
global query based on a global schema.  The component DBMSs are assumed to be 
heterogeneous and autonomous. Heterogeneity refers to different user 
interfaces, data models
 , query languages, and query optimization strategies [5]. Local autonomy means 
that each DBMS retains complete control over local data and processing. As 
result of this, its cost model may not be available to the global query 
optimizer.  When a global query is submitted, it is decomposed into two types 
of queries [1]   -- subqueries, operating on sharable data items from local 
databases,  -- assembling queries, consisting of, CiteSeerX  2009-04-15 
2007-11-22 2000 application/pdf text http 
//citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.33.8596 http 
//www.edbt2000.uni-konstanz.de/phd-workshop/papers/Josinski.pdf en 
10.1.1.27.4704 10.1.1.51.8352 Metadata may be used without restrictions as long 
as the oai identifier remains attached to it." } }
+{ "dblp": { "id": 25, "dblpid": "books/acm/kim95/RusinkiewiczS95", "title": 
"Specification and Execution of Transactional Workflows.", "authors": "Marek 
Rusinkiewicz Amit P. Sheth", "misc": "2004-03-08 592-620 Modern Database 
Systems books/acm/Kim95 db/books/collections/kim95.html#RusinkiewiczS95 1995" 
}, "csx": { "id": 88, "csxid": "oai CiteSeerXPSU 10.1.1.43.3839", "title": 
"Specification and Execution of Transactional Workflows", "authors": "Marek 
Rusinkiewicz Amit Sheth", "misc": "2009-04-13 The basic transaction model has 
evolved over time to incorporate more complex transaction structures  and to 
selectively modify the atomicity and isolation properties. In this chapter we 
discuss the application  of transaction concepts to activities that involve 
coordinated execution of multiple tasks (possibly of  different types) over 
different processing entities. Such applications are referred to as 
transactional  workflows. In this chapter we discuss the specification of such 
wo
 rkflows and the issues involved in their  execution.  1 What is a Workflow?  
Workflows are activities involving the coordinated execution of multiple tasks 
performed by different processing entities. A task defines some work to be done 
and can be specified in a number of ways, including a textual description in a 
file or an email, a form, a message, or a computer program. A processing entity 
that performs the tasks may be a person or a software system (e.g., a mailer, 
an application program, a database mana... CiteSeerX ACM Press 2009-04-13 
2007-11-22 1995 application/postscript text http 
//citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.3839 http 
//lsdis.cs.uga.edu/lib/././download/RS93.ps en 10.1.1.17.1323 10.1.1.59.5051 
10.1.1.38.6210 10.1.1.68.7445 10.1.1.109.5175 10.1.1.17.7962 10.1.1.44.7778 
10.1.1.112.244 10.1.1.13.7602 10.1.1.102.7874 10.1.1.41.4043 10.1.1.49.5143 
10.1.1.41.7252 10.1.1.17.3225 10.1.1.54.7761 10.1.1.55.5255 10.1.1.108.958 
10.1.1.35.7733 10.1.1.52.
 3682 10.1.1.36.1618 10.1.1.45.6317 10.1.1.43.3180 10.1.1.35.8718 
10.1.1.44.6365 10.1.1.51.2883 10.1.1.50.9206 10.1.1.6.9085 10.1.1.30.1707 
10.1.1.80.6634 10.1.1.49.355 10.1.1.127.3550 10.1.1.35.3562 10.1.1.137.8832 
10.1.1.49.4085 10.1.1.41.5506 10.1.1.40.4657 10.1.1.43.2369 10.1.1.40.832 
10.1.1.74.5411 10.1.1.90.4428 10.1.1.110.6967 10.1.1.27.2122 10.1.1.15.5605 
10.1.1.54.727 10.1.1.49.7512 10.1.1.45.8796 10.1.1.50.5984 10.1.1.53.137 
10.1.1.30.3262 10.1.1.28.1680 10.1.1.21.7110 10.1.1.29.3148 10.1.1.57.687 
10.1.1.59.5924 10.1.1.46.2812 10.1.1.51.5552 10.1.1.17.7375 10.1.1.40.1598 
10.1.1.52.9787 10.1.1.1.3496 10.1.1.50.6791 10.1.1.55.3358 10.1.1.137.7582 
10.1.1.118.4127 10.1.1.49.3580 10.1.1.35.5825 10.1.1.46.9382 10.1.1.31.7411 
10.1.1.48.5504 10.1.1.55.5163 10.1.1.18.1603 10.1.1.52.8129 10.1.1.1.9723 
10.1.1.21.9113 10.1.1.49.7644 10.1.1.52.6646 10.1.1.75.3106 10.1.1.80.2072 
10.1.1.55.8770 10.1.1.54.8188 10.1.1.101.7919 10.1.1.104.8176 10.1.1.24.5741 
10.1.1.29.4667 10.1.1.4.1
 055 10.1.1.48.9175 10.1.1.56.792 10.1.1.65.3172 10.1.1.66.5947 10.1.1.73.8532 
10.1.1.83.8299 10.1.1.86.8521 10.1.1.87.2402 10.1.1.87.4648 10.1.1.90.5638 
10.1.1.91.1709 10.1.1.94.4248 10.1.1.114.511 10.1.1.119.5037 10.1.1.124.7957 
10.1.1.49.215 10.1.1.53.7777 10.1.1.53.9711 10.1.1.45.9409 10.1.1.40.8789 
10.1.1.43.4845 10.1.1.34.8273 10.1.1.35.4783 10.1.1.28.3176 10.1.1.16.8151 
10.1.1.8.9117 10.1.1.58.3449 10.1.1.142.7041 Metadata may be used without 
restrictions as long as the oai identifier remains attached to it." } }
+{ "dblp": { "id": 51, "dblpid": "books/aw/kimL89/NierstraszT89", "title": 
"Integrated Office Systems.", "authors": "Oscar Nierstrasz Dennis Tsichritzis", 
"misc": "2002-01-03 199-215 1989 Object-Oriented Concepts, Databases, and 
Applications db/books/collections/kim89.html#NierstraszT89" }, "csx": { "id": 
92, "csxid": "oai CiteSeerXPSU 10.1.1.13.2374", "title": "Integrated Office 
Systems", "authors": "O. M. Nierstrasz D. C. Tsichritzis", "misc": "2009-04-17 
Introduction  New techniques are sorely needed to aid in the development and 
maintenance of large application systems. The problem with traditional 
approaches to software engineering is well in evidence in the field of o#ce 
information systems  it is costly and di#cult to extend existing applications, 
and to get unrelated applications to \"talk\" to each other. The objectoriented 
approach is already being tentatively applied in the modeling of \"o#ce 
objects\" and in the presentation of these entities to users as such in \
 "desktop\" interfaces to o#ce software. In order to fully exploit the approach 
to achieve integrated o#ce systems, we need to use object-oriented programming 
languages, object-oriented run-time support, and object-oriented software 
engineering environments.  We can view the fundamental idea behind the 
object-oriented approach as that of encapsulation  object-oriented languages 
and systems exploit encapsulation in various ways in an attempt to enhance 
productivity through, f CiteSeerX  2009-04-17 2007-11-21 1988 application/pdf 
text http //citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.2374 http 
//www.iam.unibe.ch/~scg/Archive/OSG/Nier89bIntegOfficeSystems.pdf en 
10.1.1.26.9545 10.1.1.65.5865 10.1.1.34.624 10.1.1.12.8544 10.1.1.144.6983 
10.1.1.26.6746 10.1.1.49.3064 10.1.1.30.4607 10.1.1.38.4894 10.1.1.20.8197 
10.1.1.26.4381 10.1.1.29.1890 Metadata may be used without restrictions as long 
as the oai identifier remains attached to it." } }
+{ "dblp": { "id": 51, "dblpid": "books/aw/kimL89/NierstraszT89", "title": 
"Integrated Office Systems.", "authors": "Oscar Nierstrasz Dennis Tsichritzis", 
"misc": "2002-01-03 199-215 1989 Object-Oriented Concepts, Databases, and 
Applications db/books/collections/kim89.html#NierstraszT89" }, "csx": { "id": 
93, "csxid": "oai CiteSeerXPSU 10.1.1.42.9253", "title": "Integrated Office 
Systems", "authors": "O. M. Nierstrasz D. C. Tsichritzis", "misc": "2009-04-11 
Introduction  New techniques are sorely needed to aid in the development and 
maintenance of large application systems. The problem with traditional 
approaches to software engineering is well in evidence in the field of office 
information systems  it is costly and difficult to extend existing 
applications, and to get unrelated applications to \"talk\" to each other. The 
objectoriented approach is already being tentatively applied in the modeling of 
\"office objects\" and in the presentation of these entities to users as suc
 h in \"desktop\" interfaces to office software. In order to fully exploit the 
approach to achieve integrated office systems, we need to use object-oriented 
programming languages, object-oriented run-time support, and object-oriented 
software engineering environments. We can view the fundamental idea behind the 
object-oriented approach as that of encapsulation  object-oriented languages 
and systems exploit encapsulation in various ways in an attempt t CiteSeerX ACM 
Press and Addison-Wesley 2009-04-11 2007-11-22 1988 application/postscript text 
http //citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.9253 ftp 
//ftp.iam.unibe.ch/pub/scg/Papers/integratedOfficeSystems.ps.gz en 
10.1.1.26.9545 10.1.1.65.5865 10.1.1.34.624 10.1.1.12.8544 10.1.1.144.6983 
10.1.1.26.6746 10.1.1.49.3064 10.1.1.30.4607 10.1.1.38.4894 10.1.1.20.8197 
10.1.1.26.4381 10.1.1.29.1890 Metadata may be used without restrictions as long 
as the oai identifier remains attached to it." } }
+{ "dblp": { "id": 54, "dblpid": "books/aw/kimL89/SteinLU89", "title": "A 
Shared View of Sharing  The Treaty of Orlando.", "authors": "Lynn Andrea Stein 
Henry Lieberman David Ungar", "misc": "2002-01-03 31-48 1989 Object-Oriented 
Concepts, Databases, and Applications 
db/books/collections/kim89.html#SteinLU89" }, "csx": { "id": 91, "csxid": "oai 
CiteSeerXPSU 10.1.1.55.482", "title": "A Shared View of Sharing  The Treaty of 
Orlando", "authors": "Lynn Andrea Stein Henry Lieberman David Ungar", "misc": 
"2009-04-12 Introduction For the past few years, researchers have been debating 
the relative merits of object-oriented languages with classes and inheritance 
as opposed to those with prototypes and delegation. It has become clear that 
the object-oriented programming language design space is not a dichotomy. 
Instead, we have identified two fundamental mechanisms---templates and  
empathy---and several different independent degrees of freedom for each. 
Templates create new objects in 
 their own image, providing guarantees about the similarity of group members. 
Empathy allows an object to act as if it were some other object, thus providing 
sharing of state and behavior. The Smalltalk-80  TM  language,  1  Actors, 
Lieberman's Delegation  system, Self, and Hybrid each take differing stands on 
the forms of templates  1  Smalltalk-80  TM  is a trademark of Par CiteSeerX 
ACM Press 2009-04-12 2007-11-22 1989 application/postscript text http 
//citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.55.482 http 
//lcs.www.media.mit.edu/people/lieber/Lieberary/OOP/Treaty/Treaty.ps en 
10.1.1.26.9545 10.1.1.118.6579 10.1.1.48.69 10.1.1.57.5195 10.1.1.9.570 
10.1.1.47.511 10.1.1.127.5320 10.1.1.100.4334 10.1.1.5.3348 10.1.1.39.3374 
10.1.1.56.4713 10.1.1.61.2065 10.1.1.27.3015 10.1.1.1.5960 10.1.1.67.5433 
10.1.1.31.8109 10.1.1.68.4062 10.1.1.49.3986 10.1.1.122.9331 10.1.1.46.8283 
10.1.1.54.5230 10.1.1.16.2055 10.1.1.137.5180 10.1.1.43.5722 10.1.1.68.2105 
10.1.1.35.1247 10.1.1.3
 0.1415 10.1.1.7.5014 10.1.1.102.3946 10.1.1.105.6469 10.1.1.26.223 
10.1.1.26.8645 10.1.1.35.4104 10.1.1.39.6986 10.1.1.41.7822 10.1.1.42.9056 
10.1.1.53.9325 10.1.1.71.1802 10.1.1.76.6993 10.1.1.89.9613 10.1.1.121.5599 
10.1.1.122.3737 10.1.1.127.1894 10.1.1.55.5674 10.1.1.37.8260 10.1.1.2.2077 
10.1.1.24.5782 10.1.1.19.780 10.1.1.2.4148 10.1.1.2.4173 10.1.1.131.902 
10.1.1.30.2927 Metadata may be used without restrictions as long as the oai 
identifier remains attached to it." } }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml 
b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
index 1bb1367..30e99e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
@@ -2617,6 +2617,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="fuzzyjoin">
+      <compilation-unit name="dblp-csx-aqlplus_4">
+        <output-dir compare="Text">dblp-csx-aqlplus_4</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="fuzzyjoin">
       <compilation-unit name="dblp-csx-dblp-aqlplus_1">
         <output-dir compare="Text">dblp-csx-dblp-aqlplus_1</output-dir>
       </compilation-unit>

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1021
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie82badb0b9c1c04a1135b1829c445b5ddfb8c754
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Taewoo Kim <[email protected]>

Reply via email to