~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_lex.cc

  • Committer: Mark Atwood
  • Date: 2011-08-01 05:22:14 UTC
  • mfrom: (1919.3.53 drizzle_pbms)
  • Revision ID: me@mark.atwood.name-20110801052214-3wdsx3xgld6b5v4f
mergeĀ lp:~barry-leslie/drizzle/drizzle_pbms

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
#include <drizzled/statement.h>
35
35
#include <drizzled/sql_lex.h>
36
36
#include <drizzled/plugin.h>
37
 
#include <drizzled/lex_input_stream.h>
38
37
 
39
38
#include <cstdio>
40
39
#include <ctype.h>
298
297
  lex_string_t tmp;
299
298
  lip->yyUnget();                       // ptr points now after last token char
300
299
  tmp.length=lip->yytoklen=length;
301
 
  tmp.str= lip->m_session->mem.strdup(lip->get_tok_start() + skip, tmp.length);
 
300
  tmp.str= lip->m_session->mem.strmake(lip->get_tok_start() + skip, tmp.length);
302
301
 
303
302
  lip->m_cpp_text_start= lip->get_cpp_tok_start() + skip;
304
303
  lip->m_cpp_text_end= lip->m_cpp_text_start + tmp.length;
317
316
                                   uint32_t length, char quote)
318
317
{
319
318
  lex_string_t tmp;
 
319
  const char *from, *end;
 
320
  char *to;
320
321
  lip->yyUnget();                       // ptr points now after last token char
321
322
  tmp.length= lip->yytoklen=length;
322
323
  tmp.str=(char*) lip->m_session->mem.alloc(tmp.length+1);
323
 
  const char* from= lip->get_tok_start() + skip;
324
 
  char* to= (char*)tmp.str;
325
 
  const char* end= to+length;
 
324
  from= lip->get_tok_start() + skip;
 
325
  to= tmp.str;
 
326
  end= to+length;
326
327
 
327
328
  lip->m_cpp_text_start= lip->get_cpp_tok_start() + skip;
328
329
  lip->m_cpp_text_end= lip->m_cpp_text_start + length;
1819
1820
  reset_query_tables_list(true);
1820
1821
}
1821
1822
 
 
1823
/**
 
1824
  This method should be called only during parsing.
 
1825
  It is aware of compound statements (stored routine bodies)
 
1826
  and will initialize the destination with the default
 
1827
  database of the stored routine, rather than the default
 
1828
  database of the connection it is parsed in.
 
1829
  E.g. if one has no current database selected, or current database
 
1830
  set to 'bar' and then issues:
 
1831
 
 
1832
  CREATE PROCEDURE foo.p1() BEGIN SELECT * FROM t1 END//
 
1833
 
 
1834
  t1 is meant to refer to foo.t1, not to bar.t1.
 
1835
 
 
1836
  This method is needed to support this rule.
 
1837
 
 
1838
  @return true in case of error (parsing should be aborted, false in
 
1839
  case of success
 
1840
*/
 
1841
bool LEX::copy_db_to(char **p_db, size_t *p_db_length) const
 
1842
{
 
1843
  return session->copy_db_to(p_db, p_db_length);
 
1844
}
 
1845
 
1822
1846
/*
1823
1847
  initialize limit counters
1824
1848