Changeset 8192 in project


Ignore:
Timestamp:
02/06/08 07:23:31 (12 years ago)
Author:
Kon Lovett
Message:

Save.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/3/mysql/trunk/mysql.scm

    r8191 r8192  
    26402640|#
    26412641
    2642 
     2642#|
     2643
     2644Bind Parameter:
     2645
     2646  When MySQL type unspecified attempt to determine from Scheme type:
     2647 
     2648    Ex: string => mysql-type-string
     2649
     2650  When MySQL type unspecified attempt to determine from database schema type:
     2651 
     2652    Ex:
     2653
     2654  When MySQL type specified coerce the Scheme value:
     2655
     2656    mysql-null, sql-null, (void) & '() -> MYSQL_TYPE_NULL
     2657 
     2658    When types are a straight-forward match, then no coercion:
     2659   
     2660      Ex: mysql-type-string & string
     2661 
     2662    When types are not a straight-forward match, then attempt coercion:
     2663   
     2664      Ex: mysql-type-string & number
     2665
     2666  The 'is-unsigned' flag must be used for numbers since no unsigned Scheme numbers.
     2667
     2668  The 'error' flag is problematic - should truncation error reporting always be on?
     2669
     2670  The 'is-null' flag is problematic - are mysql-bind objects to be re-used?
     2671
     2672Bind Result:
     2673
     2674  When the C storage length (len argument) is unspecified attempt to determine
     2675  from the MySQL type.
     2676
     2677  When the type value length can vary use a default maximum length (a Scheme
     2678  parameter?).
     2679
     2680Type Mapping:
     2681
     2682  ; MySQL Type                ; Scheme Type         ; Return Type     ; Allocate Size
     2683
     2684  ;; "Null"
     2685  MYSQL_TYPE_NULL             ; sql-null            ; n/a             ; n/a
     2686
     2687
     2688  ;; "Boolean" is TINYINT(1)
     2689        MYSQL_TYPE_TINY             ; boolean             ; bool            ; uint8_t
     2690
     2691
     2692  ;; "Numeric"
     2693        MYSQL_TYPE_TINY             ; fixnum              ; char            ; int8_t
     2694  MYSQL_TYPE_SHORT            ; fixnum              ; short           ; int16_t
     2695  MYSQL_TYPE_INT24            ; fixnum              ; int             ; int32_t
     2696  MYSQL_TYPE_LONG             ; flonum              ; long            ; int32_t
     2697  MYSQL_TYPE_LONGLONG         ; flonum              ; integer64       ; int64_t
     2698
     2699  MYSQL_TYPE_FLOAT            ; flonum              ; float           ; float
     2700  MYSQL_TYPE_DOUBLE           ; flonum              ; double          ; double
     2701
     2702  MYSQL_TYPE_DECIMAL          ; flonum              ;                 ;
     2703  MYSQL_TYPE_NEWDECIMAL       ; flonum              ;                 ;
     2704
     2705  MYSQL_TYPE_BIT              ; flonum              ; integer64       ; uint64_t
     2706
     2707
     2708  ;; "Time"
     2709  MYSQL_TYPE_TIMESTAMP        ; mysql-time          ; mysql-time-ptr  ; MYSQL_TIME
     2710  MYSQL_TYPE_DATE             ; mysql-time          ; mysql-time-ptr  ; MYSQL_TIME
     2711  MYSQL_TYPE_NEWDATE          ; mysql-time          ; mysql-time-ptr  ; MYSQL_TIME
     2712  MYSQL_TYPE_TIME             ; mysql-time          ; mysql-time-ptr  ; MYSQL_TIME
     2713  MYSQL_TYPE_DATETIME         ; mysql-time          ; mysql-time-ptr  ; MYSQL_TIME
     2714
     2715        MYSQL_TYPE_YEAR             ; fixnum              ; unsigned-int    ; unsigned int
     2716
     2717
     2718  ;; "String"
     2719  MYSQL_TYPE_TINY_BLOB        ; blob                ; blob            ; uint8_t * length
     2720  MYSQL_TYPE_MEDIUM_BLOB      ; blob                ; blob            ; uint8_t * length
     2721  MYSQL_TYPE_LONG_BLOB        ; blob                ; blob            ; uint8_t * length
     2722  MYSQL_TYPE_BLOB             ; blob                ; blob            ; uint8_t * length
     2723
     2724        MYSQL_TYPE_VARCHAR          ; string              ; c-string        ; uint8_t * length
     2725  MYSQL_TYPE_VAR_STRING       ; string              ; c-string        ; uint8_t * length
     2726  MYSQL_TYPE_STRING           ; string              ; c-string        ; uint8_t * length
     2727
     2728  MYSQL_TYPE_ENUM             ; string              ; c-string        ; uint8_t * length
     2729  MYSQL_TYPE_SET              ; list-of string      ;                 ;
     2730
     2731
     2732  MYSQL_TYPE_GEOMETRY         ;                     ;                 ;
     2733|#
     2734
Note: See TracChangeset for help on using the changeset viewer.