List:NDB Connectors« Previous MessageNext Message »
From:Monty Taylor Date:January 4 2008 7:28pm
Subject:Rev 407: Replaced MYSQL_TIME with new class NdbDateTime to simplify typemappings. in http://bazaar.launchpad.net/~ndb-connectors/ndb-connectors/devel...
View as plain text  
At http://bazaar.launchpad.net/~ndb-connectors/ndb-connectors/devel

------------------------------------------------------------
revno: 407
revision-id:mtaylor@stripped
parent: mtaylor@stripped
committer: Monty Taylor <mtaylor@stripped>
branch nick: devel
timestamp: Fri 2008-01-04 11:27:41 -0800
message:
  Replaced MYSQL_TIME with new class NdbDateTime to simplify typemappings. 
added:
  csharp/ndbapi/NdbDateTimeHelper.cs
ndbdatetimehelper.cs-20080104192005-wp3jcdt7i50w7z3v-1
renamed:
  java/swig/mysql_time.i => java/swig/NdbDateTime.i
mysql_time.i-20071220010513-amjnzrb6ece4xkbc-17
modified:
  csharp/csharp.userprefs        csharp.userprefs-20071231171226-bgekh6don5s6evnk-3
  csharp/examples/examples.mdp   test.mdp-20071231171204-0aihyf88clt213sl-1
  csharp/ndbapi.i               
svn-v2:10@5fca6d9a-db22-0410-b55c-899b0a28da89-trunk-csharp%2fndb.i
  csharp/ndbapi/ndbapi.mdp       ndbapi.mdp-20071231171154-cc3a94g06bm81lq9-1
  interface/ndbapi/NdbIndexScanOperation.i
ndbindexscanoperatio-20070426125039-esztodu0kcqbofgn-1
  interface/ndbapi/NdbOperation.i ndboperation.i-20070228021421-qkr4cbpxymyqdrf3-3
  interface/ndbapi/NdbRecAttr.i  ndbrecattr.i-20070228021421-qkr4cbpxymyqdrf3-4
  interface/ndbapi/NdbScanFilter.i ndbscanfilter.i-20070521223726-lvjwmtu5b6uvgsft-1
  interface/ndbapi/ndbglobals.i  globals.i-20070228021421-qkr4cbpxymyqdrf3-7
  java/ndbj.i                    ndbj.i-20070913223244-5938mztpztyn9sry-1
  java/prj.el                    prj.el-20080104181740-bu7z9q4ss5spu65l-1
  java/swig/NdbDateTime.i        mysql_time.i-20071220010513-amjnzrb6ece4xkbc-17
=== added file 'csharp/ndbapi/NdbDateTimeHelper.cs'
--- a/csharp/ndbapi/NdbDateTimeHelper.cs	1970-01-01 00:00:00 +0000
+++ b/csharp/ndbapi/NdbDateTimeHelper.cs	2008-01-04 19:27:41 +0000
@@ -0,0 +1,39 @@
+// NdbDateTime.cs created with MonoDevelop
+// User: mtaylor at 9:53 AM 1/3/2008
+//
+// To change standard headers go to Edit->Preferences->Coding->Standard Headers
+//
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace MySql.Cluster.NdbApi
+{
+	
+	internal class NdbDateTimeHelper { 
+	  public static HandleRef systemDTtoNdbDT(System.DateTime theDateTime) { 
+			NdbDateTime dt = new NdbDateTime();
+			dt.year=(uint)theDateTime.Year;
+			dt.month=(uint)theDateTime.Month;
+			dt.day=(uint)theDateTime.Day;
+			dt.hour=(uint)theDateTime.Hour;
+			dt.minute=(uint)theDateTime.Minute;
+			dt.second=(uint)theDateTime.Second;
+			return NdbDateTime.getCPtr(dt);
+			                                
+		}
+		
+	}
+	
+	[StructLayout (LayoutKind.Sequential)]
+	internal struct mtNdbDateTime
+	{
+		public uint year;
+		public uint month; 
+		public uint day;
+		public uint hour;
+		public uint minute;
+		public uint second;
+	}
+
+}

=== renamed file 'java/swig/mysql_time.i' => 'java/swig/NdbDateTime.i'
--- a/java/swig/mysql_time.i	2007-12-20 01:16:46 +0000
+++ b/java/swig/NdbDateTime.i	2008-01-04 19:27:41 +0000
@@ -17,14 +17,15 @@
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
-%typemap(jni) MYSQL_TIME * "jobject"
-%typemap(jtype) MYSQL_TIME * "Object"
-%typemap(jstype) MYSQL_TIME * "java.util.Calendar"
-%typemap(javain) MYSQL_TIME * "$javainput"
-%typemap(javaout) MYSQL_TIME * { return (java.util.Calendar)$jnicall; }
+%typemap(jni) NdbDateTime * "jobject"
+%typemap(jtype) NdbDateTime * "Object"
+%typemap(jstype) NdbDateTime * "java.util.Calendar"
+%typemap(javain) NdbDateTime * "$javainput"
+%typemap(javaout) NdbDateTime * { return (java.util.Calendar)$jnicall; }
 
-%typemap(in) (MYSQL_TIME *) { 
-   MYSQL_TIME * dt = (MYSQL_TIME *)malloc(sizeof(MYSQL_TIME));
+%typemap(in) (NdbDateTime *) { 
+   //   NdbDateTime * dt = (NdbDateTime *)malloc(sizeof(NdbDateTime));
+   NdbDateTime * dt = new NdbDateTime();
    static jclass calendar_class = jenv->FindClass("java/util/Calendar");
    static jmethodID getID = jenv->GetMethodID(calendar_class,"get","(I)I");
    static jfieldID yearID = jenv->GetFieldID(calendar_class,"YEAR","I");
@@ -45,16 +46,17 @@
    jint hourval = jenv->CallIntMethod($input,getID,hourfield);
    jint minuteval = jenv->CallIntMethod($input,getID,minutefield);
    jint secondval = jenv->CallIntMethod($input,getID,secondfield);
-   dt->year = (int)yearval;
-   dt->month = (int)monthval;
-   dt->day = (int)dayval;
-   dt->hour = (int)hourval;
-   dt->minute = (int)minuteval;
-   dt->second = (int)secondval;
+   // TODO: Need to add sanity checking here for signed/unsigned madness
+   dt->year = (uint)yearval;
+   dt->month = (uint)monthval;
+   dt->day = (uint)dayval;
+   dt->hour = (uint)hourval;
+   dt->minute = (uint)minuteval;
+   dt->second = (uint)secondval;
    $1 = dt;
  }
 
-%typemap(out) (MYSQL_TIME *) { 
+%typemap(out) (NdbDateTime *) { 
   static jclass calendar_class = jenv->FindClass("java/util/Calendar");
   static jmethodID get_calendar_instance =
jenv->GetStaticMethodID(calendar_class,"getInstance","()Ljava/util/Calendar;");
   static jmethodID setID = jenv->GetMethodID(calendar_class,"set","(IIIIII)V");
@@ -64,6 +66,7 @@
  }
 
 
-%typemap(freearg) (MYSQL_TIME *) {
-  free((MYSQL_TIME *) $1);
+%typemap(freearg) (NdbDateTime *) {
+//  free((NdbDateTime *) $1);
+    delete $1;
  }

=== modified file 'csharp/csharp.userprefs'
--- a/csharp/csharp.userprefs	2007-12-31 22:48:46 +0000
+++ b/csharp/csharp.userprefs	2008-01-04 19:27:41 +0000
@@ -1,33 +1,33 @@
 <UserCombinePreferences version="1.0"
filename="/home/mtaylor/src/ndb-connectors/devel/csharp/csharp.mds">
   <Files>
     <File name="Welcome" />
-    <File name="ndbapi/generated/NdbEventOperation.cs" line="14" column="31" />
-    <File name="ndbapi/generated/NdbOperation.cs" line="27" column="34" />
-    <File name="ndbapi/generated/NdbTransaction.cs" line="45" column="15" />
-    <File name="ndbapi/generated/Ndb.cs" line="83" column="26" />
-    <File name="mgmapi/generated/mgmapiPINVOKE.cs" line="857" column="32" />
-    <File name="ndbapi/generated/NdbIndex.cs" line="125" column="7" />
-    <File name="ndbapi/generated/ndbapiPINVOKE.cs" line="241" column="32" />
-    <File name="test/testasync.cs" line="28" column="20" />
-    <File name="test/test.cs" line="17" column="3" />
-    <File name="test/test2.cs" line="23" column="12" />
-    <File name="ndbapi/BaseCallback.cs" line="40" column="42" />
+    <File name="ndbapi/generated/ndbapiPINVOKE.cs" line="2338" column="30" />
+    <File name="ndbapi/BaseCallback.cs" line="14" column="5" />
     <File name="ndbapi/NdbExceptions.cs" line="2" column="1" />
+    <File name="examples/asyncexample/testasync.cs" line="13" column="1" />
+    <File name="ndbapi/generated/NdbTransaction.cs" line="1" column="1" />
+    <File name="ndbapi/generated/NdbRecAttr.cs" line="153" column="48" />
+    <File name="ndbapi/generated/NdbOperation.cs" line="580" column="16" />
+    <File name="ndbapi/NdbDateTime.cs" line="21" column="20" />
   </Files>
   <Views>
     <ViewMemento id="ProjectPad">
       <Node expanded="True">
-        <Node name="mgmapi" expanded="True" />
+        <Node name="asyncexample" expanded="True" />
         <Node name="ndbapi" expanded="True">
-          <Node name="generated" expanded="True" />
-        </Node>
-        <Node name="test" expanded="True" selected="True">
-          <Node name="References" expanded="True" />
+          <Node name="generated" expanded="True" selected="True" />
         </Node>
       </Node>
     </ViewMemento>
     <ViewMemento id="ClassPad">
       <Node expanded="True" />
     </ViewMemento>
+    <ViewMemento id="MonoDevelop.NUnit.TestPad">
+      <Node expanded="True" />
+    </ViewMemento>
   </Views>
+  <Properties>
+    <Property key="ActiveWindow"
value="/home/mtaylor/src/ndb-connectors/devel/csharp/ndbapi/NdbDateTime.cs" />
+    <Property key="ActiveConfiguration" value="Debug" />
+  </Properties>
 </UserCombinePreferences>
\ No newline at end of file

=== modified file 'csharp/examples/examples.mdp'
--- a/csharp/examples/examples.mdp	2008-01-03 00:04:44 +0000
+++ b/csharp/examples/examples.mdp	2008-01-04 19:27:41 +0000
@@ -19,6 +19,9 @@
     <File name="test2.cs" subtype="Code" buildaction="Compile" />
     <File name="bin/Debug/mgmapi.dll.mdb" subtype="Code" buildaction="Exclude" />
     <File name="bin/Debug/ndbapi.dll.mdb" subtype="Code" buildaction="Exclude" />
+    <File name="asyncexample/AssemblyInfo.cs" subtype="Code" buildaction="Compile"
/>
+    <File name="asyncexample/testasync.cs" subtype="Code" buildaction="Compile" />
+    <File name="asyncexample/bin/Debug/ndbapi.dll.mdb" subtype="Code"
buildaction="Exclude" />
   </Contents>
   <References>
     <ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" />

=== modified file 'csharp/ndbapi.i'
--- a/csharp/ndbapi.i	2008-01-03 00:04:44 +0000
+++ b/csharp/ndbapi.i	2008-01-04 19:27:41 +0000
@@ -40,6 +40,27 @@
     }
     return ret;
   }
+
+%typemap(cstype) NdbDateTime * "System.DateTime";
+%typemap(csin) NdbDateTime * "NdbDateTimeHelper.systemDTtoNdbDT($csinput)";
+%typemap(csout, excode=SWIGEXCODE) NdbDateTime * { 
+   IntPtr cPtr = $imcall;$excode
+   $csclassname ret = null; 
+   if (cPtr != IntPtr.Zero) {
+      ret = new $csclassname(cPtr, $owner);
+   }
+   return new System.DateTime((int)ret.year, (int)ret.month, (int)ret.day, (int)ret.hour,
(int)ret.minute, (int)ret.second);
+
+}
+
+class NdbDateTime
+{
+  public:
+    unsigned int  year, month, day, hour, minute, second;
+    NdbDateTime();
+};
+
+
 /*
 %typemap(in) (MYSQL_TIME *) { 
   if (PyDateTime_Check($input)) { 

=== modified file 'csharp/ndbapi/ndbapi.mdp'
--- a/csharp/ndbapi/ndbapi.mdp	2008-01-03 00:04:44 +0000
+++ b/csharp/ndbapi/ndbapi.mdp	2008-01-04 19:27:41 +0000
@@ -43,6 +43,13 @@
     <File name="generated/NdbTable.cs" subtype="Code" buildaction="Compile" />
     <File name="generated/NdbTransaction.cs" subtype="Code" buildaction="Compile"
/>
     <File name="BaseCallback.cs" subtype="Code" buildaction="Compile" />
+    <File name="bin/Debug/ndbapi.dll.mdb" subtype="Code" buildaction="Exclude" />
+    <File name="generated/SWIGTYPE_p_BYTES.cs" subtype="Code" buildaction="Exclude"
/>
+    <File name="generated/SWIGTYPE_p_MYSQL_TIME.cs" subtype="Code"
buildaction="Exclude" />
+    <File name="generated/SWIGTYPE_p_p_char.cs" subtype="Code" buildaction="Exclude"
/>
+    <File name="generated/SWIGTYPE_p_voidint.cs" subtype="Code" buildaction="Exclude"
/>
+    <File name="NdbDateTime.cs" subtype="Code" buildaction="Compile" />
+    <File name="generated/NdbDateTime.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Gac" localcopy="True" refto="System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" />

=== modified file 'interface/ndbapi/NdbIndexScanOperation.i'
--- a/interface/ndbapi/NdbIndexScanOperation.i	2007-11-06 22:59:00 +0000
+++ b/interface/ndbapi/NdbIndexScanOperation.i	2008-01-04 19:27:41 +0000
@@ -142,7 +142,7 @@
     Uint32 value = (Uint32)anInputTimestamp;
     return self->setBound(anAttrId,type,(void *) &value);
   };
-  voidint setBoundDatetime(const char* anAttrName, BoundType type,MYSQL_TIME *
anInputDateTime) { 
+  voidint setBoundDatetime(const char* anAttrName, BoundType type,NdbDateTime *
anInputDateTime) { 
     const NdbDictionary::Column * theColumn =
self->getTable()->getColumn(anAttrName);
     
     Uint64 dtval = ndbFormatDateTime(theColumn,anInputDateTime);
@@ -150,7 +150,7 @@
       return -1;
     return self->setBound(anAttrName,type,(void *) &dtval);
   };
-  voidint setBoundDatetime(Uint32 anAttrId, BoundType type, MYSQL_TIME *anInputDateTime)
{ 
+  voidint setBoundDatetime(Uint32 anAttrId, BoundType type, NdbDateTime *
anInputDateTime) { 
     const NdbDictionary::Column * theColumn =
self->getTable()->getColumn(anAttrId);
     Uint64 dtval = ndbFormatDateTime(theColumn,anInputDateTime);
     if (dtval == 1) 

=== modified file 'interface/ndbapi/NdbOperation.i'
--- a/interface/ndbapi/NdbOperation.i	2007-12-11 17:13:00 +0000
+++ b/interface/ndbapi/NdbOperation.i	2008-01-04 19:27:41 +0000
@@ -1,46 +1,46 @@
 // -*- mode: c++ -*- 
 /*  ndb-connectors: Wrappers for the NDBAPI
-    Copyright (C) 2006 MySQL, Inc.
-    
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or 
-    (at your option) any later version.
-    
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+Copyright (C) 2006 MySQL, Inc.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or 
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
 // ndbFormatString mallocs memory. Return value must be free'd by calling code
 %newobject ndbformatString;
 %typemap(newfree) char * "free($1);";
 
-  %ndbexception("NdbApiException") {
-    $action
-      if (result==NULL) { 
-        NDB_exception(NdbApiException,"Error Converting Argument Type!");
-      }
-  }
+%ndbexception("NdbApiException") {
+$action
+if (result==NULL) { 
+NDB_exception(NdbApiException,"Error Converting Argument Type!");
+}
+}
 
 
 
 char * ndbFormatString(const NdbDictColumn * theColumn, const char* aString, size_t len);
 
-  %ndbexception("NdbApiException") {
+/*  %ndbexception("NdbApiException") {
     $action
       if (result==1) { 
         NDB_exception(NdbApiException,"Error Converting Argument Type!");
       }
   }
 
-Uint64 ndbFormatDateTime(const NdbDictColumn * theColumn, MYSQL_TIME * aDateTime);
-
+Uint64 ndbFormatDateTime(const NdbDictColumn * theColumn, NdbDateTime * aDateTime);
+*/
   %ndbnoexception;
 
 %{
@@ -128,7 +128,7 @@
     }
   }
   
-  Uint64 ndbFormatDateTime(const NdbDictColumn * theColumn, MYSQL_TIME * tm) {
+  Uint64 ndbFormatDateTime(const NdbDictColumn * theColumn, NdbDateTime * tm) {
     
 
     // Returns 1 on failure. How much does that suck? 
@@ -527,7 +527,7 @@
   voidint setFloat(Uint32 anAttrId, float intVal) { 
     return self->setValue(anAttrId,intVal);
   }
-  voidint setDatetime(const char* anAttrName, MYSQL_TIME * anInputDateTime) { 
+  voidint setDatetime(const char* anAttrName, NdbDateTime * anInputDateTime) { 
 
     const NdbDictColumn * theColumn = self->getTable()->getColumn(anAttrName);
     
@@ -537,7 +537,7 @@
     return self->setValue(anAttrName,dtval);
 
   }
-  voidint setDatetime(Uint32 anAttrId, MYSQL_TIME * anInputDateTime) { 
+  voidint setDatetime(Uint32 anAttrId, NdbDateTime * anInputDateTime) { 
     
     const NdbDictColumn * theColumn = self->getTable()->getColumn(anAttrId);
     
@@ -601,7 +601,7 @@
     free(stringVal);
     return retval;
   }
-  voidint equalDatetime(const NdbDictColumn * theColumn, MYSQL_TIME * anInputDateTime) { 
+  voidint equalDatetime(const NdbDictColumn * theColumn, NdbDateTime * anInputDateTime) {

 
     Uint64 dtval = ndbFormatDateTime(theColumn,anInputDateTime);
     if (dtval == 1) 
@@ -609,7 +609,7 @@
     return self->equal(theColumn->getName(),dtval);
 
   }
-  voidint equalDatetime(const char* anAttrName, MYSQL_TIME * anInputDateTime) { 
+  voidint equalDatetime(const char* anAttrName, NdbDateTime * anInputDateTime) { 
 
     const NdbDictColumn * theColumn = self->getTable()->getColumn(anAttrName);
     
@@ -619,7 +619,7 @@
     return self->equal(anAttrName,dtval);
 
   }
-  voidint equalDatetime(Uint32 anAttrId, MYSQL_TIME * anInputDateTime) { 
+  voidint equalDatetime(Uint32 anAttrId, NdbDateTime * anInputDateTime) { 
     
     const NdbDictColumn * theColumn = self->getTable()->getColumn(anAttrId);
     

=== modified file 'interface/ndbapi/NdbRecAttr.i'
--- a/interface/ndbapi/NdbRecAttr.i	2007-11-24 04:14:32 +0000
+++ b/interface/ndbapi/NdbRecAttr.i	2008-01-04 19:27:41 +0000
@@ -185,8 +185,9 @@
     return NULL;
   }
 
-  MYSQL_TIME * getDatetime() { 
-    return NULL;
+  %ndbnoexception;
+  NdbDateTime * getDatetime() { 
+    return  new NdbDateTime();
   }
 
   %ndbexception("NdbApiException") {

=== modified file 'interface/ndbapi/NdbScanFilter.i'
--- a/interface/ndbapi/NdbScanFilter.i	2007-11-06 22:59:00 +0000
+++ b/interface/ndbapi/NdbScanFilter.i	2008-01-04 19:27:41 +0000
@@ -228,7 +228,7 @@
     Uint32 value = (Uint32)anInputTimestamp;
     return self->cmp(cond,ColId,(void *) &value);
   };
-  int cmp(NdbOperation * op, BinaryCondition cond, int ColId, MYSQL_TIME
*anInputDateTime) { 
+  int cmp(NdbOperation * op, BinaryCondition cond, int ColId, NdbDateTime *
anInputDateTime) { 
     const NdbDictionary::Column * theColumn = op->getTable()->getColumn(ColId);
     Uint64 dtval = ndbFormatDateTime(theColumn,anInputDateTime);
     if (dtval == 1) 
@@ -332,7 +332,7 @@
     Uint32 value = (Uint32)anInputTimestamp;
     return self->cmp(cond,ColId,(void *) &value);
   };
-  int cmp(NdbOperation * op, BinaryCondition cond, const char * ColName, MYSQL_TIME
*anInputDateTime) { 
+  int cmp(NdbOperation * op, BinaryCondition cond, const char * ColName, NdbDateTime *
anInputDateTime) { 
     int ColId = getColumnId(op,ColName);
     if (ColId == -1) { 
       return ColId; 

=== modified file 'interface/ndbapi/ndbglobals.i'
--- a/interface/ndbapi/ndbglobals.i	2007-11-06 22:59:00 +0000
+++ b/interface/ndbapi/ndbglobals.i	2008-01-04 19:27:41 +0000
@@ -62,6 +62,23 @@
   char * theString; 
   int theLength; 
 } BYTES; 
+
+class NdbDateTime
+{
+  public: 
+    unsigned int  year, month, day, hour, minute, second;
+    NdbDateTime();
+};
+
+NdbDateTime::NdbDateTime() { 
+  year=0;
+  month=0;
+  day=0;
+  hour=0;
+  minute=0;
+  second=0;
+}
+
 %}
 
 long long getMicroTime();
@@ -72,15 +89,9 @@
   MYSQL_TIMESTAMP_NONE= -2, MYSQL_TIMESTAMP_ERROR= -1,
   MYSQL_TIMESTAMP_DATE= 0, MYSQL_TIMESTAMP_DATETIME= 1, MYSQL_TIMESTAMP_TIME= 2
 };
-
-typedef struct st_mysql_time
-{
-  unsigned int  year, month, day, hour, minute, second;
-  unsigned long second_part;
-  my_bool       neg;
-  enum enum_mysql_timestamp_type time_type;
-} MYSQL_TIME;
 */
+
+
 // TODO: This is a little stupid. 
 //   Why don't we just typedef these right in the first place
 %rename(NdbObject) NdbDictObject;

=== modified file 'java/ndbj.i'
--- a/java/ndbj.i	2007-12-20 01:16:46 +0000
+++ b/java/ndbj.i	2008-01-04 19:27:41 +0000
@@ -43,7 +43,7 @@
 
 %include "voidint.i"
 
-%include "mysql_time.i"
+%include "NdbDateTime.i"
 
 %include "timestamp.i"
 %include "byte_array.i"

=== modified file 'java/prj.el'
--- a/java/prj.el	2008-01-04 18:19:20 +0000
+++ b/java/prj.el	2008-01-04 19:27:41 +0000
@@ -2,4 +2,5 @@
 (jde-set-variables
  '(jde-enable-abbrev-mode t)
  '(jde-global-classpath (quote ("./lib" ".")))
- '(jde-compiler (quote ("javac" ""))))
+ '(jde-compiler (quote ("javac" "")))
+ '(jde-complete-function (quote jde-complete-minibuf)))

Thread
Rev 407: Replaced MYSQL_TIME with new class NdbDateTime to simplify typemappings. in http://bazaar.launchpad.net/~ndb-connectors/ndb-connectors/develMonty Taylor4 Jan