56 if ($tokenizer->testUpperText(
'IF'))
58 $tokenizer->skipWhiteSpace();
60 if ($tokenizer->testUpperText(
'NOT'))
62 $tokenizer->skipWhiteSpace();
65 if ($tokenizer->testUpperText(
'EXISTS'))
67 $tokenizer->skipWhiteSpace();
71 if ($tokenizer->getCurrentToken()->text !==
'(')
73 $indexName = $tokenizer->getCurrentToken()->text;
74 $tokenizer->nextToken();
75 $tokenizer->skipWhiteSpace();
79 if ($tokenizer->testUpperText(
'ON'))
81 $tokenizer->skipWhiteSpace();
82 $tokenizer->nextToken();
83 $tokenizer->skipWhiteSpace();
86 if ($tokenizer->testUpperText(
'USING'))
88 $tokenizer->skipWhiteSpace();
89 $indexType = $tokenizer->getCurrentToken()->text;
90 if (strtoupper($indexType) !==
'GIN')
95 $tokenizer->nextToken();
96 $tokenizer->skipWhiteSpace();
101 if ($tokenizer->testText(
'('))
103 $tokenizer->skipWhiteSpace();
104 $token = $tokenizer->getCurrentToken();
105 $level = $token->level;
109 if ($token->text ===
',')
111 $index->addColumn($column);
116 $column .= $token->text;
118 $token = $tokenizer->nextToken();
120 while (!$tokenizer->
endOfInput() && $token->level >= $level);
124 $index->addColumn($column);
127 if (!$tokenizer->testText(
')'))
133 $tokenizer->skipWhiteSpace();
134 if ($tokenizer->testText(
'USING'))
136 $tokenizer->skipWhiteSpace();
137 $token = $tokenizer->nextToken();
138 $index->using = $token->text;