glom r1986 - in trunk: . glom/mode_design/fields



Author: murrayc
Date: Fri Mar 13 16:33:25 2009
New Revision: 1986
URL: http://svn.gnome.org/viewvc/glom?rev=1986&view=rev

Log:
2009-03-13  Murray Cumming  <murrayc murrayc com>

* glom/mode_design/fields/box_db_table_definition.
field_has_null_values(): Do not warn about a false failure. 

Modified:
   trunk/ChangeLog
   trunk/glom/mode_design/fields/box_db_table_definition.cc

Modified: trunk/glom/mode_design/fields/box_db_table_definition.cc
==============================================================================
--- trunk/glom/mode_design/fields/box_db_table_definition.cc	(original)
+++ trunk/glom/mode_design/fields/box_db_table_definition.cc	Fri Mar 13 16:33:25 2009
@@ -623,24 +623,28 @@
 
 bool Box_DB_Table_Definition::field_has_null_values(const sharedptr<const Field>& field)
 {
+  //TODO: Use SQL paramters?
   //Note that "= Null" doesn't work, though it doesn't error either.
   //Note also that SELECT COUNT always returns 0 if all the values are NULL, so we can't use that to be more efficient.
-  const Glib::ustring sql_query = "SELECT \"" + field->get_name() + "\" FROM \"" + m_table_name + "\" WHERE \"" + m_table_name + "\".\"" + field->get_name() + "\" IS NULL ";
+  const Glib::ustring sql_query = "SELECT \"" + field->get_name() + "\" FROM \"" + m_table_name + "\" WHERE \"" + m_table_name + "\".\"" + field->get_name() + "\" IS NULL LIMIT 1";
   //std::cout << "sql_query: " << sql_query << std::endl;
 
   long null_count = 0;
   Glib::RefPtr<Gnome::Gda::DataModel> datamodel = query_execute_select(sql_query);
-  if(datamodel && datamodel->get_n_rows() && datamodel->get_n_columns())
+  if(datamodel)
   {
-    null_count = datamodel->get_n_rows();
-    //std::cout << "debug: null_count = " << null_count << std::endl;
+    if(datamodel->get_n_rows() && datamodel->get_n_columns())
+    {
+      null_count = datamodel->get_n_rows();
+      //std::cout << "debug: null_count = " << null_count << std::endl;
+    }
   }
   else
   {
-    g_warning("Box_DB_Table_Definition::field_has_null_values(): SELECT COUNT() failed.");
+    std::cerr << "Box_DB_Table_Definition::field_has_null_values(): query failed: " << sql_query << std::endl;
   }
 
-   return null_count > 0; 
+  return null_count > 0; 
 }
 
 bool Box_DB_Table_Definition::field_has_non_unique_values(const sharedptr<const Field>& field)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]