fmk             Wed Apr 25 11:01:23 2001 EDT

  Modified files:              
    /php4/ext/fbsql     php_fbsql.c 
  Log:
  make fbsql_field_flags return a value
  
Index: php4/ext/fbsql/php_fbsql.c
diff -u php4/ext/fbsql/php_fbsql.c:1.12 php4/ext/fbsql/php_fbsql.c:1.13
--- php4/ext/fbsql/php_fbsql.c:1.12     Tue Apr 17 10:39:43 2001
+++ php4/ext/fbsql/php_fbsql.c  Wed Apr 25 11:01:22 2001
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_fbsql.c,v 1.12 2001/04/17 17:39:43 fmk Exp $ */
+/* $Id: php_fbsql.c,v 1.13 2001/04/25 18:01:22 fmk Exp $ */
 
 /* TODO:
  *
@@ -525,7 +525,7 @@
                {
                        php_error(E_WARNING,"Cannot connect to host '%s'",hostName);
                        php_error(E_WARNING,fbcehClassErrorMessage());
-                       return NULL;
+//                     return NULL;
                }
                result = malloc(sizeof(PHPFBLink));
                result->retainCount     = 1;
@@ -2780,17 +2780,16 @@
        add_property_string(return_value, "name",       
(char*)fbccmdLabelName(fbcmdColumnMetaDataAtIndex(result->metaData, column)),1);
        add_property_string(return_value, "table",      
(char*)fbccmdTableName(fbcmdColumnMetaDataAtIndex(result->metaData,column)),1);
        add_property_long(return_value,   "max_length", 
fbcdmdLength(fbccmdDatatype(fbcmdColumnMetaDataAtIndex(result->metaData,column))));
-       add_property_string(return_value, "type",       (char*)fbcdmdDatatypeString 
(fbcmdDatatypeMetaDataAtIndex(result->metaData, column)),1);
+       add_property_string(return_value, "type",       
+(char*)fbcdmdDatatypeString(fbcmdDatatypeMetaDataAtIndex(result->metaData, 
+column)),1);
+       add_property_long(return_value,   "not_null",   
+!fbccmdIsNullable(fbcmdColumnMetaDataAtIndex(result->metaData, column)));
 /*     Remember to add the rest */
-/*     add_property_long(return_value, 
"not_null",IS_NOT_NULL(mysql_field->flags)?1:0); */
-/*     add_property_long(return_value, 
"primary_key",IS_PRI_KEY(mysql_field->flags)?1:0); */
-/*     add_property_long(return_value, 
"multiple_key",(mysql_field->flags&MULTIPLE_KEY_FLAG?1:0)); */
-/*     add_property_long(return_value, 
"unique_key",(mysql_field->flags&UNIQUE_KEY_FLAG?1:0)); */
-/*     add_property_long(return_value, "numeric",IS_NUM(mysql_field->type)?1:0); */
-/*     add_property_long(return_value, "blob",IS_BLOB(mysql_field->flags)?1:0); */
-/*     add_property_string(return_value, 
"type",php_mysql_get_field_name(mysql_field->type), 1); */
-/*     add_property_long(return_value, 
"unsigned",(mysql_field->flags&UNSIGNED_FLAG?1:0)); */
-/*     add_property_long(return_value, 
"zerofill",(mysql_field->flags&ZEROFILL_FLAG?1:0)); */
+/*     add_property_long(return_value, 
+"primary_key",IS_PRI_KEY(fbsql_field->flags)?1:0); */
+/*     add_property_long(return_value, 
+"multiple_key",(fbsql_field->flags&MULTIPLE_KEY_FLAG?1:0)); */
+/*     add_property_long(return_value, 
+"unique_key",(fbsql_field->flags&UNIQUE_KEY_FLAG?1:0)); */
+/*     add_property_long(return_value, "numeric",IS_NUM(fbsql_field->type)?1:0); */
+/*     add_property_long(return_value, "blob",IS_BLOB(fbsql_field->flags)?1:0); */
+/*     add_property_long(return_value, 
+"unsigned",(fbsql_field->flags&UNSIGNED_FLAG?1:0)); */
+/*     add_property_long(return_value, 
+"zerofill",(fbsql_field->flags&ZEROFILL_FLAG?1:0)); */
 }
 /* }}} */
 
@@ -2843,7 +2842,7 @@
 /* }}} */
 
 
-/* {{{ proto string mysql_field_name(int result, int field_index)
+/* {{{ proto string fbsql_field_name(int result, int field_index)
        */
 PHP_FUNCTION(fbsql_field_name)
 {
@@ -3069,7 +3068,7 @@
 /* }}} */
 
 
-/* {{{ proto string fbsql_field_flags(int result, int field_index)
+/* {{{ proto string string fbsql_field_flags(int result[, int field_index])
        */
 PHP_FUNCTION(fbsql_field_flags)
 {
@@ -3078,6 +3077,8 @@
        int                 resultIndex;
        PHPFBResult* result;
        int                 column;
+       char buf[512];
+       int  len;
        FBSQLLS_FETCH();
 
        resultIndex = FB_SQL_G(resultIndex);
@@ -3109,12 +3110,51 @@
                        RETURN_FALSE;
                }
        }
-       if (array_init(return_value)==FAILURE)
-       {
-               RETURN_FALSE;
+       strcpy(buf, "");
+       if (!fbccmdIsNullable(fbcmdColumnMetaDataAtIndex(result->metaData, column))) {
+               strcat(buf, "not_null ");
        }
-   /* We should create the result -- currently empty */
-
+#if 0
+       if (IS_PRI_KEY(fbsql_field->flags)) {
+               strcat(buf, "primary_key ");
+       }
+       if (fbsql_field->flags&UNIQUE_KEY_FLAG) {
+               strcat(buf, "unique_key ");
+       }
+       if (fbsql_field->flags&MULTIPLE_KEY_FLAG) {
+               strcat(buf, "multiple_key ");
+       }
+       if (IS_BLOB(fbsql_field->flags)) {
+               strcat(buf, "blob ");
+       }
+       if (fbsql_field->flags&UNSIGNED_FLAG) {
+               strcat(buf, "unsigned ");
+       }
+       if (fbsql_field->flags&ZEROFILL_FLAG) {
+               strcat(buf, "zerofill ");
+       }
+       if (fbsql_field->flags&BINARY_FLAG) {
+               strcat(buf, "binary ");
+       }
+       if (fbsql_field->flags&ENUM_FLAG) {
+               strcat(buf, "enum ");
+       }
+       if (fbsql_field->flags&AUTO_INCREMENT_FLAG) {
+               strcat(buf, "auto_increment ");
+       }
+       if (fbsql_field->flags&TIMESTAMP_FLAG) {
+               strcat(buf, "timestamp ");
+       }
+#endif
+       len = strlen(buf);
+       /* remove trailing space, if present */
+       if (len && buf[len-1] == ' ') {
+               buf[len-1] = 0;
+               len--;
+       }
+       return_value->value.str.len = len;
+       return_value->value.str.val = estrndup(buf, len);
+       return_value->type = IS_STRING;
 }
 /* }}} */
 



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to