summaryrefslogtreecommitdiff
path: root/examples/java
diff options
context:
space:
mode:
authorDon Anderson <dda@ddanderson.com>2015-11-03 13:36:26 -0500
committerDon Anderson <dda@ddanderson.com>2015-11-03 13:36:26 -0500
commitd46c3bf7b1bed11da473d351847b915bda1bb83f (patch)
tree60472c582d319d2264ee7cc2fbf38352290dc32b /examples/java
parent2770eb0749ec395c7937154798ef20e30ad58fcb (diff)
downloadmongo-d46c3bf7b1bed11da473d351847b915bda1bb83f.tar.gz
WT-1315. Added C and java examples for join cursors.
Diffstat (limited to 'examples/java')
-rw-r--r--examples/java/com/wiredtiger/examples/ex_schema.java43
1 files changed, 40 insertions, 3 deletions
diff --git a/examples/java/com/wiredtiger/examples/ex_schema.java b/examples/java/com/wiredtiger/examples/ex_schema.java
index 5b849ecf430..ba15db62a14 100644
--- a/examples/java/com/wiredtiger/examples/ex_schema.java
+++ b/examples/java/com/wiredtiger/examples/ex_schema.java
@@ -57,12 +57,16 @@ public class ex_schema {
popData = new ArrayList<PopRecord>();
popData.add(new PopRecord("AU", (short)1900, 4000000 ));
+ popData.add(new PopRecord("AU", (short)1950, 8267337 ));
popData.add(new PopRecord("AU", (short)2000, 19053186 ));
popData.add(new PopRecord("CAN", (short)1900, 5500000 ));
+ popData.add(new PopRecord("CAN", (short)1950, 14011422 ));
popData.add(new PopRecord("CAN", (short)2000, 31099561 ));
popData.add(new PopRecord("UK", (short)1900, 369000000 ));
+ popData.add(new PopRecord("UK", (short)1950, 50127000 ));
popData.add(new PopRecord("UK", (short)2000, 59522468 ));
popData.add(new PopRecord("USA", (short)1900, 76212168 ));
+ popData.add(new PopRecord("USA", (short)1950, 150697361 ));
popData.add(new PopRecord("USA", (short)2000, 301279593 ));
};
/*! [schema declaration] */
@@ -72,7 +76,7 @@ public class ex_schema {
throws WiredTigerException
{
Connection conn;
- Cursor cursor;
+ Cursor cursor, cursor2, join_cursor;
Session session;
String country;
long recno, population;
@@ -206,7 +210,7 @@ public class ex_schema {
* for a particular country.
*/
cursor = session.open_cursor("colgroup:poptable:main", null, null);
- cursor.putKeyLong(2);
+ cursor.putKeyRecord(2);
if ((ret = cursor.search()) == 0) {
country = cursor.getValueString();
year = cursor.getValueShort();
@@ -223,7 +227,7 @@ public class ex_schema {
* population of a particular country.
*/
cursor = session.open_cursor("colgroup:poptable:population", null, null);
- cursor.putKeyLong(2);
+ cursor.putKeyRecord(2);
if ((ret = cursor.search()) == 0) {
population = cursor.getValueLong();
System.out.println("ID 2: population " + population);
@@ -335,6 +339,39 @@ public class ex_schema {
/*! [Access only the index] */
ret = cursor.close();
+ /*! [Join cursors] */
+ /* Open cursors needed by the join. */
+ join_cursor = session.open_cursor(
+ "join:table:poptable", null, null);
+ cursor = session.open_cursor(
+ "index:poptable:country", null, null);
+ cursor2 = session.open_cursor(
+ "index:poptable:immutable_year", null, null);
+
+ /* select values WHERE country == "AU" AND year > 1900 */
+ cursor.putKeyString("AU");
+ ret = cursor.search();
+ session.join(join_cursor, cursor, "compare=eq,count=10");
+ cursor2.putKeyShort((short)1900);
+ ret = cursor2.search();
+ session.join(join_cursor, cursor2,
+ "compare=gt,count=10,strategy=bloom");
+
+ /* List the values that are joined */
+ while ((ret = join_cursor.next()) == 0) {
+ recno = join_cursor.getKeyRecord();
+ country = join_cursor.getValueString();
+ year = join_cursor.getValueShort();
+ population = join_cursor.getValueLong();
+ System.out.print("ID " + recno);
+ System.out.println( ": country " + country + ", year " + year +
+ ", population " + population);
+ }
+ /*! [Join cursors] */
+ ret = join_cursor.close();
+ ret = cursor2.close();
+ ret = cursor.close();
+
ret = conn.close(null);
return (ret);