[libgda] Make sure the "nullok" attribute is always specified for providers operations



commit 3850ff87b917ca007056d3f530bfa49eee944dff
Author: Vivien Malerba <malerba gnome-db org>
Date:   Wed Sep 30 15:45:40 2015 +0200

    Make sure the "nullok" attribute is always specified for providers operations

 providers/bdb/bdb_specs_dsn.xml.in                 |    2 +-
 .../firebird/firebird_specs_create_table.xml.in    |   12 ++--
 providers/firebird/firebird_specs_dsn.xml.in       |    2 +-
 ...osoft.sqlserver.jdbc.SQLServerDriver_dsn.xml.in |    6 +-
 providers/ldap/ldap_specs_dsn.xml.in               |   20 ++--
 providers/mysql/mysql_specs_add_column.xml.in      |   22 +++---
 providers/mysql/mysql_specs_create_db.xml.in       |   28 +++---
 providers/mysql/mysql_specs_create_index.xml.in    |   20 ++--
 providers/mysql/mysql_specs_create_table.xml.in    |   88 ++++++++++----------
 providers/mysql/mysql_specs_create_view.xml.in     |    2 +-
 providers/mysql/mysql_specs_drop_db.xml.in         |   20 ++--
 providers/mysql/mysql_specs_drop_table.xml.in      |    8 +-
 providers/mysql/mysql_specs_drop_view.xml.in       |    2 +-
 providers/mysql/mysql_specs_dsn.xml.in             |   16 ++--
 providers/oracle/oracle_specs_create_table.xml.in  |   12 ++--
 providers/oracle/oracle_specs_drop_index.xml.in    |    4 +-
 providers/oracle/oracle_specs_drop_table.xml.in    |    4 +-
 providers/oracle/oracle_specs_dsn.xml.in           |    6 +-
 .../postgres/postgres_specs_add_column.xml.in      |   16 ++--
 providers/postgres/postgres_specs_create_db.xml.in |   24 +++---
 .../postgres/postgres_specs_create_index.xml.in    |   16 ++--
 .../postgres/postgres_specs_create_role.xml.in     |   24 +++---
 .../postgres/postgres_specs_create_table.xml.in    |   52 ++++++------
 .../postgres/postgres_specs_create_user.xml.in     |   14 ++--
 .../postgres/postgres_specs_create_view.xml.in     |    4 +-
 .../postgres/postgres_specs_drop_column.xml.in     |    4 +-
 providers/postgres/postgres_specs_drop_db.xml.in   |   16 ++--
 .../postgres/postgres_specs_drop_index.xml.in      |    4 +-
 providers/postgres/postgres_specs_drop_role.xml.in |    2 +-
 .../postgres/postgres_specs_drop_table.xml.in      |    4 +-
 providers/postgres/postgres_specs_drop_user.xml.in |    2 +-
 providers/postgres/postgres_specs_drop_view.xml.in |    6 +-
 providers/postgres/postgres_specs_dsn.xml.in       |   12 ++--
 .../capi/capi_specs_create_table.xml.in            |   12 ++--
 providers/sqlite/sqlite_specs_add_column.xml.in    |   10 +-
 providers/sqlite/sqlite_specs_create_index.xml.in  |   16 ++--
 providers/sqlite/sqlite_specs_create_table.xml.in  |   26 +++---
 providers/sqlite/sqlite_specs_create_view.xml.in   |    4 +-
 providers/sqlite/sqlite_specs_drop_index.xml.in    |    2 +-
 providers/sqlite/sqlite_specs_drop_table.xml.in    |    2 +-
 providers/sqlite/sqlite_specs_drop_view.xml.in     |    2 +-
 providers/web/web_specs_dsn.xml.in                 |    6 +-
 42 files changed, 277 insertions(+), 277 deletions(-)
---
diff --git a/providers/bdb/bdb_specs_dsn.xml.in b/providers/bdb/bdb_specs_dsn.xml.in
index c79df72..7b628d9 100644
--- a/providers/bdb/bdb_specs_dsn.xml.in
+++ b/providers/bdb/bdb_specs_dsn.xml.in
@@ -3,6 +3,6 @@
   <parameters>
     <parameter id="DB_NAME" _name="Database file" _descr="Berkeley DB database filename to be used" 
gdatype="gchararray" nullok="FALSE"/>
     <parameter id="DB_DIR" _name="Directory" _descr="Directory where the database file is stored" 
gdatype="gchararray" nullok="FALSE" plugin="filesel:MODE=PICKFOLDER"/>
-    <parameter id="DB_PART" _name="Database name" _descr="Name of the database in the database file to be 
used" gdatype="gchararray"/>
+    <parameter id="DB_PART" _name="Database name" _descr="Name of the database in the database file to be 
used" gdatype="gchararray" nullok="TRUE"/>
   </parameters>
 </data-set-spec>
diff --git a/providers/firebird/firebird_specs_create_table.xml.in 
b/providers/firebird/firebird_specs_create_table.xml.in
index ede3155..3d712fd 100644
--- a/providers/firebird/firebird_specs_create_table.xml.in
+++ b/providers/firebird/firebird_specs_create_table.xml.in
@@ -10,16 +10,16 @@
   <gda_array id="FIELDS_A" _name="Table's columns">
     <gda_array_field id="COLUMN_NAME" _name="Field name" gdatype="gchararray" nullok="FALSE"/>
     <gda_array_field id="COLUMN_TYPE" _name="Data type" gdatype="gchararray" hint="datatype" nullok="FALSE"/>
-    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray"/>
-    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray"/>
+    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray" 
nullok="TRUE"/>
+    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray" 
nullok="TRUE"/>
   </gda_array>
 
   <!-- other table constraints -->
   <sequence id="TABLE_CONSTRAINTS_S" _name="Global constraints">
-    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray">
+    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray" nullok="FALSE">
       <gda_value>CHECK (column &gt; 0)</gda_value>
     </parameter>
   </sequence>
diff --git a/providers/firebird/firebird_specs_dsn.xml.in b/providers/firebird/firebird_specs_dsn.xml.in
index 43363dc..d2f1dfe 100644
--- a/providers/firebird/firebird_specs_dsn.xml.in
+++ b/providers/firebird/firebird_specs_dsn.xml.in
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <data-set-spec>
   <parameters>
-    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running" 
gdatype="gchararray"/>
+    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running" 
gdatype="gchararray" nullok="TRUE"/>
     <parameter id="DB_NAME" _name="Database name" _descr="The name of a database to connect to" 
gdatype="gchararray" nullok="FALSE"/>
     <!-- FIXME: pre-set values for the SQL_DIALECT values with human readable values -->
     <!--
diff --git a/providers/jdbc/jdbc_specs_com.microsoft.sqlserver.jdbc.SQLServerDriver_dsn.xml.in 
b/providers/jdbc/jdbc_specs_com.microsoft.sqlserver.jdbc.SQLServerDriver_dsn.xml.in
index 39bc8f0..1a874cb 100644
--- a/providers/jdbc/jdbc_specs_com.microsoft.sqlserver.jdbc.SQLServerDriver_dsn.xml.in
+++ b/providers/jdbc/jdbc_specs_com.microsoft.sqlserver.jdbc.SQLServerDriver_dsn.xml.in
@@ -2,8 +2,8 @@
 <data-set-spec>
   <parameters>
     <parameter id="DB_NAME" _name="Database name" _descr="The name of a database to connect to" 
gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="INSTANCE" _name="Instance" _descr="The instance to connect to, if not specified, a 
connection to the default instance is made" gdatype="gchararray"/>
-    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running or 
leave this field empty" gdatype="gchararray"/>
-    <parameter id="PORT" _name="Port" _descr="Database server port, 1433 by default" gdatype="gint"/>
+    <parameter id="INSTANCE" _name="Instance" _descr="The instance to connect to, if not specified, a 
connection to the default instance is made" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running or 
leave this field empty" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="PORT" _name="Port" _descr="Database server port, 1433 by default" gdatype="gint" 
nullok="TRUE"/>
   </parameters>
 </data-set-spec>
diff --git a/providers/ldap/ldap_specs_dsn.xml.in b/providers/ldap/ldap_specs_dsn.xml.in
index 144ba34..d1ec156 100644
--- a/providers/ldap/ldap_specs_dsn.xml.in
+++ b/providers/ldap/ldap_specs_dsn.xml.in
@@ -2,21 +2,21 @@
 <data-set-spec>
   <parameters>
     <parameter id="DB_NAME" _name="Base name" _descr="Base distinguished name, starting point for the 
searches" gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="HOST" _name="Database server" _descr="Host on which the LDAP server is running" 
gdatype="gchararray"/>
-    <parameter id="PORT" _name="Port" _descr="Database server port (leave this field empty to use the 
default port)" gdatype="gint"/>
-    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean"/>
-    <parameter id="TLS_REQCERT" _name="Certificate check type" _descr="Specifies what checks to perform on 
server certificates in a SSL/TLS session" gdatype="string" source="methods:0"/>
-    <parameter id="TLS_CACERT" _name="Certificates file" _descr="Specifies the file that contains 
certificates for all of the recognized Certificate Authorities, in a SSL/TLS session" gdatype="string" 
plugin="filesel:MODE=OPEN"/>
-    <parameter id="USE_CACHE" _name="Cache server data" _descr="Use a cache to store some static server data 
(the cached files are in the user's cache directory), default is TRUE" gdatype="gboolean">
+    <parameter id="HOST" _name="Database server" _descr="Host on which the LDAP server is running" 
gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="PORT" _name="Port" _descr="Database server port (leave this field empty to use the 
default port)" gdatype="gint" nullok="TRUE"/>
+    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean" nullok="TRUE"/>
+    <parameter id="TLS_REQCERT" _name="Certificate check type" _descr="Specifies what checks to perform on 
server certificates in a SSL/TLS session" gdatype="string" nullok="TRUE" source="methods:0"/>
+    <parameter id="TLS_CACERT" _name="Certificates file" _descr="Specifies the file that contains 
certificates for all of the recognized Certificate Authorities, in a SSL/TLS session" gdatype="string" 
nullok="TRUE" plugin="filesel:MODE=OPEN"/>
+    <parameter id="USE_CACHE" _name="Cache server data" _descr="Use a cache to store some static server data 
(the cached files are in the user's cache directory), default is TRUE" gdatype="gboolean" nullok="TRUE">
       <gda_value>TRUE</gda_value>
     </parameter>
-    <parameter id="TIME_LIMIT" _name="Time limit" _descr="Time limit after which a search operation should 
be terminated by the server (leave undefined or 0 for unlimited)" gdatype="gint"/>
-    <parameter id="SIZE_LIMIT" _name="Size limit" _descr="Maximum number of entries that can be returned on 
a search operation" gdatype="gint"/>
+    <parameter id="TIME_LIMIT" _name="Time limit" _descr="Time limit after which a search operation should 
be terminated by the server (leave undefined or 0 for unlimited)" gdatype="gint" nullok="TRUE"/>
+    <parameter id="SIZE_LIMIT" _name="Size limit" _descr="Maximum number of entries that can be returned on 
a search operation" gdatype="gint" nullok="TRUE"/>
   </parameters>
   <sources>
     <gda_array name="methods">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>NEVER</gda_value>
diff --git a/providers/mysql/mysql_specs_add_column.xml.in b/providers/mysql/mysql_specs_add_column.xml.in
index b215d61..cc3b580 100644
--- a/providers/mysql/mysql_specs_add_column.xml.in
+++ b/providers/mysql/mysql_specs_add_column.xml.in
@@ -5,29 +5,29 @@
     <parameter id="COLUMN_NAME" _name="Field name" gdatype="gchararray" nullok="FALSE">
       <gda_value>column_name</gda_value>
     </parameter>
-    <parameter id="COLUMN_FIRST" _name="As first column" _descr="Add the column as the first column of the 
table" gdatype="gboolean">
+    <parameter id="COLUMN_FIRST" _name="As first column" _descr="Add the column as the first column of the 
table" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="COLUMN_AFTER" _name="After column" _descr="Add the column after the specified column" 
gdatype="gchararray"/>
+    <parameter id="COLUMN_AFTER" _name="After column" _descr="Add the column after the specified column" 
gdatype="gchararray" nullok="TRUE"/>
     <parameter id="COLUMN_TYPE" _name="Data type" gdatype="gchararray" hint="datatype" nullok="FALSE">
       <gda_value>integer</gda_value>
     </parameter>
-    <parameter id="COLUMN_SIZE" _name="Size" gdatype="guint"/>
-    <parameter id="COLUMN_SCALE" _name="Scale" gdatype="guint"/>
-    <parameter id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean">
+    <parameter id="COLUMN_SIZE" _name="Size" gdatype="guint" nullok="TRUE"/>
+    <parameter id="COLUMN_SCALE" _name="Scale" gdatype="guint" nullok="TRUE"/>
+    <parameter id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="COLUMN_AUTOINC" _name="Auto increment" gdatype="gboolean">
+    <parameter id="COLUMN_AUTOINC" _name="Auto increment" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean">
+    <parameter id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean">
+    <parameter id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray"/>
-    <parameter id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray"/>
-    <parameter id="COLUMN_COMMENT" _name="Comment" _descr="Check constraint" gdatype="gchararray"/>
+    <parameter id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray" 
nullok="TRUE"/>
+    <parameter id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="COLUMN_COMMENT" _name="Comment" _descr="Check constraint" gdatype="gchararray" 
nullok="TRUE"/>
   </parameters>
 </serv_op>
diff --git a/providers/mysql/mysql_specs_create_db.xml.in b/providers/mysql/mysql_specs_create_db.xml.in
index 3f344c9..697d836 100644
--- a/providers/mysql/mysql_specs_create_db.xml.in
+++ b/providers/mysql/mysql_specs_create_db.xml.in
@@ -2,26 +2,26 @@
 <serv_op>
   <parameters id="SERVER_CNX_P" _name="Server access parameters">
     <!-- Connection parameters -->
-    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running" 
gdatype="gchararray"/>
-    <parameter id="PORT" _name="Port" _descr="Database server port" gdatype="gint"/>
-    <parameter id="UNIX_SOCKET" _name="UNIX Socket" _descr="Full path of the UNIX socket to use when 
connecting locally" gdatype="gchararray"/>
-    <parameter id="ADM_LOGIN" _name="Administrator login" _descr="Login name (which has the rights to create 
databases)" gdatype="gchararray"/>
-    <parameter id="ADM_PASSWORD" _name="Administrator password" gdatype="gchararray" 
plugin="string:HIDDEN=true"/>
-    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean"/>
-    <parameter id="PROTOCOL" _name="Connection protocol" _descr="Explicitly specifies a connection protocol 
to use. It is useful when the other connection parameters normally would cause a protocol to be used other 
than the one you want" gdatype="string" source="proto:0"/>
+    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running" 
gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="PORT" _name="Port" _descr="Database server port" gdatype="gint" nullok="TRUE"/>
+    <parameter id="UNIX_SOCKET" _name="UNIX Socket" _descr="Full path of the UNIX socket to use when 
connecting locally" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="ADM_LOGIN" _name="Administrator login" _descr="Login name (which has the rights to create 
databases)" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="ADM_PASSWORD" _name="Administrator password" gdatype="gchararray" 
plugin="string:HIDDEN=true" nullok="TRUE"/>
+    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean" nullok="TRUE"/>
+    <parameter id="PROTOCOL" _name="Connection protocol" _descr="Explicitly specifies a connection protocol 
to use. It is useful when the other connection parameters normally would cause a protocol to be used other 
than the one you want" gdatype="string" source="proto:0" nullok="TRUE"/>
   </parameters>
 
     <!-- DSN parameters -->
   <parameters id="DB_DEF_P" _name="Database's description">
     <parameter id="DB_NAME" _name="Database name" _descr="The name of a database to create" 
gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="DB_IFNOTEXISTS" _name="Only if it does not yet exist" _descr="Create database only if it 
does not yet exist" gdatype="gboolean"/>
-    <parameter id="DB_CSET" _name="Character set" _descr="Character set encoding to use in the new database" 
gdatype="gchararray" source="csets:0"/>
-    <parameter id="DB_COLLATION" _name="Collation" _descr="Collation method to use in the new database" 
gdatype="gchararray"/>
+    <parameter id="DB_IFNOTEXISTS" _name="Only if it does not yet exist" _descr="Create database only if it 
does not yet exist" gdatype="gboolean" nullok="TRUE"/>
+    <parameter id="DB_CSET" _name="Character set" _descr="Character set encoding to use in the new database" 
gdatype="gchararray" source="csets:0" nullok="TRUE"/>
+    <parameter id="DB_COLLATION" _name="Collation" _descr="Collation method to use in the new database" 
gdatype="gchararray" nullok="TRUE"/>
   </parameters>
   <sources>
     <gda_array name="csets">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>utf8</gda_value>
@@ -166,8 +166,8 @@
       </gda_array_data>
     </gda_array>
     <gda_array name="proto">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>DEFAULT</gda_value>
diff --git a/providers/mysql/mysql_specs_create_index.xml.in b/providers/mysql/mysql_specs_create_index.xml.in
index d05052e..ef74f00 100644
--- a/providers/mysql/mysql_specs_create_index.xml.in
+++ b/providers/mysql/mysql_specs_create_index.xml.in
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <serv_op>
   <parameters id="INDEX_DEF_P" _name="Index description">
-    <parameter id="INDEX_TYPE" _name="Type" gdatype="gchararray" source="types:0">
+    <parameter id="INDEX_TYPE" _name="Type" gdatype="gchararray" source="types:0" nullok="TRUE">
       <gda_value>UNIQUE</gda_value>
     </parameter>
     <parameter id="INDEX_NAME" _name="Name" _descr="Index name" gdatype="gchararray" nullok="FALSE"/>
     <parameter id="INDEX_ON_TABLE" _name="On table" gdatype="gchararray" nullok="FALSE" 
source="_DICT_TABLES_"/>
-    <parameter id="INDEX_METHOD" _name="Method" _descr="Index type (depending on table storage engine)" 
gdatype="gchararray" source="method:0"/>
+    <parameter id="INDEX_METHOD" _name="Method" _descr="Index type (depending on table storage engine)" 
gdatype="gchararray" source="method:0" nullok="TRUE"/>
   </parameters>
 
   <!-- Index fields -->
@@ -14,15 +14,15 @@
     <parameter id="INDEX_FIELD" _name="Indexed field or expression" gdatype="gchararray" nullok="FALSE" 
source="_INDEX_ON_TABLE/DICT_FIELDS_">
       <gda_value>indexed_field</gda_value>
     </parameter>
-    <parameter id="INDEX_LENGTH" _name="Length" _descr="The number of characters the index is on for columns 
of type CHAR or VARCHAR" gdatype="gint"/>
-    <parameter id="INDEX_SORT_ORDER" _name="Sort type" gdatype="gchararray" source="sort:0"/>
+    <parameter id="INDEX_LENGTH" _name="Length" _descr="The number of characters the index is on for columns 
of type CHAR or VARCHAR" gdatype="gint" nullok="TRUE"/>
+    <parameter id="INDEX_SORT_ORDER" _name="Sort type" gdatype="gchararray" source="sort:0" nullok="TRUE"/>
   </sequence>
 
   <!-- Sources -->
   <sources>
     <gda_array name="sort">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>ASC</gda_value>
@@ -36,8 +36,8 @@
     </gda_array>
 
     <gda_array name="types">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>UNIQUE</gda_value>
@@ -55,8 +55,8 @@
     </gda_array>
 
     <gda_array name="method">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>btree</gda_value>
diff --git a/providers/mysql/mysql_specs_create_table.xml.in b/providers/mysql/mysql_specs_create_table.xml.in
index c027e7b..db934c9 100644
--- a/providers/mysql/mysql_specs_create_table.xml.in
+++ b/providers/mysql/mysql_specs_create_table.xml.in
@@ -4,28 +4,28 @@
     <parameter id="TABLE_NAME" _name="Name" _descr="Table's name" gdatype="gchararray" nullok="FALSE">
       <gda_value>table_name</gda_value>
     </parameter>
-    <parameter id="TABLE_TEMP" _name="Temporary table" gdatype="gboolean">
+    <parameter id="TABLE_TEMP" _name="Temporary table" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="TABLE_IFNOTEXISTS" _name="Only if it does not yet exist" _descr="Create table only if it 
does not yet exist" gdatype="gboolean">
+    <parameter id="TABLE_IFNOTEXISTS" _name="Only if it does not yet exist" _descr="Create table only if it 
does not yet exist" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="TABLE_COMMENT" _name="Comment" _descr="Table's comment" gdatype="gchararray"/>
+    <parameter id="TABLE_COMMENT" _name="Comment" _descr="Table's comment" gdatype="gchararray" 
nullok="TRUE"/>
   </parameters>
 
   <!-- list of fields -->
   <gda_array id="FIELDS_A" _name="Table's columns">
     <gda_array_field id="COLUMN_NAME" _name="Field name" gdatype="gchararray" nullok="FALSE"/>
     <gda_array_field id="COLUMN_TYPE" _name="Data type" gdatype="gchararray" hint="datatype" nullok="FALSE"/>
-    <gda_array_field id="COLUMN_SIZE" _name="Size" gdatype="guint"/>
-    <gda_array_field id="COLUMN_SCALE" _name="Scale" gdatype="guint"/>
-    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_AUTOINC" _name="Auto increment" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray"/>
-    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray"/>
-    <gda_array_field id="COLUMN_COMMENT" _name="Comment" _descr="Check constraint" gdatype="gchararray"/>
+    <gda_array_field id="COLUMN_SIZE" _name="Size" gdatype="guint" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_SCALE" _name="Scale" gdatype="guint" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_AUTOINC" _name="Auto increment" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray" 
nullok="TRUE"/>
+    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray" 
nullok="TRUE"/>
+    <gda_array_field id="COLUMN_COMMENT" _name="Comment" _descr="Check constraint" gdatype="gchararray" 
nullok="TRUE"/>
   </gda_array>
 
   <!-- foreign key spec -->
@@ -43,54 +43,54 @@
         </gda_array_row>
       </gda_array_data>
     </gda_array>
-    <parameter id="FKEY_MATCH_TYPE" _name="Match type" _descr="Matching method if more than one field 
involved" gdatype="gchararray" source="match_types:0">
+    <parameter id="FKEY_MATCH_TYPE" _name="Match type" _descr="Matching method if more than one field 
involved" gdatype="gchararray" nullok="TRUE" source="match_types:0">
       <gda_value>MATCH SIMPLE</gda_value>
     </parameter>
-    <parameter id="FKEY_ONUPDATE" _name="On update action" gdatype="gchararray" source="action_cb:0">
+    <parameter id="FKEY_ONUPDATE" _name="On update action" gdatype="gchararray" nullok="TRUE" 
source="action_cb:0">
       <gda_value>NO ACTION</gda_value>
     </parameter>
-    <parameter id="FKEY_ONDELETE" _name="On delete action" gdatype="gchararray" source="action_cb:0">
+    <parameter id="FKEY_ONDELETE" _name="On delete action" gdatype="gchararray" nullok="TRUE" 
source="action_cb:0">
       <gda_value>NO ACTION</gda_value>
     </parameter>
   </sequence>
 
   <!-- other table constraints -->
   <sequence id="TABLE_CONSTRAINTS_S" _name="Global constraints">
-    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray">
+    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray" nullok="TRUE">
       <gda_value>CHECK (column &gt; 0)</gda_value>
     </parameter>
   </sequence>
 
   <!-- other table options -->
   <parameters id="TABLE_OPTIONS_P" _name="Table's options">
-    <parameter id="TABLE_ENGINE" _name="Engine" _descr="Table's engine (or type)" gdatype="gchararray" 
source="engines:0">
+    <parameter id="TABLE_ENGINE" _name="Engine" _descr="Table's engine (or type)" gdatype="gchararray" 
nullok="TRUE" source="engines:0">
       <gda_value>MyISAM</gda_value>
     </parameter>
-    <parameter id="TABLE_AUTOINC_VALUE" _name="Auto increment value" _descr="Counter for auto incremented 
fields is incremented by this value + 1 (DEFAULT: 0)" gdatype="gint"/>
-    <parameter id="TABLE_AVG_ROW_LENGTH" _name="Average row length" _descr="An approximation of the average 
row length for your table" gdatype="gint"/>
-    <parameter id="TABLE_CSET" _name="Character set" gdatype="gchararray" source="csets:0">
+    <parameter id="TABLE_AUTOINC_VALUE" _name="Auto increment value" _descr="Counter for auto incremented 
fields is incremented by this value + 1 (DEFAULT: 0)" gdatype="gint" nullok="TRUE"/>
+    <parameter id="TABLE_AVG_ROW_LENGTH" _name="Average row length" _descr="An approximation of the average 
row length for your table" gdatype="gint" nullok="TRUE"/>
+    <parameter id="TABLE_CSET" _name="Character set" gdatype="gchararray" nullok="TRUE" source="csets:0">
       <gda_value>utf8</gda_value>
     </parameter>
-    <parameter id="TABLE_COLLATION" _name="Collation" gdatype="gchararray"/>
-    <parameter id="TABLE_CHECKSUM" _name="Checksum" gdatype="gboolean"/>
-    <parameter id="TABLE_MIN_ROWS" _name="Min rows" gdatype="gint"/>
-    <parameter id="TABLE_MAX_ROWS" _name="Max rows" gdatype="gint"/>
-    <parameter id="TABLE_PACK_KEYS" _name="Pack keys" gdatype="gchararray" source="pack_keys"/>
-    <parameter id="TABLE_DELAY_KEY_WRITE" _name="Delay key write" gdatype="gboolean"/>
-    <parameter id="TABLE_PASSWORD" _name="Password" gdatype="gchararray" plugin="string:HIDDEN=true"/>
-    <parameter id="TABLE_ROW_FORMAT" _name="Row format" gdatype="gchararray" source="row_format:0"/>
-    <parameter id="TABLE_UNION" _name="Union" _descr="tbl_name[,tbl_name]...: only with MERGE engine" 
gdatype="gchararray"/>
-    <parameter id="TABLE_INSERT_METHOD" _name="Insert method" _descr="FIRST, LAST or NO: only with MERGE 
engine" gdatype="gchararray"/>
-    <parameter id="TABLE_DATA_DIR" _name="Data directory" _descr="" gdatype="gchararray"/>
-    <parameter id="TABLE_INDEX_DIR" _name="Index directory" _descr="" gdatype="gchararray"/>
+    <parameter id="TABLE_COLLATION" _name="Collation" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="TABLE_CHECKSUM" _name="Checksum" gdatype="gboolean" nullok="TRUE"/>
+    <parameter id="TABLE_MIN_ROWS" _name="Min rows" gdatype="gint" nullok="TRUE"/>
+    <parameter id="TABLE_MAX_ROWS" _name="Max rows" gdatype="gint" nullok="TRUE"/>
+    <parameter id="TABLE_PACK_KEYS" _name="Pack keys" gdatype="gchararray" nullok="TRUE" source="pack_keys"/>
+    <parameter id="TABLE_DELAY_KEY_WRITE" _name="Delay key write" gdatype="gboolean" nullok="TRUE"/>
+    <parameter id="TABLE_PASSWORD" _name="Password" gdatype="gchararray" nullok="TRUE" 
plugin="string:HIDDEN=true"/>
+    <parameter id="TABLE_ROW_FORMAT" _name="Row format" gdatype="gchararray" nullok="TRUE" 
source="row_format:0"/>
+    <parameter id="TABLE_UNION" _name="Union" _descr="tbl_name[,tbl_name]...: only with MERGE engine" 
gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="TABLE_INSERT_METHOD" _name="Insert method" _descr="FIRST, LAST or NO: only with MERGE 
engine" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="TABLE_DATA_DIR" _name="Data directory" _descr="" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="TABLE_INDEX_DIR" _name="Index directory" _descr="" gdatype="gchararray" nullok="TRUE"/>
   </parameters>
   
 
   <!-- Sources -->
   <sources>
     <gda_array name="match_types">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>MATCH SIMPLE</gda_value>
@@ -108,8 +108,8 @@
     </gda_array>
 
     <gda_array name="action_cb">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>NO ACTION</gda_value>
@@ -132,8 +132,8 @@
     </gda_array>
 
     <gda_array name="pack_keys">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>0</gda_value>
@@ -151,8 +151,8 @@
     </gda_array>
 
     <gda_array name="engines">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>MyISAM</gda_value>
@@ -202,8 +202,8 @@
     </gda_array>
 
     <gda_array name="row_format">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>DEFAULT</gda_value>
@@ -234,8 +234,8 @@
     </gda_array>
 
     <gda_array name="csets">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>utf8</gda_value>
diff --git a/providers/mysql/mysql_specs_create_view.xml.in b/providers/mysql/mysql_specs_create_view.xml.in
index 45c5c24..839d866 100644
--- a/providers/mysql/mysql_specs_create_view.xml.in
+++ b/providers/mysql/mysql_specs_create_view.xml.in
@@ -4,7 +4,7 @@
     <parameter id="VIEW_NAME" _name="Name" _descr="View's name" gdatype="gchararray" nullok="FALSE">
       <gda_value>table_name</gda_value>
     </parameter>
-    <parameter id="VIEW_OR_REPLACE" _name="Replace if it already exists" _descr="Replace view definition if 
it already exists" gdatype="gboolean">
+    <parameter id="VIEW_OR_REPLACE" _name="Replace if it already exists" _descr="Replace view definition if 
it already exists" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
     <parameter id="VIEW_DEF" _name="Definition" _descr="View's definition" gdatype="gchararray" 
nullok="FALSE"/>
diff --git a/providers/mysql/mysql_specs_drop_db.xml.in b/providers/mysql/mysql_specs_drop_db.xml.in
index 2474308..6ef80c5 100644
--- a/providers/mysql/mysql_specs_drop_db.xml.in
+++ b/providers/mysql/mysql_specs_drop_db.xml.in
@@ -2,25 +2,25 @@
 <serv_op>
   <parameters id="SERVER_CNX_P" _name="Server access parameters">
     <!-- Connection parameters -->
-    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running" 
gdatype="gchararray"/>
-    <parameter id="PORT" _name="Port" _descr="Database server port" gdatype="gint"/>
-    <parameter id="UNIX_SOCKET" _name="UNIX Socket" _descr="Full path of the UNIX socket to use when 
connecting locally" gdatype="gchararray"/>
-    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean"/>
-    <parameter id="ADM_LOGIN" _name="Administrator login" _descr="Login name (which has the rights to create 
databases)" gdatype="gchararray"/>
-    <parameter id="ADM_PASSWORD" _name="Administrator password" gdatype="gchararray" 
plugin="string:HIDDEN=true"/>
-    <parameter id="PROTOCOL" _name="Connection protocol" _descr="Explicitly specifies a connection protocol 
to use. It is useful when the other connection parameters normally would cause a protocol to be used other 
than the one you want" gdatype="string" source="proto:0"/>
+    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running" 
gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="PORT" _name="Port" _descr="Database server port" gdatype="gint" nullok="TRUE"/>
+    <parameter id="UNIX_SOCKET" _name="UNIX Socket" _descr="Full path of the UNIX socket to use when 
connecting locally" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean" nullok="TRUE"/>
+    <parameter id="ADM_LOGIN" _name="Administrator login" _descr="Login name (which has the rights to create 
databases)" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="ADM_PASSWORD" _name="Administrator password" gdatype="gchararray" nullok="TRUE" 
plugin="string:HIDDEN=true"/>
+    <parameter id="PROTOCOL" _name="Connection protocol" _descr="Explicitly specifies a connection protocol 
to use. It is useful when the other connection parameters normally would cause a protocol to be used other 
than the one you want" gdatype="string" nullok="TRUE" source="proto:0"/>
   </parameters>
 
     <!-- DSN parameters -->
   <parameters id="DB_DESC_P" _name="Database's description">
     <parameter id="DB_NAME" _name="Database name" _descr="The name of a database to create" 
gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="DB_IFEXISTS" _name="Only if existing" _descr="Drop database only if it exists" 
gdatype="gboolean"/>
+    <parameter id="DB_IFEXISTS" _name="Only if existing" _descr="Drop database only if it exists" 
gdatype="gboolean" nullok="TRUE"/>
   </parameters>
 
   <sources>
     <gda_array name="proto">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>DEFAULT</gda_value>
diff --git a/providers/mysql/mysql_specs_drop_table.xml.in b/providers/mysql/mysql_specs_drop_table.xml.in
index 423c623..55dceff 100644
--- a/providers/mysql/mysql_specs_drop_table.xml.in
+++ b/providers/mysql/mysql_specs_drop_table.xml.in
@@ -2,8 +2,8 @@
 <serv_op>
   <parameters id="TABLE_DESC_P">
     <parameter id="TABLE_NAME" _name="Table" _descr="Table to delete" gdatype="gchararray" nullok="FALSE" 
source="_DICT_TABLES_"/>
-    <parameter id="TABLE_TEMP" _name="Temporary table" _descr="Drop table only if it is temporary" 
gdatype="gboolean"/>
-    <parameter id="TABLE_IFEXISTS" _name="If exists" _descr="Drop table only if it exists" 
gdatype="gboolean"/>
+    <parameter id="TABLE_TEMP" _name="Temporary table" _descr="Drop table only if it is temporary" 
gdatype="gboolean" nullok="TRUE"/>
+    <parameter id="TABLE_IFEXISTS" _name="If exists" _descr="Drop table only if it exists" 
gdatype="gboolean" nullok="TRUE"/>
     <parameter id="REFERENCED_ACTION" _name="References" _descr="What to do with references" 
gdatype="gchararray" nullok="FALSE" source="action_cb:0">
       <gda_value>RESTRICT</gda_value>
     </parameter>
@@ -12,8 +12,8 @@
   <!-- Sources -->
   <sources>
     <gda_array name="action_cb">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>CASCADE</gda_value>
diff --git a/providers/mysql/mysql_specs_drop_view.xml.in b/providers/mysql/mysql_specs_drop_view.xml.in
index 4738a41..bee5114 100644
--- a/providers/mysql/mysql_specs_drop_view.xml.in
+++ b/providers/mysql/mysql_specs_drop_view.xml.in
@@ -2,6 +2,6 @@
 <serv_op>
   <parameters id="VIEW_DESC_P">
     <parameter id="VIEW_NAME" _name="View" _descr="View to delete" gdatype="gchararray" nullok="FALSE" 
source="_DICT_VIEWS_"/>
-    <parameter id="VIEW_IFEXISTS" _name="If exists" _descr="Drop view only if it exists" gdatype="gboolean"/>
+    <parameter id="VIEW_IFEXISTS" _name="If exists" _descr="Drop view only if it exists" gdatype="gboolean" 
nullok="TRUE"/>
   </parameters>
 </serv_op>
diff --git a/providers/mysql/mysql_specs_dsn.xml.in b/providers/mysql/mysql_specs_dsn.xml.in
index 8eedaea..2883a5c 100644
--- a/providers/mysql/mysql_specs_dsn.xml.in
+++ b/providers/mysql/mysql_specs_dsn.xml.in
@@ -2,17 +2,17 @@
 <data-set-spec>
   <parameters>
     <parameter id="DB_NAME" _name="Database name" _descr="The name of a database to connect to" 
gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running" 
gdatype="gchararray"/>
-    <parameter id="PORT" _name="Port" _descr="Database server port" gdatype="gint"/>
-    <parameter id="UNIX_SOCKET" _name="UNIX Socket" _descr="Full path of the UNIX socket to use when 
connecting locally" gdatype="gchararray"/>
-    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean"/>
-    <parameter id="COMPRESS" _name="Compress" _descr="Use compression protocol" gdatype="gboolean"/>
-    <parameter id="PROTOCOL" _name="Connection protocol" _descr="Explicitly specifies a connection protocol 
to use. It is useful when the other connection parameters normally would cause a protocol to be used other 
than the one you want" gdatype="string" source="proto:0"/>
+    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running" 
gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="PORT" _name="Port" _descr="Database server port" gdatype="gint" nullok="TRUE"/>
+    <parameter id="UNIX_SOCKET" _name="UNIX Socket" _descr="Full path of the UNIX socket to use when 
connecting locally" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean" nullok="TRUE"/>
+    <parameter id="COMPRESS" _name="Compress" _descr="Use compression protocol" gdatype="gboolean" 
nullok="TRUE"/>
+    <parameter id="PROTOCOL" _name="Connection protocol" _descr="Explicitly specifies a connection protocol 
to use. It is useful when the other connection parameters normally would cause a protocol to be used other 
than the one you want" gdatype="string" source="proto:0" nullok="TRUE"/>
   </parameters>
   <sources>
     <gda_array name="proto">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>DEFAULT</gda_value>
diff --git a/providers/oracle/oracle_specs_create_table.xml.in 
b/providers/oracle/oracle_specs_create_table.xml.in
index ede3155..3d712fd 100644
--- a/providers/oracle/oracle_specs_create_table.xml.in
+++ b/providers/oracle/oracle_specs_create_table.xml.in
@@ -10,16 +10,16 @@
   <gda_array id="FIELDS_A" _name="Table's columns">
     <gda_array_field id="COLUMN_NAME" _name="Field name" gdatype="gchararray" nullok="FALSE"/>
     <gda_array_field id="COLUMN_TYPE" _name="Data type" gdatype="gchararray" hint="datatype" nullok="FALSE"/>
-    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray"/>
-    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray"/>
+    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray" 
nullok="TRUE"/>
+    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray" 
nullok="TRUE"/>
   </gda_array>
 
   <!-- other table constraints -->
   <sequence id="TABLE_CONSTRAINTS_S" _name="Global constraints">
-    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray">
+    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray" nullok="FALSE">
       <gda_value>CHECK (column &gt; 0)</gda_value>
     </parameter>
   </sequence>
diff --git a/providers/oracle/oracle_specs_drop_index.xml.in b/providers/oracle/oracle_specs_drop_index.xml.in
index ed4a977..00d731a 100644
--- a/providers/oracle/oracle_specs_drop_index.xml.in
+++ b/providers/oracle/oracle_specs_drop_index.xml.in
@@ -31,8 +31,8 @@
   <!-- Sources -->
   <sources>
     <gda_array name="action_cb">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>FORCE</gda_value>
diff --git a/providers/oracle/oracle_specs_drop_table.xml.in b/providers/oracle/oracle_specs_drop_table.xml.in
index 54d6db5..36ab08d 100644
--- a/providers/oracle/oracle_specs_drop_table.xml.in
+++ b/providers/oracle/oracle_specs_drop_table.xml.in
@@ -34,8 +34,8 @@
   <!-- Sources -->
   <sources>
     <gda_array name="action_cb">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>CASCADE CONSTRAINTS</gda_value>
diff --git a/providers/oracle/oracle_specs_dsn.xml.in b/providers/oracle/oracle_specs_dsn.xml.in
index e62c643..1d8f191 100644
--- a/providers/oracle/oracle_specs_dsn.xml.in
+++ b/providers/oracle/oracle_specs_dsn.xml.in
@@ -2,8 +2,8 @@
 <data-set-spec>
   <parameters>
     <parameter id="DB_NAME" _name="Service name" _descr="Global database name entered during database 
creation (it combines a database name with a domain name)" gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running" 
gdatype="gchararray"/>
-    <parameter id="PORT" _name="Port" _descr="Database server port (leave this field empty for the default 
1521 port)" gdatype="gint"/>
-    <parameter id="SCHEMA" _name="Schema" _descr="Name of the schema to use. If not specified, the schema 
defaults to that of the connected user." gdatype="gchararray"/>
+    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running" 
gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="PORT" _name="Port" _descr="Database server port (leave this field empty for the default 
1521 port)" gdatype="gint" nullok="TRUE"/>
+    <parameter id="SCHEMA" _name="Schema" _descr="Name of the schema to use. If not specified, the schema 
defaults to that of the connected user." gdatype="gchararray" nullok="TRUE"/>
   </parameters>
 </data-set-spec>
diff --git a/providers/postgres/postgres_specs_add_column.xml.in 
b/providers/postgres/postgres_specs_add_column.xml.in
index dd03614..f7b5d1c 100644
--- a/providers/postgres/postgres_specs_add_column.xml.in
+++ b/providers/postgres/postgres_specs_add_column.xml.in
@@ -2,7 +2,7 @@
 <serv_op>
   <parameters id="COLUMN_DEF_P" _name="Column's description">
     <parameter id="TABLE_NAME" _name="Table" _descr="Table's name" gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="TABLE_ONLY" _name="Ignore descendants" _descr="Don't add the column to descendants of the 
table" gdatype="gboolean">
+    <parameter id="TABLE_ONLY" _name="Ignore descendants" _descr="Don't add the column to descendants of the 
table" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
     <parameter id="COLUMN_NAME" _name="Field name" gdatype="gchararray" nullok="FALSE">
@@ -11,18 +11,18 @@
     <parameter id="COLUMN_TYPE" _name="Data type" gdatype="gchararray" hint="datatype" nullok="FALSE">
       <gda_value>integer</gda_value>
     </parameter>
-    <parameter id="COLUMN_SIZE" _name="Size" gdatype="guint"/>
-    <parameter id="COLUMN_SCALE" _name="Scale" gdatype="guint"/>
-    <parameter id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean">
+    <parameter id="COLUMN_SIZE" _name="Size" gdatype="guint" nullok="TRUE"/>
+    <parameter id="COLUMN_SCALE" _name="Scale" gdatype="guint" nullok="TRUE"/>
+    <parameter id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean">
+    <parameter id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean">
+    <parameter id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray"/>
-    <parameter id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray"/>
+    <parameter id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray" 
nullok="TRUE"/>
+    <parameter id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray" nullok="TRUE"/>
   </parameters>
 </serv_op>
diff --git a/providers/postgres/postgres_specs_create_db.xml.in 
b/providers/postgres/postgres_specs_create_db.xml.in
index b93def5..c008709 100644
--- a/providers/postgres/postgres_specs_create_db.xml.in
+++ b/providers/postgres/postgres_specs_create_db.xml.in
@@ -2,26 +2,26 @@
 <serv_op>
   <parameters id="SERVER_CNX_P" _name="Server access parameters">
     <!-- Connection parameters -->
-    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running (for 
servers running on unix domain sockets, enter the socket's path (usually /tmp), or leave this field empty)" 
gdatype="gchararray"/>
-    <parameter id="PORT" _name="Port" _descr="Database server port (for servers running on unix domain 
sockets, enter the socket's file name extension (usually 5432), or leave this field empty)" gdatype="gint"/>
-    <parameter id="OPTIONS" _name="Options" _descr="Extra connection options" gdatype="gchararray"/>
-    <parameter id="ADM_LOGIN" _name="Administrator login" _descr="Login name (which has the rights to create 
databases)" gdatype="gchararray"/>
-    <parameter id="ADM_PASSWORD" _name="Administrator password" gdatype="gchararray" 
plugin="string:HIDDEN=true"/>
-    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether to require SSL or not when connecting" 
gdatype="gboolean"/>
+    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running (for 
servers running on unix domain sockets, enter the socket's path (usually /tmp), or leave this field empty)" 
gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="PORT" _name="Port" _descr="Database server port (for servers running on unix domain 
sockets, enter the socket's file name extension (usually 5432), or leave this field empty)" gdatype="gint" 
nullok="TRUE"/>
+    <parameter id="OPTIONS" _name="Options" _descr="Extra connection options" gdatype="gchararray" 
nullok="TRUE"/>
+    <parameter id="ADM_LOGIN" _name="Administrator login" _descr="Login name (which has the rights to create 
databases)" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="ADM_PASSWORD" _name="Administrator password" gdatype="gchararray" nullok="TRUE" 
plugin="string:HIDDEN=true"/>
+    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether to require SSL or not when connecting" 
gdatype="gboolean" nullok="TRUE"/>
   </parameters>
 
   <parameters id="DB_DEF_P" _name="Database's description">
     <!-- DSN parameters -->
     <parameter id="DB_NAME" _name="Database name" _descr="The name of a database to create" 
gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="DB_CSET" _name="Encoding" _descr="Character set encoding to use in the new database" 
gdatype="gchararray" source="csets:0"/>
-    <parameter id="DB_OWNER" _name="Owner" _descr="The name of the database user who will own the new 
database" gdatype="gchararray"/>
-    <parameter id="TEMPLATE" _name="Template" _descr="The name of the template from which to create the new 
database" gdatype="gchararray"/>
-    <parameter id="DB_TABLESPACE" _name="Tablespace" _descr="The name of the tablespace that will be 
associated with the new database" gdatype="gchararray"/>
+    <parameter id="DB_CSET" _name="Encoding" _descr="Character set encoding to use in the new database" 
gdatype="gchararray" nullok="TRUE" source="csets:0"/>
+    <parameter id="DB_OWNER" _name="Owner" _descr="The name of the database user who will own the new 
database" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="TEMPLATE" _name="Template" _descr="The name of the template from which to create the new 
database" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="DB_TABLESPACE" _name="Tablespace" _descr="The name of the tablespace that will be 
associated with the new database" gdatype="gchararray" nullok="TRUE"/>
   </parameters>
   <sources>
     <gda_array name="csets">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
          <gda_value>UNICODE</gda_value>
diff --git a/providers/postgres/postgres_specs_create_index.xml.in 
b/providers/postgres/postgres_specs_create_index.xml.in
index 3de1b1c..070e986 100644
--- a/providers/postgres/postgres_specs_create_index.xml.in
+++ b/providers/postgres/postgres_specs_create_index.xml.in
@@ -2,13 +2,13 @@
 <serv_op>
   <parameters id="INDEX_DEF_P" _name="Index description">
     <parameter id="INDEX_NAME" _name="Name" _descr="Index name" gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="INDEX_TYPE" _name="Unique" gdatype="gchararray" source="types:0">
+    <parameter id="INDEX_TYPE" _name="Unique" gdatype="gchararray" nullok="TRUE" source="types:0">
       <gda_value>UNIQUE</gda_value>
     </parameter>
     <parameter id="INDEX_ON_TABLE" _name="On table" gdatype="gchararray" nullok="FALSE" 
source="_DICT_TABLES_"/>
-    <parameter id="INDEX_METHOD" _name="Method" gdatype="gchararray" source="method:0"/>
-    <parameter id="INDEX_TABLESPACE" _name="Tablespace" gdatype="gchararray"/>
-    <parameter id="INDEX_PREDICATE" _name="Predicate" _descr="Constraint expression for a partial index" 
gdatype="gchararray"/>
+    <parameter id="INDEX_METHOD" _name="Method" gdatype="gchararray" nullok="TRUE" source="method:0"/>
+    <parameter id="INDEX_TABLESPACE" _name="Tablespace" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="INDEX_PREDICATE" _name="Predicate" _descr="Constraint expression for a partial index" 
gdatype="gchararray" nullok="TRUE"/>
   </parameters>
 
   <!-- Index fields -->
@@ -21,8 +21,8 @@
   <!-- Sources -->
   <sources>
     <gda_array name="types">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>UNIQUE</gda_value>
@@ -36,8 +36,8 @@
     </gda_array>
 
     <gda_array name="method">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>btree</gda_value>
diff --git a/providers/postgres/postgres_specs_create_role.xml.in 
b/providers/postgres/postgres_specs_create_role.xml.in
index b0606ee..dda5a25 100644
--- a/providers/postgres/postgres_specs_create_role.xml.in
+++ b/providers/postgres/postgres_specs_create_role.xml.in
@@ -6,42 +6,42 @@
 -->
   <parameters id="USER_DEF_P" _name="Role's definition">
     <parameter id="USER_NAME" _name="Name" _descr="Role's name" gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="PASSWORD" _name="Password" _descr="Role's password" gdatype="gchararray" 
plugin="string:HIDDEN=true"/>
-    <parameter id="PASSWORD_ENCRYPTED" _name="Encrypt password" _descr="Controls whether the password is 
stored encrypted in the system catalogs. If the presented password string is already in MD5-encrypted format, 
then it is stored encrypted as-is." gdatype="gboolean">
+    <parameter id="PASSWORD" _name="Password" _descr="Role's password" gdatype="gchararray" nullok="TRUE" 
plugin="string:HIDDEN=true"/>
+    <parameter id="PASSWORD_ENCRYPTED" _name="Encrypt password" _descr="Controls whether the password is 
stored encrypted in the system catalogs. If the presented password string is already in MD5-encrypted format, 
then it is stored encrypted as-is." gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
 
-    <parameter id="CAP_SUPERUSER" _name="Database superuser" _descr="Set to TRUE if the role is a database 
superuser" gdatype="gboolean">
+    <parameter id="CAP_SUPERUSER" _name="Database superuser" _descr="Set to TRUE if the role is a database 
superuser" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="CAP_CREATEDB" _name="Can create databases" _descr="Set to TRUE if the role is allowed to 
create databases" gdatype="gboolean">
+    <parameter id="CAP_CREATEDB" _name="Can create databases" _descr="Set to TRUE if the role is allowed to 
create databases" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="CAP_CREATEROLE" _name="Can create roles" _descr="Set to TRUE if the role is allowed to 
create roles" gdatype="gboolean">
+    <parameter id="CAP_CREATEROLE" _name="Can create roles" _descr="Set to TRUE if the role is allowed to 
create roles" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="CAP_INHERIT" _name="Inherit" _descr="Set to TRUE if the created role inherits the 
privileges of roles it is a member of" gdatype="gboolean">
+    <parameter id="CAP_INHERIT" _name="Inherit" _descr="Set to TRUE if the created role inherits the 
privileges of roles it is a member of" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="CAP_LOGIN" _name="Can login" _descr="Set to TRUE if the role is allowed to log in" 
gdatype="gboolean">
+    <parameter id="CAP_LOGIN" _name="Can login" _descr="Set to TRUE if the role is allowed to log in" 
gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="CNX_LIMIT" _name="Login limit" _descr="If the role is allowed to log in, defines the 
number of concurrent connections the role can make (-1 or unset for unlimited)" gdatype="gint">
+    <parameter id="CNX_LIMIT" _name="Login limit" _descr="If the role is allowed to log in, defines the 
number of concurrent connections the role can make (-1 or unset for unlimited)" gdatype="gint" nullok="TRUE">
       <gda_value>-1</gda_value>
     </parameter>
 
-    <parameter id="VALIDITY" _name="Valid until" _descr="Specifies an expiration time for a password only 
(not for the user account per se: the expiration time is not enforced when logging in using a 
non-password-based authentication method)" gdatype="timestamp"/>
+    <parameter id="VALIDITY" _name="Valid until" _descr="Specifies an expiration time for a password only 
(not for the user account per se: the expiration time is not enforced when logging in using a 
non-password-based authentication method)" gdatype="timestamp" nullok="TRUE"/>
   </parameters>
 
   <sequence id="GROUPS_S" _name="Member of" _descr="Existing roles to which the new role will be immediately 
added as a new member" status="OPT">
-    <parameter id="ROLE" _name="Role" _descr="Existing role" gdatype="string"/>
+    <parameter id="ROLE" _name="Role" _descr="Existing role" gdatype="string" nullok="FALSE"/>
   </sequence>
 
   <sequence id="ROLES_S" _name="Role's members" _descr="Lists one or more existing roles which are 
automatically added as members of the new role" status="OPT">
-    <parameter id="ROLE" _name="Role" _descr="Existing role" gdatype="string"/>
+    <parameter id="ROLE" _name="Role" _descr="Existing role" gdatype="string" nullok="FALSE"/>
   </sequence>
 
   <sequence id="ADMINS_S" _name="Role's admins" _descr="Lists one or more existing roles which are 
automatically added as members of the new role, giving them the right to grant membership in this role to 
others" status="OPT">
-    <parameter id="ROLE" _name="Role" _descr="Existing role" gdatype="string"/>
+    <parameter id="ROLE" _name="Role" _descr="Existing role" gdatype="string" nullok="FALSE"/>
   </sequence>
 </serv_op>
diff --git a/providers/postgres/postgres_specs_create_table.xml.in 
b/providers/postgres/postgres_specs_create_table.xml.in
index 4543ee3..4f16c5f 100644
--- a/providers/postgres/postgres_specs_create_table.xml.in
+++ b/providers/postgres/postgres_specs_create_table.xml.in
@@ -4,24 +4,24 @@
     <parameter id="TABLE_NAME" _name="Name" _descr="Table's name" gdatype="gchararray" nullok="FALSE">
       <gda_value>table_name</gda_value>
     </parameter>
-    <parameter id="TABLE_TABLESPACE" _name="Tablespace" gdatype="gchararray"/>
-    <parameter id="TABLE_WITH_OIDS" _name="With OIDs" gdatype="gboolean">
+    <parameter id="TABLE_TABLESPACE" _name="Tablespace" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="TABLE_WITH_OIDS" _name="With OIDs" gdatype="gboolean" nullok="TRUE">
       <gda_value>TRUE</gda_value>
     </parameter>
-    <parameter id="TABLE_TEMP" _name="Temporary table" gdatype="gboolean">
+    <parameter id="TABLE_TEMP" _name="Temporary table" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="TABLE_COMMENT" _name="Temporary table" gdatype="gchararray"/>
+    <parameter id="TABLE_COMMENT" _name="Temporary table" gdatype="gchararray" nullok="TRUE"/>
   </parameters>
 
   <sequence id="TABLE_PARENTS_S" _name="Parent table(s)" _descr="Inheritance" status="OPT">
-    <parameter id="TABLE_PARENT_TABLE" _name="Parent table" gdatype="gchararray">
+    <parameter id="TABLE_PARENT_TABLE" _name="Parent table" gdatype="gchararray" nullok="FALSE">
       <gda_value>parent_table</gda_value>
     </parameter>
-    <parameter id="TABLE_PARENT_COPY" _name="Keep coupled" _descr="Use INHERIT instead of LIKE" 
gdatype="gboolean">
+    <parameter id="TABLE_PARENT_COPY" _name="Keep coupled" _descr="Use INHERIT instead of LIKE" 
gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="TABLE_PARENT_COPY_DEFAULTS" _name="Copy defaults" _descr="Copy default expressions" 
gdatype="gboolean">
+    <parameter id="TABLE_PARENT_COPY_DEFAULTS" _name="Copy defaults" _descr="Copy default expressions" 
gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
   </sequence>
@@ -30,14 +30,14 @@
   <gda_array id="FIELDS_A" _name="Table's columns">
     <gda_array_field id="COLUMN_NAME" _name="Field name" gdatype="gchararray" nullok="FALSE"/>
     <gda_array_field id="COLUMN_TYPE" _name="Data type" gdatype="gchararray" hint="datatype" nullok="FALSE"/>
-    <gda_array_field id="COLUMN_SIZE" _name="Size" gdatype="guint"/>
-    <gda_array_field id="COLUMN_SCALE" _name="Scale" gdatype="guint"/>
-    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_AUTOINC" _name="Auto increment" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray"/>
-    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray"/>
+    <gda_array_field id="COLUMN_SIZE" _name="Size" gdatype="guint" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_SCALE" _name="Scale" gdatype="guint" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_AUTOINC" _name="Auto increment" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray" 
nullok="TRUE"/>
+    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray" 
nullok="TRUE"/>
   </gda_array>
 
   <!-- foreign key spec -->
@@ -55,23 +55,23 @@
         </gda_array_row>
       </gda_array_data>
     </gda_array>
-    <parameter id="FKEY_MATCH_TYPE" _name="Match type" _descr="Matching method if more than one field 
involved" gdatype="gchararray" source="match_types:0">
+    <parameter id="FKEY_MATCH_TYPE" _name="Match type" _descr="Matching method if more than one field 
involved" gdatype="gchararray" nullok="TRUE" source="match_types:0">
       <gda_value>MATCH SIMPLE</gda_value>
     </parameter>
-    <parameter id="FKEY_ONUPDATE" _name="On update action" gdatype="gchararray" source="action_cb:0">
+    <parameter id="FKEY_ONUPDATE" _name="On update action" gdatype="gchararray" nullok="TRUE" 
source="action_cb:0">
       <gda_value>NO ACTION</gda_value>
     </parameter>
-    <parameter id="FKEY_ONDELETE" _name="On delete action" gdatype="gchararray" source="action_cb:0">
+    <parameter id="FKEY_ONDELETE" _name="On delete action" gdatype="gchararray" nullok="TRUE" 
source="action_cb:0">
       <gda_value>NO ACTION</gda_value>
     </parameter>
-    <parameter id="FKEY_DEFERRABLE" _name="Deferrable" gdatype="gchararray" source="defer_state:0">
+    <parameter id="FKEY_DEFERRABLE" _name="Deferrable" gdatype="gchararray" nullok="TRUE" 
source="defer_state:0">
       <gda_value>NOT DEFERRABLE</gda_value>
     </parameter>
   </sequence>
 
   <!-- other table constraints -->
   <sequence id="TABLE_CONSTRAINTS_S" _name="Global constraints">
-    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray">
+    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray" nullok="FALSE">
       <gda_value>CHECK (column &gt; 0)</gda_value>
     </parameter>
   </sequence>
@@ -80,8 +80,8 @@
   <!-- Sources -->
   <sources>
     <gda_array name="match_types">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>MATCH SIMPLE</gda_value>
@@ -95,8 +95,8 @@
     </gda_array>
 
     <gda_array name="action_cb">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>NO ACTION</gda_value>
@@ -124,8 +124,8 @@
     </gda_array>
 
     <gda_array name="defer_state">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>NOT DEFERRABLE</gda_value>
diff --git a/providers/postgres/postgres_specs_create_user.xml.in 
b/providers/postgres/postgres_specs_create_user.xml.in
index 4939ed3..ed7e25f 100644
--- a/providers/postgres/postgres_specs_create_user.xml.in
+++ b/providers/postgres/postgres_specs_create_user.xml.in
@@ -2,25 +2,25 @@
 <serv_op>
   <parameters id="USER_DEF_P" _name="User's definition">
     <parameter id="USER_NAME" _name="Name" _descr="User's name" gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="PASSWORD" _name="Password" _descr="User's password" gdatype="gchararray" 
plugin="string:HIDDEN=true"/>
-    <parameter id="PASSWORD_ENCRYPTED" _name="Encrypt password" _descr="Controls whether the password is 
stored encrypted in the system catalogs. If the presented password string is already in MD5-encrypted format, 
then it is stored encrypted as-is." gdatype="gboolean">
+    <parameter id="PASSWORD" _name="Password" _descr="User's password" gdatype="gchararray" nullok="TRUE" 
plugin="string:HIDDEN=true"/>
+    <parameter id="PASSWORD_ENCRYPTED" _name="Encrypt password" _descr="Controls whether the password is 
stored encrypted in the system catalogs. If the presented password string is already in MD5-encrypted format, 
then it is stored encrypted as-is." gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
 
-    <parameter id="UID" _name="User ID" _descr="Can be used to choose the PostgreSQL user ID of the new 
user" gdatype="guint"/>
-    <parameter id="CAP_CREATEDB" _name="Can create databases" _descr="Set to TRUE if the user is allowed to 
create databases" gdatype="gboolean">
+    <parameter id="UID" _name="User ID" _descr="Can be used to choose the PostgreSQL user ID of the new 
user" gdatype="guint" nullok="TRUE"/>
+    <parameter id="CAP_CREATEDB" _name="Can create databases" _descr="Set to TRUE if the user is allowed to 
create databases" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="CAP_CREATEUSER" _name="Can create users" _descr="Set to TRUE if the user is allowed to 
create users" gdatype="gboolean">
+    <parameter id="CAP_CREATEUSER" _name="Can create users" _descr="Set to TRUE if the user is allowed to 
create users" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
 
-    <parameter id="VALIDITY" _name="Valid until" _descr="Specifies an expiration time for a password only 
(not for the user account per se: the expiration time is not enforced when logging in using a 
non-password-based authentication method)" gdatype="timestamp"/>
+    <parameter id="VALIDITY" _name="Valid until" _descr="Specifies an expiration time for a password only 
(not for the user account per se: the expiration time is not enforced when logging in using a 
non-password-based authentication method)" gdatype="timestamp" nullok="TRUE"/>
 
   </parameters>
 
   <sequence id="GROUPS_S" _name="Member of" _descr="Existing groups to which the new user will be 
immediately added as a new member" status="OPT">
-    <parameter id="USER" _name="User" _descr="Existing user" gdatype="string"/>
+    <parameter id="USER" _name="User" _descr="Existing user" gdatype="string" nullok="FALSE"/>
   </sequence>
 
 </serv_op>
diff --git a/providers/postgres/postgres_specs_create_view.xml.in 
b/providers/postgres/postgres_specs_create_view.xml.in
index b2faca4..1b62511 100644
--- a/providers/postgres/postgres_specs_create_view.xml.in
+++ b/providers/postgres/postgres_specs_create_view.xml.in
@@ -4,10 +4,10 @@
     <parameter id="VIEW_NAME" _name="Name" _descr="View's name" gdatype="gchararray" nullok="FALSE">
       <gda_value>table_name</gda_value>
     </parameter>
-    <parameter id="VIEW_OR_REPLACE" _name="Replace it already exists" _descr="Replace view definition if it 
already exists" gdatype="gboolean">
+    <parameter id="VIEW_OR_REPLACE" _name="Replace it already exists" _descr="Replace view definition if it 
already exists" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="VIEW_TEMP" _name="Temporary view" gdatype="gboolean">
+    <parameter id="VIEW_TEMP" _name="Temporary view" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
     <parameter id="VIEW_DEF" _name="Definition" _descr="View's definition" gdatype="gchararray" 
nullok="FALSE"/>
diff --git a/providers/postgres/postgres_specs_drop_column.xml.in 
b/providers/postgres/postgres_specs_drop_column.xml.in
index 9bddeb7..84a8eaf 100644
--- a/providers/postgres/postgres_specs_drop_column.xml.in
+++ b/providers/postgres/postgres_specs_drop_column.xml.in
@@ -11,8 +11,8 @@
   <!-- Sources -->
   <sources>
     <gda_array name="action_cb">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>CASCADE</gda_value>
diff --git a/providers/postgres/postgres_specs_drop_db.xml.in 
b/providers/postgres/postgres_specs_drop_db.xml.in
index e2dbc4c..451dd98 100644
--- a/providers/postgres/postgres_specs_drop_db.xml.in
+++ b/providers/postgres/postgres_specs_drop_db.xml.in
@@ -2,12 +2,12 @@
 <serv_op>
   <parameters id="SERVER_CNX_P" _name="Server access parameters">
     <!-- Connection parameters -->
-    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running (for 
servers running on unix domain sockets, enter the socket's path (usually /tmp), or leave this field empty)" 
gdatype="gchararray"/>
-    <parameter id="PORT" _name="Port" _descr="Database server port (for servers running on unix domain 
sockets, enter the socket's file name extension (usually 5432), or leave this field empty)" gdatype="gint"/>
-    <parameter id="OPTIONS" _name="Options" _descr="Extra connection options" gdatype="gchararray"/>
-    <parameter id="ADM_LOGIN" _name="Administrator login" _descr="Login name (which has the rights to create 
databases)" gdatype="gchararray"/>
-    <parameter id="ADM_PASSWORD" _name="Administrator password" gdatype="gchararray" 
plugin="string:HIDDEN=true"/>
-    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether to require SSL or not when connecting" 
gdatype="gboolean"/>
+    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running (for 
servers running on unix domain sockets, enter the socket's path (usually /tmp), or leave this field empty)" 
gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="PORT" _name="Port" _descr="Database server port (for servers running on unix domain 
sockets, enter the socket's file name extension (usually 5432), or leave this field empty)" gdatype="gint" 
nullok="TRUE"/>
+    <parameter id="OPTIONS" _name="Options" _descr="Extra connection options" gdatype="gchararray" 
nullok="TRUE"/>
+    <parameter id="ADM_LOGIN" _name="Administrator login" _descr="Login name (which has the rights to create 
databases)" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="ADM_PASSWORD" _name="Administrator password" gdatype="gchararray" 
plugin="string:HIDDEN=true" nullok="TRUE"/>
+    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether to require SSL or not when connecting" 
gdatype="gboolean" nullok="TRUE"/>
   </parameters>
 
   <parameters id="DB_DESC_P" _name="Database's description">
@@ -16,8 +16,8 @@
   </parameters>
   <sources>
     <gda_array name="csets">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
          <gda_value>UNICODE</gda_value>
diff --git a/providers/postgres/postgres_specs_drop_index.xml.in 
b/providers/postgres/postgres_specs_drop_index.xml.in
index ed2435f..1a805fb 100644
--- a/providers/postgres/postgres_specs_drop_index.xml.in
+++ b/providers/postgres/postgres_specs_drop_index.xml.in
@@ -10,8 +10,8 @@
   <!-- Sources -->
   <sources>
     <gda_array name="action_cb">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>CASCADE</gda_value>
diff --git a/providers/postgres/postgres_specs_drop_role.xml.in 
b/providers/postgres/postgres_specs_drop_role.xml.in
index 1e5474b..9b5ea08 100644
--- a/providers/postgres/postgres_specs_drop_role.xml.in
+++ b/providers/postgres/postgres_specs_drop_role.xml.in
@@ -2,6 +2,6 @@
 <serv_op>
   <parameters id="USER_DESC_P" _name="Role's definition">
     <parameter id="USER_NAME" _name="Name" _descr="Role's name" gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="USER_IFEXISTS" _name="If exists" _descr="Drop role only if it exists" gdatype="gboolean"/>
+    <parameter id="USER_IFEXISTS" _name="If exists" _descr="Drop role only if it exists" gdatype="gboolean" 
nullok="TRUE"/>
   </parameters>
 </serv_op>
diff --git a/providers/postgres/postgres_specs_drop_table.xml.in 
b/providers/postgres/postgres_specs_drop_table.xml.in
index a9ce35e..16fa5c4 100644
--- a/providers/postgres/postgres_specs_drop_table.xml.in
+++ b/providers/postgres/postgres_specs_drop_table.xml.in
@@ -10,8 +10,8 @@
   <!-- Sources -->
   <sources>
     <gda_array name="action_cb">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>CASCADE</gda_value>
diff --git a/providers/postgres/postgres_specs_drop_user.xml.in 
b/providers/postgres/postgres_specs_drop_user.xml.in
index 08ffed5..7dcc11e 100644
--- a/providers/postgres/postgres_specs_drop_user.xml.in
+++ b/providers/postgres/postgres_specs_drop_user.xml.in
@@ -2,6 +2,6 @@
 <serv_op>
   <parameters id="USER_DESC_P" _name="User's definition">
     <parameter id="USER_NAME" _name="Name" _descr="User's name" gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="USER_IFEXISTS" _name="If exists" _descr="Drop user only if it exists" gdatype="gboolean"/>
+    <parameter id="USER_IFEXISTS" _name="If exists" _descr="Drop user only if it exists" gdatype="gboolean" 
nullok="TRUE"/>
   </parameters>
 </serv_op>
diff --git a/providers/postgres/postgres_specs_drop_view.xml.in 
b/providers/postgres/postgres_specs_drop_view.xml.in
index 5e4ecd7..5d1a9b6 100644
--- a/providers/postgres/postgres_specs_drop_view.xml.in
+++ b/providers/postgres/postgres_specs_drop_view.xml.in
@@ -2,7 +2,7 @@
 <serv_op>
   <parameters id="VIEW_DESC_P">
     <parameter id="VIEW_NAME" _name="View" _descr="View to delete" gdatype="gchararray" nullok="FALSE" 
source="_DICT_VIEWS_"/>
-    <parameter id="VIEW_IFEXISTS" _name="If exists" _descr="Drop view only if it exists" gdatype="gboolean"/>
+    <parameter id="VIEW_IFEXISTS" _name="If exists" _descr="Drop view only if it exists" gdatype="gboolean" 
nullok="TRUE"/>
     <parameter id="REFERENCED_ACTION" _name="References" _descr="What to do with objects referencing the 
view" gdatype="gchararray" nullok="FALSE" source="action_cb:0">
       <gda_value>RESTRICT</gda_value>
     </parameter>
@@ -11,8 +11,8 @@
   <!-- Sources -->
   <sources>
     <gda_array name="action_cb">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>CASCADE</gda_value>
diff --git a/providers/postgres/postgres_specs_dsn.xml.in b/providers/postgres/postgres_specs_dsn.xml.in
index 35945c2..390fcfd 100644
--- a/providers/postgres/postgres_specs_dsn.xml.in
+++ b/providers/postgres/postgres_specs_dsn.xml.in
@@ -2,11 +2,11 @@
 <data-set-spec>
   <parameters>
     <parameter id="DB_NAME" _name="Database name" _descr="The name of a database to connect to" 
gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="SEARCHPATH" _name="Search Path" _descr="Search path among database's schemas 
('search_path' variable)" gdatype="gchararray"/>
-    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running (for 
servers running on unix domain sockets, enter the socket's path (usually /tmp), or leave this field empty)" 
gdatype="gchararray"/>
-    <parameter id="PORT" _name="Port" _descr="Database server port (for servers running on unix domain 
sockets, enter the socket's file name extension (usually 5432), or leave this field empty)" gdatype="gint"/>
-    <parameter id="OPTIONS" _name="Options" _descr="Extra connection options" gdatype="gchararray"/>
-    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean"/>
-    <parameter id="CONNECT_TIMEOUT" _name="Connection timeout" _descr="Maximum wait for connection, in 
seconds. Zero or not specified means wait indefinitely. It is not recommended to use a timeout of less than 2 
seconds" gdatype="gint"/>
+    <parameter id="SEARCHPATH" _name="Search Path" _descr="Search path among database's schemas 
('search_path' variable)" gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="HOST" _name="Database server" _descr="Host on which the database server is running (for 
servers running on unix domain sockets, enter the socket's path (usually /tmp), or leave this field empty)" 
gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="PORT" _name="Port" _descr="Database server port (for servers running on unix domain 
sockets, enter the socket's file name extension (usually 5432), or leave this field empty)" gdatype="gint" 
nullok="TRUE"/>
+    <parameter id="OPTIONS" _name="Options" _descr="Extra connection options" gdatype="gchararray" 
nullok="TRUE"/>
+    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean" nullok="TRUE"/>
+    <parameter id="CONNECT_TIMEOUT" _name="Connection timeout" _descr="Maximum wait for connection, in 
seconds. Zero or not specified means wait indefinitely. It is not recommended to use a timeout of less than 2 
seconds" gdatype="gint" nullok="TRUE"/>
   </parameters>
 </data-set-spec>
diff --git a/providers/skel-implementation/capi/capi_specs_create_table.xml.in 
b/providers/skel-implementation/capi/capi_specs_create_table.xml.in
index ede3155..3d712fd 100644
--- a/providers/skel-implementation/capi/capi_specs_create_table.xml.in
+++ b/providers/skel-implementation/capi/capi_specs_create_table.xml.in
@@ -10,16 +10,16 @@
   <gda_array id="FIELDS_A" _name="Table's columns">
     <gda_array_field id="COLUMN_NAME" _name="Field name" gdatype="gchararray" nullok="FALSE"/>
     <gda_array_field id="COLUMN_TYPE" _name="Data type" gdatype="gchararray" hint="datatype" nullok="FALSE"/>
-    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray"/>
-    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray"/>
+    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray" 
nullok="TRUE"/>
+    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray" 
nullok="TRUE"/>
   </gda_array>
 
   <!-- other table constraints -->
   <sequence id="TABLE_CONSTRAINTS_S" _name="Global constraints">
-    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray">
+    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray" nullok="FALSE">
       <gda_value>CHECK (column &gt; 0)</gda_value>
     </parameter>
   </sequence>
diff --git a/providers/sqlite/sqlite_specs_add_column.xml.in b/providers/sqlite/sqlite_specs_add_column.xml.in
index ec9ef68..b25813b 100644
--- a/providers/sqlite/sqlite_specs_add_column.xml.in
+++ b/providers/sqlite/sqlite_specs_add_column.xml.in
@@ -8,10 +8,10 @@
     <parameter id="COLUMN_TYPE" _name="Data type" gdatype="gchararray" hint="datatype" nullok="FALSE">
       <gda_value>integer</gda_value>
     </parameter>
-    <parameter id="COLUMN_SIZE" _name="Size" gdatype="guint"/>
-    <parameter id="COLUMN_SCALE" _name="Scale" gdatype="guint"/>
-    <parameter id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean"/>
-    <parameter id="COLUMN_DEFAULT" _name="Default" _descr="Default value, mandatory if column is NOT NULL" 
gdatype="gchararray"/>
-    <parameter id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray"/>
+    <parameter id="COLUMN_SIZE" _name="Size" gdatype="guint" nullok="TRUE"/>
+    <parameter id="COLUMN_SCALE" _name="Scale" gdatype="guint" nullok="TRUE"/>
+    <parameter id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean" nullok="TRUE"/>
+    <parameter id="COLUMN_DEFAULT" _name="Default" _descr="Default value, mandatory if column is NOT NULL" 
gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray" nullok="TRUE"/>
   </parameters>
 </serv_op>
diff --git a/providers/sqlite/sqlite_specs_create_index.xml.in 
b/providers/sqlite/sqlite_specs_create_index.xml.in
index bbde71e..5ffb4ce 100644
--- a/providers/sqlite/sqlite_specs_create_index.xml.in
+++ b/providers/sqlite/sqlite_specs_create_index.xml.in
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <serv_op>
   <parameters id="INDEX_DEF_P" _name="Index description">
-    <parameter id="INDEX_TYPE" _name="Type" gdatype="gchararray" source="types:0">
+    <parameter id="INDEX_TYPE" _name="Type" gdatype="gchararray" nullok="TRUE" source="types:0">
       <gda_value>UNIQUE</gda_value>
     </parameter>
     <parameter id="INDEX_NAME" _name="Name" _descr="Index name" gdatype="gchararray" nullok="FALSE"/>
     <parameter id="INDEX_ON_TABLE" _name="On table" gdatype="gchararray" nullok="FALSE" 
source="_DICT_TABLES_"/>
-    <parameter id="INDEX_IFNOTEXISTS" _name="Only if it does not yet exist" _descr="Create index only if it 
does not yet exist" gdatype="gboolean">
+    <parameter id="INDEX_IFNOTEXISTS" _name="Only if it does not yet exist" _descr="Create index only if it 
does not yet exist" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
   </parameters>
@@ -17,15 +17,15 @@
       <gda_value>indexed_field</gda_value>
     </parameter>
     <!-- To translators: "Compare method" refers to the method SQLite has to compare values -->
-    <parameter id="INDEX_COLLATE" _name="Compare method" _descr="Collation name (BINARY|NOCASE)" 
gdatype="gchararray"/>
-    <parameter id="INDEX_SORT_ORDER" _name="Sort type" gdatype="gchararray" source="sort:0"/>
+    <parameter id="INDEX_COLLATE" _name="Compare method" _descr="Collation name (BINARY|NOCASE)" 
gdatype="gchararray" nullok="TRUE"/>
+    <parameter id="INDEX_SORT_ORDER" _name="Sort type" gdatype="gchararray" nullok="TRUE" source="sort:0"/>
   </sequence>
 
   <!-- Sources -->
   <sources>
     <gda_array name="sort">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
         <gda_array_row>
           <gda_value>ASC</gda_value>
@@ -39,8 +39,8 @@
     </gda_array>
 
     <gda_array name="types">
-      <gda_array_field name="id" gdatype="gchararray"/>
-      <gda_array_field name="text" gdatype="gchararray"/>
+      <gda_array_field name="id" gdatype="gchararray" nullok="FALSE"/>
+      <gda_array_field name="text" gdatype="gchararray" nullok="FALSE"/>
       <gda_array_data>
        <gda_array_row>
           <gda_value>UNIQUE</gda_value>
diff --git a/providers/sqlite/sqlite_specs_create_table.xml.in 
b/providers/sqlite/sqlite_specs_create_table.xml.in
index d50c086..e682126 100644
--- a/providers/sqlite/sqlite_specs_create_table.xml.in
+++ b/providers/sqlite/sqlite_specs_create_table.xml.in
@@ -4,10 +4,10 @@
     <parameter id="TABLE_NAME" _name="Name" _descr="Table's name" gdatype="gchararray" nullok="FALSE">
       <gda_value>table_name</gda_value>
     </parameter>
-    <parameter id="TABLE_TEMP" _name="Temporary table" gdatype="gboolean">
+    <parameter id="TABLE_TEMP" _name="Temporary table" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="TABLE_IFNOTEXISTS" _name="Only if it does not yet exist" _descr="Create table only if it 
does not yet exist" gdatype="gboolean">
+    <parameter id="TABLE_IFNOTEXISTS" _name="Only if it does not yet exist" _descr="Create table only if it 
does not yet exist" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
   </parameters>
@@ -16,24 +16,24 @@
   <gda_array id="FIELDS_A" _name="Table's columns">
     <gda_array_field id="COLUMN_NAME" _name="Field name" gdatype="gchararray" nullok="FALSE"/>
     <gda_array_field id="COLUMN_TYPE" _name="Data type" gdatype="gchararray" hint="datatype" nullok="FALSE"/>
-    <gda_array_field id="COLUMN_SIZE" _name="Size" gdatype="guint"/>
-    <gda_array_field id="COLUMN_SCALE" _name="Scale" gdatype="guint"/>
-    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_AUTOINC" _name="Auto increment" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean"/>
-    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray"/>
-    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray"/>
+    <gda_array_field id="COLUMN_SIZE" _name="Size" gdatype="guint" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_SCALE" _name="Scale" gdatype="guint" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_NNUL" _name="Not NULL" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_AUTOINC" _name="Auto increment" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_UNIQUE" _name="Unique" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_PKEY" _name="Primary key" gdatype="gboolean" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_DEFAULT" _name="Default" _descr="Default value" gdatype="gchararray" 
nullok="TRUE"/>
+    <gda_array_field id="COLUMN_CHECK" _name="Check" _descr="Check constraint" gdatype="gchararray" 
nullok="TRUE"/>
     <!-- To translators: "Compare method" refers to the method SQLite has to compare values -->
-    <gda_array_field id="COLUMN_COLLATE" _name="Compare method" _descr="Collation name (BINARY|NOCASE)" 
gdatype="gchararray"/>
-    <gda_array_field id="COLUMN_CONFLICT" _name="Conflict" _descr="Conflict resolution method 
(ROLLBACK|ABORT|FAIL|IGNORE|REPLACE)" gdatype="gchararray"/>
+    <gda_array_field id="COLUMN_COLLATE" _name="Compare method" _descr="Collation name (BINARY|NOCASE)" 
gdatype="gchararray" nullok="TRUE"/>
+    <gda_array_field id="COLUMN_CONFLICT" _name="Conflict" _descr="Conflict resolution method 
(ROLLBACK|ABORT|FAIL|IGNORE|REPLACE)" gdatype="gchararray" nullok="TRUE"/>
   </gda_array>
 
   <!-- foreign key spec: not supported by SQLite -->
 
   <!-- other table constraints -->
   <sequence id="TABLE_CONSTRAINTS_S" _name="Global constraints">
-    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray">
+    <parameter id="CONSTRAINT_STRING" name="Constraint" gdatype="gchararray" nullok="FALSE">
       <gda_value>CHECK (column &gt; 0)</gda_value>
     </parameter>
   </sequence>
diff --git a/providers/sqlite/sqlite_specs_create_view.xml.in 
b/providers/sqlite/sqlite_specs_create_view.xml.in
index 7dc134b..817f176 100644
--- a/providers/sqlite/sqlite_specs_create_view.xml.in
+++ b/providers/sqlite/sqlite_specs_create_view.xml.in
@@ -4,10 +4,10 @@
     <parameter id="VIEW_NAME" _name="Name" _descr="View's name" gdatype="gchararray" nullok="FALSE">
       <gda_value>table_name</gda_value>
     </parameter>
-    <parameter id="VIEW_TEMP" _name="Temporary view" gdatype="gboolean">
+    <parameter id="VIEW_TEMP" _name="Temporary view" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
-    <parameter id="VIEW_IFNOTEXISTS" _name="Only if it does not yet exist" _descr="Create view only if it 
does not yet exist" gdatype="gboolean">
+    <parameter id="VIEW_IFNOTEXISTS" _name="Only if it does not yet exist" _descr="Create view only if it 
does not yet exist" gdatype="gboolean" nullok="TRUE">
       <gda_value>FALSE</gda_value>
     </parameter>
     <parameter id="VIEW_DEF" _name="Definition" _descr="View's definition" gdatype="gchararray" 
nullok="FALSE"/>
diff --git a/providers/sqlite/sqlite_specs_drop_index.xml.in b/providers/sqlite/sqlite_specs_drop_index.xml.in
index fc5fb47..5c5a0e8 100644
--- a/providers/sqlite/sqlite_specs_drop_index.xml.in
+++ b/providers/sqlite/sqlite_specs_drop_index.xml.in
@@ -2,6 +2,6 @@
 <serv_op>
   <parameters id="INDEX_DESC_P">
     <parameter id="INDEX_NAME" _name="Index" _descr="Index to delete" gdatype="gchararray" nullok="FALSE" 
source="_DICT_INDEXES_"/>
-    <parameter id="INDEX_IFEXISTS" _name="If exists" _descr="Drop index only if it exists" 
gdatype="gboolean"/>
+    <parameter id="INDEX_IFEXISTS" _name="If exists" _descr="Drop index only if it exists" 
gdatype="gboolean" nullok="TRUE"/>
   </parameters>
 </serv_op>
diff --git a/providers/sqlite/sqlite_specs_drop_table.xml.in b/providers/sqlite/sqlite_specs_drop_table.xml.in
index 9052204..653ef18 100644
--- a/providers/sqlite/sqlite_specs_drop_table.xml.in
+++ b/providers/sqlite/sqlite_specs_drop_table.xml.in
@@ -2,6 +2,6 @@
 <serv_op>
   <parameters id="TABLE_DESC_P">
     <parameter id="TABLE_NAME" _name="Table" _descr="Table to delete" gdatype="gchararray" nullok="FALSE" 
source="_DICT_TABLES_"/>
-    <parameter id="TABLE_IFEXISTS" _name="If exists" _descr="Drop table only if it exists" 
gdatype="gboolean"/>
+    <parameter id="TABLE_IFEXISTS" _name="If exists" _descr="Drop table only if it exists" 
gdatype="gboolean" nullok="TRUE"/>
   </parameters>
 </serv_op>
diff --git a/providers/sqlite/sqlite_specs_drop_view.xml.in b/providers/sqlite/sqlite_specs_drop_view.xml.in
index 4738a41..bee5114 100644
--- a/providers/sqlite/sqlite_specs_drop_view.xml.in
+++ b/providers/sqlite/sqlite_specs_drop_view.xml.in
@@ -2,6 +2,6 @@
 <serv_op>
   <parameters id="VIEW_DESC_P">
     <parameter id="VIEW_NAME" _name="View" _descr="View to delete" gdatype="gchararray" nullok="FALSE" 
source="_DICT_VIEWS_"/>
-    <parameter id="VIEW_IFEXISTS" _name="If exists" _descr="Drop view only if it exists" gdatype="gboolean"/>
+    <parameter id="VIEW_IFEXISTS" _name="If exists" _descr="Drop view only if it exists" gdatype="gboolean" 
nullok="TRUE"/>
   </parameters>
 </serv_op>
diff --git a/providers/web/web_specs_dsn.xml.in b/providers/web/web_specs_dsn.xml.in
index 0578478..8f77b21 100644
--- a/providers/web/web_specs_dsn.xml.in
+++ b/providers/web/web_specs_dsn.xml.in
@@ -2,10 +2,10 @@
 <data-set-spec>
   <parameters>
     <parameter id="HOST" _name="Web server name" _descr="The name of the web server which proxies 
connections" gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="PORT" _name="Port" _descr="Web server port (leave this field empty for default)" 
gdatype="gint"/>
-    <parameter id="PATH" _name="Path to PHP script" _descr="The path of the script to use if service is not 
at the web server's root" gdatype="gchararray"/>
+    <parameter id="PORT" _name="Port" _descr="Web server port (leave this field empty for default)" 
gdatype="gint" nullok="TRUE"/>
+    <parameter id="PATH" _name="Path to PHP script" _descr="The path of the script to use if service is not 
at the web server's root" gdatype="gchararray" nullok="TRUE"/>
     <parameter id="SECRET" _name="Server secret" _descr="Server secret" gdatype="gchararray" nullok="FALSE"/>
     <parameter id="DB_NAME" _name="Database name" _descr="The name of a database to use" 
gdatype="gchararray" nullok="FALSE"/>
-    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean"/>
+    <parameter id="USE_SSL" _name="Require SSL" _descr="Whether or not to use SSL to establish the 
connection" gdatype="gboolean" nullok="TRUE"/>
   </parameters>
 </data-set-spec>



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