1 /*! 2 \file lib/db/dbmi_base/xdrcolumn.c 3 4 \brief DBMI Library (base) - external data representation (column) 5 6 (C) 1999-2009, 2011 by the GRASS Development Team 7 8 This program is free software under the GNU General Public License 9 (>=v2). Read the file COPYING that comes with GRASS for details. 10 11 \author Joel Jones (CERL/UIUC), Radim Blazek, Brad Douglas, Markus Neteler 12 \author Doxygenized by Martin Landa <landa.martin gmail.com> (2011) 13 */ 14 15 #include <grass/dbmi.h> 16 #include "macros.h" 17 18 /*! 19 \brief Send column definition 20 21 \param column pointer to dbColumn 22 23 \return DB_OK 24 */ db__send_column_definition(dbColumn * column)25int db__send_column_definition(dbColumn * column) 26 { 27 DB_SEND_STRING(&column->columnName); 28 DB_SEND_STRING(&column->description); 29 DB_SEND_INT(column->sqlDataType); 30 DB_SEND_INT(column->hostDataType); 31 DB_SEND_INT(column->precision); 32 DB_SEND_INT(column->scale); 33 DB_SEND_INT(column->dataLen); 34 DB_SEND_INT(column->select); 35 DB_SEND_INT(column->update); 36 DB_SEND_CHAR(column->nullAllowed); 37 DB_SEND_CHAR(column->useDefaultValue); 38 DB_SEND_CHAR(column->hasDefaultValue); 39 if (column->hasDefaultValue) { 40 DB_SEND_COLUMN_DEFAULT_VALUE(column); 41 } 42 43 return DB_OK; 44 } 45 46 /*! 47 \brief Receive column definition 48 49 \param column pointer to dbColumn 50 51 \return DB_OK 52 */ db__recv_column_definition(dbColumn * column)53int db__recv_column_definition(dbColumn * column) 54 { 55 DB_RECV_STRING(&column->columnName); 56 DB_RECV_STRING(&column->description); 57 DB_RECV_INT(&column->sqlDataType); 58 DB_RECV_INT(&column->hostDataType); 59 DB_RECV_INT(&column->precision); 60 DB_RECV_INT(&column->scale); 61 DB_RECV_INT(&column->dataLen); 62 DB_RECV_INT(&column->select); 63 DB_RECV_INT(&column->update); 64 DB_RECV_CHAR(&column->nullAllowed); 65 DB_RECV_CHAR(&column->useDefaultValue); 66 DB_RECV_CHAR(&column->hasDefaultValue); 67 if (column->hasDefaultValue) { 68 DB_RECV_COLUMN_DEFAULT_VALUE(column); 69 } 70 71 return DB_OK; 72 } 73 74 /*! 75 \brief Send column value 76 77 \param column pointer to dbColumn 78 79 \return 80 */ db__send_column_value(dbColumn * column)81int db__send_column_value(dbColumn * column) 82 { 83 return db__send_value(db_get_column_value(column), 84 db_sqltype_to_Ctype(db_get_column_sqltype(column))); 85 } 86 87 /*! 88 \brief Receive column value 89 90 \param column pointer to dbColumn 91 92 \return 93 */ db__recv_column_value(dbColumn * column)94int db__recv_column_value(dbColumn * column) 95 { 96 return db__recv_value(db_get_column_value(column), 97 db_sqltype_to_Ctype(db_get_column_sqltype(column))); 98 } 99 100 /*! 101 \brief Send column default value 102 103 \param column pointer to dbColumn 104 105 \return 106 */ db__send_column_default_value(dbColumn * column)107int db__send_column_default_value(dbColumn * column) 108 { 109 return db__send_value(db_get_column_default_value(column), 110 db_sqltype_to_Ctype(db_get_column_sqltype(column))); 111 } 112 113 /*! 114 \brief Receive column default value 115 116 \param column pointer to dbColumn 117 118 \return 119 */ db__recv_column_default_value(dbColumn * column)120int db__recv_column_default_value(dbColumn * column) 121 { 122 return db__recv_value(db_get_column_default_value(column), 123 db_sqltype_to_Ctype(db_get_column_sqltype(column))); 124 } 125