xdrcolumn.c 2.9 KB

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