Beispiel #1
0
    def test_multiple_statements(self):
        sql_file = sql_file_syntax.parseString("""
        CREATE TABLE test_table1 (
           test_column INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL
        );

        ALTER TABLE test_table1 ADD col_no0 BIT(8) NOT NULL DEFAULT 0 FIRST,
            ADD col_no1 LONGTEXT NOT NULL,
            ADD col_no2 VARCHAR(200) NULL,
            ADD col_no3 BIT(8) AFTER col0;

        CREATE TABLE test_table2 (
           test_column INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL
        );

        ALTER TABLE test_table2 ADD col_no0 BIT(8) NOT NULL DEFAULT 0 FIRST,
            ADD col_no1 LONGTEXT NOT NULL,
            ADD col_no2 VARCHAR(200) NULL,
            ADD col_no3 BIT(8) AFTER col0;

        """)

        self.assertEqual(len(sql_file.statements), 2)
        self.assertEqual(sql_file.statements[0].table_name, 'test_table1')
        self.assertEqual(sql_file.statements[1].table_name, 'test_table2')
Beispiel #2
0
def parse(file_or_string):
    """Parse a file-like object or string.

    Args:
        file_or_string (file, str): File-like object or string.

    Returns:
        ParseResults: instance of pyparsing parse results.
    """
    if hasattr(file_or_string, 'read') and hasattr(file_or_string.read, '__call__'):
        return sql_file_syntax.parseString(file_or_string.read())
    elif isinstance(file_or_string, six.string_types):
        return sql_file_syntax.parseString(file_or_string)
    else:
        raise TypeError("Expected file-like or string object, but got '{type_name}' instead.".format(
            type_name=type(file_or_string).__name__,
        ))
Beispiel #3
0
def parse(file_or_string):
    """Parse a file-like object or string.

    Args:
        file_or_string (file, str): File-like object or string.

    Returns:
        ParseResults: instance of pyparsing parse results.
    """
    if hasattr(file_or_string, 'read') and hasattr(file_or_string.read, '__call__'):
        return sql_file_syntax.parseString(file_or_string.read())
    elif isinstance(file_or_string, six.string_types):
        return sql_file_syntax.parseString(file_or_string)
    else:
        raise TypeError("Expected file-like or string object, but got '{type_name}' instead.".format(
            type_name=type(file_or_string).__name__,
        ))