@@ -137,11 +137,12 @@ func (p *Parser) parseCreateTableStmt() (*CreateTableStmt, error) {
137137 }
138138
139139 createTableStmt .Name = NewObjectName (p .currentToken .Literal .Str )
140+ errFmtPrefix := fmt .Sprintf ("table_name=%s: " , createTableStmt .Name .StringForDiff ())
140141
141142 p .nextToken () // current = (
142143
143144 if err := p .checkCurrentToken (TOKEN_OPEN_PAREN ); err != nil {
144- return nil , errorz .Errorf ("checkCurrentToken: %w" , err )
145+ return nil , errorz .Errorf (errFmtPrefix + "checkCurrentToken: %w" , err )
145146 }
146147
147148 p .nextToken () // current = column_name
@@ -152,7 +153,7 @@ LabelColumns:
152153 case p .currentToken .Type == TOKEN_IDENT :
153154 column , constraints , err := p .parseColumn (createTableStmt .Name .Name )
154155 if err != nil {
155- return nil , errorz .Errorf ("parseColumn: %w" , err )
156+ return nil , errorz .Errorf (errFmtPrefix + "parseColumn: %w" , err )
156157 }
157158 createTableStmt .Columns = append (createTableStmt .Columns , column )
158159 if len (constraints ) > 0 {
@@ -163,7 +164,7 @@ LabelColumns:
163164 case isConstraint (p .currentToken .Type ):
164165 constraint , err := p .parseTableConstraint (createTableStmt .Name .Name )
165166 if err != nil {
166- return nil , errorz .Errorf ("parseConstraint: %w" , err )
167+ return nil , errorz .Errorf (errFmtPrefix + "parseConstraint: %w" , err )
167168 }
168169 createTableStmt .Constraints = createTableStmt .Constraints .Append (constraint )
169170 case p .currentToken .Type == TOKEN_COMMA :
@@ -174,10 +175,10 @@ LabelColumns:
174175 case TOKEN_SEMICOLON , TOKEN_EOF :
175176 break LabelColumns
176177 default :
177- return nil , errorz .Errorf ("peekToken=%#v: %w" , p .peekToken , ddl .ErrUnexpectedToken )
178+ return nil , errorz .Errorf (errFmtPrefix + "peekToken=%#v: %w" , p .peekToken , ddl .ErrUnexpectedToken )
178179 }
179180 default :
180- return nil , errorz .Errorf ("currentToken=%#v: %w" , p .currentToken , ddl .ErrUnexpectedToken )
181+ return nil , errorz .Errorf (errFmtPrefix + "currentToken=%#v: %w" , p .currentToken , ddl .ErrUnexpectedToken )
181182 }
182183 }
183184
@@ -212,30 +213,31 @@ func (p *Parser) parseCreateIndexStmt() (*CreateIndexStmt, error) {
212213 }
213214
214215 createIndexStmt .Name = NewObjectName (p .currentToken .Literal .Str )
216+ errFmtPrefix := fmt .Sprintf ("index_name=%s: " , createIndexStmt .Name .StringForDiff ())
215217
216218 p .nextToken () // current = ON
217219
218220 if err := p .checkCurrentToken (TOKEN_ON ); err != nil {
219- return nil , errorz .Errorf ("checkCurrentToken: %w" , err )
221+ return nil , errorz .Errorf (errFmtPrefix + "checkCurrentToken: %w" , err )
220222 }
221223
222224 p .nextToken () // current = table_name
223225
224226 if err := p .checkCurrentToken (TOKEN_IDENT ); err != nil {
225- return nil , errorz .Errorf ("checkCurrentToken: %w" , err )
227+ return nil , errorz .Errorf (errFmtPrefix + "checkCurrentToken: %w" , err )
226228 }
227229
228230 createIndexStmt .TableName = NewObjectName (p .currentToken .Literal .Str )
229231
230232 p .nextToken () // current = (
231233
232234 if err := p .checkCurrentToken (TOKEN_OPEN_PAREN ); err != nil {
233- return nil , errorz .Errorf ("checkCurrentToken: %w" , err )
235+ return nil , errorz .Errorf (errFmtPrefix + "checkCurrentToken: %w" , err )
234236 }
235237
236238 idents , err := p .parseColumnIdents ()
237239 if err != nil {
238- return nil , errorz .Errorf ("parseColumnIdents: %w" , err )
240+ return nil , errorz .Errorf (errFmtPrefix + "parseColumnIdents: %w" , err )
239241 }
240242
241243 createIndexStmt .Columns = idents
@@ -253,14 +255,15 @@ func (p *Parser) parseColumn(tableName *Ident) (*Column, []Constraint, error) {
253255 }
254256
255257 column .Name = NewRawIdent (p .currentToken .Literal .Str )
258+ errFmtPrefix := fmt .Sprintf ("column_name=%s: " , column .Name .StringForDiff ())
256259
257260 p .nextToken () // current = DATA_TYPE
258261
259262 switch { //nolint:exhaustive
260263 case isDataType (p .currentToken .Type ):
261264 dataType , err := p .parseDataType ()
262265 if err != nil {
263- return nil , nil , errorz .Errorf ("parseDataType: %w" , err )
266+ return nil , nil , errorz .Errorf (errFmtPrefix + "parseDataType: %w" , err )
264267 }
265268 column .DataType = dataType
266269
@@ -270,7 +273,7 @@ func (p *Parser) parseColumn(tableName *Ident) (*Column, []Constraint, error) {
270273 switch p .currentToken .Type { //nolint:exhaustive
271274 case TOKEN_NOT :
272275 if err := p .checkPeekToken (TOKEN_NULL ); err != nil {
273- return nil , nil , errorz .Errorf ("checkPeekToken: %w" , err )
276+ return nil , nil , errorz .Errorf (errFmtPrefix + "checkPeekToken: %w" , err )
274277 }
275278 p .nextToken () // current = NULL
276279 column .NotNull = true
@@ -280,7 +283,7 @@ func (p *Parser) parseColumn(tableName *Ident) (*Column, []Constraint, error) {
280283 p .nextToken () // current = DEFAULT
281284 def , err := p .parseColumnDefault ()
282285 if err != nil {
283- return nil , nil , errorz .Errorf ("parseColumnDefault: %w" , err )
286+ return nil , nil , errorz .Errorf (errFmtPrefix + "parseColumnDefault: %w" , err )
284287 }
285288 column .Default = def
286289 continue
@@ -293,15 +296,15 @@ func (p *Parser) parseColumn(tableName *Ident) (*Column, []Constraint, error) {
293296
294297 cs , err := p .parseColumnConstraints (tableName , column )
295298 if err != nil {
296- return nil , nil , errorz .Errorf ("parseColumnConstraints: %w" , err )
299+ return nil , nil , errorz .Errorf (errFmtPrefix + "parseColumnConstraints: %w" , err )
297300 }
298301 if len (cs ) > 0 {
299302 for _ , c := range cs {
300303 constraints = constraints .Append (c )
301304 }
302305 }
303306 default :
304- return nil , nil , errorz .Errorf ("currentToken=%#v: %w" , p .currentToken , ddl .ErrUnexpectedToken )
307+ return nil , nil , errorz .Errorf (errFmtPrefix + "currentToken=%#v: %w" , p .currentToken , ddl .ErrUnexpectedToken )
305308 }
306309
307310 return column , constraints , nil
@@ -691,7 +694,7 @@ func isReservedValue(tokenType TokenType) bool {
691694func isDataType (tokenType TokenType ) bool {
692695 switch tokenType { //nolint:exhaustive
693696 case TOKEN_BOOL , //diff:ignore-line-postgres-cockroach
694- TOKEN_INT2 , TOKEN_INT4 , TOKEN_INT8 ,
697+ TOKEN_INT2 , TOKEN_INT4 , TOKEN_INT8 , //diff:ignore-line-postgres-cockroach
695698 TOKEN_DECIMAL , TOKEN_NUMERIC ,
696699 TOKEN_REAL , TOKEN_DOUBLE , /* TOKEN_PRECISION, */
697700 TOKEN_SMALLSERIAL , TOKEN_SERIAL , TOKEN_BIGSERIAL ,
0 commit comments