~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_string.cc

  • Committer: Monty Taylor
  • Date: 2010-02-05 08:11:15 UTC
  • mfrom: (1283 build)
  • mto: (1273.13.43 fix_is)
  • mto: This revision was merged to the branch mainline in revision 1300.
  • Revision ID: mordred@inaugust.com-20100205081115-dr82nvrwv4lvw7sd
Merged trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
#include "drizzled/sql_string.h"
28
28
 
29
 
using namespace drizzled;
30
29
using namespace std;
31
30
 
 
31
namespace drizzled
 
32
{
32
33
 
33
34
// Converstion functions to and from std::string.
34
35
 
185
186
  str_charset=cs;
186
187
  if (decimals >= NOT_FIXED_DEC)
187
188
  {
188
 
    len= my_gcvt(num, MY_GCVT_ARG_DOUBLE, sizeof(buff) - 1, buff, NULL);
 
189
    len= internal::my_gcvt(num,
 
190
                           internal::MY_GCVT_ARG_DOUBLE,
 
191
                           sizeof(buff) - 1, buff, NULL);
189
192
    return copy(buff, len, &my_charset_utf8_general_ci, cs, &dummy_errors);
190
193
  }
191
 
  len= my_fcvt(num, decimals, buff, NULL);
 
194
  len= internal::my_fcvt(num, decimals, buff, NULL);
192
195
  return copy(buff, (uint32_t) len, &my_charset_utf8_general_ci, cs,
193
196
              &dummy_errors);
194
197
}
496
499
      {
497
500
        if (realloc(str_length+(uint32_t) diff))
498
501
          return true;
499
 
        bmove_upp((unsigned char*) Ptr+str_length+diff, (unsigned char*) Ptr+str_length,
500
 
                  str_length-offset-arg_length);
 
502
        internal::bmove_upp((unsigned char*) Ptr+str_length+diff,
 
503
                            (unsigned char*) Ptr+str_length,
 
504
                            str_length-offset-arg_length);
501
505
      }
502
506
      if (to_length)
503
507
        memcpy(Ptr+offset,to,to_length);
784
788
  std::swap(str_charset, s.str_charset);
785
789
}
786
790
 
787
 
 
788
 
bool operator==(const String &s1, const String &s2)
789
 
{
790
 
  return stringcmp(&s1,&s2) == 0;
791
 
}
792
 
 
793
 
bool operator!=(const String &s1, const String &s2)
794
 
{
795
 
  return !(s1 == s2);
796
 
}
797
 
 
 
791
void String::q_append(const uint32_t n)
 
792
{
 
793
  int4store(Ptr + str_length, n);
 
794
  str_length += 4;
 
795
}
 
796
void String::q_append(double d)
 
797
{
 
798
  float8store(Ptr + str_length, d);
 
799
  str_length += 8;
 
800
}
 
801
void String::q_append(double *d)
 
802
{
 
803
  float8store(Ptr + str_length, *d);
 
804
  str_length += 8;
 
805
}
 
806
void String::q_append(const char *data, uint32_t data_len)
 
807
{
 
808
  memcpy(Ptr + str_length, data, data_len);
 
809
  str_length += data_len;
 
810
}
 
811
 
 
812
void String::write_at_position(int position, uint32_t value)
 
813
{
 
814
  int4store(Ptr + position,value);
 
815
}
798
816
bool check_if_only_end_space(const CHARSET_INFO * const cs, char *str,
799
817
                             char *end)
800
818
{
801
819
  return str+ cs->cset->scan(cs, str, end, MY_SEQ_SPACES) == end;
802
820
}
 
821
 
 
822
} /* namespace drizzled */
 
823
 
 
824
bool operator==(const drizzled::String &s1, const drizzled::String &s2)
 
825
{
 
826
  return stringcmp(&s1,&s2) == 0;
 
827
}
 
828
 
 
829
bool operator!=(const drizzled::String &s1, const drizzled::String &s2)
 
830
{
 
831
  return !(s1 == s2);
 
832
}
 
833